{"_id":"leancloud-realtime","_rev":"113-3d265e5ee922d9e1120f5d4847e49b09","name":"leancloud-realtime","dist-tags":{"latest-v3":"3.5.7","latest-v4":"4.3.1","dev":"5.0.0-dev.2003021435","next":"5.0.0-rc.1","latest":"5.0.0-rc.8"},"versions":{"2.2.0":{"name":"leancloud-realtime","version":"2.2.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.2.0","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"170c0347337f629252807afbece79b06430a50b8","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.2.0.tgz","integrity":"sha512-uGXCW5OU413q7qkoOHDbyXYUqfi4e7Elwuv1RNU5PT99QAaE4XTZnfwnr1j/J6tDp90MfQoVrl2qN0Gzlvdymg==","signatures":[{"sig":"MEQCIFeh/oirDDRBz0IibyMLczF9kcmwEE8FiAK2yHGPBRn2AiAV9T65aWROA9GXBusGsxv4ARt6frFcbQ9qO8GAMUxUSQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/realtime.js","_from":".","_shasum":"170c0347337f629252807afbece79b06430a50b8","browser":{"xmlhttprequest":"./src/tool/xmlhttprequest4browser.js"},"gitHead":"11b5c8ee24c9aefba89d64556f7437fc67217970","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"2.12.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"0.12.7","dependencies":{"xmlhttprequest":"^1.7.0"},"devDependencies":{"ws":"^0.7.2","grunt":"^0.4.5","sinon":"^1.15.4","should":"^7.0.2","grunt-jscs":"^1.8.0","es6-promise":"^2.3.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^3.8.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.10.1","grunt-mocha-phantomjs":"^0.7.0"}},"2.2.1":{"name":"leancloud-realtime","version":"2.2.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.2.1","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"28ebbebaa3fce02489fd70c499fb663d7d4caddc","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.2.1.tgz","integrity":"sha512-384C5cS2zgMattJFE7vhHh0NTuSdp5/Ckxu55vacwlp7DE059npu33EX7vol1ZnEYTPTPY3xKXW/9me8C3RSIw==","signatures":[{"sig":"MEUCIE2zORH6mV8LRXkr3m/D0I0tVaw3uGDSES1mc6OvThuCAiEA24ISJ05d+7Nb4xs8WH8PdvQLCEWRT/thWZneJ1CIgvc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/realtime.js","_from":".","_shasum":"28ebbebaa3fce02489fd70c499fb663d7d4caddc","browser":{"xmlhttprequest":"./src/tool/xmlhttprequest4browser.js"},"gitHead":"b221539c9a46cecd1697a1228948d91adb7d86f3","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"2.12.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"0.12.7","dependencies":{"ws":"^0.7.2","xmlhttprequest":"^1.7.0"},"devDependencies":{"grunt":"^0.4.5","sinon":"^1.15.4","should":"^7.0.2","grunt-jscs":"^1.8.0","es6-promise":"^2.3.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^3.8.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.10.1","grunt-mocha-phantomjs":"^0.7.0"}},"2.3.0":{"name":"leancloud-realtime","version":"2.3.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.3.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"ab0b45cd5bf943d674cb268e50319ac50f577fbe","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.3.0.tgz","integrity":"sha512-ZbzcejjHCT335+CO/KnvY0X5iwXPF74CM7ACNPFmaoQBVIB2drlnRlDtW5rrWEEDyGF1GPwGlSscYTYgVH7RVQ==","signatures":[{"sig":"MEQCIEKzH7DLUsTPMlr6Jt6NOOilEIoS6S5a2yzK3tu8WdacAiBEA6SkpVl0WbnXbMXms8YuPR/BVN42oIIbP3xKozTmIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/realtime.js","_from":".","_shasum":"ab0b45cd5bf943d674cb268e50319ac50f577fbe","browser":{"xmlhttprequest":"./src/tool/xmlhttprequest4browser.js"},"gitHead":"c02b647a2dbde51ca44f47a979f4e7bfb026ca95","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"2.13.2","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"2.5.0","dependencies":{"ws":"^0.8","xmlhttprequest":"^1.8"},"devDependencies":{"grunt":"^0.4.5","sinon":"^1.15.4","should":"^7.0.2","grunt-jscs":"^2.1","es6-promise":"^3","grunt-babel":"^5.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^4.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.11","grunt-mocha-phantomjs":"^2.0"}},"2.3.1":{"name":"leancloud-realtime","version":"2.3.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.3.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"9d0f4b6863e106ef4329e1b7469d9591660925f0","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.3.1.tgz","integrity":"sha512-ktMtEpLo27m4UCdY+R1+1LDpQIC6qmUQ2fYFEEgkIo+D0mzeVl13iWQj7Jhzd5vDMF6sERwGlACWqUwCT72m8w==","signatures":[{"sig":"MEYCIQD0PQmBJi4RoaHlvBse+gMuLUOLgqLp5BfLTyafLefJ4AIhAPBVj+iljxulkb77MJHCGnpqUiWhjA/FGU1jVXMjpo1M","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/realtime.js","_from":".","_shasum":"9d0f4b6863e106ef4329e1b7469d9591660925f0","browser":{"xmlhttprequest":"./src/tool/xmlhttprequest4browser.js"},"gitHead":"1f62d1b85889a71509319debab0389fb8a216f23","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.3.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"5.0.0","dependencies":{"ws":"^0.8","xmlhttprequest":"^1.8"},"devDependencies":{"grunt":"^0.4.5","qiniu":"^6.1.8","sinon":"^1.15.4","envify":"^3.4.0","should":"^7.0.2","grunt-jscs":"^2.1","es6-promise":"^3","grunt-babel":"^5.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^4.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.11","grunt-mocha-phantomjs":"^2.0"}},"2.3.2":{"name":"leancloud-realtime","version":"2.3.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.3.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"41a61032f4507ca21fc3ee2516bebdd365a01c43","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.3.2.tgz","integrity":"sha512-Ju6qkC9WbDlEVHGS3qvr7xbtx7x6kV2MJSFoLNgmjD3YMX/Rx9Rc9pPQeAtcfDdGAz5RaE7VlvbldR5VAnh0Ag==","signatures":[{"sig":"MEQCIGv0J0IU0WxR51nbvo0TXAqodSZSnz4xk6Vin/+C07pWAiBJ8fFyBFYqYeVuEm7pTNy7is56vbk6sKM1O2nrdgU2Qw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/realtime.js","_from":".","_shasum":"41a61032f4507ca21fc3ee2516bebdd365a01c43","browser":{"./lib/tool/xmlhttprequest.js":"./lib/tool/xmlhttprequest-browser.js"},"gitHead":"8e4703960b8420a2e9ba646e27655ffa4e122a63","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.3.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"5.0.0","dependencies":{"ws":"^0.8","xmlhttprequest":"^1.8"},"devDependencies":{"grunt":"^0.4.5","qiniu":"^6.1.8","sinon":"^1.15.4","envify":"^3.4.0","should":"^7.0.2","grunt-jscs":"^2.1","es6-promise":"^3","grunt-babel":"^5.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^4.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.11"}},"2.3.5":{"name":"leancloud-realtime","version":"2.3.5","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.3.5","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"d6063adbc1a35644129dd76f52da3d16859a0ca8","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.3.5.tgz","integrity":"sha512-46fght1MYDXUjRfmgDZ8ig1ZAFj7BhEnekcd7ijwYJO+O4xXO18jdoLThHA+Bw9hiIu0Lh6bRWdB97Ow4qyJTw==","signatures":[{"sig":"MEUCIQDLGzUucqJydDIEfubQF++tI8WrW2HdFN7f06/tX65/bQIgErlWsUUeSdGDCgBOLqVAn7wmPNYLs2Rw2sQ72j1Ptsg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/realtime.js","_from":".","_shasum":"d6063adbc1a35644129dd76f52da3d16859a0ca8","browser":{"./lib/tool/xmlhttprequest.js":"./lib/tool/xmlhttprequest-browser.js"},"gitHead":"0fa4bc42e975de908fdfbd8f85470ed69ec1b30a","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.3.12","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"5.3.0","dependencies":{"ws":"^0.8","xmlhttprequest":"^1.8"},"devDependencies":{"grunt":"^0.4.5","qiniu":"^6.1.8","sinon":"^1.15.4","envify":"^3.4.0","should":"^7.0.2","grunt-jscs":"^2.1","es6-promise":"^3","grunt-babel":"^5.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^4.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.11"}},"2.4.0":{"name":"leancloud-realtime","version":"2.4.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@2.4.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"b738d3825b0666b228351e0feabc3b2afbf73954","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-2.4.0.tgz","integrity":"sha512-QsE4QpN8M9aTbCESeIMyWBeMOrdTqJyZTDuQ+dVZuTx1Cz4FQuX3CyZ6hHNF6Y26G7PBMzC0csUjtcgeD/85Hg==","signatures":[{"sig":"MEUCIFIZRHk8O6ZJJCZpSuIkbGZZcuU8JErfsvdorIkyH1GUAiEA/B5wO+0DFqpDYz85LgJ6dMWc0Wrm+pB6497yyTk+Kpc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/realtime.js","_from":".","_shasum":"b738d3825b0666b228351e0feabc3b2afbf73954","browser":{"./lib/tool/xmlhttprequest.js":"./lib/tool/xmlhttprequest-browser.js"},"gitHead":"fd3bd80e0192e80306c35987efa4c54bf0d8bc0b","scripts":{"test":"grunt test"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.3.12","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"5.4.0","dependencies":{"ws":"^0.8","xmlhttprequest":"^1.8"},"devDependencies":{"grunt":"^0.4.5","qiniu":"^6.1.8","sinon":"^1.15.4","envify":"^3.4.0","should":"^7.0.2","grunt-jscs":"^2.1","es6-promise":"^3","grunt-babel":"^5.0","should-sinon":"0.0.3","grunt-saucelabs":"^8.6.1","grunt-browserify":"^4.0","load-grunt-tasks":"^3.2.0","grunt-simple-mocha":"^0.4.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^0.11.2","grunt-contrib-uglify":"^0.9.1","grunt-contrib-connect":"^0.11"}},"3.0.0-beta.1":{"name":"leancloud-realtime","version":"3.0.0-beta.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.0-beta.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"7f134f4e08d51f2d292c21e13ee772836491c166","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.0-beta.1.tgz","integrity":"sha512-2TRxIwfWwwpGSBMbYmjcdNcW/Kj25eMpbKlzLxnGAiUh6c+ZV1KfxOKENqYeR0+hMAeLXM9EZocrXdPk+eCNyQ==","signatures":[{"sig":"MEQCIDhwHVCW/qtfo4AWrX0nol4ADpbEuAqb08aUS89d4qbjAiB6XiKkObUWNIgXERPCVTSBqcu+/WrAO68DgskgdZeOcg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"7f134f4e08d51f2d292c21e13ee772836491c166","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"e2712e70ad9e3e77658e0c2e04ced7cad135faba","scripts":{"dev":"grunt dev","doc":"jsdoc src typed-messages/src README.md -r -d docs -t node_modules/docdash","test":"grunt lint test --stack && npm run report","build":"grunt build --stack","report":"istanbul report --include coverage/coverage.json --print text lcovonly","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.8.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"5.10.1","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","superagent":"~1.7","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","superagent-promise":"^1.1.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","ghooks":"^1.1.0","rollup":"^0.26.0","should":"^8.2.2","docdash":"^0.1.0","inherit":"^2.2.3","istanbul":"git+https://github.com/Victorystick/istanbul.git#es-modules-support","grunt-env":"^0.4.4","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-eslint":"^18.0.0","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","avoscloud-sdk":"1.0.0-rc8","grunt-istanbul":"^0.7.0","grunt-saucelabs":"^8.6.1","grunt-mocha-test":"^0.12.7","load-grunt-tasks":"^3.4.1","rollup-plugin-json":"^2.0.0","grunt-contrib-watch":"^1.0.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^2.2.1","rollup-plugin-istanbul":"^1.0.0","eslint-config-airbnb-base":"^1.0.2","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.0-beta.1.tgz_1461492967883_0.8132777700666338","host":"packages-16-east.internal.npmjs.com"}},"3.0.0-beta.2":{"name":"leancloud-realtime","version":"3.0.0-beta.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.0-beta.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"ec520d19b6688e19a11b59da37beb31ed35c1715","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.0-beta.2.tgz","integrity":"sha512-kyRP8zEeKjuzOC92sBTLZJD0432HQ2uiOF7wX8TyOY7eHf+0pCP+8uQz5ab99e+KCXhE4KFtjya5EQFJSji+ZA==","signatures":[{"sig":"MEUCIH0yMwcJ4hnKQFBiyWCRPiMqsPI+ZSwH/tSX8bepnIkBAiEAob/glD6wg8boACKZ0g8kuhIOpzx8ZymsXnNJdspoRe0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"ec520d19b6688e19a11b59da37beb31ed35c1715","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"cb64735592c529bd226d24000e77c27071c60e87","scripts":{"dev":"grunt dev","doc":"jsdoc src typed-messages/src README.md -r -d docs -t node_modules/docdash","test":"grunt lint test --stack && npm run report","build":"grunt build --stack","report":"istanbul report --include coverage/coverage.json --print text lcovonly","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.8.6","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"5.10.1","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","superagent":"~1.7","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","superagent-promise":"^1.1.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","ghooks":"^1.1.0","rollup":"^0.26.0","should":"^8.2.2","docdash":"^0.3.0","inherit":"^2.2.3","istanbul":"git+https://github.com/Victorystick/istanbul.git#es-modules-support","grunt-env":"^0.4.4","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-eslint":"^18.0.0","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","avoscloud-sdk":"1.0.0-rc8","grunt-istanbul":"^0.7.0","grunt-saucelabs":"^8.6.1","grunt-mocha-test":"^0.12.7","load-grunt-tasks":"^3.4.1","rollup-plugin-json":"^2.0.0","grunt-contrib-watch":"^1.0.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^2.2.1","rollup-plugin-istanbul":"^1.0.0","eslint-config-airbnb-base":"^2.0.0","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.0-beta.2.tgz_1462589254816_0.8144565257243812","host":"packages-12-west.internal.npmjs.com"}},"3.0.0-beta.3":{"name":"leancloud-realtime","version":"3.0.0-beta.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.0-beta.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"5e6b8d6215102cbe14fa899c4f90b45f5b745e41","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.0-beta.3.tgz","integrity":"sha512-AE3HTt2s3aEAjTQNnhW1K58QN/Gw2HXYdfqLEMR/o2rQ9CdEvYoQfMWm+fIvTDVv8qFtZxPrvshS9JB3RWfXBQ==","signatures":[{"sig":"MEQCIC7JJKxCYwNc0sq6Liy1fD7BK3ECEEsfFLHHmJ4JmblpAiBNicmWC2Zel6DFvrVdEwnBtLQpPj8PY5F+RH49ya1m6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"5e6b8d6215102cbe14fa899c4f90b45f5b745e41","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"9f94d51cf26c5b6df16b909d2fd95457a1e6101f","scripts":{"doc":"jsdoc src typed-messages/src README.md -r -d docs -t node_modules/docdash","lint":"eslint --ignore-path .gitignore src test typed-messages","test":"npm run lint && grunt test --stack && npm run report","build":"grunt build --stack","report":"istanbul report --include coverage/coverage.json --print text lcovonly","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.8.6","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"5.10.1","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","axios":"^0.11.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^2.10.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.26.0","should":"^8.2.2","docdash":"^0.3.0","inherit":"^2.2.3","istanbul":"git+https://github.com/Victorystick/istanbul.git#es-modules-support","grunt-env":"^0.4.4","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","avoscloud-sdk":"1.0.0-rc8","grunt-istanbul":"^0.7.0","grunt-saucelabs":"^8.6.1","grunt-mocha-test":"^0.12.7","load-grunt-tasks":"^3.4.1","rollup-plugin-json":"^2.0.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^2.2.1","rollup-plugin-istanbul":"^1.0.0","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.0-beta.3.tgz_1463378824580_0.16357536567375064","host":"packages-12-west.internal.npmjs.com"}},"3.0.0-beta.4":{"name":"leancloud-realtime","version":"3.0.0-beta.4","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.0-beta.4","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"5198b671b29d0731fc281ffeefcdffdf9b4b89be","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.0-beta.4.tgz","integrity":"sha512-bf2L/HIlX53Qya5GFoRssEPCMyA2dQUrq3VNGIt2s+qxIBzTw2be04RQ+ObHKLVkrqCT4UGX85uodbBmAAhnsA==","signatures":[{"sig":"MEYCIQDrPk7PQ+r5MAbxPNG2RpfmELw/cCmwN7OtutAL6KDbggIhAJmvtP3rFrFfiYCCBu7h296Pxy8H1lTjbkREypzZBo4u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"5198b671b29d0731fc281ffeefcdffdf9b4b89be","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"c455c3047cc47e7056acac23830243501f78562e","scripts":{"doc":"jsdoc src typed-messages/src README.md -r -d docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test typed-messages","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.8.6","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"5.10.1","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","axios":"^0.11.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^2.10.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.26.0","should":"^8.2.2","docdash":"^0.3.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","avoscloud-sdk":"1.0.0-rc9","grunt-saucelabs":"^8.6.1","load-grunt-tasks":"^3.4.1","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^2.2.1","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.0-beta.4.tgz_1464601280903_0.8276371890679002","host":"packages-12-west.internal.npmjs.com"}},"3.0.0":{"name":"leancloud-realtime","version":"3.0.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"988ca8f60f6ba4a7ccbf715e27439d4e3689d2ec","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.0.tgz","integrity":"sha512-rmO4wbvfCXrnbNVZf4M7bKCLC30lmVF+Vbo5zjFveBScCBCWYrZTTjU+hpE7llifgKex8YeXf+H1I94wbjT9EQ==","signatures":[{"sig":"MEYCIQCuMXMwA9dU4T5Tzq7HeBi+CNH3xgZbjPHv8iOcKKC45AIhAMAho/OFKAnjjGBhFRHezi46xLAl7esFlyDYbTW3RCeB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"988ca8f60f6ba4a7ccbf715e27439d4e3689d2ec","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"3fcb7b428e906e6240f3e4179318b59b2e22972c","scripts":{"doc":"jsdoc src typed-messages/src README.md -r -d docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test typed-messages","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.9.5","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"6.2.2","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","axios":"^0.12.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^2.10.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.32.0","should":"^9.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^8.6.1","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.0.tgz_1466591404002_0.03168459399603307","host":"packages-16-east.internal.npmjs.com"}},"3.0.1":{"name":"leancloud-realtime","version":"3.0.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"b46b5d0a2142992027c245e721d23e70b34cb601","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.1.tgz","integrity":"sha512-PQlP4vtgP2jBqbxU5wNIZ6E5UEkMniAjkQ/YJQ9al/EaXeQHfYjdSk82kzkWsQZVs3NSpzPm6AtgKyV1xfFSoA==","signatures":[{"sig":"MEYCIQDI3ZtXW/ARpQ70ou9q8aQSB8tpgSdisATg9MiE2NyCiAIhAMoJutmbiRHWbQr4cGPgBEm7aKZQhKl04+dEQEnmI2l9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"b46b5d0a2142992027c245e721d23e70b34cb601","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"ce151c6442b0e20eca9cf29e06a869efa2fe01d7","scripts":{"doc":"jsdoc src typed-messages/src README.md -r -d docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test typed-messages","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.9.5","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"6.2.2","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","axios":"^0.12.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^2.10.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.33.0","should":"^9.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^8.6.1","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.1.tgz_1467024940809_0.23017708212137222","host":"packages-16-east.internal.npmjs.com"}},"3.0.2":{"name":"leancloud-realtime","version":"3.0.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.0.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"0b04c6bf9f86e8c2a34b2b3d50ab8952caea0314","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.0.2.tgz","integrity":"sha512-j1m6iZ61dCnZKBs4YP9E+SW37l9DcguJD3LozzrmKbxBgJF21UPjz0+/qiblIYRZBVkeDhKxFhmHqDPUG1ZNqA==","signatures":[{"sig":"MEQCIE5nzsBBCkAvWDgjA5H8ONSKdMRbtUB+TJOYOXgSIBIyAiBaxT7o4zYHr8lYK1Dw3hnKbMW3NrVs4J4aUPakboL2Kg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"0b04c6bf9f86e8c2a34b2b3d50ab8952caea0314","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"18fd5240dd99cd1ba90c4edbc0e85d132277dcd6","scripts":{"doc":"jsdoc src typed-messages/src README.md -r -d docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test typed-messages","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.2","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"4.4.6","dependencies":{"ws":"^1.1.0","uuid":"^2.0.1","axios":"^0.12.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^2.10.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.33.0","should":"^9.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^8.6.1","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.0.2.tgz_1467266410576_0.11921534570865333","host":"packages-16-east.internal.npmjs.com"}},"3.1.0":{"name":"leancloud-realtime","version":"3.1.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.1.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"5cb8c0e34ec6600fdbc20eaa2e794ebced258f3c","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.1.0.tgz","integrity":"sha512-ycjW4FUgucQNgQ0E/MKz2epyu8seOxiRWiZfoY+SVwGqTgbQ5o2R8/RlpqNFXNN90ur0BSmX3rrj3SdOK3CX6A==","signatures":[{"sig":"MEUCIQCzRNJDHET3Ef7lUTrFeL9w6Ou+KtzVLp4tvnxyRRxB0AIgdLbn5rPAoTYQ3BzHMs6uVs8E9tXY0IamqSWLNsbNLVE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"5cb8c0e34ec6600fdbc20eaa2e794ebced258f3c","browser":{"ws":"./src/browser/ws.js","sinon":false,"dist/realtime.js":"dist/realtime.browser.js"},"gitHead":"75fff7896aff1ef73bd42bf5d9daf754ffe904f0","scripts":{"doc":"jsdoc src README.md -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src -d plugins/typed-messages/docs src/messages/**message.js -c .jsdocrc.json && jsdoc plugins/webrtc/src -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^9.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^1.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^3.0.1","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.1.0.tgz_1468820844383_0.034922966500744224","host":"packages-12-west.internal.npmjs.com"}},"3.1.1":{"name":"leancloud-realtime","version":"3.1.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.1.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"6a0539cfee75d99ee706569e053805d1ed6b76dc","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.1.1.tgz","integrity":"sha512-eZ+OdBRKcqXHdshW2aVtm+hERMbtQPvysolcvw4img9d3+C55R1uIrl5vwiAVm8+3hcPSEX24iycx/vn0su1FQ==","signatures":[{"sig":"MEUCIQDzZrM6R5cBN8GZHNtbfrW8LKtY7UEkoskITF7fAWMQMwIgIOTXiZ3Cmo1vCd66ARz7+duxF6gIaTeEY10m4VOq01o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"6a0539cfee75d99ee706569e053805d1ed6b76dc","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"db0b1e837d6205092d00ad8696dff8212f626cf5","scripts":{"doc":"jsdoc src README.md -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src -d plugins/typed-messages/docs src/messages/**message.js -c .jsdocrc.json && jsdoc plugins/webrtc/src -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^10.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^4.0.2","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.1.1.tgz_1469034949737_0.8896568254567683","host":"packages-16-east.internal.npmjs.com"}},"3.1.2":{"name":"leancloud-realtime","version":"3.1.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.1.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"254098de9e7b4a4c815191bbb48595d0d13aa1d3","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.1.2.tgz","integrity":"sha512-XvGkLa6F/htzfrzn8EJhgb+D+rq2uBKJj2yf7lWLnP7N0DIt7Dm0t37nHGoGkOR66b5KQfvpT5MIzqZtlTBeSA==","signatures":[{"sig":"MEQCIFlscFPKyWo/oelJ8/Gun8rjt7MOl4VZpr880biUQS/wAiBm2WkUkqpWkeLokasZtg9X/HlKXpwrjk1a4pWdH2G2VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"254098de9e7b4a4c815191bbb48595d0d13aa1d3","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"07dba0fec6598c45dc9b16c9f37b2e0c4305cc9d","scripts":{"doc":"jsdoc src README.md -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src -d plugins/typed-messages/docs src/messages/**message.js -c .jsdocrc.json && jsdoc plugins/webrtc/src -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^2.3.4","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^10.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^4.0.2","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^1.4.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.1.2.tgz_1469520041041_0.49260287289507687","host":"packages-12-west.internal.npmjs.com"}},"3.1.3":{"name":"leancloud-realtime","version":"3.1.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.1.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"212bcf2c127af99d6658860490b9d7fe235c3906","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.1.3.tgz","integrity":"sha512-TIszX3Qw4C4cjw33Bg7Y6sPNyMfnwQnYb+o+NM27Y7c5OMgnuz928+iWF5SKSJZ2bTjo6Dcijkl63QLCq7f57w==","signatures":[{"sig":"MEYCIQCONdT0bEcU47nrN8WUj6Edw61BaWfQjjTB0nKMMS8u4AIhAIZunyXLaLSDMGUEQRv0/o3k7brZ6P3LIN6Q11IKZKFq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"212bcf2c127af99d6658860490b9d7fe235c3906","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"5f1ebbc6a0ccf5b7608b2951ac0b9f4d60c968c6","scripts":{"doc":"jsdoc src README.md -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src -d plugins/typed-messages/docs src/messages/**message.js -c .jsdocrc.json && jsdoc plugins/webrtc/src -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^10.0.0","docdash":"^0.4.0","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^4.0.2","babel-preset-es2015-rollup":"^1.1.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.1.3.tgz_1470116169935_0.7394716481212527","host":"packages-12-west.internal.npmjs.com"}},"3.2.0":{"name":"leancloud-realtime","version":"3.2.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.2.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"01376b482e9fc30021cae8278282e4748e97a48b","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.2.0.tgz","integrity":"sha512-CWnRpecPoxrZJy+i1dw/8zS4hes9CidwkOT8TKKsCgZBN7q30pYX3J70eX11qh2gVgWUJPg7d6KbJb7ENb8LQg==","signatures":[{"sig":"MEQCICRC7CZbKwJ0sVomCgPjqceobXvq7orv4MzFpb4ySP0xAiB84gd/Nqz5t/vv5YWShQZqLqNmzL1k7kFnpCRy3XrzoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"01376b482e9fc30021cae8278282e4748e97a48b","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"c3e32e9dd2551cca216ba6c36f9b1c2e57861ff7","scripts":{"doc":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^10.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^5.0.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.2.0.tgz_1470823773344_0.4074691378045827","host":"packages-16-east.internal.npmjs.com"}},"3.2.1":{"name":"leancloud-realtime","version":"3.2.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.2.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"00d98f5110ec4bcd67450c607419ad23a5143379","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.2.1.tgz","integrity":"sha512-N59qgrV69UjfXfjdJfJXDP+4ZhEs4tkvvhzRENCrVdlcac0NBrkpWYlx7BqNRJt0nm9Jl/XS6LxXx3neRfo50A==","signatures":[{"sig":"MEUCIQDoCjc2r4+fBGXWAiJl3nIqymwJ+Kqu6h8lGY8wU6LXFAIgLF4j1LOVzf5WivX74vTHt95egpZON/OinAPbL2/a15M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"00d98f5110ec4bcd67450c607419ad23a5143379","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"0f0281c5a84e6259aea7b61c518f86b9d1b49103","scripts":{"doc":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.3.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.7.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^5.0.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.2.1.tgz_1470973056817_0.5401949319057167","host":"packages-16-east.internal.npmjs.com"}},"3.2.2":{"name":"leancloud-realtime","version":"3.2.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.2.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"f7166af9dfdcf34ad3d5e1c9edf9a9ad0ba991d5","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.2.2.tgz","integrity":"sha512-6oLHuWokAEnC4Y+JBrc4j4lGdcsBAyYwwXF86VC30Y1JHwA0BT0n0kBcaTayw/W8rAO4J8lBn88S0pY60O5XXQ==","signatures":[{"sig":"MEUCIQDMspThyfq+R1tt4sjkgbKruG3m91JNyM9sYYWiHK9DIwIga1LyoxHoebkHWTOSN4PfsKnKbnOiwPeoGALbdi0Xa5E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"f7166af9dfdcf34ad3d5e1c9edf9a9ad0ba991d5","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"027e3caffb0c72024a6f2ac76dc6174eb824525e","scripts":{"doc":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.3.1","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.13.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.0.3","grunt-rollup":"^0.8.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^3.0.0","eslint-config-airbnb-base":"^5.0.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.2.2.tgz_1472468511982_0.42758659343235195","host":"packages-12-west.internal.npmjs.com"}},"3.2.3":{"name":"leancloud-realtime","version":"3.2.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.2.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"dist":{"shasum":"23ee4b37355fe44ddb75fcb1550ce0bc765ed905","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.2.3.tgz","integrity":"sha512-KiW9qLsP+XXQmcXISLx1chh8JHBqW3qbiI7Ij1yNp1BBn9a8LXbv2seUOKUJT3cnkUXqTYie30Px/3MBSaLiGw==","signatures":[{"sig":"MEYCIQCMBzymXhrEDwt6aHEUfWt/I+S7XcO3ZmhAFLTbi2FYRgIhAPVWTGoEaAVQb78tg3O35CM5oW9fAwA325VLJb4wr5Vr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"23ee4b37355fe44ddb75fcb1550ce0bc765ed905","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"ba3bd31c8a2764d81277aba242a6a81b6dc290a3","scripts":{"doc":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run doc && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"babel-node ./node_modules/isparta/bin/isparta cover --include 'src/**' --include 'plugins/typed-messages/src/**' --report text ./node_modules/mocha/bin/_mocha -- test/index.js plugins/typed-messages/test/index.js --timeout 30000","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.5.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.14.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^1.1.1","javascript-state-machine":"^2.3.5"},"devDependencies":{"grunt":"^1.0.1","jsdoc":"^3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.34.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","isparta":"^4.0.0","babel-cli":"^6.9.0","babel-eslint":"^6.0.0","grunt-envify":"0.1.0","grunt-rollup":"^0.8.0","should-sinon":"0.0.5","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^1.5.0","grunt-contrib-uglify":"^2.0.0","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^5.0.1","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.2.3.tgz_1473062006990_0.2818659695331007","host":"packages-16-east.internal.npmjs.com"}},"3.3.0":{"name":"leancloud-realtime","version":"3.3.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.3.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"79b597b31db0c6903a6ce4d816bd6dfb3ac86fae","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.3.0.tgz","integrity":"sha512-V+V5Xg9BgrtRPcvCQftnP6n1blNSZrLpTHg3s7SD0INCQlXWY49XnnQpjOrGlu/pK22Y7F2yudhW3FUqqw++bg==","signatures":[{"sig":"MEQCIDdRV3v3Sw9s2glpYei5Fz9IL6Mga1OUGwJupzQ3bK+KAiAT8fh0HyJVJmTno4CAnat+1sJYuNSUCyCd6rKQNBB92w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"79b597b31db0c6903a6ce4d816bd6dfb3ac86fae","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"8eb703e91dfaa28fbc701257be4a226762ba1063","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.8","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"6.8.1","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.15.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^8.1.0","grunt":"^1.0.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.36.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^0.8.0","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#8545044","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^2.0.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.3.0.tgz_1477366974039_0.743381270673126","host":"packages-12-west.internal.npmjs.com"}},"3.3.1":{"name":"leancloud-realtime","version":"3.3.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.3.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"9314d44bb90ec1ed9968435a5163336fe58f7b1b","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.3.1.tgz","integrity":"sha512-UY9LX7d/jltY3ySVAwM7dj5QLkldvoUFbqon40uCEJsUBByskiZCFdUio3bhs/kg8sh09YNx/yQorzIfSzaKsw==","signatures":[{"sig":"MEUCIEzdD+N0+XOJYAo4NoBVzJn6E2RMBhRCasaQyYIrQPfvAiEA0Kdq59NuUxoghBkPxTr8gn/QBRMeSNn4GaSG7iBkugo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"9314d44bb90ec1ed9968435a5163336fe58f7b1b","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"46f6cd2d910792b9eb8cb7426caee0da7c57ff02","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.8","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.0.0","dependencies":{"ws":"^1.1.1","uuid":"^2.0.1","axios":"^0.15.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^9.0.1","grunt":"^1.0.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.36.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#8545044","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^2.0.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.3.1.tgz_1479297671476_0.005516572156921029","host":"packages-12-west.internal.npmjs.com"}},"3.3.2":{"name":"leancloud-realtime","version":"3.3.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.3.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"8ed7b194c9c970a8b1eea593b3af096febae9d33","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.3.2.tgz","integrity":"sha512-60/OAOREqid8rryRO+SUCFKOlIBTE7n8RkTtrBQ1XHY3buCtnBmt6NDD22H4kjCUBoY8ehU9o9wCHYZUuJH82Q==","signatures":[{"sig":"MEUCIQCGpW38hXofsLbU61T/e88Ae1GlHLY5bBN5GPlju++IGgIgEhdZ15D5niU8Q/URYaWBYi4EjUEXVE9Q1XBfFEte/Zw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"8ed7b194c9c970a8b1eea593b3af096febae9d33","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"27290fb1bec2693d643c01657874ca96df0e5ec2","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.2.0","dependencies":{"ws":"^1.1.1","uuid":"^3.0.0","axios":"^0.15.0","debug":"^2.2.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.37.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#ad5053b","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^2.0.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.3.2.tgz_1481708487895_0.12332391552627087","host":"packages-12-west.internal.npmjs.com"}},"3.3.3":{"name":"leancloud-realtime","version":"3.3.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.3.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"71230fae248b4021eabf9a92828e511a7a363cca","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.3.3.tgz","integrity":"sha512-YlU21IRevEDZCCqBipeYw2CpjI0IkopYkDHl0VcH9+mPiEby86YhpZ854xMzNPLYVY6daLasd/HJsREJiouA/A==","signatures":[{"sig":"MEUCIFcuGAMAgw/G28ew6ubVHgfC/1V/vTBSIKIp50FKIfzOAiEAoNvFuZb5EIV6BNCBJ1mOdP0U/zP9WUZF9IZiYmCp7fA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","config":{"ghooks":{"commit-msg":"validate-commit-msg"}},"_shasum":"71230fae248b4021eabf9a92828e511a7a363cca","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"0ed6974bdf53baa8280eea0db9e47ee077612f78","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.2.0","dependencies":{"ws":"^1.1.1","uuid":"^3.0.0","axios":"^0.15.0","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","ghooks":"^1.1.0","rollup":"^0.37.0","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#4c13db3","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^1.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^2.0.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.3.3.tgz_1481868851292_0.06559884338639677","host":"packages-12-west.internal.npmjs.com"}},"3.3.4":{"name":"leancloud-realtime","version":"3.3.4","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.3.4","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"e83082c86fc075da4be1067c5e01eef9acabc989","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.3.4.tgz","integrity":"sha512-lQRCZcyvo9f60n/acttHn7Dg/dPilqP0L3ZoD12hqKPmyjOjgr6InV98bw3xbxJsP2kUdXkLkEBwJox7rzpVKg==","signatures":[{"sig":"MEUCIHTW9yVn9VdtO9lwBloOCzmyTOZ14vtVLz0DrCm1dHdMAiEAkyRedWlLzqWgO4PX/Q88QzJY4aDtgL9UKJzlBhB0Q4U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","_shasum":"e83082c86fc075da4be1067c5e01eef9acabc989","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"b46e0ac478e2e06f0d765a0ce6927aea3038aa9b","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json ","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"3.10.10","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.3.0","dependencies":{"ws":"^1.1.1","uuid":"^3.0.0","axios":"^0.15.0","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.12.0","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#4c13db3","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.5.0","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^3.1.2","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^4.0.1","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.3.4.tgz_1484142880647_0.5354590846691281","host":"packages-18-east.internal.npmjs.com"}},"3.4.0":{"name":"leancloud-realtime","version":"3.4.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.4.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"4b3d582650bbac92298c3a100f2929b6b8d923dd","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.4.0.tgz","integrity":"sha512-H88vjlY5ssMOim0ycbB64hGhLpMRiXT7Jyf1nbKDHvJCYtbIHQjm96WgBmLDGv/VOINoGvRat8t9H8twTKdxHg==","signatures":[{"sig":"MEUCIQD/XntPMbKrE4gw1nCJ3oBmi74FrLGI0d1NLfokdb1J3gIgC4u1cnD8KNcW5iX1ZUQ9OWEo6j9lAGOMBuewGi8mQw4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","_shasum":"4b3d582650bbac92298c3a100f2929b6b8d923dd","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"b797820a41a5ca80d9087775c1d6ebe171a1474b","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.1.2","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.7.1","dependencies":{"ws":"^2.0.0","uuid":"^3.0.0","axios":"^0.15.0","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#4c13db3","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^3.1.2","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^7.0.0","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.4.0.tgz_1491493140481_0.5105713887605816","host":"packages-18-east.internal.npmjs.com"}},"3.4.1":{"name":"leancloud-realtime","version":"3.4.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.4.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"72f12a8753b71e8457bde5fb989ed576314ed268","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.4.1.tgz","integrity":"sha512-56174E3A3rWUhoasTsoDsps4S6rsHuP6QhfHzWd2HcFY9ZMfv+DNr9Q+pu7VwC+7xsvmtpQy1SRdc06DngOUqQ==","signatures":[{"sig":"MEQCIBVsW4BmJaaxzi8vxtMYmUdu8C1EAXD+wgMqv+35i0JCAiBkzEPC0keERJx8eGlrw6vzsDKX28prlnsP7Ko9eOW+9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","_shasum":"72f12a8753b71e8457bde5fb989ed576314ed268","browser":{"ws":"./src/browser/ws.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js"},"gitHead":"98ba577e1e4819721cb6321ed65bacbcc54c1ab4","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/typed-messages/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.1.2","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.7.1","dependencies":{"ws":"^2.0.0","uuid":"^3.0.0","axios":"^0.15.0","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"2.0.0-pre","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"github:leancloud/weapp-polyfill#4c13db3","grunt-saucelabs":"^9.0.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","babel-preset-es2015":"^6.9.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^3.1.2","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^7.0.0","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","rollup-plugin-node-resolve":"^2.0.0","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.4.1.tgz_1492423497528_0.08305516536347568","host":"packages-18-east.internal.npmjs.com"}},"3.5.0-beta.0":{"name":"leancloud-realtime","version":"3.5.0-beta.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.0-beta.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"c6e1e9515be1399ba929681d1c5da916005d2fd5","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.0-beta.0.tgz","integrity":"sha512-Un8VGQOBUV7v1PQnuQUA6aBvaYoAuaQNA8NInk6kkgfmxe2JrZDT3TN2iLbFxdIgEbdZncj5FgLSl6qxNDOClA==","signatures":[{"sig":"MEUCIQDFPhVj1eGuAqM7obrtwnbdV26+8DjJ9RdMsC+p9B9JNwIgbxaExpogbbtL1ZLDMEoxwUctDWsgJkc7AyBRhBqHDes=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"_shasum":"c6e1e9515be1399ba929681d1c5da916005d2fd5","browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"52403cc830c2402244464ebe19c829b7f4f71535","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.2.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.10.0","dependencies":{"ws":"^2.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.0-beta.0.tgz_1495173123190_0.11117860395461321","host":"packages-12-west.internal.npmjs.com"}},"3.5.0-beta.1":{"name":"leancloud-realtime","version":"3.5.0-beta.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.0-beta.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"c4533207910e863c2e8b8d37b79f9e392831e00d","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.0-beta.1.tgz","integrity":"sha512-erPJG51oj+kEMrcH6T5/DtPxVn9ARb1a3ZVwmngvh/4Xipk94V8ma4nrAve3HWHwAfXRIdqZ3piFcJkqDDN+2A==","signatures":[{"sig":"MEUCIDw69GGeMYkYt4whQLQ8Gh3wjTRy5aVxDv+B1F3uUS9tAiEAsFTU1Zpsqs9+QGnNmSmKDs8wvadl9/mBI/kLMLoTIXY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"_shasum":"c4533207910e863c2e8b8d37b79f9e392831e00d","browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"ecb6b68c16bbd3022f9b5117634516f9e223772f","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.2.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.10.0","dependencies":{"ws":"^2.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.0-beta.1.tgz_1496307592911_0.41373097873292863","host":"s3://npm-registry-packages"}},"3.5.0":{"name":"leancloud-realtime","version":"3.5.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"27b618d77a8c97cac23ffe07c3b9f1ecd5da7930","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.0.tgz","integrity":"sha512-kZVtLTxK9dhKzyBg1KaWd8bUMfp54gqdbbmO0Q8jqapOwORCaVjm396Y79CoQiuQwUsf+3AndgzboM7GngeFEQ==","signatures":[{"sig":"MEYCIQClixGliS1SUepUECXrls8cDQ2PcBpfx27yv3MilQywgQIhAMv9+tFWccqZb6267Sc8hH4/23ke0lskSSxaHJNl7oZe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"_shasum":"27b618d77a8c97cac23ffe07c3b9f1ecd5da7930","browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"86c9440e564011053aa375b8d8b7a72ae652f7f1","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.2.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.10.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.0.tgz_1497531287697_0.05526972562074661","host":"s3://npm-registry-packages"}},"3.5.1":{"name":"leancloud-realtime","version":"3.5.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"04c0fd5ed1f23093f0034849fa9dd9168a7f8f60","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.1.tgz","integrity":"sha512-j/oxuwcXbVhCqxMtEgMbuqELYE3Ir0l/OKOS9OBGGgELzTIs8yFHDKk1iu8XbR9gQRDqqtP4CffomQ8kHQw6xw==","signatures":[{"sig":"MEQCIBRH/jXaW68AM03osvPTTrziWXF45QwUjoTrwRG0ZfxDAiArJshI7Pvg18uu1CMd8YfHWGX5NSUIUrUQUbrqacz8Xg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","_from":".","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"_shasum":"04c0fd5ed1f23093f0034849fa9dd9168a7f8f60","browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"cac4a3ed819d0ca2ca5cf31b1c2afe261b77bcde","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"4.2.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"7.10.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.1.tgz_1497955910473_0.09219097555615008","host":"s3://npm-registry-packages"}},"3.5.2":{"name":"leancloud-realtime","version":"3.5.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"e4e45cd1d7ca8bb9a4d7f2688f3762173505ff4a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.2.tgz","integrity":"sha512-AMgjU6B6327Au1a7LNq2nmNVuohDW3wDx8ngC2MpulXH0S351PYuffwtcuOmPyzcjEYfWe0FUGYrm/k0UA4Vew==","signatures":[{"sig":"MEUCIBus2SIhw9uYZ+Tiv5zZS6sJAqiSNsGjA3XMD/mDF5O3AiEAmNGyYol/f8NCuxWb4KJ0upy2494X3GcBorr3K5cPgnc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"cd5b17277830b3ee606dbcc8baa801e26482c543","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.0.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.1.2","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.2.tgz_1498806878736_0.3867882981430739","host":"s3://npm-registry-packages"}},"3.5.3":{"name":"leancloud-realtime","version":"3.5.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"ddd044fd43ca29da2a999dee9a2c9f9e4d73d15a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.3.tgz","integrity":"sha512-d7wD6U5t2/HV5N5qkNJqZ5HdJ4bYMjhSH4OsysNnLnfH3+LrFJnuveKzReUiq9jH3tIvBlWmUC4gGB/X0chIKw==","signatures":[{"sig":"MEUCIQCsA19n8Zb/h2YI2irb7qcNUX4FaKzFQ5HXKexb2I56CQIgSCIJMO1IoCHC0jJVINMVe/sauZGewiDdK/CTsHcKlgE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"0db7cb6468a8e3d9c01d03645d74cde86823d781","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.2.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.3.tgz_1501223710104_0.8109834918286651","host":"s3://npm-registry-packages"}},"3.5.4":{"name":"leancloud-realtime","version":"3.5.4","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.4","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"1ee68c0f9711627ac81b2423813669f7f6a00e21","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.4.tgz","integrity":"sha512-q6XRsrzhjOpqR8sOPA5z4wZ0Wx6m/L1o4DAs1NmpRwGCLDT4OvgfsHXFUXpYXhJWSSDd0nMGdwSZIfdwZW+aoQ==","signatures":[{"sig":"MEUCIDcKWCilbfecrFCW/MoH9DwgRdll4s3ty4wO4w+WQkrZAiEAkcyKIccCr0QCnHjBnpC73YuksEIMtTnoFVYTFLXGiIE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"38d77cbae19000fc965b2aeab266e095c9d61d42","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.2.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.4.tgz_1501241833345_0.5172653808258474","host":"s3://npm-registry-packages"}},"3.5.5":{"name":"leancloud-realtime","version":"3.5.5","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.5","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"dd4852f6fd034e4aa23f5332c5afb715960a584c","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.5.tgz","integrity":"sha512-ZIZeZL5WlJ/m2W0CHWxvWrAVTwz19Xp+0hstLlP1MYhHMB9t6DxWE9QqSDHY28+J8ScHIaU48S49JcbfjuIYzw==","signatures":[{"sig":"MEUCIFEceBINMgpW3S8kFSq7wyknorgakHyRyxE3kctEBmVXAiEA3L5Y6bb7xxMq7W42itYt/35AUQUkvaRvUru6KmqMbIw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"d15931edaf54b1131e4a0ecea3e8ec5153df9c94","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.2.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.5.tgz_1501258136867_0.7140409257262945","host":"s3://npm-registry-packages"}},"3.5.6":{"name":"leancloud-realtime","version":"3.5.6","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.6","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"5047c74c65f37db270027155f39924f7e2c404fb","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.6.tgz","integrity":"sha512-MxM3vE9xeq11ZwedAG/6uoACiIn4qmUQAnCo2bUy1gt+0sSsxoyG4rja+XQmitHtuPkwQ/pqI4uIU5qn4Z6pFg==","signatures":[{"sig":"MEYCIQDcbUzh+BSfDffxQxmmXwIWSdMChkgjwUtSAcQz1H0CrQIhAKBr03EY1avplfO+fwLUBp6RKkA8K+ZmOzVAQE9jf0vt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"e6d304b0c85130462a28e4b27d65fbe52cd1b93a","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.4.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.6.tgz_1504004402649_0.7088915449567139","host":"s3://npm-registry-packages"}},"4.0.0-alpha.0":{"name":"leancloud-realtime","version":"4.0.0-alpha.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-alpha.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"8c7d75937e8465a5b70ddeb436ca4aa976783f8b","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-alpha.0.tgz","integrity":"sha512-uqPoemoyA01Vyzrs2pmTULdOi9CQymxLUxebYIgR0llHK4Hv2S9zbFh0KtoQfXyqFXLxo3pQSFad/SwGcIMBBA==","signatures":[{"sig":"MEYCIQDZz8F7RNZ/OQcM0uvrnu/fcdkapWLP/+u/m+HzUo3agAIhAO82LeP3m3SAyf2Cv0XOc86KhmY1N7h/V7vO8f8n71bU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"1aacb5c32f2d2e5479f6593191e9f4a643a0fe49","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.4.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^11.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^11.1.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-alpha.0.tgz_1504255293150_0.015857366612181067","host":"s3://npm-registry-packages"}},"3.5.7":{"name":"leancloud-realtime","version":"3.5.7","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@3.5.7","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"6c0d7ad31c5f496e80eef6e4b9598bac83eef105","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-3.5.7.tgz","integrity":"sha512-lNrIDg1JobhRn4/xAPg44KQCdEOWvRZZ9LmH0+r3mdL3i1iGPN7q83xnYdMiR46RSWc6bn1WCbH7yd9hBRrccg==","signatures":[{"sig":"MEUCIQDapqjJyCFc34cBuh5zrYv0OzPfoHOrKr0aN+LKp++WggIgAngN9wgcRdqPrPj3XrSEmhlQxrAhP18pbEVELxWqvbc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"290fbdb218355764c3eb2b8f7ffefb7d6f8e6d13","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.4.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^3.0.0","espree":"^3.1.4","rollup":"^0.41.1","should":"^11.0.0","docdash":"git+https://github.com/leeyeh/docdash.git#leancloud","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"^1.0.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^9.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-3.5.7.tgz_1505099910061_0.6999773159623146","host":"s3://npm-registry-packages"}},"4.0.0-alpha.1":{"name":"leancloud-realtime","version":"4.0.0-alpha.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-alpha.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"e0d14dd9d794f41cc019e56c51d906c860ffb5df","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-alpha.1.tgz","integrity":"sha512-sWWPh4S0agKnWRpHxN+L22CzIjP0cPV77xilYSZz4ruG9rirXUieEmRRY3/k7wsA4atYNL5URqAeWRWlzJ77Tg==","signatures":[{"sig":"MEQCICVHKYKOv3zmYm509KdWhX3s35oyZ6CyiiO6cUopbz5IAiAGLShzk0YzZYrBDPeJVx0rv+i7aVKOAKRAI0hSukW6oA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"955798e168f3819d5c99faf4b9b7df6a3d0b3587","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.5.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^2.4.4","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^10.0.0","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","qiniu":"^6.1.9","sinon":"^2.1.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^11.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^7.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^2.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^2.4.0","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^2.0.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^11.1.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-alpha.1.tgz_1505907666911_0.06351108523085713","host":"s3://npm-registry-packages"}},"4.0.0-alpha.2":{"name":"leancloud-realtime","version":"4.0.0-alpha.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-alpha.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"2411dee57b9a4364349cff57e547bc34ceef2be9","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-alpha.2.tgz","integrity":"sha512-QV37EYk6xMngp2GXjx8J8fHLr2frpgsGgop2zXz4nJXpZ0N2zGYibJyVjmA/c4fpnxs7EvYWy47TuND5iU/k6w==","signatures":[{"sig":"MEYCIQCrOy2hQE0kc8jLqpJpFrHCD6O+3EFpKEqyQKp2IHpkaQIhALQHMscxk6hksSoG7V08GoL745oRd3dZTMUO44TfmPLi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"da54781f9bfe6dd2ba0eaa2b64e472b53fe0730f","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/**message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.3.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.5.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-alpha.2.tgz_1506318686779_0.9334261624608189","host":"s3://npm-registry-packages"}},"4.0.0-alpha.3":{"name":"leancloud-realtime","version":"4.0.0-alpha.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-alpha.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"7e0f97f8f4ee92f9139f6aa72a220a9d62e08b18","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-alpha.3.tgz","integrity":"sha512-UcwX6Q6Rdo4teqhqCjLkY3ElESpRi/GeSQRg64ksqjwQb3zr1iVxD+2IjVV92Im+LzSs/CR1FK3mxpgz8pJG0g==","signatures":[{"sig":"MEUCIQDberFZvtd0gR9b6NkQsOSbedu//Leu/3b82BHRXK/fhQIgOmQhqyBr69e5rNK0Nv59dy283urG9snUczIsNc4klzs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"c1663192d56629f85f965b64101d683ad42e926d","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","precommit":"validate-commit-msg","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.4.2","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.8.1","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^1.1.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","validate-commit-msg":"^2.10.1","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-alpha.3.tgz_1509613417520_0.35924682253971696","host":"s3://npm-registry-packages"}},"4.0.0-beta.0":{"name":"leancloud-realtime","version":"4.0.0-beta.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"db7daff22de403f6729a36aa35271a9da797687a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.0.tgz","integrity":"sha512-QEK9TKJYnIQiChFjPqLls5xKuwhQjqZoO3cZ+fS507pgTxF3XtXqQzgsVGx+ASYTA7C3sIlraDlKBeYzjbzVPA==","signatures":[{"sig":"MEUCIQCEgu4+mo7StfZDnilwSKtv4TeYHESTJk4tpOvG2xC//gIgKXILr22FcU8ZLog3l5vtZ1DLLwufnOD95q96aX7W8bw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"24cbeaa5f7647280641b16dce9740ff456695c0d","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.5.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.9.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","@commitlint/cli":"^4.2.2","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5","@commitlint/config-angular":"^4.2.1"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.0.0","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-beta.0.tgz_1511517008565_0.03150986414402723","host":"s3://npm-registry-packages"}},"4.0.0-beta.1":{"name":"leancloud-realtime","version":"4.0.0-beta.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"329a6ad040f425590c77565a1f50a332d36cec34","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.1.tgz","integrity":"sha512-KBcPlMuNH2Cs3s9Gm+5RTpl//hIipkLCfQPdrS8PyRT9y6dfE3QNvnZ5Cb6gCPBiVm8rJ41xooTctKTsnoJiaQ==","signatures":[{"sig":"MEUCID4sU6M5MA3Kzh5cP/3CXoIuxr4cH6m3YlaesivbthN9AiEA6+eLIruf9QagKuxwrIrWjwbb+KSC15Q3ZnY3zrtj/qQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"27c74f55e83d37719f5281f2171b87f1a3973c9c","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.5.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.9.1","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.0.0","@commitlint/cli":"^4.2.2","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","@commitlint/config-angular":"^4.2.1","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-beta.1.tgz_1514364103687_0.4356056088581681","host":"s3://npm-registry-packages"}},"4.0.0-beta.2":{"name":"leancloud-realtime","version":"4.0.0-beta.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"4c7726c6311d6d810e25749a5a2c74ae9ac1b7fe","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.2.tgz","integrity":"sha512-dQuiHw5wpda9WTovy6kcqLsN5Xn2O14MGwA7+v3daXVYzhSwbMikVpDK3LjghojAzDDQmU1BuRF/a6StOQlSFQ==","signatures":[{"sig":"MEUCIDFnfNCxxgYuQVyBskydlESY26xQRtejvEOc3lWDEzjfAiEAhyYokRwdilXSbBiuOXe17kbmr/NvG4ZwRsDyq0LpKSU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"940d787000dd133570795425e6a155b3ee015de3","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.5.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.9.1","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^4.2.2","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","@commitlint/config-angular":"^4.2.1","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-beta.2.tgz_1515484923548_0.6307520330883563","host":"s3://npm-registry-packages"}},"4.0.0-beta.3":{"name":"leancloud-realtime","version":"4.0.0-beta.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"33fd1bf57192db2e7068042539cfcc46e6e46c4b","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.3.tgz","integrity":"sha512-RHH2ILoG9/whzLgakwcJzdREoMFX2Dj6Cb6PY+SVjG+BwOUAfo7+WS2qKn/OMR3r/x83r5W6czf4OZVhFS4MRQ==","signatures":[{"sig":"MEUCIFdnQ7EJll1q+XhokspEDWm8Fm7pTU+tYJXaUYPdDJryAiEAtaWU6w504mjkPqQi3o3AwOYSsw7BFrSYpNsta022jSI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"8a9c421af78822194bc83a34d5ff14b17d20c7dc","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.6.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.4.0","dependencies":{"ws":"^3.0.0","uuid":"^3.0.0","axios":"^0.16.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^2.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.13.1","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^3.0.0","sinon":"^3.3.0","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^4.2.2","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","@commitlint/config-angular":"^4.2.1","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime-4.0.0-beta.3.tgz_1516687310296_0.07938543637283146","host":"s3://npm-registry-packages"}},"4.0.0-beta.4":{"name":"leancloud-realtime","version":"4.0.0-beta.4","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.4","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"ccdd777f84ddd9f08e05dd86214f9b1c5e2dada6","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.4.tgz","fileCount":68,"integrity":"sha512-nKu4baUmXlva5jr4ZJB+OGqZ+HA37390IFl34eHjkgjS/bMfx+QmzRcNvmKU4nbfwlKdeArEL9ZJV97N5T1QsQ==","signatures":[{"sig":"MEUCIQDQ+6yWrr4Kv1Q0SAtQ8NTB8pACwjEQFixdyQ+LoiUHhQIgXXt+q7NkeEap1x8+kJTHZOytbI2CdNnDHyHBuCx/A70=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13496998},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"LeanCloud JavaScript Realtime SDK\n====\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](http://img.badgesize.io/leancloud/js-realtime-sdk/dist/dist/realtime.browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n版本说明\n----\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n支持的运行环境\n----\n- 浏览器 / WebView\n  - IE 10+ / Edge\n  - Chrome 31+\n  - Firefox latest\n  - iOS 8.0+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序 latest\n- React Native 0.26+\n- Electron latest\n\n文档\n----\n- [安装文档](https://leancloud.cn/docs/realtime_guide-js.html#安装和初始化)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\nDemo\n----\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n插件\n----\npackage name|描述|版本|文档|\n:--|:--|:--:|:--:|\nleancloud-realtime-plugin-typed-messages|富媒体消息|[![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)|[API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)\nleancloud-realtime-plugin-groupchat-receipts|群聊已读回执|[![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts)|[API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/)\nleancloud-realtime-plugin-webrtc|WebRTC 客户端|[![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)|[API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)\n\n\n支持\n----\n* 在使用过程中遇到了问题时\n  * 如果你是商用版用户，请新建一个工单。\n  * 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n贡献\n----\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n0. Fork 这个项目，clone 到本地\n0. 在目录中执行 `npm install` 安装所需 Node.js 依赖包\n0. 在目录中执行 `bower install` 安装所需 web 依赖包\n0. 执行 `grunt dev` 浏览器打开 [](http://localhost:8000) 本地进行调试\n0. 编码，更新测试用例\n0. 运行 `npm test` 确保测试全部 pass\n0. 提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n0. 发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime.browser.js     // 浏览器用\n│   ├── realtime.browser.min.js // 浏览器用(uglified)\n│   ├── realtime.weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n* `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  * 是一个有限状态机\n  * 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  * 超时与自动重连机制\n  * url 参数支持 Promise 及备用地址\n* `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  * 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  * `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  * 实现了应用层 ping/pong\n\n#### 应用层\n* `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n* `Client`：所有的 clients 共享一个 connection\n  * `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n* `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n* `Conversation`：实现对话相关的操作\n  * `ConversationQuery`：对话查询器\n* `Messages`\n  * `AVMessage`：接口描述，生成文档用\n  * `Message`：消息基类\n  * `TypedMessage`：类型消息基类，继承自 `Message`\n  * `TextMessage`：文本消息，继承自 `TypedMessage`\n  * 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n```bash\nexport DEBUG=LC*\n```\n#### 浏览器\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\nDevelop Workflow\n----\n### 本地开发\n更新 .proto 后请运行\n```\nnpm run convert-pb\n```\n测试\n```\nnpm run test:node -- --grep KEYWORDS\n```\n浏览器测试\n```\n# 在当前目录启动一个静态 server\n# static . -p 8000\nnpm run test:browser\n# open http://localhost:8000/test/browser/\n```\n生成 dist/realtime.*\n```\nnpm run build\n```\n### 持续集成\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\nRelease Process Workflow\n----\n0. 遵循 semver 提升 `package.json` 与 `bower.json` 中的版本号\n0. `npm run changelog` 生成新的 `changelog.md`，润色之\n0. Commit `package.json`，`bower.json`，`changelog.md`\n0. Push to remote `master` branch\n0. 等待持续集成 pass\n0. 使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n0. Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n0. npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n0. 如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","sinon":false,"./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"b48f1e82e6d3ea38335f2ae70fba6762a5f0e13e","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"grunt build --stack","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"grunt test-browser --stack"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.6.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.5.0","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.17.1","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^11.2.1","grunt":"^1.0.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","should":"^12.0.0","inherit":"^2.2.3","typescript":"^2.4.1","babel-eslint":"^8.0.0","grunt-envify":"0.1.0","grunt-rollup":"github:leeyeh/grunt-rollup","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","grunt-saucelabs":"^9.0.0","babel-preset-env":"^1.4.0","load-grunt-tasks":"^3.4.1","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","grunt-contrib-uglify":"^3.1.0","babel-plugin-istanbul":"^4.1.1","grunt-contrib-connect":"^1.0.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","@commitlint/config-angular":"^6.0.2","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.0.0-beta.4_1517994178026_0.21767893392992232","host":"s3://npm-registry-packages"}},"4.0.0-beta.5":{"name":"leancloud-realtime","version":"4.0.0-beta.5","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-beta.5","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"cdb69c3e841619b72c5052bfdb3006e6931122dd","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-beta.5.tgz","fileCount":76,"integrity":"sha512-SMfxjexc7d36AChg//XRS+uVdY9C/Id3NaXW8yQSdlQGLR07EwiDvD8Vns/aER4Kvsx8kWYtQ0tOmo3LZkOhDA==","signatures":[{"sig":"MEUCIQDBxfs+PUqTpUMzWbWUwypUUQIs+JD8ZH14iKimv1+UpQIgM5QDK9Ng9WohW3LhfJ2vieEj8ZUp9H5aEWlDeiDjeYk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12720003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0u1eCRA9TVsSAnZWagAAXPAP+gJC9pzP/dMbxUTQC3CK\nfigYT6iQSmTMZwp4P1Vv7giiJnSNHcceD0/ICjZtYP5LkLZnHGwbV9E9XYLL\nzXXkjqCfqjcYgM/h/ZeShPkRuob5UPiCmImbffQrbzBXnLHKZ0vvNypThdVE\n/jS6jGuj7As3fVISs4GdvvTDAMyRXrbIMJNEdclvBeFHQ+rB3Pf00qDsdJkH\nU5JN0K8Gy38LbSwdaRvHMA9i1jADGg3yo7YEHbSwrrd+IMqpr83T+wjoDFnS\nvz/2LxBPi0tikN9PO4Y1l60Lx/xUpK9iEOi+R9aljt3e/3hB2rUsDj2yfK5H\n2kvZDVq7toMdFeDwpvwiVY72xnKc+jZmuvb7TXHSgOuGpPldGTh5zg2F7reg\ntoIo7fTvrXR/vWiQ+eqPgi4z8suIFsznCycjkFOilyR1yhDzXS0LDwJeuOnG\nX+p6g9utpbUDkhhxruLJ3V2Rqcqu1wQ/qp45GCOtwC53WAM+J23qhAzYEgG2\nJ62fYy7ugXhB7wjAXXhMupCmzG7zs2ygzXWMwBCbnHp7sc4ls2tY9ovf6EEu\nPyXtMRwmXzk2L33OL7/jOM7GMLTm/o2lIUQsY+jNuBX7ZOsYO3nMGpJj//AJ\nSvqri3t9CCVTzeRFHBywn5yhcNtTbyWYS3L+A5CA2m8/U7WdAqlPQzkKpSx+\nu88c\r\n=lJ+S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](http://img.badgesize.io/leancloud/js-realtime-sdk/dist/dist/realtime.browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n* 浏览器 / WebView\n  * IE 10+\n  * Edge latest\n  * Chrome 45+\n  * Firefox latest\n  * iOS 9.3+\n  * Android 4.4+\n* Node.js 4.0+\n* 微信小程序/小游戏 latest\n* React Native 0.26+\n* Electron latest\n\n## 文档\n\n* [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n* [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n* [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n* [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n* [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n* [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n* 在使用过程中遇到了问题时\n  * 如果你是商用版用户，请新建一个工单。\n  * 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n0.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime.browser.js     // 浏览器用\n│   ├── realtime.browser.min.js // 浏览器用(uglified)\n│   ├── realtime.weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n* `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  * 是一个有限状态机\n  * 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  * 超时与自动重连机制\n  * url 参数支持 Promise 及备用地址\n* `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  * 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  * `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  * 实现了应用层 ping/pong\n\n#### 应用层\n\n* `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n* `Client`：所有的 clients 共享一个 connection\n  * `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n* `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n* `Conversation`：实现对话相关的操作\n  * `ConversationQuery`：对话查询器\n* `Messages`\n  * `AVMessage`：接口描述，生成文档用\n  * `Message`：消息基类\n  * `TypedMessage`：类型消息基类，继承自 `Message`\n  * `TextMessage`：文本消息，继承自 `TypedMessage`\n  * 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n生成 dist/realtime.\\*\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"7733c6d7608f78724d9cedc83efe446008648d67","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-angular"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.6.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.11.1","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^11.2.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","rollup":"^0.56.4","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","@commitlint/config-angular":"^6.0.2","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.0.0-beta.5_1523772765269_0.4208893753361076","host":"s3://npm-registry-packages"}},"4.0.0-rc.0":{"name":"leancloud-realtime","version":"4.0.0-rc.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0-rc.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"35ac7e4958cd5afa4fd9f40981cda5d631a1f1eb","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0-rc.0.tgz","fileCount":76,"integrity":"sha512-KkoNJ0lqcaco4lfsmLRm0i6lb5K6MbFVviGaWHgVSeoB/DNI4sKIR76/njhFM1UUXEHInmpcek5riJ9/fNXO4Q==","signatures":[{"sig":"MEUCIQDuHp2GgAq0cEtv9sGQW/TRmZ5t+m72TMLuD8CqniqYpAIgVLHOkRmSCPMkFwflLMvda5/3UlZcLsoWZxuhYo9UpiA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12784297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9UVkCRA9TVsSAnZWagAAFvkQAJrRWZbnTaue4Qd8q4kq\npRJNcuZTQirvj2ipbG53jLxf2kBiJY4+lO5b7nt/sHPLeMPN68EstOjD2d2S\nkUGMd3tZSPWYHR1rYqk8krw7lc9EvcouSudW6ClH/zUd6nzFcRgwSemsv7cS\nNCfMXeMsFHFC6dCdFyrr+JfbUn/r0OlP2WA4Oez7iwh8CryAPZ7HODBnDR8k\npC5lt9NXNl0oKDCRV7uq0iCaUruSu0Jb0sRbmRUjAqJ2+rKIfyB8nH801Deh\nCvKd3WRgCOWZB6CXy/qKSyufqID2x1hIYONfMSKyxIbFePgIhJTfm8dY1V0N\nu1HozBeUa6Sqv4F7q5WlCKIKArQMrgzMebOgCHyhnYok3iPa6F4he4gESzR2\nwj+ge/tjCJ8xQhoI4UIRrYlcwde/xJM5U7G1lNoI/PGwixlD5RLnow6DM0zu\nRJvuxgQDwAzLRKa2iqyeRqZGUpsBa2Zf+PlUC5IYMLHcxOHwoWllOAWIXFMj\n0GLa+ilemjAXKH6gTtj93Ic22soP7Z+gMYAkvpbgzbyIVddNrVPVcIRw7xQ8\neRCSRv2ZiLloTkzeknXs1HnyAu74qDloLVz1pyKQ22qle72CeS0HnNpTpEFg\nORd28GCg8JxWnGsYMUFwHoQjdVrLFF08g3rglZ8dpw9hFuudnj5XKHvtUZJz\nDG1n\r\n=A2F1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](http://img.badgesize.io/leancloud/js-realtime-sdk/dist/dist/realtime.browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n* 浏览器 / WebView\n  * IE 10+\n  * Edge latest\n  * Chrome 45+\n  * Firefox latest\n  * iOS 9.3+\n  * Android 4.4+\n* Node.js 4.0+\n* 微信小程序/小游戏 latest\n* React Native 0.26+\n* Electron latest\n\n## 文档\n\n* [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n* [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n* [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n* [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n* [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n* [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n* 在使用过程中遇到了问题时\n  * 如果你是商用版用户，请新建一个工单。\n  * 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n0.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime.browser.js     // 浏览器用\n│   ├── realtime.browser.min.js // 浏览器用(uglified)\n│   ├── realtime.weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n* `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  * 是一个有限状态机\n  * 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  * 超时与自动重连机制\n  * url 参数支持 Promise 及备用地址\n* `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  * 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  * `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  * 实现了应用层 ping/pong\n\n#### 应用层\n\n* `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n* `Client`：所有的 clients 共享一个 connection\n  * `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n* `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n* `Conversation`：实现对话相关的操作\n  * `ConversationQuery`：对话查询器\n* `Messages`\n  * `AVMessage`：接口描述，生成文档用\n  * `Message`：消息基类\n  * `TypedMessage`：类型消息基类，继承自 `Message`\n  * `TextMessage`：文本消息，继承自 `TypedMessage`\n  * 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n生成 dist/realtime.\\*\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"552fceb9a9ef53540aa734de4283eaf388eae3db","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.6.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.11.1","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^11.2.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","rollup":"^0.56.4","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^6.1.3","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.0.0-rc.0_1526023523789_0.20004347960831215","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"leancloud-realtime","version":"4.0.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"cbbfe7e9c17070c02359271a788f54ece3e9ab8f","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.0.tgz","fileCount":76,"integrity":"sha512-XwzNUr0nj9O/Xzdi2OfWijduQogAfTCkHDEapbvjtRdTSG0HlXTYZBqvldL0B47OQUL85KqX8HUflM7iVYnNsA==","signatures":[{"sig":"MEUCIGkzXKpLDI33cFhFuX3DLC1H9SJh1byTYgVRrmjEKRPSAiEA7TttvsQX306anMu4UDNh504OaYEkLPjkZY8rcDcQQro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12760280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbC3AUCRA9TVsSAnZWagAA/Y4P/3vpKoIcHWH+CawIfkNA\nWiG6qkdQjjIx9S8ZMVZmM03WQ0Uz5xH7CcQAcFPeA6JVZgiL37KOv2URtUAG\nxLXJh7bKPd2m7aK33tYNZueGqW5K8XpwAENz6Yw/J9bt8Tl6SWUlOeg8brzT\nhcR3IRZ5cbs+fLiAjPla5N4YUaKUpDJBDLzEFNK7ZfZiOH2/vsMQ0masH0vO\n57/ns2iMZrPyQamOCM8Xhxmo8Koh4KHyz8+sh/kYOU10b0AQsWkXZ18YU+jL\nSCUTf9MU0EE7OeO2TSEEkNoPxJUzWxRA4fQDKNe7hGbCMgHR9egpMMEqp6lx\nU7rquGkgy0blaRZuBj1UbpvxrZ7e++Ua0//bYctNBxsB83pDcmJI9V8uzCHH\nEOxdBsJNPqi9V0AFDDah7UKFpmpsXT4FwKgkwth0uneMyDs8wNx1e/Ap6XJo\nLHqPOEZsoRX9Z+TeipZx+MpB2x+Ki3Heg6vJ4TIgZ/9HzyQPVn9keAcL2iIi\nOR0XzmhZH4KJFBzoy2Prhx58kShSD9CyVjGJ6EU5p1kAumktJKLyei7IiZPm\nItASplJuvny/jbrqkRZD7p9ZJu9RMIzxAMezmMMGEguzWzUO5Rlx5VLFmAvu\nu53aX/9DJpmQGIKkA8u+LdujiH4VuwaeylKjx1fiLAE5PDItejI6yh6X7KfP\n6nKx\r\n=zNY3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"ebe76d62570bb6dbe6bdac2d3b1cffd8cb6615f1","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.0.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.11.1","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.2.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","rollup":"^0.56.4","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^6.1.3","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.0.0_1527476241979_0.4430642380769545","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"leancloud-realtime","version":"4.0.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.0.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"e659bb6466f848118ee1447d0727ab65229d46a6","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.0.1.tgz","fileCount":76,"integrity":"sha512-Ei3id9P5IGapcXsjUTjiwZED5yn0xSGvJuq6K2CswQ5aznABSDnnIZLLMXrr5vwfdoe6CeLRwtGtpsL2BgYREA==","signatures":[{"sig":"MEYCIQDfkOzcS8Pof5NUqcx7+P4YMAwUMP37ei20+WwcgKvqJQIhAI6XUmFXBzjvVL2jsrGE5Nt14+q853gaH4gLdAHtz7k7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12765224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD/+0CRA9TVsSAnZWagAAFfcP+wWa9H+Cj7DN7VirgFbD\nVEMlYzkcR7g4KgW8lB6VPdv7wg45SFIJ7pjtIn9Gb2Pd+wWT+6Ayyra0846E\n35gsi/1anR7eS2KOQHc8ExY5YVyB8RT2E3nQHmP8y1SPI2QobJnbngWJpTgx\n2Z8LLs4qCcdwb6GpyDHPx0/L61D7ATremONqwf6pO0Cil/jQLCe3c7/Z16Ui\nugwZLF+lumFjtDIpVvmfqB+sAX4k3VRR3ecU8aHzU/+klbWri9CU23xMTuE7\n8Spt/6of0m4rhEEu5YviuxP7+B34n5YZW2MZwm7ns2CMqRO+f1CLgfBQnmnL\n/o8srVnLNTAjSfDKDwlNYM4KEQpIrDacUI+t4dp58k3sl6nOoMB9cuLv9DhC\nIcjpOAhNjuTJu9wVthWe0qj+QSxWAkP196oYr4SQD6p4302eHUgjpdVZf9KW\nlRJ2YxNReglmxEuRYwHgqsSt3vLeDey9BZgzn97LHg/7mi5KxN+pUWRzVhsy\nnUGd3P3N0pzmrYOe/oyFjf3a8iqd90iM7/ctMeBd60RiNojUIbYA+BjBk/v4\nqkT93JT/iEzJcGFSTmElyFw/67roFWCkkT2Cmz3qC0gqz/MyEE5Nu/JTUl5F\n6BFyvj8VGIcd91rrJQRSGeT9+L26Pe/gnkxK/EDTRNf4YzRU1uMZTCeiAr8M\n2m2n\r\n=WDT+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"03defad0eb82fcd14bd8a81253e2ebb94654ee8e","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.1.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"9.11.1","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.2.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","rollup":"^0.56.4","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^6.1.3","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.0.1_1527775155137_0.9223732121240049","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"leancloud-realtime","version":"4.1.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.1.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"ce652ba2df5811d71500917a8f7b6f4a1a2709bf","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.1.0.tgz","fileCount":76,"integrity":"sha512-sW5dkV/Z7dSK8d8lz7AYhZ43uAeyJ92FgbzLlIimJca8sHtdMGGO0t07X27D9L704/7E5CifaPcPhREbdRoZQg==","signatures":[{"sig":"MEYCIQC0SaFOOeWX20dmgBR8c/Xbsp8SAwt7/PbiAYQfLhm1BgIhANcZZVk2E9jC7+0gwMzQPngpQ8ai3h4ipUU82szwtzBv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12784959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLvOvCRA9TVsSAnZWagAAGRYP/ijDqKvWj51130qUBJQr\n3yDI2jaMKAgK8bZBJ9bg2QMNQK1J2xrHjK/l1QdpsmnBC/Me2WV7ZPW5FYHR\nZuxdj6fR5BWdrnStOieibdC+brZM6agXtoDBa/74nloDxKVPyXz2D4VLYjli\nSkGLagK+29JNkdruOZV6WutHbmkq0j5g3LnxhWT9UaO/x3Jjz/2vaKcBS7Yw\nOP0Ja3xuFs0Bch1zKakyJI4DoCJgvimXKyCRbDjoIeODh4HjqffCgMZdtGTn\nbHT+tqbQslYPKD1/tYZx0DKmy7VcQt9Ak0bYqCO/zU1nE+KQ/T4uetLRXlgj\n51a21mVSHtOc8Ddo3qzGnvomoErBZwsMk2azD2U9PNp1q7gE353VjyVoQFid\nCp/m2xg1ZKUO0qmW9vATgHcHUHdhNbUyKpKa7LLLgRDi35GsJRmBfDQZklWK\nEQrdZkcDjH+qTAa/XXYZFAIWAkG2DjYdAWB7vT6u3PgyYzZ/Ym8HHZc7Vn3y\nkXc0cv2weEB1jpovvoWvNGjy21xLxGtUulBKF3pmRE92LujfpTivgpigow1D\neku8a2kOSD7NT+7aZlkUEvWTSuh1tK2Uwm47K4LSeMXoDwMDgg6lh23lJkFu\nrVNIWSHQm23ZrxXqFM/j5S0iBb2mFo6EJlxkdGHmDmM7rTb0gD0ryZcxeNvJ\n99na\r\n=tUXm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"3331c6ed1e0dfe2e3cf3c235a0666515463577e9","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"5.6.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.9.4","dependencies":{"ws":"^4.0.0","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.0.0","lodash":"^4.6.0","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.2.1","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^4.2.1","eslint":"^4.3.0","espree":"^3.1.4","rollup":"^0.56.4","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"0.0.5","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^6.0.2","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^2.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^8.0.2","eslint-config-airbnb-base":"^12.0.0","conventional-changelog-cli":"^1.1.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^6.1.3","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.1.0_1529803695223_0.6254983409205677","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"leancloud-realtime","version":"4.2.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.2.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"c76bf5d7aa02b71255eb795f4daca2f58efb588f","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.2.0.tgz","fileCount":76,"integrity":"sha512-fWNAPDI3iUwh8UsUb0LcZ5tv6ayOX149Ac2IbEN4PEkMqLwAD7ge7DNkHAZayFYtKBEUEpfNmWhz3nmAUqd+zw==","signatures":[{"sig":"MEUCICIgc4ePB8EDC6K8okJk50xTdH2B+PwSupU92JPRkOBXAiEAtZDAin2VLNN/d1Ed0LemUH+cvsF/0JQM9GmiKzTmx8g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12943067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPxDqCRA9TVsSAnZWagAADy4P+wW3jzhENnqIfbAltKxd\nVBBrcQQoRiMVam6by0uT47+GMoC2gR3tc5OUzItM4vZcjKo/NkrzFec0YKZM\nHvTU51KDRTgbgUG4vPs8Tli1r3GqIA2fcsZNbmEc37RhWb8TLneFn+oEpgMO\nEXS6KdvqUDyc4UwyF5HciVKNgkT6eel+JmyqTm1wHP28Mc71xU9MTxGYNIc6\n4zaqqYaQlXM97kqNtx/Cj+57ieZEangjlnlacMxn5uJwXeUm+w4o4/L+PphT\n7/6DK6RKJkPx4M+cF+iMRvt9PTSdF9Jhw76JjRpJSsf88FRA2azwOTD0HBd0\n982LxYHXZqeA08PWfoG5ngJ4PlaAsdebEOOrRrX2oBT5rOIs7nPte1eVnotn\nQgYI6KfLj6yCA3gcYhIqtLreVwXrhhJk2PXFvGWpWThy55VcnpqX1bRkb3EW\nQon5NSyjhicJWS8Q6HKhH0iLxkB0vUuTgzMRbMSzoxEb7KvoIVd7imi5NU81\nElgRguOGZAabCkLo3QqJlFtOwN8/pHWX9zghweDQGGDDzWugU3LkHB20NBQ1\nmuDAOVZu4bxvKAQXbrYnO8lUVAON3YxRfqmWXX1oBGNA59y+tvmol54PA9Jy\nhScfqnwV0yDo9L2Bc+5M8dxaCqXFYid4CPY7omUExAkjGzyatGWrykjRMonC\nFEdI\r\n=GTwl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"81cc1ff1f3479aa9790c878dfa42a4871001bfe0","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.1.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"10.5.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^12.0.2","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^0.61.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^7.0.0","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^4.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.1.3","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^7.0.1","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.2.0_1530859754726_0.4417958567019791","host":"s3://npm-registry-packages"}},"4.2.1":{"name":"leancloud-realtime","version":"4.2.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.2.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"4336cb055ed246fb67157aa09a3218bdb7d87003","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.2.1.tgz","fileCount":76,"integrity":"sha512-3iFhTtp+a50Z+KaCe1TUM3M6o3tHUxwhd/uijSHfd+dYrOtPGhjXb+VOH5EGRHJcd1O8z2sE9MEKv7vdIaTNUw==","signatures":[{"sig":"MEUCIQCCMG5OKaZZfZRfLZtuDdYHgluDxvVNXk7lFBptbwV3agIgPbWH4ietoMTSEdflSvjeWADhnKycq1RawNlMSc2HtfQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12965179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9SvVCRA9TVsSAnZWagAAgYIQAJMLDI4JWJbZE9BsyuWo\nxiBG5T3S9emeRWCXblBnfHQI/wSnniznQm1801VFVsahonLcFe1NmiXjYx4P\n6UNTK1grZ9Wqkx3Ml9p+1SFpL4o/7LI6WCwN4BPd6SwTv7e0zXx0/B+z2Ffj\nAaugerX2vKwGYglO1WDkfhbZXPLFHUPGxhvJ9FhKQqDsc3326h1n+SYYb3Ya\naHlQWJpLkD4YEAVdbYRB3xCRaxuhgk879HbVDevMd2W144TE277W4k8KDqrA\nHGlY2vHTBqZ4DGI6QWM5ljlODubwXcrEIfsDZeetpWYL3FjoGsyTYYthB1g9\nbU3WUIDeV7iCO9kGK67kt/m9s/e0SpvYH897pM/WpbCU728A5jnqrmtwseJD\n1UaZ33LNLxTge0dZkCi0aHqtZEc+F/nX4Bqg6FkXDwyMfp9LXBceri9d6ihI\n8YB2FQzOnY0t0vPXOGdA47tzt68aP/Y1LjsZRWia1GLq6DZ/a0l8EKheXGhE\nh/Hc4aEehelrhQ0jpEgf3/LW5dt6JLskFIKBjbRkQypnyopfeGr0xDGj+2Ah\nggRf5zDJH1AGMGve6mrBUwq5j33ylsres5xWC5vLzptT1wZmNo7yv7UAivp3\ngM5MWdwHU6jqWkLxGMgVkGXHDFCTMtbPk9yVZS0qLI+Gck5UemO3okEVhM7Y\n88VJ\r\n=Qw/R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"7ed695518922819da70cd43946eb5e941e73e3b8","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.4.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.2.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^12.0.2","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^0.61.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^2.4.1","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^7.0.0","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^4.0.0","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.1.3","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^7.0.1","@leeyeh/rollup-plugin-node-resolve":"^3.0.0","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.2.1_1542794196806_0.576705238581724","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"leancloud-realtime","version":"4.3.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.3.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"wujun4code","email":"wujun4code@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"383e7958ec082fb7918dff800651300497febb7a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.3.0.tgz","fileCount":76,"integrity":"sha512-cPw/O3jkOy4ioyX1MQgsJaDxQzv1t2AVa+avex5CWWj65NRPpTLMukVcnm101Pc3TIben10xCbCzqz+SSUkPnA==","signatures":[{"sig":"MEUCIQD8Id8lMEZNBMHA1JH0hnaPrPOIQ2895x8U5KuFqnTaOAIgRoVmXzOehP01By4KgK2r5Lpp9dGA3dOlB1r6EEXyk34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12814039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfPX5CRA9TVsSAnZWagAAMT0P/jUd+IaXhUp850SpD0Cv\n5mM8t0jlhRekF7OS3zfdOVA+87NOXCt9E6IopLd82Jc+mNf+y+ooLvdkPJwl\neBaEflSA2XbHYjnxoLO2mfpPfESn/Z8AVBy3mqIdUe0ag+llD2myNGLk/X7v\nWPrybEN/gxWX2EQ/kxeACm1VUyBsK2aM8GEfo1/wCB45GaVXH2rxdlDRsblJ\n/ikwADCayJEO4eLNY2VtNqIMjIrLOWfgS6MatQvyGgfqAMpJc93ZAN3XVKEX\n0MIgBT8/jyH1hYaQ+0omBQozenP5FT2/J184WtL8FL7qAcqdDMOZBTMrSToU\nI2qk2mvjmkhbtU48OUw+9roM3nHgFOjbmiFX7nbyWaflnhEZsR87P1LZzfMX\nDbnUOkFsAlgIvEqkUunPIbWpTnEpJxYqVPpQkv8lSHwcXoO0pSIBrm/JasvI\nhTFE0mozj1sJiQhtIZdjhDWmY6fmFe1bvp2MmNn95sXZaf+2vHXWfUdBv8t4\nBP8Z8vfUFaJEaTTwqcPkM6wllcfBxhMV98VvOhIxeD/uODJopgukXyCFgwew\nCc+iqnzSXihMFW5b+F1UOwctIvkCTATRqFZEL9o3wtIqUt+s4Xdh1Z9CN3wy\ns7+MGcCNAGP1MbPXG8kGe/GlZ7bB2eUWVG0Ibg/gZDn5ty84xrR55OMDMHl7\n+8IE\r\n=SVyf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"23afc24f5c71460b2bd7c8d4f111e6f8da5350ae","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.4.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"8.15.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^12.0.2","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^7.0.0","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^7.0.1","@leeyeh/rollup-plugin-node-resolve":"^3.0.1","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.3.0_1551693304387_0.06115976490202346","host":"s3://npm-registry-packages"}},"5.0.0-alpha.0":{"name":"leancloud-realtime","version":"5.0.0-alpha.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-alpha.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"wujun4code","email":"wujun4code@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"684ab893f9d3b43520c91c17b5bca18db4bbdce0","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-alpha.0.tgz","fileCount":77,"integrity":"sha512-h3nnpTwdKaglHzieb4+QITgpAb8kUzNGV8zNQ+coP4bIuSslePjVwjgPim6K+obuXti9rID1UrfwRGgWPWtzRQ==","signatures":[{"sig":"MEUCIGcQDLMvU/7I4Pb9HYZEoO8dG48B6dKPFUjHQzFs5lgDAiEAujqNiIafLr/7YqGKErRthJnnohv87SkgsZL9dQHKf0I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11914016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1WP/CRA9TVsSAnZWagAAeL8QAJ9wi2ruCI701ctmK2c8\niF5vMV/5ss9MA3zPEQusEpgq5gnpA5M7AZ1L0q352Wh2L5EDoUh3+AKHWQXU\nI64itR8Ybw8Mxbn9vvyZa05pQjtI17ofncYGkDS77RWDZfV8ipxY9M24xQUl\niEHeObzNQW2WNOUN0afYbxRtaFTYEoeAMs0GrmBdR7qZ9KYJcXdICVvixBeb\nL6eDV5AV2VIzoKUTDPOe8LiJ0fDUg64k/0yoxFSoBRRPJMtsHX+jxvG9npMl\n8pt+uRKalYoWWwV0a8zuTzjZoNVKeoT6wxwvxeRHBxoH/ge/h/UxwVstNJK0\nPA/u1ai9iT3sFI4LeQyQSHDBjyX7TEq+HCOwtjTFasJJjWnb0QSrMyK/ErFz\nK/Ujpo7jYvLRo9wPmCjnhOeKQYJtRvJG+TDIv0FSu4l5Mav2Ln/3ZNmX5AG4\nk4196KyO0cBLYe5g880dXIrI2fGdWJZMJQZtp1JXDzO1GQB7NYxpPfb9sVzY\nrjZKvboiwKe2if9Mw2Y9aNRP/rytkrk40nKsJ+Pwv/lnRE8sZ5FgGVdAyLzK\n/9eiDPcONtct17czzN5n6lzhxwFSIunDbccoLPQ+fKqnnovgXdqq7M8dh4XX\n3w0FfrZ4EQgLSZZ0GQgIXWuT01c7FBYqF8XluW/ONQI+QKNFbDdTYHWbS5iJ\nf2za\r\n=Uy1y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core-js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](http://img.badgesize.io/leancloud/js-realtime-sdk/dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n0.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n生成 dist/realtime.\\*\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core-js":"./dist/realtime-core-browser.js"},"gitHead":"2512f98697418a801be0b45c2bf67bfc435f35dc","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.7.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.13.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^4.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","@babel/core":"^7.0.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.1.1","@babel/register":"^7.0.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.0.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.0.1","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.0.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-alpha.0_1557488638433_0.18276072694640022","host":"s3://npm-registry-packages"}},"5.0.0-alpha.1":{"name":"leancloud-realtime","version":"5.0.0-alpha.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-alpha.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"wujun4code","email":"wujun4code@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"0538bc991bf242d9f752eb575fd424534fff851e","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-alpha.1.tgz","fileCount":77,"integrity":"sha512-wi5MKLxBhVRl7ImarJeuSUtTM58McJrWDCeVhe4ug0YzEHcWtKGjxDzHoBeFTf8xghx9Zv0iav7mcOJGSy4EDg==","signatures":[{"sig":"MEUCIHmkCddlX2L/1DQuI2o20PM5yqsESmReVSa50cxiOoo2AiEA5S8Ohp+iPOazZFQoA01W+6nju3pRbb3QcL2N8YTrDZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11921945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2RwgCRA9TVsSAnZWagAAP/oP/iCDfs2rT9+Vq+OKo84y\nHDuEUDdMdNiZ438ozmbhYyuCxGEoRQkssta5cjplUZChKBHklN5QrToP0hBC\nZLjrbIV16rBCoP2Nfk06Urukv1JgUL3rfFRhpkChMvdrWwwYtHV9V2zeTZ6x\nsLdIGcWP12aIl+fZ+4Qh/+Nt3YkDW/wnSOSabXpVxfs3McPWSBOJEqUtoqw4\nWEK0zGxw8O3G5aa8e/7ULwbIl8VxX9/FwcnBaI7rrKTolA6L2wuqjsXQSXIy\nPf8m2WiTPYqgl63jElOCFUGcjcpuKxeHAovOHy1YaWeWnZbu0ykFVQYZ046y\nzyy7wDUTcQ9NNxi/Dob+lFkW9eO15RQpLzBykudnamE2trFFLBwyhXbXpjui\nGeZX+E9VUX+fp9xrT2tFeR69wvI2g60MA+5ucDwFUJx2n9e24iGyeJjxswJX\nFbMhJqcRiafX0vTnnWkGK+Gxo8IO8qga77co6wueTBX/gkZsGH4Psvje/aC9\n9aQ1vFEG0eg59M/wV50ny8BPYFzRhMlr0vOyj1R8BjfW9u3LIRN9IOAojle3\nGkhJCXahgmvjfdmWrwu/KulWjo3B4xT8ga3VP7m5CqQDu1T0BQc33OC3jf/h\nb3xI8Tr3Ieo2IsRGol1akyb/9Y745om35PrReVSbp7itQDP1HD4egDFxhv4A\nJvYW\r\n=xc4A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core-js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](http://img.badgesize.io/leancloud/js-realtime-sdk/dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n0.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n生成 dist/realtime.\\*\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core-js":"./dist/realtime-core-browser.js"},"gitHead":"b6fd0ee0cfb2db0150e9924f1a925230839fca21","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.7.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.13.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^4.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","@babel/core":"^7.0.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.1.1","@babel/register":"^7.0.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.0.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.0.1","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.0.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-alpha.1_1557732383729_0.20065538414116424","host":"s3://npm-registry-packages"}},"4.3.1":{"name":"leancloud-realtime","version":"4.3.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@4.3.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["babel-register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"93dd78f55719e2e180232f1272dd31022d5d2d8a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-4.3.1.tgz","fileCount":77,"integrity":"sha512-bWGc5pj7lRnDrULTeUxOw8jm5ADCpRmfR0IBd4FZU1iFoDojpbn5FRPEHcYoHYNTJF3oLd+x+toS1QafC60Zyg==","signatures":[{"sig":"MEUCIQDG5vyIWr4G3q37N9Yob6HKMTKIvXAzjsDiPTauxhDxTgIgW8l87umFWvamLXHUvkAiqZvaWj604555jssiS9LaE7M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12827825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDL5NCRA9TVsSAnZWagAAFPIP/R13JStMjhY4afiC7T6N\ndNZzrZfIupGBZqLU5PuoiCez4wh5E7KEt1C0qWT8gGsq2Lx/S2w5t7XYqr71\n3XWKXv7AfQOXinvhOPsningRxnVKMu1sabeiO73/ywjuJUNSSGrFxBG1gAZb\n3mtkJiuKfTOFpxsD9Eyq5IUSHy6FgWD9w7icaBQtnkWMn3YEKCkDOJB6rwjq\nvq40sVYjiXgUyDq4t+gsC91GO60kxligXRlpjTZ9ScSeL4NXWE+OXCBfkmS6\ntv6xAQYxGmMGsEwqk/FZdkycVTO+NeJh9f74oSCvBw+K+5IUtti8qVucDasQ\n9TXYgRtVe91FqUUTUg5GGQMglMbOdII8ZPGOW6/zPHy5hptQLYZZ4hMCSvi7\n5RJfW60K38GH+wSSkx7N/U61z34Lua9ib8olBlS6zSxtmsw4f6+me1Wp1k5C\nuT3WbJOA+n+32c1HWc2vfMuF9qTBPEbx3M0xfJMiHZxaD02ZS/P8VXN9C2eG\nC9iife40HoZhav0Ha0d/+3weuZL3/07uEG+4AvH8HnZK2CrzX2DjxGmLTgb9\nZHWpOHQMVPzcAGQwfG+ptuWaMx5LXEzvWLE/59bHo9PMN+lAPN2vMLxtUtSW\n2rL28xrFN5vUjLEgRZNsdgKcdDOUa2zCwcx1el+EyHrSkJTlEbPzFxWf83/H\nPISc\r\n=TUE/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime.weapp.js","./dist/realtime-core.js":"./dist/realtime-core.weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime.browser.js","./dist/realtime-core.js":"./dist/realtime-core.browser.js"},"gitHead":"4aad91fed999916499151b9f5233ff961a5f476f","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.9.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.13.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","axios":"^0.18.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","babel-runtime":"^6.6.1","eventemitter3":"^3.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^12.0.2","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","karma-mocha":"^1.3.0","babel-eslint":"^8.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","babel-register":"^6.14.0","weapp-polyfill":"^3.1.1","@commitlint/cli":"^7.0.0","babel-preset-env":"^1.4.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^3.0.2","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^4.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","babel-plugin-external-helpers":"^6.8.0","babel-plugin-transform-runtime":"^6.6.0","@commitlint/config-conventional":"^7.0.1","@leeyeh/rollup-plugin-node-resolve":"^3.0.1","babel-plugin-transform-es2015-classes":"^6.5.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-object-rest-spread":"^6.8.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_4.3.1_1561116236279_0.7864622337690332","host":"s3://npm-registry-packages"}},"5.0.0-alpha.2":{"name":"leancloud-realtime","version":"5.0.0-alpha.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-alpha.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"81cc8d02a7c937981e6116dca372e31c3f57e3dd","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-alpha.2.tgz","fileCount":90,"integrity":"sha512-j4bwuETjIA+SWuF8VMO8jSuMnRPJ9+DaEHkFc+GnpxJHT7YfhQ4BSNlgBcN/gJ/ZBJRUXC1Fc43vENNU49bA1g==","signatures":[{"sig":"MEUCIQDndPMYV8nR6BuSpANsN96yjySF1LlkZCHQMyNZFxdX3QIgZLyfae3vcpuoOqTeZ/j0Bmj3fmcVSFRiffIATtxRcWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23638090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHafMCRA9TVsSAnZWagAAb1AP+gJc3Kqg3DDQms+R8y0W\n1lbT59QChgpxZtb6tdekL04CmrmfZlx0XUbxgqEF8OFv7JKAPdH6LhjGO3PL\nXTxXMjNacCDOs+Xlu4UMs2FXacY+37wYQfR9ah5f1i6qKotz2YNxfO7O2X1D\n1inFT5VP2t7xJpcIlF6LkUh6TlcJTd5Fcy7tiCYKqARZOO60xMkIb/RaSmHS\nznwKf9d9oGo2G2q0s7ceRnf72pUEZwcRGreczgfgLxNZQ3zUd2KhFRKByKmv\nLb81TBS/cYyzVNUEATuTnStFYV5TiZeq2pOsADgGsWoXCTqFGD6IpkDsDrkp\nzdvyFdawLfu4X8VJ3gzeMK5kJve3PuvpDp+AZdPcGJvRiutoox5nkgNwmxDo\nmp5EmEbPAb/hikYhQMRvSYW28rq/EG0jrDhTbwV0Pzg3Kf8G17Yt+QmCx3vm\nagBBhxG4b0DxQHeTqQa2sG1dswEwxzAgjWZMFgxkbVzaqKSYDxDDb1Yw8qPN\n2kyxv6+lg9TSVtRNlarSBvooC973vOyWUrNUQuZMqYpOpjNPu+4fUYR0bIsa\nfB4hv1OR4E5pMfVrQwI0wiRzMU3yHIVVKgxoS+5UI56BYC79BTdz1t8R4l+V\nBOPQYvMSUIx918i1XJkyb3rqPFvCIG2Sns3iMkPy4wC3iiB4/1K7hj1d1frJ\nFeQ/\r\n=FWFC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core-js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core-js":"./dist/realtime-core-browser.js"},"gitHead":"64d553a6d8361925ee30ec2f51d95b7982952927","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.9.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.13.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^4.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","@babel/core":"^7.0.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.1.1","@babel/register":"^7.0.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.0.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.0.1","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.0.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-alpha.2_1562224588052_0.3254237270815383","host":"s3://npm-registry-packages"}},"5.0.0-alpha.3":{"name":"leancloud-realtime","version":"5.0.0-alpha.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-alpha.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"61e7e455f265ba5b6bd032e1afdc6bd929ee158c","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-alpha.3.tgz","fileCount":78,"integrity":"sha512-sADjDJ6NSAV/cDgCkn5cmsvBCJt3p1jcbI8QNI16iQ83QqXCmRYjb/QzY9LH0VWoFisE+GmhMFoXOWkP7mCeAw==","signatures":[{"sig":"MEUCIQDlHzsZD5rLKEhIg8KVvaQ8nZ2bEKRrH/R5iVsSqDYPjAIgWFFuNRPzL6UJKEAzDPGfDeLvmyjTIHJ+rtQLcJ9Vq0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11950607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHdvNCRA9TVsSAnZWagAAgD0QAJv6dF73YkTgoZpGH/a8\nqFqVoq090BMCopgzJOdhgY/h9Ro0R+uT2nvLbu1R24Tkh4nDL3+OrZecmxwi\ntL/sfKKTzwrAWOH6AsUDju5dg5nxN32/ONSn2qYImMZgfxtZ+zE89u9E0rXm\nng8GSvC0VmXmPv6b0cdouBOjYHZCQZxmsP0eg2z+I/lrA4useNZjzHcsy0lB\njNm1lAFvH+Kdfn/eAtynD386kqe7/5tY1FpNuzZT9lA3c2Aiag4RpHR3mfmS\nh9Sqn1RzuTu7uGFTxBgnONvoXzkGbdIw74nqM0yfy2Yt5nBjv4kgAva+6q/m\njS2Px10zN5iAX44JebvRG28RIWw7Yhk7/+7iTJg8Z6U7qZK7QqNXEvVKoA1+\nwn3Is7c65H/Az8QQRdvUVyT0ICkRwqpp/UM2GTF669MPJlUaVzst5oiwDya4\ncLB/z6GDJ5eGVjzr/WaPPzjBvq9VRXfyBwZmNHHkzEU1vPcAoQnQjYKeXeJq\nV/tPh5a6/3Y09uG1II93P+kqeic4tkh7tFs/SX39WdrYtyVeoP9vIZ4M0Ed8\nbrDJ/t+giFVyzVSbjNSvpQ34+vzVoVr9s7nbmpgdcCevYK/Deb+NywcEPpJr\nL/myj85Fjf2PCMi5WzT5joHioG2W3bASY5mmxN0RiSIzpAGPlmt+jeZsvBN9\nWyk3\r\n=ie3f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"d41e7161c12a710383b182b2a10372b06b63af8e","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.9.0","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"11.13.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^4.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","@babel/core":"^7.0.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.1.1","@babel/register":"^7.0.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.0.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.0.1","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.0.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-alpha.3_1562237900933_0.3866023148281934","host":"s3://npm-registry-packages"}},"5.0.0-beta.0":{"name":"leancloud-realtime","version":"5.0.0-beta.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-beta.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"55c891c10468ee39a74876ca206725c407c019e9","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-beta.0.tgz","fileCount":77,"integrity":"sha512-YGJt9Nti+DstJyXbZ0NUaoh0aRK3687iPbb+Mw3RltpEpO/KCy/Ljh+Ed+HWt5hnxARK8TGj+0BjIMDPHOdwWg==","signatures":[{"sig":"MEQCIHwavaLl2Q1EAxLEXL+HYGpV4qIBO2+tqbkE9mkzDpnPAiBPRNEgi+HmCgN/T1RRD/hNeWkMd9Ty4Y3nYz18jb1IRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12090469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduQ57CRA9TVsSAnZWagAACrMP/jTAFbcZky7wBblT/2tO\nx/PUS9gCjy4PWyEizh3MnJFr42TikPnQ3QwHqS0WgxYR6DpZtIjLjTHvINgf\nl3EV10IiFGtk+6Uq4Gu3Rx1Adh/rn8JkWpwaxUirX8jMpshZTR3MJ4y5Qoop\nD+ns3lbnZlHypximb7vxLLqCfjJIf5u0H6TDl2xdW5Yxf6+/98DSwx16myWj\ns0kri8PhhAQJDkdowARL0I6MxFNAy2oeuGSK4eNhzcy0uN2UnoQD+PSDZ6aR\n9D96Kztq/5Pbpe70RJqHNEW8ghH9XNsCIBY99cXtdsianvj99v73QWk41cMo\nvEYpmPSxC1zah5bLS3no8bOpyBQqmVu2LZ9uzp5lr+dhHJHXoqXKpYjlEP/l\nE6tJz16Svr1FM/0Asjv+AG9B4CMH+uhIZiv81iap2E0dLGHnv+XpUFSDP3hh\nGbMKtSpvOeFec7O3A6cuFOEsvCZbF4qEGwcz5QtsCej+Ecig0gGiH9Tjzbdq\nfDVSNJUwocZHZ8R40O4vOxv304iLz86rSo1fXw26n8clgUcqDF4fMQ89xklN\nokMal7Qi0lAx2dN5K1I0MbXryiOZe1gniPnQ0CKzDFqSE0tAdfu22siYR+6j\n7WDZV1ilDll++ZxcUXcyk+IHqd8+nCX9swPApHD5yUp86v8y7uu0XUkyDmh1\ntM+g\r\n=FEij\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"a8c4765fdf00e1b7bef3721434b814bdd862d55e","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.4.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"10.15.3","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.0.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^4.3.0","espree":"^4.0.0","rollup":"^1.2.2","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.11.1","typescript":"^3.3.3333","@babel/core":"^7.0.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^1.4.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.0.0","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.0.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.0.1","eslint-plugin-import":"^2.0.0","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.2","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","eslint-config-prettier":"^2.9.0","rollup-plugin-commonjs":"^9.2.0","eslint-config-airbnb-base":"^13.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.0.0","@babel/plugin-transform-classes":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.0.0","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-beta.0_1572408954638_0.5756047832703068","host":"s3://npm-registry-packages"}},"5.0.0-beta.1":{"name":"leancloud-realtime","version":"5.0.0-beta.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-beta.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"3448e8fa6fd35bd708a4e138565101f233a86669","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-beta.1.tgz","fileCount":77,"integrity":"sha512-Orl3c/fRJzy4I5VDlND162sAnv72IqQsv+9JuWR51yts8n1fvTdiY+GYOY5qfwfdKDfTVQODaFGyrBzsA2P9gg==","signatures":[{"sig":"MEQCIF55jZJ04vmoTYtVxT5CD+M1aBXeeUohdoNhfGL3LLDYAiB6A/7dFdanpdkpmrsBm3TF3CRAUjR8gFMDoSGeFQqz5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12000589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7zogCRA9TVsSAnZWagAAFw0QAItxQop9t3MBUNCxlmxt\ni6az3dIRhqeIJwExzwW3ZM+w/bDG7Yw26rzrA7eu+uAILxC0vqdasb12BCWL\npEbiHUl/2VIvF8SoNYpQHh+9t31ji5FQPse9exR0ZIcl68B6SjesTZWddO1M\nQntuOZqQW/Dp3vMmm6lP3qX8pm+1XKK8OzhZZ5saJqjLyw2qgR2Z2gZwPO3k\nAehtezA/D7PSRnprS3d1aNCTBC9RV7o1Bg6UA/cQkdiBkm2i5u21NKYptIzR\nqWzMGWYTCP/J6UXKKMe1IVKlS1VP8O2wIRp4z+vYvax2rX/QZvTIzvx/qv7u\nUoVE8koius8wCa/tBRS/+hhMv2+WaOFlOpL4aAQZBTshLIhZ119LPaU7YJS3\nCPp8LX93NSOcT+zCk5aA8DriyQSL5D5onFrb8l+eL2Nq1MqmrxOYU20jvWil\nDdisl/xeFnr7+yRlSNxeovB/NokFCYfC+EwaMKmxbDLiDH1v/Kup6E9uuMQp\n/q0rxKBPoTsqyj8PF3FTY3fHMLWQ74HCVlkuPOh1GidkkDDgLFYIQPOrO2YQ\nsEDHAf8tCKo170olENGSIY3LaeJqrJeIJq3PeSmvNnCpk9KYHVFqmhBanT+e\n5CXMVJ+BZq1fmgf7KMGxiLeBY470PH/RfWeX/971HfQOpOYmLLTlXnRSn5/E\nUZZ9\r\n=LyWk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"dbda85e43fec2da0485fb78e05203b0b6b780160","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.11.3","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"12.12.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.7.4","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-beta.1_1575959072317_0.07763034635965549","host":"s3://npm-registry-packages"}},"5.0.0-beta.2":{"name":"leancloud-realtime","version":"5.0.0-beta.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-beta.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"ab87dda84a3316a0b16a62ad999b1891e59eecbf","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-beta.2.tgz","fileCount":77,"integrity":"sha512-mnpX7MshoYnIZ/BXQDgHW8MIoZoloiR3kzRmJKngSndWGOa+N4CeYP0QGIyv0b1rax4nZ1266JImhGhHzuLIiw==","signatures":[{"sig":"MEQCIAGbtaLlVeB7LxH44rWRIoxi+nh3TLEOAGwfkG7kaCm3AiAbr8N/9vJQDj0p5sWBfqdbcYEQj5su/yAEHfqPxjo7tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12005829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLUqcCRA9TVsSAnZWagAAtIEP/j0QWucKdlDpO+AgIpdo\n3l2kMnrXQU/obgyp97Otdz83f3IlcGqWcwtzwmHspA4NQy0YzXLkOOGD+lnd\nVe72lXlNpaUA+QtUxPXWSVSz8HnuQcXSHJyM8uY/rsLyu3Pncnn55Y4JMSW8\n8RxPz2QOsc5DCCGYIGEW4d9JTavCf8bzalxggPTlcKImAzclCujYNeGIvv0s\npHorL8/ISg1xATQ75J/Vez74+8hOgdybOMonghLI/AysGOPD2+A8sUCJ16PZ\nCpMlsg8vdWTF/40gn5vXBvHsk9uBexBiJkaiOTJ6oduJvFh8t+Qzg1ZmhyW8\nU5qGpLH7neC+Ek7SGbrD1jsILfgALwuXXgTXtIE+42bUGPXB1aKtDqp/eYN6\ncnEvXEQ2Q4s8nuVbDexrMvejez1JvutK9m++t69boWiE/PhdnYGdx7qSlIkz\n5FDjfVO2J3/Tzl7xypBA0na+nNWvTxuKm3SWfLNo7/tm3vv1SMwI9D4M5bIy\nbXLbw8h1tAosVuzqBzuqnaRL8kqvKqngA6XlGVqyiAHPy9pmIDZ5mhMRnbvr\nyJ10VZtkWNqkpDooqW8POvK1d+FYIX7sZsb8c3TSS3MMPhUDCEqjJgdJaUIi\nMlKTfJND7C14/jqdrSY2umt8iNPNDgQ6M2eSykb+HaVdAmM8w/rnkQ+I2nRt\nR86I\r\n=NJzv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"84c4b17ee1954770ce890380155cd8c9a9992f07","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.12.1","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"12.13.1","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.7.4","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-beta.2_1580026524459_0.5413706536702567","host":"s3://npm-registry-packages"}},"5.0.0-dev.2002282330":{"name":"leancloud-realtime","version":"5.0.0-dev.2002282330","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-dev.2002282330","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"102aae159273b3fdc5395043e8328cfcc458e829","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-dev.2002282330.tgz","fileCount":80,"integrity":"sha512-clqNRxvlsTkiXogRqHED1eNIMC2EObWqDCVL4tYcOIGq2v7PR600JpKkmeY+zUbpOKZ8j11/1YC9j/iNcBziAA==","signatures":[{"sig":"MEQCIHGz5m9tDccVsTNS7Ez5HRcCaDZcNQZM+jwTbkunReFGAiAP0XGsrfo7C3rcbZMapR4kOtCQG0YNjWvg2rEynbL+lw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11712767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWUt+CRA9TVsSAnZWagAAjYYP/RSlHyVLEsTm++Yqw4C4\nqA67vyf+QrztE7GCQ0+z45wZZ31jJlLZb7COeW/W8Hmg5xn5piq94Oc0dyDB\n/2LgJgHtX9G0jgz934nb+RwafY1UdCkNvS1IKAj9isF9sr+zWJDqqxr/Rsco\nSqfdNLHPnwByXW1Xe9qjbF3p+U1M6jhDTBL7mMV27ZcO+p0mBmxFY5RnYGcG\nAYQfBOsdSVVN1BeT4xc2hrM9vMNXW6Mv99JtV0Vj7Ci/bizintAIYY07uDnm\nDMjX/YH/W3DMUf5hQcxP3OOC5lEBXZQ4sZ/TYBhK+P3wq+uhzl/z0AAfUvhE\n/eRPbqTIi+7EMvKXgt0g0Ow6gX6TQTaQjwyfzmeGRpaPSuxRcEyDPv6+24ZN\npPmYUWKHk0HrJnaYZNJn+n6y6NokB1ErzTUN2quDs+JZ1c/vIkvLQABZaSbb\n7xBhGRV82K9Y9o/RQ7XIzxtYfgYNzvcmxnuLj4kfhn+rl+6arFqNP407wNyj\nbYrK2/2QzAdqUM4asO6MyME8o9gHRW11fMx9oon/dpyYlG7EoyakbN7d5qwg\nW0kvygwr7x0bw067QgIC6/mg1SR9bH4Aj6vmywAPL9PJL7MQtAV3T+537noO\nYyfGQY5QKHupGr6nwxWQGvUrmEdd8zBu5Q68rjm2aF+bqzY/TGUVkvZ1Nu89\nfPAD\r\n=MIHQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"d01cf1ff17acdad8d59a134bd93ce4ad52b6cc43","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"10.19.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.7.4","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-dev.2002282330_1582910334318_0.5045502795319761","host":"s3://npm-registry-packages"}},"5.0.0-dev.2003021435":{"name":"leancloud-realtime","version":"5.0.0-dev.2003021435","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-dev.2003021435","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"39bbe5b2c38b31f6a0c1e784054726960d83c658","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-dev.2003021435.tgz","fileCount":80,"integrity":"sha512-GVVF3i4tPDwJIRbmbD0ITt9AZUP1szKp17qj8QmOB2QVxty6D3TQXzIFX/IJjhDbhKm/vI7DkzqecUBoD6Lr+g==","signatures":[{"sig":"MEYCIQC7DIUTpIq1+FS8tPAE1cegph6d/5y01VBRIJ7K44/iKwIhAO+DLwoOjwYd4rmr0tQckaN76DxFu2qYm6PfqN/g3MUd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11718705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXKmnCRA9TVsSAnZWagAAuGMP/REkzO9oLWRHabDgnAZD\nGyE50H1LuXrUEA6uM/sYqMyoc6cMyJGnXnw79c2l5vqbZyPFpcQAZwx9jWAp\nIZtTc6JgR/b/eYrsnh/GH7Ak2oOE2Yi1Y7IJWQ+mrG22SQgIXZdHK64+axvG\nN6IY4y7g83D7AgX5mh2voJARXWSKTBwS8PpUKDghLOfz95zQGupxkcdSdPUS\n+x4s8riM1sRrWTGJqjQ7EkasgGaLa8AUBFD6nf1jpspd3N9egtbx0DbliafD\nNj/Y4x7TK1yKAzMKuVh5M7JTfz8wuNHMpxPoO7iEMIXC63LP9c9QMOZoipKM\npZ8tpb7hNEegqxu2EEm21BKA7EEtXpPdAYm8oRDMFmkndaYkTMZuDg6JOqVR\nXYASbQ+Faquju4AUlFO9d8sYvJk2ajsb57t0S/PvwfXZ1Gl+vblPQnAzEpuo\nYr+2NhHF3QgkXlkPZGqChe2t6Fe5j436DAVbnNlBwL1/jxh+2x6JJOatJdks\nAJ02qblWzlQ+Gk1p7Ww04A80LOxBlVXQ7DnJc+3PNGSPUPFKeCykXL1I6Nbk\nUsJi4kaHfWt9e1EFcnMSKCH+pLEPCswetf4/bpiHqEYR37zQNO8J1V1WZ2Gd\n/yTANq+XKv/J1fdy21lKqemZkKOLzZH65f25TkDb66zw6W7iWWre0p85ar9Z\nNhU6\r\n=Sdw3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./dist/realtime-core.js":"./dist/realtime-core-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"cfb726cb38f550abeb50262071d91adb5efa949c","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"10.19.0","dependencies":{"ws":"^5.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.7.4","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-dev.2003021435_1583131046474_0.09548618225884686","host":"s3://npm-registry-packages"}},"5.0.0-beta.3":{"name":"leancloud-realtime","version":"5.0.0-beta.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-beta.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"5940655ba278e4ccaf68dee84fedbc057231d752","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-beta.3.tgz","fileCount":78,"integrity":"sha512-BnCo/aVm7UbdFI7KoGKkYIf8XJXtpggDYlxMH2cy+3151wyZ+GB1Ynw3L3SKpAAe12zBJLOiWF6Nf6BrqgK10w==","signatures":[{"sig":"MEQCICpo01VMAIOStNwT0d/jdEZbjDdHcMcGTkHJulOduhmiAiAzWYwzeT8lQyI7T28Stp+mq8eFKZouHBchNRC6qkNnNw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10150297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYlt9CRA9TVsSAnZWagAASxMP/jqN9lCAOeYf+AIdKk4Z\nYABuX6GMHKZi4knR2SVRwy0d+3IauWcvUv7vqOBiRRfTER0V2JsJweHwnwQd\nXgoYq/RSAEoiADfPjebyAZYTHaUZA6+Mflp1qNX+5wSGDYkbsaokoUCX1HTD\n9QKri1VseKzSrlQpM+YCy4y14gAGV3SI23iBwP1K5eEiUNjH6dUKIZdh/9BO\noDf1re3UqvMOU/NBa2CzKlKHWAW4lnnNl4ByGRvq7Pg10FfKCZWr43oBhG2+\nYbxIsif0gQPJnPk/g0OsUxLhppQryqjoijNz3Iirla1BmEBK1dglbcK+KGrd\nxM/kI6BK2WBKPf5azezUznBPWjIzx4UtoeBh045vHncqrKk2yII0Mm7ZWFEW\nu5ntcJlYfza6D4gextj0qjHlh7YMNqRhxYIbDaLKjU32wNwfpWhNQvWnu1N9\nyTHyeeWCJmH/vn8Ko3sp/KDQ9VXySlRiXXP06xBPd6gJzaqKRLcnmCP3NuOV\nmx4IEPJpyLooHqOaINYVhsy7l8XLyxN6lD9vctp2gdcrMQd5K1skzFdZnXyZ\nblmUS6RqGvkpC8vAaD4iTBgoJofekU8GVSUGqHogtyI1Tg1/RamaQWNdC/cM\noTsNBJrPRcMO3/CT/wNrWibyhTYGeNsmyqsNYvf1IneOevZ6pjWylpahsUYe\n1ZY9\r\n=kC62\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"ws":"weapp-polyfill/websocket.js","./dist/realtime.js":"./dist/realtime-weapp.js","./src/polyfills/polyfills.js":"./src/polyfills/polyfills-weapp.js"},"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/realtime-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_guide-js.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── realtime-browser.js     // 浏览器用\n│   ├── realtime-browser.min.js // 浏览器用(uglified)\n│   ├── realtime-weapp.js       // 微信小程序用\n│   └── realtime.js             // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","browser":{"ws":"./src/polyfills/ws-browser.js","./dist/realtime.js":"./dist/realtime-browser.js","./dist/realtime-core.js":"./dist/realtime-core-browser.js"},"gitHead":"51069f34470aeba870633a08038105c4fceab7f0","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"10.19.0","dependencies":{"ws":"^7.2.1","uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","superagent":"^5.1.0","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","weapp-polyfill":"^3.2.0","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.7.4","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-beta.3_1583504252289_0.3447945613058283","host":"s3://npm-registry-packages"}},"5.0.0-rc.0":{"name":"leancloud-realtime","version":"5.0.0-rc.0","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.0","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"7d596ac7718e2bfa0f5f0a3acb75be3e4b9ba41a","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.0.tgz","fileCount":72,"integrity":"sha512-4luoT+qW/2W5/LcgOvHFwwUfLdR+u3C1HBtEYZPRkIh3qVxLvcGk39MvfB5deCdP/KNhu5yHvl3ajGNucGF9+w==","signatures":[{"sig":"MEUCIQCZC7MdDNTfwu7nV6F5/4nz5wB/WwbI1SL5HS3/+pWzegIgfW45IjLNoIka0JqJfoq2Q7wXnmkLF0lx9ttJc5dKzbA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8674231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaexWCRA9TVsSAnZWagAAOUYQAKFDeUQHiEWGwl5lADAG\n3RDeGX8E29M/S6zih1Yp6zXRgTH0z5BjfGqT+KmBTUut2qdB8CzI1Glo793m\ntsYC6aVqyUhk43HdxT0D8tBqAQg0qhEr3+U8x20GoUsWBbu4FvzB0f3bSnNh\ncPX83n5apmQOVr4/roPO0j/h8MjtVuazwiuBG6WCjyiK+VIyCyGdeDK8Rooa\nVK/hp3VfECFS6BH18EeHSdiMcAfUz6MOBXaIzCm2UB+zAmrAXqHiuu6V1nzA\nOk4ERPMNApbN4PQgaeIeI1OpIA5Uwf/0YutTIcDPhhjOpo2wxFBXNwOWtaQr\nLK3T+VSYbcrBAMYz/F5eBOj3MPBZxrOAT9g2u3v1CdfdZB9j8A5HH/KZUcnw\nXHaxGmS/QMHlUCqQJe8Ge7XD03cB/U0X2CPuV8Js0+NIbm+wm0rxpnvCYCye\npMFqzvbMYajWdQZbM7DVMLrvyWBnTDD9d1Scrrqcxy6W09WzCurFDqnrGU8y\nnTx908gmoiUNjZjHOLs6u/qiYxIytGEZ15xvZf/pNf+3fbVege6+gpfYLfdy\nJGoIBTE7H2hhoc32hOoIkxzXQtNE/3Cv3qP7q6noYOj0J78CrkS14sjhyc1t\nyQI1GCPMw+HL9a+hFSawgVFK7F70OcRSLVtFbjgWnH49CDPCCju+XeAKjjVO\nEn8T\r\n=i/64\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/realtime.js","types":"./realtime.d.ts","weapp":{"./dist/realtime.js":"./dist/realtime-weapp.js","@leancloud/runtime-adapters-node":"@leancloud/runtime-adapters-weapp"},"browser":{"./dist/realtime.js":"./dist/realtime-browser.js","@leancloud/runtime-adapters-node":"@leancloud/runtime-adapters-browser"},"gitHead":"8eae08eaf5173a002a67f8bd65268b1554e02ae3","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"12.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5","@leancloud/runtime-adapters-node":"^1.0.0","@leancloud/runtime-adapters-weapp":"^1.0.1","@leancloud/runtime-adapters-browser":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.8.7","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","@leancloud/adapter-types":"^1.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.0_1584000085651_0.1872251837573431","host":"s3://npm-registry-packages"}},"5.0.0-rc.1":{"name":"leancloud-realtime","version":"5.0.0-rc.1","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.1","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"0c8f5aad80e30f89df6855ff1aff00a5e92d7658","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.1.tgz","fileCount":78,"integrity":"sha512-U00kLZfuCtXEfzvAeLhtwl7QcV/h0nFSosO/34b0IE31FxEFqHh8wCstthpHJBZhvn6lR3nSTstgKaoYD1EEEQ==","signatures":[{"sig":"MEUCIQDR3HUHVREYoYr9G9A8L7BA1qzoZalOpKOT22MdN0jNSAIgWeUS+WJKlWbh9P3kSwT+NP7aNosnTnZQikjCnrNcqRE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9316354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecDxdCRA9TVsSAnZWagAAcFQP/AzQNQaHfkroTIr+XTLS\nseP3XNSqD92dFSWB5CotQtuiM+TNSZVadV9d9Oxb7kHXR9XRlsSddkNuybmc\nT5/xzoo5ZafNiOiGyF2gQRpJQCXtCtYBh/Gt0YGaKD3BxG4ZFUjgCYosWLQs\nLDLFYiuMtLvkMqzrDtkTawm0n1H79t1S94EDZm7prxBuk/Ugd8b91E9qNnrV\nwPWjPFWdt/uDFl+4r9N1MMLUAznGjK77h8rz+Vd9ujhVezrvGsvi0Sem29rQ\nIyWFATE3JC7WIJ/MFC96uFEiNPD5KsjJ37EaTUay1jC7sgEjzCM3N23cQIWP\nCFGBLIqNw0r/9exTgEFy9r7fx/LoW4KlTrlE98MDxY+9Ht/jWkJgSAZ8MQcu\nGCRC4wPNMmhgpMjrzGB6r6u2kB7ZyxM8uPD/55H9sQYAm2qPRvh/B1O71Y0v\nw0gMcrcFR+UaQZV6Y/2NMPJZmsb3yDOH+P6b/tUDFqMYd0xR7NbitLNQMkpY\nwn91Wt4P0MlSdP+fK7vrS7XuRtRNFhTlEyMLHwylf91u9/2IhbuHKEapurYq\nvjb+wNnq348OE75i5Y3DTiz05Px3crUPXGE2a7PWNNoR1Ss6la6uBPcLyBpB\nRGKopX98SDjOuSJvljrKPYnBREwx6GjGHRjZMeWk47Y8uRwShxG/l9XevpWv\nw/xS\r\n=zemJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","@leancloud/runtime-adapters-node":"@leancloud/runtime-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","@leancloud/runtime-adapters-node":"@leancloud/runtime-adapters-browser"},"gitHead":"1193e22759e4a83592819821ea8d02f2393e035a","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"jsnext:main":"./src/index.js","_nodeVersion":"12.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","javascript-state-machine":"^2.3.5","@leancloud/runtime-adapters-node":"^1.0.1","@leancloud/runtime-adapters-weapp":"^1.0.2","@leancloud/runtime-adapters-browser":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.8.7","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-uglify":"^6.0.3","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","@leancloud/adapter-types":"^1.0.1","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-external-helpers":"^7.7.4","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.1_1584413789422_0.4995658341665419","host":"s3://npm-registry-packages"}},"5.0.0-rc.2":{"name":"leancloud-realtime","version":"5.0.0-rc.2","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.2","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"f8cd8db767af6b331d4bddef94600e23174c4408","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.2.tgz","fileCount":47,"integrity":"sha512-ERUdMD9aqYtN2uBiwLREsT9Tshj2qRuLCODoHX/sp4MYyVsQexsvi6MmXIg67xX49GQsk2AfWLlLltYmdKKd5w==","signatures":[{"sig":"MEQCIGJRhlJ+86j0yv1V4IR8GiCuf7CMmh0dXokqHbhSZ07aAiA9pipeq9Zqry7nHTLD5pEYRxH3c1RMCMcUQPnW+rromw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24027532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefIqoCRA9TVsSAnZWagAAPxUQAIk8itOwYj8nRroSTpMo\nwmDKVy92w3MFlxLvEVcHE7cLYs/5drYpf5KDZL0LkCWK9QavJC4e4UrVC9rX\nXKkRJ2Ek3CpmFvK0GrbRVonRa/IkCWF4pAlVGF6jOeFyFpWa2co9N2ItPOtA\ndfL06jDDyOo7rhnmmxQOo/dXUxdV00FVcbGbJqo/oqPsLHJffmLamzq92ucT\nDHHyNSRlWgZvTyIMjJ5CT+tOnnx7nG2XHQt51ARb2FDhsoP+Xu7rpIxb0g4o\n83kkaEZCOlg7gMjyVGJUSFJJXevoVAEYjQnLy27+83zcgvNpvkge1I9EgQOe\nJ2L8Wep9/kAceMyuOYsvwY+ML2Lq6fDgfM0aVdXf/2jl8/hY+sVQ5Yz/TPOt\nA8uxqx6ELMviPj3LMyl5V3Su8a4PHrOzU2IsTsDTKC2kDEKEyVhE4WW2OXFx\n8iONINok9Uw5ErE5z1eeBQmzV0d4KxvnaqpFkFUnIBj5s2lFG5KnNqXFIAE7\nA/izHRK3p6seQVh8IyGb2sGtENaQlBV7wUrsgMSZB26w5lVeqeh5KPrGHarr\nW1hG85TW/Hi1NXq9xhAgzIme43wb2xyVOTHbPOlHYHs4Sf0kSRlnku/Tb5PZ\nwsjPnXBbYwyWOxtq9luqIEozWRjgjaMdYcQHzPtEO3/fSnG+Ej3BAt6xJHCw\nMdX4\r\n=iGrW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"23b83c35e2653e9d8ef2ada4c29a0bbd1c909f30","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.13.4","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"12.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.7.4","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@babel/runtime-corejs2":"^7.9.2","@leancloud/adapter-types":"^1.0.1","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.0.1","@leancloud/platform-adapters-weapp":"^1.0.2","@leancloud/platform-adapters-browser":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.7.4","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.7.4","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.8.7","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","rollup-plugin-babel":"^4.3.3","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","rollup-plugin-commonjs":"^9.3.4","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@babel/plugin-transform-classes":"^7.7.4","@babel/plugin-transform-runtime":"^7.7.4","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.7.4","@leeyeh/rollup-plugin-node-resolve":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.2_1585220263752_0.04843993442537853","host":"s3://npm-registry-packages"}},"5.0.0-rc.3":{"name":"leancloud-realtime","version":"5.0.0-rc.3","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.3","maintainers":[{"name":"avos","email":"xzhuang@avos.com"},{"name":"hjiang","email":"j@1byte.io"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"leeyeh","email":"lee55962698@gmail.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"3a590d8c99685aa54849529d5d7fbbca0ea45152","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.3.tgz","fileCount":47,"integrity":"sha512-LGhxz2LY8/G7+dK4SQydaKdlBOcnaNi4r7Cl2otxOV6IyWPDRNiwSTjhAZLV7wHSDep6clrZVoZZGA0YuV24Lg==","signatures":[{"sig":"MEYCIQD8S96rAeNReDt++ncPY/6I+xutyr6BRRJD3UEHSE2DXAIhAJlPVwtQgUm2hyglztv20gpT9AKB0Mem8czycem18A/8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24092740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2hNPCRA9TVsSAnZWagAAiKMP/2wvsUPtHWKAFNSyWHeS\nktHo21fUizUYFoqHBUS+gZI4/AKjnke/MNQ23NPFYqaIh+MWu31TtnvKXoKK\nZ7qI1649WbYTfaNBTLD42NztXbmi2dvmyXIFcBpavNwIQJ4Z8bqSUDGh/l9z\n1coQJkoYByBbtNYwF7lH70qKY+Y9dyj4LI0NRou8HImp/ZU3dmqOZSxVpA0F\npGTblOfzNRKH/GGZ2r07Sqa7lZ5vSJRKTkIwh7OerseL6OtvnMy1OVWE3UEJ\n+vZMvIdxq7kC1jWC9n9Lw/TRz6vZ+N1uD3Vo5AmL4YtDLEp7gO+2HDMDX/gN\n7ZhDXu1e/w7mfSEOIopXr3/pKGqdSwGhtpbvBz1E4/yR3w7N/ooLUsVyNIA1\n78VESm5Jx8YlacFeARGZ9hMBSiii79jXIZkOtub7sRh1vNL17DiwUDZ6j0dE\nyKPAz9OmpkZjoCI2ypZ6LdhzTd39Rx5uKKmhbL+h2ZTu7F7vJ6SVujRXl9z3\nVHUFoqExlY7tJCGLD9qo/uHjGPAP/Rds/I8ay3tq+/I50ASZXoYklXg0W6dJ\ne3X7USm9JhapAGB3T+8ImC9L1nGNNgpRc5wpciqTwNQpIIOD+wI6RyM8LMO0\nVtgQZ6vWIjRGZqw94Hd3Uj8g2TpTZhbRU4rr2pJRGZ5+TF3GbFDY/1f2EP6m\n50IS\r\n=1co5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"eec814ca9bf8423066f47343184529f6bac80b45","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"leeyeh","email":"lee55962698@gmail.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.5","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"12.17.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.10.2","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@babel/runtime-corejs2":"^7.10.2","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.10.2","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.10.1","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.10.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.10.1","@babel/plugin-transform-runtime":"^7.10.1","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.3_1591350094372_0.6662195994635569","host":"s3://npm-registry-packages"}},"5.0.0-rc.4":{"name":"leancloud-realtime","version":"5.0.0-rc.4","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.4","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"hjiang","email":"lazyseq@gmail.com"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"sdjdd","email":"i@sdjdd.com"},{"name":"avos","email":"xzhuang@avos.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"5ee0f370fa4f8414194654361535f0ce9e283226","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.4.tgz","fileCount":44,"integrity":"sha512-03z+2JYnH4FE7ZyV+x0gkeEYFdjMoz5Uo63XeAQPchc5aBqGd+wXwdgjQzPAXJ1d7h/3w1CrcMLbSTf7eK8Eqw==","signatures":[{"sig":"MEUCIQC6SBD+hlGm+xDwqb8yHsqni7syLBWqA2tIGV7gmd06RAIgAouo3h2iEYL/2wD5R8R+WPpRt2GnsQ6uS5t9ZZw4fEg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22947079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2dveCRA9TVsSAnZWagAAdrIP/2SOENJa5r7Cb3tE9Yod\nNKC1IddD2KkiPUud5yaUu8KduwB/OhHhnsAOsDlzbVJYW2IU6Bu4HQWPm7GQ\nkyXD3M2/gy7W04uNdiHDVTmVBIh8IXHRorBPCT5RWQYLrEeGdFX4ZiqI/7Tc\nGJWBSbl/o+7N4YF6vuUm+Y0MQhTHAvGdgt590o89fiWRItNM4V6tO28tjr2S\naQ3U75AB5Po6pfEo+LziHluTcVOCzLMp3vKsQ7bEkibWGnh5AiANdqLXGJyQ\nafr6q4zbTIvEFTbVYeJC8wMjZ1mMfmWe/aBfb42uWbfWkupWBHgknhOvgH0K\nNuAiNAhlHXyl21Ps3CmSopcUAGcnvrG4/6y0m6e+mUdnY6aT8jIOl0JkUVh4\n61qqtdaerj5E9TFGPB1X5/agv75T4q7FTt74HrrKYSMhyS9But/NKKPvOsgp\nY4Tl6EAP2UYTdOlh3vYRt4K5ZvCrFG6bxYktZDi6+c4ZYztG4L0ug+rmsE/3\nI2BmIHsjqyLaKEudPvT5g985fq7JlbmNx1UjP0xpABnHSRAQmgDTzZxgziRF\nacYkxIMaouo6J09hNcxNBBT4r9r2ZlvPONwOx7WBdjJX2t5eP8w+3zmsN75P\nBN0lNCaS5ihyheXSvo+FKJidkdPbzdBg56a69f0XkGbabxdm7iR/IC5H7z+L\nxGy6\r\n=g1sw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"6f5ef1ef859fa90b6dc4ce64b84d1195dc69716b","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"sdjdd","email":"i@sdjdd.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"10.23.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.10.2","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.10.2","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.10.1","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.10.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.10.1","@babel/plugin-transform-runtime":"^7.10.1","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.4_1608113117652_0.5700832601822945","host":"s3://npm-registry-packages"}},"5.0.0-rc.5":{"name":"leancloud-realtime","version":"5.0.0-rc.5","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.5","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"hjiang","email":"lazyseq@gmail.com"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"sdjdd","email":"i@sdjdd.com"},{"name":"avos","email":"xzhuang@avos.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"760d0101b5a6ce34fa1ad9b4f9175f3b3a12b4cd","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.5.tgz","fileCount":44,"integrity":"sha512-jS+LO2u2U90Yw4Cm/O4TzD6jTDkoYIAucvdCZgSlr3P+SYhw0HpOtIV6/xTMFHgYUJ/X5CKAOa/lIZji+h2Jog==","signatures":[{"sig":"MEUCIQD3VxmzWfGHwlrR0YspYRtFfbbFrmUnvwI/VMEPXYlupAIgSkypTV50i7+TQrt/tsQsBm8cNTqmK1egJFk57FO6mzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22947766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4GHRCRA9TVsSAnZWagAAzeIQAIY8s78Sc2l43XSWPnKZ\nIuBOYRLcZ+j79Ml5PcYsXveucG5mHMintuyKxc8w+K7V3QLRlkqeyH+RLSk/\n3u8CwT7hBX7tjdso5hRQbEGdDPnU/Swl220tdkwIQvmDjC72eHFtQOMW//9g\nmvRmih8SXqhSgUUpvi+ZA0e0bYqtDnRzHiZd+p/AGfkOZbmBa8+WVdFqdmr1\n5ZBMRg+oFhKOR5ceCZIcdV2P8Cu3tFyzoif/piwTCpmscWJ0MlxpvBjNTogj\nxPYNtmxRnJbKixkIjto7DUIaSY+CrWSEBGyGpIDJ2OFKJlY2X2nINQWiFZMI\niHFpUSsqSWwzp36hf39XWRmOTyknaC++EldcfBob//8uzg7lvEd3VpOCnwgK\nrJ8+uRMV/42DPzAqBxCbatPSvLwczqb+Uv4jTS03KaC51kFliZrvb3rfnuC9\n1l2HGglz35U5S3vbbMoW82Zjl18PHYRJkZSUMLpVaC0SIowvAsbvemgIS+fW\nUtaM8YBZeZeina6cEdV+PmzgOAS5yWPMIwWKkQz1d8Vj01JkwUyOZegUGEK/\nSiixSOJdSWEVHThtOhhjvzQmV7bOz5RYT0U2TY6aFp1StAekt9W53YkSTqzx\nCIC/mWNgdtJhOYGa96/yy9HnfP9lwKZi9TW8VpUFR4+uSJWCQMZUQ/KpX5Bq\nYrl5\r\n=bOGu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"e5ad698f7a1527d68057185414d3634fc9302994","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"sdjdd","email":"i@sdjdd.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.9","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"14.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.10.2","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.10.2","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.10.1","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.10.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.10.1","@babel/plugin-transform-runtime":"^7.10.1","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.5_1608540625081_0.6979015884397197","host":"s3://npm-registry-packages"}},"5.0.0-rc.6":{"name":"leancloud-realtime","version":"5.0.0-rc.6","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.6","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"hjiang","email":"lazyseq@gmail.com"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"sdjdd","email":"i@sdjdd.com"},{"name":"avos","email":"xzhuang@avos.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"63bdff9e710185fa37a321c52c14ef5ee76acb00","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.6.tgz","fileCount":47,"integrity":"sha512-WJExh9oY+KoGgUyBZ348AuPG34pvxnNgJD3W054ERJos0DjJsxwpeG+flcBMXuSYGxt5huQ+Pxko3zefJFiLQQ==","signatures":[{"sig":"MEQCIGmeIuwCzS5UeAEGszKsq03uXKmPBLcAXo1EYzOBv0GtAiA2QgA4XZpu849b++YPKlSD57RQlHgegntgbOCQf8TjjQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22972959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgp3yeCRA9TVsSAnZWagAAtGoP/2T+HFOpTw4s5b1V8tWr\nJn1gOxwbncDuZhlFsNId0v9NiMyN71CFsih1YogCWIETMMIAuPRHSRedVWlh\nuKXypjh1yjT96ceKsdTkxpAoasRHWtRK24vL4l20B0RyOjanKSJ10YXhoyuv\n4f9zgZ8MGX6P5dBdTbS1cx1peqNRobkxAnNbnT2kOPB2vchL1+hHfkFzWfKY\nULNRKBGqy0m7E2ZosWUQs18iYAwzHTDQzYtRqEVV1QZnShschUWjL9CSJ+e+\nDuNe4EUHhHfuUJhqFxqHyALcjMdgwIAD88yQe/XjjL543kAQKcyM8rUobxgs\n24WrXyO3v1xw+Khv15qenu0J59IYe8RqqogY+SqAj+GQJbj3XszfIUZzG7zL\n5zyL9wu3clnGBmOmYs7IXBRk7+U4yTmVRDuzisCoSl3bwl+GWJJzwSZatPGm\nAM9jRue7qiSRh/D6DiejzvBqMqYFtvwubjIZGd0bwMhr6tT68Zt/QZ11/yea\n0GBZqrpNa4tlqpbJ6fK9NH8Fwr8SJh+djYZwMmApeDnuYvT/uDr+nfCGo8VR\nnbuJIDuBIniR7kcKqMoZutN88es9VdJczInO91px6TUADZd4ggf/F2QJ6aw9\n/rt85x3lBsghz68oGi7EOA54XQNwCPdTOnR5lbbPEEtmp3ssUkqnTVevwnpl\noWeF\r\n=Wiak\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"afad9b880bf7c342abdcf6da0d7047838194d7f8","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"sdjdd","email":"i@sdjdd.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.13","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"14.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.10.2","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.10.2","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.10.1","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.10.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.10.1","@babel/plugin-transform-runtime":"^7.10.1","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.6_1621589150019_0.2374194851521816","host":"s3://npm-registry-packages"}},"5.0.0-rc.7":{"name":"leancloud-realtime","version":"5.0.0-rc.7","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.7","maintainers":[{"name":"leeyeh","email":"lee55962698@gmail.com"},{"name":"hjiang","email":"lazyseq@gmail.com"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"sdjdd","email":"i@sdjdd.com"},{"name":"onerain88","email":"onerain88@gmail.com"},{"name":"avos","email":"xzhuang@avos.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"ef314fdf598a0a32a3eed9453cc2ca31cfa79781","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.7.tgz","fileCount":47,"integrity":"sha512-T5D12cvONg/eLlMKO+J31CdolM0ydgCnRpcTwWaCq1KrboROOvwgovKQpfeSKm4MxKNIio5gEKf41xAbE3K5dA==","signatures":[{"sig":"MEUCIFo30wvHwwbh2y6qvXuPVpTpVbWtdgB6g5V9S2musTr4AiEAixz1FReVqPx/oqzUR/tCoMfIqDHljG8q29rzUEFZimY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22979559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLzqPCRA9TVsSAnZWagAAxHMP/RX720e/PbaoXjSk7UHR\nc0j14AEb/WvvxOwGh6srUfjlJ812gMXVrOMIxvtZpz0UjMvkALqoUvq+z+Uu\n22GrikkhG9H8AeM+U6dIvXgOdB8D1wnv/L0ojad+WB1b2FUapyUv1UFf2KZ0\nJEuF/wrFkI5lZI4nXOSsG50eR97bXZ+kjl4tA46VL3SNcgf0EGQcj2N/jNHQ\njLtl9Acx0kEANty07Z6ko9HAc+6+MaTDbkrGIlwoPUViBHjx0EzSl6fw/1XP\n+5dxkPj4wpzrhuuB8t6qX1/pWOH5ZgJ3v9GMA4fRiKnfXhn85kH3zsql6um0\nUV8fqwfDyWPGQb8Qfq+iS+WmiYduVYmyijxGCWkaQxSu7mvAhBBWjOHNeTuI\nxL2R3xjcqiCgvU8GY+FCjlDzR/OOHXtgeKYbTb6o7NqAEQMRFxdr4KI61lb0\nJWv7Qn6VPT3xVSSDKwe+aJX66HZhDr5l4L+UF+yGa9bOFhGFTbGpFMpDuysb\nzSdmfE4YeX9CwlvNxITFAkRJ+NxeURxe0bHDaNYDCruboBDg0R7oR6QxTtdZ\ncJL1np47xZFuURcq3nL4kXNVxaUP28iWnj5hruLHMwEgpG+GtB07Md1tr+ik\nj/zte8jK/8tqTAueVhtYYFZSkJ8ZDQwdSZH0QJxY3x2NaLCoLg8nSBexSHVr\nfx5/\r\n=0a4o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"19b82818c170b064a0228b9cf0d01c1a8b8b77bf","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"sdjdd","email":"i@sdjdd.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.13","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"14.15.0","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.10.2","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.10.2","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.10.1","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.10.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.10.1","@babel/plugin-transform-runtime":"^7.10.1","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.7_1630485135431_0.0195550055631466","host":"s3://npm-registry-packages"}},"5.0.0-rc.8":{"name":"leancloud-realtime","version":"5.0.0-rc.8","keywords":["leancloud","realtime","message"],"license":"MIT","_id":"leancloud-realtime@5.0.0-rc.8","maintainers":[{"name":"notevenaneko","email":"neko@qwq.icu"},{"name":"leeyeh","email":"liye@xd.com"},{"name":"hjiang","email":"lazyseq@gmail.com"},{"name":"jysperm","email":"jysperm@gmail.com"},{"name":"sdjdd","email":"i@sdjdd.com"},{"name":"onerain88","email":"onerain88@gmail.com"},{"name":"avos","email":"xzhuang@avos.com"}],"homepage":"https://leancloud.cn/","bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"nyc":{"include":["src/**","plugins/typed-messages/src/**"],"require":["@babel/register"],"reporter":["lcov","text"],"sourceMap":false,"instrument":false},"dist":{"shasum":"49e24a93ca685239a6756c3c994436f87e43709b","tarball":"https://registry.npmjs.org/leancloud-realtime/-/leancloud-realtime-5.0.0-rc.8.tgz","fileCount":47,"integrity":"sha512-H54ZPJnsR9oXM8fRqeT0foAIdtV9tqS9b+DQgzAIg1Okn0CBnJXSbJg5c4yHZNCtmX4lxZ1LudEspytW0V/AyQ==","signatures":[{"sig":"MEUCIA78o/VYLBJzBc2tymT7G1jnFLwH2bsDWT37g9A3t6hiAiEAt2UMyyXPkOnSykD6O990TN+Eio6MvI/UuvDoFgoUpr0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23101830,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCFTPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmcQ/8C6V7rm6wEAjNJbDtrzgp4UdUDYe1VeOi5Tu3S6mSvYfEL7yK\r\nmne1qUa1t42JdAIlv2ketSmDM+81G5bCyKGELbR82eItumavGWtbYO0eaWva\r\n+Fa11h1UOeCA4s5pedX2ZNg0sH2Vj2eAZJEPq8X7yGWZy9L/sHOPkidINDaZ\r\nJumZohsOH8SCrp4SAP6AZeqEzeNrepejawAMAqQqrEmfzVFHkgZ8/3Xl/VDD\r\nBUzPsztfOzEPjx2KeKAwa/j+I7FbV7+NbL8/9brXBtGWeUDTOLH+eF1SL+Q9\r\nXEr4lE22PDco4N+CoHBuqf2jBmOp6Q+eMA5ay3iZ5s1Dqd06KbX1N0FK6Ra2\r\n7ZwReFtexfkFL68Egg5LstIF/aWxJVjI27BwXIpLw0xPrXnQsmlreIYn5jct\r\nTMU2qqcNR9rVpMDdOUZcLTK7Mm0rI2qwrJlAhYLJ+qgTLWbkF0EYJXzwtFYF\r\nqmYuh8Cs0S4DUIEGbzWiPJtGNvyxTcimZBY7onrzsakKlbFvWCaKdcrMiMQi\r\no0O0FkkQ5kSr+8OuiU1VyszVIglRNXnqylZ52VC/DHqaZ1z+rY1CfSt768Uf\r\nbrS/Oi+KKGgq5s4/u0UUrSbTtPOoAAEWYP8zEIfXRAGAeGOWnf0LBYXKQH2d\r\nFjFH+Zo0/B1xHetFSG00CES3+U5rPj8OmTk=\r\n=fyrZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/im-node.js","types":"./realtime.d.ts","weapp":{"./dist/im-node.js":"./dist/im-weapp.js","./dist/es-latest/im-node.js":"./dist/es-latest/im-weapp.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-weapp"},"browser":{"./dist/im-node.js":"./dist/im-browser.js","./test/websocket-plus.js":false,"./dist/es-latest/im-node.js":"./dist/es-latest/im-browser.js","@leancloud/platform-adapters-node":"@leancloud/platform-adapters-browser"},"gitHead":"1c333f9c457b490b0578f73feb7ff59625c11126","scripts":{"docs":"jsdoc src README.md package.json -d docs -c .jsdocrc.json && jsdoc plugins/typed-messages/src plugins/typed-messages/package.json src/messages/message.js src/messages/typed-message.js -d plugins/typed-messages/docs -c .jsdocrc.json && jsdoc plugins/webrtc/src plugins/webrtc/package.json -d plugins/webrtc/docs -c .jsdocrc.json && jsdoc plugins/groupchat-receipts/src plugins/groupchat-receipts/package.json -d plugins/groupchat-receipts/docs -c .jsdocrc.json","lint":"eslint --ignore-path .gitignore src test plugins && tsc realtime.d.ts --strict","test":"npm run lint && npm run build && npm run docs && npm run test:node && npm run test:browser","build":"npm run build:realtime && BABEL_ENV=es5 npm run build:realtime && BABEL_ENV=es5 npm run build:plugins && ./script/validate-es5.js","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","commitmsg":"commitlint -e $GIT_PARAMS","precommit":"pretty-quick --staged","test:node":"NODE_ENV=test nyc mocha --timeout 30000 test/index.js plugins/**/test/index.js --exit","build:test":"BABEL_ENV=es5 rollup -c rollup/rollup.config.test.js","convert-pb":"pbjs proto/message.proto -t commonjs > proto/message-compiled.js && sed -i '' 's/protobufjs/protobufjs\\/dist\\/protobuf-light/g' ./proto/message-compiled.js","test:browser":"if [ ! -z \"$SAUCE_ACCESS_KEY\" ]; then npm run build:test && karma start karma-sauce.conf.js; else echo 'Saucelabs test skipped, set SAUCE_USERNAME and SAUCE_ACCESS_KEY to start it.\n\rTo run browser tests locally, run `npm run test:browser-local`'; fi","build:plugins":"rollup -c rollup/rollup.config.plugins.js","build:realtime":"rollup -c rollup/rollup.config.realtime.js","test:browser-local":"npm run build:test && karma start"},"typings":"./realtime.d.ts","_npmUser":{"name":"sdjdd","email":"i@sdjdd.com"},"prettier":{"singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"_npmVersion":"6.14.12","description":"LeanCloud Realtime Message JavaScript SDK","directories":{"test":"test"},"_nodeVersion":"10.24.1","dependencies":{"uuid":"^3.0.0","debug":"^3.1.0","lodash":"^4.17.10","protobufjs":"^5.0.1","eventemitter3":"^3.0.0","@babel/runtime":"^7.21.0","promise-timeout":"^1.3.0","base64-arraybuffer":"^0.1.5","@leancloud/adapter-types":"^3.0.0","javascript-state-machine":"^2.3.5","@leancloud/platform-adapters-node":"^1.1.0","@leancloud/platform-adapters-weapp":"^1.2.0","@leancloud/platform-adapters-browser":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^7.2.5","nyc":"^13.3.0","husky":"^0.14.3","jsdoc":"github:leeyeh/jsdoc#v3.4.0","karma":"^2.0.0","mocha":"^5.0.0","sinon":"^6.0.1","eslint":"^6.7.2","espree":"^4.0.0","rollup":"^1.27.8","should":"^12.0.0","inherit":"^2.2.3","prettier":"^1.19.1","typescript":"^3.3.3333","@babel/core":"^7.21.0","karma-mocha":"^1.3.0","babel-eslint":"^9.0.0","pretty-quick":"^2.0.1","should-sinon":"^0.0.6","@babel/register":"^7.21.0","@commitlint/cli":"^7.0.0","@babel/preset-env":"^7.20.2","@leeyeh/jsdoc-rtd":"^1.0.13","leancloud-storage":"^3.0.0","rollup-plugin-json":"^3.1.0","jsdoc-ignore-future":"^1.1.0","@rollup/plugin-alias":"^3.1.0","@rollup/plugin-babel":"^5.0.2","eslint-plugin-import":"^2.18.2","karma-sauce-launcher":"^1.2.0","rollup-plugin-terser":"^5.3.0","babel-plugin-istanbul":"^5.1.1","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.2.0","eslint-config-prettier":"^6.7.0","@rollup/plugin-commonjs":"^12.0.0","eslint-config-airbnb-base":"^14.0.0","conventional-changelog-cli":"^2.0.1","@rollup/plugin-node-resolve":"^8.0.0","@babel/plugin-transform-classes":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@commitlint/config-conventional":"^7.0.1","@babel/plugin-proposal-decorators":"^7.21.0"},"_npmOperationalInternal":{"tmp":"tmp/leancloud-realtime_5.0.0-rc.8_1678267599513_0.6203883524689053","host":"s3://npm-registry-packages"}}},"time":{"created":"2015-07-28T09:14:08.783Z","modified":"2025-08-25T09:42:55.064Z","2.2.0":"2015-07-28T09:14:08.783Z","2.2.1":"2015-07-30T05:47:13.305Z","2.3.0":"2015-10-15T08:42:11.245Z","2.3.1":"2015-11-03T09:34:50.982Z","2.3.2":"2015-11-17T08:00:39.861Z","2.3.4":"2016-01-05T03:40:54.718Z","2.3.5":"2016-01-05T03:57:42.946Z","2.4.0":"2016-01-15T09:13:17.967Z","3.0.0-alpha.1":"2016-04-06T04:10:16.935Z","3.0.0-beta.1":"2016-04-24T10:16:11.428Z","3.0.0-beta.2":"2016-05-07T02:47:35.203Z","3.0.0-beta.3":"2016-05-16T06:07:05.074Z","3.0.0-beta.4":"2016-05-30T09:41:21.390Z","3.0.0":"2016-06-22T10:30:07.323Z","3.0.1":"2016-06-27T10:55:45.281Z","3.0.2":"2016-06-30T06:00:13.791Z","3.1.0":"2016-07-18T05:47:24.624Z","3.1.1":"2016-07-20T17:15:53.035Z","3.1.2":"2016-07-26T08:00:41.284Z","3.1.3":"2016-08-02T05:36:10.172Z","3.2.0":"2016-08-10T10:09:37.597Z","3.2.1":"2016-08-12T03:37:39.295Z","3.2.2":"2016-08-29T11:01:52.238Z","3.2.3":"2016-09-05T07:53:29.538Z","3.3.0":"2016-10-25T03:42:54.299Z","3.3.1":"2016-11-16T12:01:11.737Z","3.3.2":"2016-12-14T09:41:28.160Z","3.3.3":"2016-12-16T06:14:11.538Z","3.3.4":"2017-01-11T13:54:43.446Z","3.4.0":"2017-04-06T15:39:04.876Z","3.4.1":"2017-04-17T10:04:59.862Z","3.5.0-beta.0":"2017-05-19T05:52:03.456Z","3.5.0-beta.1":"2017-06-01T08:59:53.028Z","3.5.0":"2017-06-15T12:54:47.974Z","3.5.1":"2017-06-20T10:51:50.632Z","3.5.2":"2017-06-30T07:14:39.133Z","3.5.3":"2017-07-28T06:35:10.389Z","3.5.4":"2017-07-28T11:37:13.939Z","3.5.5":"2017-07-28T16:08:57.057Z","3.5.6":"2017-08-29T11:00:04.291Z","4.0.0-alpha.0":"2017-09-01T08:41:33.328Z","3.5.7":"2017-09-11T03:18:30.354Z","4.0.0-alpha.1":"2017-09-20T11:41:07.065Z","4.0.0-alpha.2":"2017-09-25T05:51:26.943Z","4.0.0-alpha.3":"2017-11-02T09:03:37.743Z","4.0.0-beta.0":"2017-11-24T09:50:08.740Z","4.0.0-beta.1":"2017-12-27T08:41:44.217Z","4.0.0-beta.2":"2018-01-09T08:02:03.791Z","4.0.0-beta.3":"2018-01-23T06:01:50.565Z","4.0.0-beta.4":"2018-02-07T09:02:58.366Z","4.0.0-beta.5":"2018-04-15T06:12:45.430Z","4.0.0-rc.0":"2018-05-11T07:25:23.943Z","4.0.0":"2018-05-28T02:57:22.205Z","4.0.1":"2018-05-31T13:59:15.318Z","4.1.0":"2018-06-24T01:28:15.491Z","4.2.0":"2018-07-06T06:49:14.866Z","4.2.1":"2018-11-21T09:56:37.032Z","4.3.0":"2019-03-04T09:55:04.649Z","5.0.0-alpha.0":"2019-05-10T11:43:58.654Z","5.0.0-alpha.1":"2019-05-13T07:26:24.251Z","4.3.1":"2019-06-21T11:23:56.489Z","5.0.0-alpha.2":"2019-07-04T07:16:28.320Z","5.0.0-alpha.3":"2019-07-04T10:58:21.127Z","5.0.0-beta.0":"2019-10-30T04:15:54.884Z","5.0.0-beta.1":"2019-12-10T06:24:32.547Z","5.0.0-beta.2":"2020-01-26T08:15:24.651Z","5.0.0-dev.2002282330":"2020-02-28T17:18:54.556Z","5.0.0-dev.2003021435":"2020-03-02T06:37:26.806Z","5.0.0-beta.3":"2020-03-06T14:17:32.496Z","5.0.0-rc.0":"2020-03-12T08:01:25.890Z","5.0.0-rc.1":"2020-03-17T02:56:29.646Z","5.0.0-rc.2":"2020-03-26T10:57:44.047Z","5.0.0-rc.3":"2020-06-05T09:41:34.722Z","5.0.0-rc.4":"2020-12-16T10:05:17.932Z","5.0.0-rc.5":"2020-12-21T08:50:25.450Z","5.0.0-rc.6":"2021-05-21T09:25:50.585Z","5.0.0-rc.7":"2021-09-01T08:32:15.797Z","5.0.0-rc.8":"2023-03-08T09:26:39.751Z"},"bugs":{"url":"https://github.com/leancloud/js-realtime-sdk/issues"},"license":"MIT","homepage":"https://leancloud.cn/","keywords":["leancloud","realtime","message"],"repository":{"url":"git+https://github.com/leancloud/js-realtime-sdk.git","type":"git"},"description":"LeanCloud Realtime Message JavaScript SDK","maintainers":[{"email":"andy@xd.com","name":"antigloss"},{"email":"passport@taptap.com","name":"taptap-passport"},{"email":"wuyun@xd.com","name":"wuyxd"}],"readme":"# LeanCloud JavaScript Realtime SDK\n\n[![npm](https://img.shields.io/npm/v/leancloud-realtime.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n[![npm](https://img.shields.io/npm/v/leancloud-realtime/next.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime)\n![gzip size](https://img.badgesize.io/leancloud/js-realtime-sdk/next-dist/dist/im-browser.min.js.svg?compression=gzip&style=flat-square)\n[![Build Status](https://img.shields.io/travis/leancloud/js-realtime-sdk.svg?style=flat-square)](https://travis-ci.org/leancloud/js-realtime-sdk)\n[![Codecov](https://img.shields.io/codecov/c/github/leancloud/js-realtime-sdk.svg?style=flat-square)](https://codecov.io/github/leancloud/js-realtime-sdk)\n[![Known Vulnerabilities](https://snyk.io/test/github/leancloud/js-realtime-sdk/badge.svg?style=flat-square)](https://snyk.io/test/github/leancloud/js-realtime-sdk)\n\n为您的 JavaScript App 接入 LeanCloud 实时通讯服务。\n\n## 版本说明\n\n遵循 [语义化版本](http://semver.org/lang/zh-CN/)。\n\n安装稳定版本：\n\n```\nnpm install leancloud-realtime --save\n```\n\n安装测试版本：\n\n```\nnpm install leancloud-realtime@next --save\n```\n\n安装指定版本：\n\n```\n// 安装 v3 版本\nnpm install leancloud-realtime@3 --save\n```\n\n## 支持的运行环境\n\n- 浏览器 / WebView\n  - IE 10+\n  - Edge latest\n  - Chrome 45+\n  - Firefox latest\n  - iOS 9.3+\n  - Android 4.4+\n- Node.js 4.0+\n- 微信小程序/小游戏 latest\n- React Native 0.26+\n- Electron latest\n\n## 文档\n\n- [安装文档](https://leancloud.cn/docs/sdk_setup-js.html)\n- [使用文档](https://leancloud.cn/docs/realtime_v2.html)\n- [API 文档](https://leancloud.github.io/js-realtime-sdk/docs/)\n\n## Demo\n\n- [Simple Chatroom](https://leancloud.github.io/js-realtime-sdk/demo/simple-chatroom/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/simple-chatroom))\n- [LeanMessage](https://leancloud.github.io/leanmessage-demo) ([src](https://github.com/leancloud/leanmessage-demo))\n- [WebRTC 视频通话](https://leancloud.github.io/js-realtime-sdk/demo/webrtc/) ([src](https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc))\n\n## 插件\n\n| package name                                 | 描述          |                                                                                         版本                                                                                          |                                           文档                                           |\n| :------------------------------------------- | :------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n| leancloud-realtime-plugin-typed-messages     | 富媒体消息    |     [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-typed-messages.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-typed-messages)     |   [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/typed-messages/docs/)   |\n| leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执  | [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-groupchat-receipts.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-groupchat-receipts) | [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/groupchat-receipts/docs/) |\n| leancloud-realtime-plugin-webrtc             | WebRTC 客户端 |             [![npm](https://img.shields.io/npm/v/leancloud-realtime-plugin-webrtc.svg?style=flat-square)](https://www.npmjs.com/package/leancloud-realtime-plugin-webrtc)             |       [API docs](https://leancloud.github.io/js-realtime-sdk/plugins/webrtc/docs/)       |\n\n## 支持\n\n- 在使用过程中遇到了问题时\n  - 如果你是商用版用户，请新建一个工单。\n  - 也可以在 [论坛](https://forum.leancloud.cn/) 提问、讨论。\n\n## 贡献\n\n如果你希望为这个项目贡献代码，请按以下步骤进行：\n\n1.  Fork 这个项目，clone 到本地\n1.  在目录中执行 `npm install` 安装所需 Node.js 依赖包\n1.  编码，更新测试用例\n1.  运行 `npm test` 确保测试全部 pass\n1.  提交改动，请遵循 [conversational commit message 风格](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)\n1.  发起 Pull Request 至 master 分支\n\n### 项目的目录结构\n\n```\n.\n├── demo\n├── deploy.sh                 // 部署 gh-pages 分支\n├── release.sh                // 部署 dist 分支\n├── dist                      // 打包产出 (dist 分支)\n│   ├── core.js               // 核心逻辑（不包含运行时）\n│   ├── im.js                 // IM（不包含运行时）\n│   ├── im-browser.js         // 浏览器用\n│   ├── im-weapp.js           // 微信小程序用\n│   └── im-node.js            // node 用\n├── proto\n│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类\n│   ├── message.js              // ES6 wrapper\n│   └── message.proto           // proto 原始文件\n├── src                       // 源码\n│   └── index.js                // 打包入口\n├── test                      // 测试用例\n│   ├── browser                 // 浏览器测试入口\n│   └── index.js                // 测试入口\n└── plugins\n    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package\n    └── webrtc                  // leancloud-realtime-plugin-webrtc package\n```\n\n### Architecture\n\nSDK 分为连接层与应用层两部分，只存在应用层对连接层公开 API 的调用，连接层对开发者不可见。\n\n#### 连接层\n\n- `WebSocketPlus`：封装了 WebSocket。相比 w3 WebSocket，增加了以下特性：\n  - 是一个有限状态机\n  - 实现了 [Node.js EventEmitter 接口](https://nodejs.org/api/events.html)\n  - 超时与自动重连机制\n  - url 参数支持 Promise 及备用地址\n- `Connection`：继承自 `WebSocketPlus`，增加了与业务相关的功能：\n  - 根据 subprotocol 自动处理发送与接收的消息，应用层发送接收的均是 ProtoBuf Message 类\n  - `send` 接口返回 Promise，在 server 回复后才算 send 成功\n  - 实现了应用层 ping/pong\n\n#### 应用层\n\n- `Realtime`：开发者使用 SDK 的入口，负责访问 router、创建 connection、创建与管理 clients、创建 messageParser（管理消息类型）、监听 connection 的消息并 dispatch 给对应的 client\n- `Client`：所有的 clients 共享一个 connection\n  - `IMClient`：对应即时通讯中的「用户」，持有 connection 与 conversations，负责创建管理将收到的消息处理后在对应 conversation 上派发，所有的 IMClients 共享一个 messageParser\n- `MessageParser` 消息解析器，负责将一个 JSON 格式的消息 parse 为对应的 Message 类\n- `Conversation`：实现对话相关的操作\n  - `ConversationQuery`：对话查询器\n- `Messages`\n  - `AVMessage`：接口描述，生成文档用\n  - `Message`：消息基类\n  - `TypedMessage`：类型消息基类，继承自 `Message`\n  - `TextMessage`：文本消息，继承自 `TypedMessage`\n  - 其他富媒体消息类（`FileMessage` 及其子类、`LocationMessage`）由于依赖 leancloud-storage，作为另一个独立 package 发布\n\n### 开启调试模式\n\n#### Node.js\n\n```bash\nexport DEBUG=LC*\n```\n\n#### 浏览器\n\n```javascript\nlocalStorage.setItem('debug', 'LC*');\n```\n\n## Develop Workflow\n\n### 本地开发\n\n更新 .proto 后请运行\n\n```\nnpm run convert-pb\n```\n\n测试\n\n```\nnpm run test:node -- --grep KEYWORDS\n```\n\n浏览器测试\n\n```\nnpm run test:browser-local\n```\n\n编译\n\n```\nnpm run build\n```\n\n### 持续集成\n\n合并 PR 到 master 分支后持续集成会自动运行 `npm build` 与 `npm run docs`，然后将 dist 目录推送到 dist 分支，将文档与 demo 推送到 gh-pages。\n\n## Release Process Workflow\n\n0.  遵循 semver 提升 `package.json` 中的版本号\n1.  `npm run changelog` 生成新的 `changelog.md`，润色之\n1.  Commit `package.json`，`changelog.md`\n1.  Push to remote `master` branch\n1.  等待持续集成 pass\n1.  使用 GitHub 基于 dist 分支生成 pre-release 包（for bower）\n1.  Fetch and checkout remote `dist` branch 并确认该提交的内容是即将发布的版本\n1.  npm publish（`npm publish`，需 npm 协作者身份），如果是 pre-release 版本需要带 next tag\n1.  如有更新，在 npm 上发布各个 plugin\n","readmeFilename":"README.md","users":{"xudaolong":true}}