{"_id":"sinon-chrome","_rev":"43-6434f99f7be82015f274842bd986005b","name":"sinon-chrome","description":"Mock of chrome extensions API for unit testing under nodejs","dist-tags":{"latest":"3.0.1"},"versions":{"0.1.0":{"name":"sinon-chrome","version":"0.1.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/vitalets/sinon-chrome","author":{"name":"Vitaliy Potapov","email":"noginsk@rambler.ru"},"repository":{"type":"git","url":"git://github.com/vitalets/sinon-chrome.git"},"bugs":{"url":"https://github.com/vitalets/sinon-chrome/issues"},"main":"src/chrome.js","peerDependencies":{"phantomjs":"~1.9.1","sinon":"~1.11.1"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0"},"_id":"sinon-chrome@0.1.0","dist":{"shasum":"62735e5f209cd1e9122eb3f36f8cfdefc9fc146c","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-0.1.0.tgz","integrity":"sha512-o4cUt1inD7mMpiPy5/HnQx+sJZLBLmrGf5nKzy6T4ffvyXWFRbGQtJPVxNFyt0jpN074xGEpyJu8OYBkSIeZKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2KtMCBldpNxZwK+aGIuH4rMA64DWRV5Z9oNtp7UbRoAiEAzY22a1Fl2Tc6Hl+TyOoO5uaru3kmRfrrhHbamBNbksU="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"vitalets","email":"noginsk@rambler.ru"},"maintainers":[{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{}},"0.1.1":{"name":"sinon-chrome","version":"0.1.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/vitalets/sinon-chrome","author":{"name":"Vitaliy Potapov","email":"noginsk@rambler.ru"},"repository":{"type":"git","url":"git://github.com/vitalets/sinon-chrome.git"},"bugs":{"url":"https://github.com/vitalets/sinon-chrome/issues"},"main":"chrome.js","scripts":{"test":"grunt test","prepublish":"grunt build"},"peerDependencies":{"phantomjs":"^1.9.1","sinon":"^1.10.0"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","mocha":"^2.0.1","grunt-mocha-test":"^0.12.2","chai":"^1.9.2","load-grunt-tasks":"^1.0.0","grunt-contrib-concat":"^0.5.0"},"_id":"sinon-chrome@0.1.1","dist":{"shasum":"a6f94d17fb21b2e47fc97a700584a1cc38b383f1","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-0.1.1.tgz","integrity":"sha512-mK8041GA5mG21mmEpeqHk63mhIP3pxSZCYEmL+9mvGKRsGEwFjqGfpnbcGMzxPTJShknTBCjDkqtCkCBvl2+HA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlS18YUVyv7gRnarZHrH+hSIMAcQmtD2EPtL1t/AsS6gIhANHTcHSW4FPQ3vkaG7Slgrw1LbtsR//DNSkVhO5XrMtd"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"vitalets","email":"noginsk@rambler.ru"},"maintainers":[{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{}},"0.1.2":{"name":"sinon-chrome","version":"0.1.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/vitalets/sinon-chrome","author":{"name":"Vitaliy Potapov","email":"noginsk@rambler.ru"},"repository":{"type":"git","url":"git://github.com/vitalets/sinon-chrome.git"},"bugs":{"url":"https://github.com/vitalets/sinon-chrome/issues"},"main":"src/chrome.js","scripts":{"test":"grunt test","prepublish":"grunt build"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","mocha":"^2.0.1","sinon":"^1.10.0","grunt-mocha-test":"^0.12.2","chai":"^1.9.2","load-grunt-tasks":"^1.0.0","grunt-contrib-concat":"^0.5.0"},"gitHead":"42c32eb0aa20d4d41bfea35bb29d2c734f84eb68","_id":"sinon-chrome@0.1.2","_shasum":"ca06c33003b66e778e0e60fd840ff33e2d07650d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"vitalets","email":"noginsk@rambler.ru"},"maintainers":[{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"ca06c33003b66e778e0e60fd840ff33e2d07650d","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-0.1.2.tgz","integrity":"sha512-yAcxmVN4cqmsrNfo1/BOC6Eim8ztbxJiifWIyRBFj05tWn+s+NvCqI7stioD2oQA7AVDOCIhGfiG34mfDzyUqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhBlpxq0EO445KFbeKrvWX400j4CNZazeo353huR50XQIhAOsf1ytDERzwEHcXcQVxzVnFMKwBoyYHfFeEF1BTKpmY"}]},"directories":{}},"0.2.0":{"name":"sinon-chrome","version":"0.2.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/vitalets/sinon-chrome","author":{"name":"Vitaliy Potapov","email":"noginsk@rambler.ru"},"repository":{"type":"git","url":"git://github.com/vitalets/sinon-chrome.git"},"bugs":{"url":"https://github.com/vitalets/sinon-chrome/issues"},"main":"src/chrome.js","scripts":{"test":"grunt test","prepublish":"grunt build"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","mocha":"^2.0.1","sinon":"^1.10.0","grunt-mocha-test":"^0.12.2","chai":"^1.9.2","load-grunt-tasks":"^1.0.0","grunt-contrib-concat":"^0.5.0"},"gitHead":"118cafacfb74b4acb90d0d82ca2ece2669b28c33","_id":"sinon-chrome@0.2.0","_shasum":"9f23391eb69ca1a210d8639d5e46764daa2977b3","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"vitalets","email":"noginsk@rambler.ru"},"maintainers":[{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"9f23391eb69ca1a210d8639d5e46764daa2977b3","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-0.2.0.tgz","integrity":"sha512-XuFM+87ly8MRQW7J7G76+AvGg/RAa1wOKi51nJi1StCd1Qh5mZPmGodH/Zw6s8Rln0CLRph8AmH92AIkXJ1szw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICULGNTMFobqMzgrLaAOjiGFq4OgSPJPlTzmQKtAaYKVAiEAql4t2hthB84hyvJRonaQ3Fm9Dnf1vNpStSr+B6F1vYM="}]},"directories":{}},"0.2.1":{"name":"sinon-chrome","version":"0.2.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/vitalets/sinon-chrome","author":{"name":"Vitaliy Potapov","email":"noginsk@rambler.ru"},"repository":{"type":"git","url":"git://github.com/vitalets/sinon-chrome.git"},"bugs":{"url":"https://github.com/vitalets/sinon-chrome/issues"},"main":"src/chrome.js","scripts":{"test":"grunt test","prepublish":"grunt build"},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","mocha":"^2.0.1","sinon":"^1.10.0","grunt-mocha-test":"^0.12.2","chai":"^1.9.2","load-grunt-tasks":"^1.0.0","grunt-contrib-concat":"^0.5.0"},"gitHead":"a880344ab71ce7c58b7ea0480e977d8007f52a3a","_id":"sinon-chrome@0.2.1","_shasum":"509e9a0cfd456ce4e70d03be1742ab1f2d98be9b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"vitalets","email":"noginsk@rambler.ru"},"maintainers":[{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"509e9a0cfd456ce4e70d03be1742ab1f2d98be9b","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-0.2.1.tgz","integrity":"sha512-MlWlOgQl/BD0iPGtHs4vIMZiNWA6965il0NS+oZxVjWkV6CgF27X/iuxMzbuwHCDghyRBiH8WNT9cG36HfaUqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSJt28ncDst3YNG08TChtCka6SSPV+JOuGwMJU5ye09AiEA3p0MqLmkjFLZfaJ7T9Q0dSIR9RZbfVvt2i94E0m58OM="}]},"directories":{}},"1.0.0":{"name":"sinon-chrome","version":"1.0.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","code":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","babel":"babel ./src --out-dir ./out","webpack":"webpack","build":"npm run clean && npm run babel && npm run webpack","prepublish":"npm run code && npm run test && npm run build"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","jscs":"^2.5.1","mocha":"^2.3.3","webpack":"^1.12.4"},"gitHead":"f681224253a47f637ed2f492655a867c239877e9","_id":"sinon-chrome@1.0.0","_shasum":"7104fc347a9e77b364b8c3f8164bc841e83c645d","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.1.2","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"7104fc347a9e77b364b8c3f8164bc841e83c645d","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.0.tgz","integrity":"sha512-rBPXajo2umPRg4sTvz4/oQrXaeZDuwLAF4GGOEaPxvC+aGidXiF/Caqk0cGLhB+3xxwwifnzUihWBEkP/JkP5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWN1lcZSfA6ybN03TJEsWm3+Z4OnhUOViJ9j7BEf0qJAiBGEaHw0l2isR8MDlLSNW88QG34ozZirzUBZXTCyRwR6Q=="}]},"directories":{}},"1.0.1":{"name":"sinon-chrome","version":"1.0.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","code":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","babel":"babel ./src --out-dir ./out","webpack":"webpack","build":"npm run clean && npm run babel && npm run webpack","prepublish":"npm run code && npm run test && npm run build"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","jscs":"^2.5.1","mocha":"^2.3.3","webpack":"^1.12.4"},"gitHead":"3a1783f7c95ad5712570a4630bc10c9152a9abf1","_id":"sinon-chrome@1.0.1","_shasum":"a8d50646b03bdceeb72cf254cb6b022855ffb811","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.1.2","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"a8d50646b03bdceeb72cf254cb6b022855ffb811","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.1.tgz","integrity":"sha512-ClDhBChFqj2M2xR4jXllrLp+A44MYQVMKZ5vOT3LbrgJaX3PfEaRVpu1nWQIp/JhYTffNgQxla/QfbEC3wSM6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDTs7BE3PFIHOjIXbiedbloH2iJJjC6Cy3dFXp6PI1UAiBB6CJ57Mo91c7BF4yzJqKlBD6c9zrwm30TPYGSS7JYlQ=="}]},"directories":{}},"1.0.2":{"name":"sinon-chrome","version":"1.0.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","code":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","babel":"babel ./src --out-dir ./out","webpack":"webpack","build":"npm run clean && npm run babel && npm run webpack","prepublish":"npm run code && npm run test && npm run build"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","jscs":"^2.5.1","mocha":"^2.3.3","webpack":"^1.12.4"},"gitHead":"b9eddf2ad7f24cb190ffba0fa4bd3ce9c7be6a9b","_id":"sinon-chrome@1.0.2","_shasum":"ab7dccc73566754c1fd882fd6cb63e48b1662f12","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.1.2","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"ab7dccc73566754c1fd882fd6cb63e48b1662f12","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.2.tgz","integrity":"sha512-MohvhlVMz23ivejREqA35SI/VNiV5VYX/M073BLDGejqxq2nh2Yuk6/bKrE8cVL8y+EXSPKksI3xB0HPQVmelQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCx4jiRUxXd4IJ6QhXhA6apfZ0BIJVaKufEB0uTUJ6xYAIgHBBeVkdPcQtrH5dg0LynZcYpJFDRwgWWFGA6oDqbuLc="}]},"directories":{}},"1.0.3":{"name":"sinon-chrome","version":"1.0.3","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","code":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","babel":"babel ./src --out-dir ./out","webpack":"webpack","build":"npm run clean && npm run babel && npm run webpack","prepublish":"npm run code && npm run test && npm run build"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","jscs":"^2.5.1","mocha":"^2.3.3","webpack":"^1.12.4"},"gitHead":"07bd6fdff397fe064188c3766dc39a18e4e7b680","_id":"sinon-chrome@1.0.3","_shasum":"71db93cdfa25c4962f83fed98631d4cfec3275e3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.1.2","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"71db93cdfa25c4962f83fed98631d4cfec3275e3","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.3.tgz","integrity":"sha512-QUeQaSx+NeJaXQPlIwOw9eObqWSpCYdbsYSJ7TizRaiQYmFw6IEPfCqOKD5Z3ime7Zpke/RdGTgB9sjcTvNC8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlKlDp5i4LQXdMuRlxZ+j37kKYvXSJ3hu8WEC6XC/SZgIgBRI4C0zrF8hlOf0uUy+gSqvikSupv+d4fcyGEanJvbc="}]},"directories":{}},"1.0.4":{"name":"sinon-chrome","version":"1.0.4","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","code":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","babel":"babel ./src --out-dir ./out","webpack":"webpack","build":"npm run clean && npm run babel && npm run webpack","prepublish":"npm run code && npm run test && npm run build"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","jscs":"^2.5.1","mocha":"^2.3.3","webpack":"^1.12.4"},"gitHead":"4c496afdcf147992c0a25a1fdc836e5eb0529f50","_id":"sinon-chrome@1.0.4","_shasum":"6a0aab9f679cfca8affa69e16111b7d2a2e65093","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.1.2","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"6a0aab9f679cfca8affa69e16111b7d2a2e65093","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.4.tgz","integrity":"sha512-7E2mmNe3U/ivCKWntYe4QdYsdEHnW8flIFCB0FqIZcCWeDHHARU9EkAAyXCCREq+NsAwd2gY3zd4/+ycc/KQ7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCiiUU/N+6VBn9CvOK2W6NInc7Ls6aJfCPgYs+ys8CJwIhANfuVn3Q61m3bLSF68IknFNCGBH57gz8zyPOdnL74jkv"}]},"directories":{}},"1.0.8":{"name":"sinon-chrome","version":"1.0.8","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint":"^1.9.0","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"1199097d0490a3047086ae21ec7998578c4ae797","_id":"sinon-chrome@1.0.8","_shasum":"e7c9e3f244ad4f79f8896a020ea2b9da8d2f3dd8","_from":".","_npmVersion":"1.4.29","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"e7c9e3f244ad4f79f8896a020ea2b9da8d2f3dd8","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.0.8.tgz","integrity":"sha512-w+at0FLo130NeRNVvk5LE5hfhFLsI6CBt386BLsTSWnRXGSG9nAMFvTqfplhVhKYDrz4AA0QzQRqHygMeWebrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDf+pbTem7Kn4N72HS/ah+hunoIB5fl9KX+j2jPag3kXAiBzAvsgTrMvH+lAhQV6V3+kKpk+PLMqd/toEYj+Kg5A2Q=="}]},"directories":{}},"1.1.0":{"name":"sinon-chrome","version":"1.1.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","publish-test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js --reporter mocha-tldr-reporter","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run publish-test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"URIjs":"^1.15.2","lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"eslint":"^1.10.3","babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"7aedca12d6bd43ba0d03053b069d309392f4a284","_id":"sinon-chrome@1.1.0","_shasum":"6b8f1d4e59ef2a569560dde75176a42cc6eedef2","_from":".","_npmVersion":"1.4.29","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"6b8f1d4e59ef2a569560dde75176a42cc6eedef2","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.1.0.tgz","integrity":"sha512-mmOU86nyy1kEbjn1BROgYAGOeWs62WD7U9OqCEXz85ag3NcZy5RiDLKFG9u8gmAPW/+BC2Q0IInXz/4/VllQGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBgd+M6x/VzWM/FjodrZr5BKR/vMxodOl4T3+f0AOHmAIgGjdAmf/WuuGqsYSi+oTdatQob+DnRN6AC89KKlhc/50="}]},"directories":{}},"1.1.1":{"name":"sinon-chrome","version":"1.1.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","publish-test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js --reporter mocha-tldr-reporter","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run publish-test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"URIjs":"^1.15.2","lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"eslint":"^1.10.3","babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"24d2993b19e4ae84f1c7f26724681fe71eae74cd","_id":"sinon-chrome@1.1.1","_shasum":"1431243b30bc714f9ee849c661ef40fb77b0de21","_from":".","_npmVersion":"1.4.29","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"1431243b30bc714f9ee849c661ef40fb77b0de21","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.1.1.tgz","integrity":"sha512-0Qu+N3na5QZQAyuHFOGB0+hDmBG+/Pf6s7dOX3ARVv7JzlUjYzCBqr7r+gOuMoUZdpydM1RQpu+UsN5gKgZnoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDA8RyluuUNzP0W2CtI3T5PTuRDRSSiHvb5M4WxXnULzAiEAtGbUmb+2H0jTnpYbFF80x/CEqLmqc960B9+HVR0OMAs="}]},"directories":{}},"1.1.2":{"name":"sinon-chrome","version":"1.1.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","publish-test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js --reporter mocha-tldr-reporter","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run publish-test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"URIjs":"^1.15.2","lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"eslint":"^1.10.3","babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"c5e308fe6b4e8a6822822b0045d4d8eee0df7082","_id":"sinon-chrome@1.1.2","_shasum":"8ae6f388cddb260c206f870006d61fea6afa7643","_from":".","_npmVersion":"1.4.29","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"8ae6f388cddb260c206f870006d61fea6afa7643","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.1.2.tgz","integrity":"sha512-lnhuHsnERDuu6hAcXGDmqXMKdbrtUt71YPAEudX9mH/QcCWjS5x8ZKrZtUFmpfL+56OaZqkrBWLg/e2z/T1Jzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVFtk6Ufmw96C4MFn4vQyBkElGoDgA04J/TGEMDadaKAIgWdaYq+/QcYtKmgsuYuRnjY3L/EkrEXqpRXY9I5GADwk="}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-1.1.2.tgz_1455541556888_0.7235036401543766"},"directories":{}},"1.1.3":{"name":"sinon-chrome","version":"1.1.3","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","publish-test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js --reporter mocha-tldr-reporter","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run publish-test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"urijs":"^1.16.1","lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"eslint":"^1.10.3","babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"993fe1412d5100ff2e92f72de2322f7c7e8efe80","_id":"sinon-chrome@1.1.3","_shasum":"9e4e3cb658c7afa83a462043658899c65e7c90e1","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"9e4e3cb658c7afa83a462043658899c65e7c90e1","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.1.3.tgz","integrity":"sha512-xgf/SamTfSDVYWx/pcPh0pGoZCSDruRWmWeZ3YFignLDn7jD6sKsL44U63AGBOhu0baFNVQz+5i7piqzIzOAhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAMZfyZzR2s4LQ0GTvRs5tp4OJU9YyqN6+8oFZYYtY+VAiAKe0k+wy4gcSoghn6pmZYVCoJjS21Y/EmHVzvD5hmiww=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sinon-chrome-1.1.3.tgz_1471432061574_0.624726738082245"},"directories":{}},"1.2.0":{"name":"sinon-chrome","version":"1.2.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test && jscs ./src ./test","test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js","publish-test":"mocha --recursive --compilers js:babel/register --require ./test/setup.js --reporter mocha-tldr-reporter","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepublish":"npm run lint && npm run publish-test && npm run build","coverage":"isparta cover _mocha -- --require babel/register --require ./test/setup.js --recursive -R mocha-lcov-reporter","precoveralls":"npm run coverage","coveralls":"coveralls < coverage/lcov.info","bundle":"webpack"},"license":"ISC","dependencies":{"urijs":"^1.16.1","lodash":"^3.10.1","sinon":"^1.17.2"},"devDependencies":{"eslint":"^1.10.3","babel":"^5.8.34","babel-core":"^5.8.34","babel-loader":"^5.3.3","chai":"^3.4.1","coveralls":"^2.11.6","eslint-config-airbnb":"^1.0.0","eslint-plugin-react":"^3.8.0","isparta":"^4.0.0","jscs":"^2.5.1","mocha":"^2.3.3","mocha-lcov-reporter":"^1.0.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.12.4"},"gitHead":"232224588e3dd1cd732fd4f956eceba45acdc3b8","_id":"sinon-chrome@1.2.0","_shasum":"09ab7fbb67c044798766b0d04b99585649d64bdb","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"09ab7fbb67c044798766b0d04b99585649d64bdb","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-1.2.0.tgz","integrity":"sha512-ihL/GNxFRVDZBiuwIvXA6rvU8NKhx1qc+vsZ433fZ9jPm96jsds6jhr0SnCkJpzhhyJzQr7ftYG2Ov6O8KriFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHp2Qv44jckEoB6uqGP5WNpd6t9P+m4R6D4ipQux4CTAAiEA/ULfuTbTZI4+uStfe3fSI3iCUUxL9HHN+F21CDg6skM="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sinon-chrome-1.2.0.tgz_1472035209794_0.33305749553255737"},"directories":{}},"2.0.0":{"name":"sinon-chrome","version":"2.0.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/ && rm -rf ./coverage/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack","prepub":"npm run lint && npm test && npm run build && npm run copy2lib","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2lib":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json"},"license":"ISC","dependencies":{"chai-as-promised":"^6.0.0","lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.0.0","_shasum":"26f7e925cff41aaf6f0f35fdc5df67fbf2e30415","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"26f7e925cff41aaf6f0f35fdc5df67fbf2e30415","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.0.0.tgz","integrity":"sha512-FQqY9lkB8BgQelXW4bsG1/bqzIEdEiYsPTW0t8x6LayNtyso2Q7JpZXPlI7piU+lIJPGYT14M+m8/p/fvHR5Vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4BBOxYRdQ9bXEKHVWnePZ9h2nQFxMoNwkLlFT2Uo75AiAW2v16YedoQiQ3dh4NPEGUNTO5MIEseb758DBujBhlng=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.0.0.tgz_1475765841808_0.3761646915227175"},"directories":{}},"2.0.1":{"name":"sinon-chrome","version":"2.0.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","prepub":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json"},"license":"ISC","dependencies":{"chai-as-promised":"^6.0.0","lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.0.1","_shasum":"f1f923cccd6c5e3d9095643b6e13f7dccca281ae","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"f1f923cccd6c5e3d9095643b6e13f7dccca281ae","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.0.1.tgz","integrity":"sha512-kBzAvcEPUGJxh8wKgl+TqLX8R7DpDtEqj8me3yslFK2K+0qzq7lBmmkqat8MzwiOpEH4eE09cv3usSQFdXE2pQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5gzxyEvCweSql0YpbY6hnMcBA5f3zjfaW/sdzqfFzKQIgYojg48OCGv6Qeu/WkqJwvwxe1fDsSI/wol1Dth+lWGk="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.0.1.tgz_1475766617856_0.3993626821320504"},"directories":{}},"2.0.2":{"name":"sinon-chrome","version":"2.0.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","prepublish":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json"},"license":"ISC","dependencies":{"chai-as-promised":"^6.0.0","lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"gitHead":"84b5743d4e828132382f155491d9c2babc67e99e","_id":"sinon-chrome@2.0.2","_shasum":"ae2ae2e9f279e23c59717233f07ac5aab98fb3ba","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"ae2ae2e9f279e23c59717233f07ac5aab98fb3ba","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.0.2.tgz","integrity":"sha512-dSOEJWlM+CWIXap63gkAGgCyBGnaEit34ILjLlVH4j6XVqzjGd+JFxrj8Yi/3JQGnsTmzwqGSS7XzLcjBuG0lw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5kQ1y15v8X4V/2uD5Sm1foFgvX/Lwtjmn9CtYL0z/FwIgDLMU4MUBZ9anetEiJL38xPyaGnk04PcwaoNQRd+Ka4w="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.0.2.tgz_1475767319440_0.9564561655279249"},"directories":{}},"2.0.3":{"name":"sinon-chrome","version":"2.0.3","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json"},"license":"ISC","dependencies":{"chai-as-promised":"^6.0.0","lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.0.3","_shasum":"a06adcbce67d60b61ac216d6290faa230a5b9236","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"a06adcbce67d60b61ac216d6290faa230a5b9236","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.0.3.tgz","integrity":"sha512-021CSLY62evihYuY11lf8SlEqJlm9MzaiGFpA5pfHZijxkM2bid1loBNawbNocCLi6i1igqsHHMpiAaivsN47g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNWlf2p4b7HboxqjPROywWknQaaJ0zFNpwKRSsVWQ6vwIgEXk72Sk81wu83QIHy3ZuvIg0YqPviUdLQ7bw0egH1kk="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.0.3.tgz_1475767596645_0.5347726179752499"},"directories":{}},"2.1.0":{"name":"sinon-chrome","version":"2.1.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"chai-as-promised":"^6.0.0","lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.1.0","_shasum":"c5f20eb25e28fd52bf464c538738d78a90cfe583","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"c5f20eb25e28fd52bf464c538738d78a90cfe583","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.1.0.tgz","integrity":"sha512-Jkk4TKqpxLdOu0z7OBtc+0CQ3HjSjbKE2lhuYO9maSPqImrFYD0UFEeJ/90152JQgWIlQWlXQOFUBk6uVx86RQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCURfZ63stt8U57fTXpNDTzENAq8GYDh9PspNpgt2tbUwIgULk3oq3UkjcNTgc3BvNKJlgWIRQP7acbusPyB0iAMWM="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.1.0.tgz_1476259377335_0.22327019041404128"},"directories":{}},"2.1.2":{"name":"sinon-chrome","version":"2.1.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.1.2","_shasum":"04884a166dbc3c09db0daec38004dd237f6dd74e","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"04884a166dbc3c09db0daec38004dd237f6dd74e","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.1.2.tgz","integrity":"sha512-SmMqbpmv1Jq9WXnVvS2MRKt8SU0b4ehQiK5O/Go4mfs+1YRw2t6XCLedTZaKNU2tHJ++gW18vYO2GzWRfNW8KQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI16TfeEfQSkpFSHOLYOGqIQ5fpm0D8rYcLFMnxkHLDgIhAOTSEr7K9blw2Y8Oz63gpgMmJO0whdezPJ70J8yGwAGD"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.1.2.tgz_1476776801109_0.19443538505584002"},"directories":{}},"2.1.3":{"name":"sinon-chrome","version":"2.1.3","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^1.17.6","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.1.3","_shasum":"c130d395fe4cc716d878a0886a322fe7455cccc0","_from":"out","_resolved":"file:out","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"acvetkov","email":"aleksey.dmitrich@gmail.com"},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"dist":{"shasum":"c130d395fe4cc716d878a0886a322fe7455cccc0","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.1.3.tgz","integrity":"sha512-4WfCYryOvg1CCBbik3ca/5RcRMOeodaDxsKXbBMmHcGc0zF309vgyVMZFU3szBK7ArFe/TrUbfwFD2qjKQyJ8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpMDf9zUdvWvVIw3TTY8Vq1tf5MOpDfpLQlA5nZUUikwIhAJUOP88yyV0htVtTtUF08Fb6bTlsrACdKpTJe2IvU/pR"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.1.3.tgz_1485259482355_0.32222434994764626"},"directories":{}},"2.2.0":{"name":"sinon-chrome","version":"2.2.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^2.1.0","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.2.0","_shasum":"4fc06762621ff11275a3d9a637a6e5e8baa745dc","_from":"out","_resolved":"file:out","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"4fc06762621ff11275a3d9a637a6e5e8baa745dc","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.0.tgz","integrity":"sha512-lgwpv2NCVjEzPUZCI1D/hS47eFW+jID8QFjWQK2Snxib3oOj9i3xN33Tf57oUw2bYMVAm0fRtuWtANXOW3JhNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3f6zpZIykump32dsvE13t9ZOV0qt4XL3n6oClsCFDjAiEA/T7zzdtWbckaks/dIatdjXLqzXbVMJ+XXOj/qMgevi4="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.2.0.tgz_1492424130040_0.7238124080467969"},"directories":{}},"2.2.1":{"name":"sinon-chrome","version":"2.2.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^2.1.0","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.2.1","_shasum":"e02d4709d4e8b2d8582da1612961fa7fa44ce28f","_from":"out","_resolved":"file:out","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"e02d4709d4e8b2d8582da1612961fa7fa44ce28f","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.1.tgz","integrity":"sha512-udy69t9CVQVXtj/pZcGiuLCuO3eCgU7MpqY0Gs/1hpSncIRYyKJw6Li3NlGkKdLfW1r96+DQ0nEnMhFN+61vHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3Fo4q11sPdG27f6gCkPxpZLk6YMR0ALfUGs+Ghai4CAiAschGavbuodT1w0MaFzmS5clEvRNXLhum/CteKEiUFHg=="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sinon-chrome-2.2.1.tgz_1493383993548_0.5887808613479137"},"directories":{}},"2.2.2":{"name":"sinon-chrome","version":"2.2.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^2.1.0","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"gitHead":"362a0744be3f576d2d68a0afe698ecb8f335aece","_id":"sinon-chrome@2.2.2","_shasum":"492855fd8a05d04b1e3c18991a23173415293089","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"492855fd8a05d04b1e3c18991a23173415293089","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.2.tgz","integrity":"sha512-eV1anYDLOsN2gvQBnCzEPHL1i7WLE7y17+GwDyru6C4wkqvP94eFnDDIZnid4sovj3TQjLkVXvlkWzAPwAie2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8xKNoECqKt7nmICsny9+n39EyK6j1O5/Xi1j16vnL/wIhAJx4BBP6DXUcJ7X/sqaabiDRsuejoi53wec66OJXwNvh"}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome-2.2.2.tgz_1516011628448_0.24011682602576911"},"directories":{}},"2.2.3":{"name":"sinon-chrome","version":"2.2.3","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"out/index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^2.1.0","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"gitHead":"739b9fd147156d9de041b8f86bd9723864dc8f7e","_id":"sinon-chrome@2.2.3","_shasum":"192dee058cb568d4af4b3ca3906d09f1eeda2f91","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"192dee058cb568d4af4b3ca3906d09f1eeda2f91","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.3.tgz","integrity":"sha512-hTtcUmcmUzwba4XkONuj59Y1WCrXoXPH8vob//tXrJAGcPQ/JY7TdtVQYR340wd+yGWzI+benSU9hHxSMcKAqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDP9MeSLTRnebhtc8NrMeee5+rn0WTj7/AJphh8HCrKSQIhAMK6l/KLwuYBGNKmPL/algt/2/6E8qlLoBY+2PCaOs+a"}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome-2.2.3.tgz_1516208734564_0.7361895353533328"},"directories":{}},"2.2.4":{"name":"sinon-chrome","version":"2.2.4","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./README.md ./out/README.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^2.1.0","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.2.4","_shasum":"d1eeb079810230bda8360ffaf6458023c265d096","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"d1eeb079810230bda8360ffaf6458023c265d096","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.2.4.tgz","integrity":"sha512-WQ371t2NDKSO561DcqVNkv2aPtVJKgiDN99jc2tpHem08radjs9oRvvEjeUJuX17B6kk8ErU+WcaJPFmlUYK2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7QGNqTdl5JE6dymzpPmMnsILycKYR1C8EzQuaxjBl5AiEAoyf505WHguQa1bsUNrqRn8wThl0mRvARB0Um9O/CXZs="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome-2.2.4.tgz_1516264713291_0.6741950726136565"},"directories":{}},"2.3.0":{"name":"sinon-chrome","version":"2.3.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./readme.md ./out/readme.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^4.4.2","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.3.0","_shasum":"d15f141bff37933072217145386a5f999fdf7231","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"d15f141bff37933072217145386a5f999fdf7231","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.3.0.tgz","fileCount":31,"unpackedSize":4652413,"integrity":"sha512-20cOl8m5+7IzOvBDASCtBYxkZjuoeXz9gEuzhgZZlRvwLkKRK3x0EaT0ETqsLA8IzBCYErLEedHbmCIqxIZp3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC19XqMQAl+/Mwu0NKq8qGEjuI7eUxOYCI1/IyhYprlHgIhAIbbbtaZHHGvVIxc1PIkjC0MeyvECS2HKmgN6zomzkqC"}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome_2.3.0_1519895588757_0.47546716971590874"},"_hasShrinkwrap":false},"2.3.1":{"name":"sinon-chrome","version":"2.3.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./readme.md ./out/readme.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^4.4.2","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.3.1","_shasum":"40138f4b6d5a10f211f5faf086cd9e8879338426","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"40138f4b6d5a10f211f5faf086cd9e8879338426","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.3.1.tgz","fileCount":31,"unpackedSize":4652892,"integrity":"sha512-n9AVPtZrpcvdIOu/XDWuxgjRy5CiJ4xKR31ect8n2RqgFpzz63N8yWIjImTqZ/9c6+BRCjAX3PiBtOeatBq2ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGe6/fkf5EjwomFEINeIwGlZ69xIu0tUSAu84PDsRiCpAiEAhFioj/fmxvLWTTArYCqFkVEA8kf75NBwaEg6HN0gG+E="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome_2.3.1_1520246132255_0.23058193850974873"},"_hasShrinkwrap":false},"2.3.2":{"name":"sinon-chrome","version":"2.3.2","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./readme.md ./out/readme.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^4.4.2","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@2.3.2","_shasum":"0e4253bd1eceaffa57e2164bc817c2c7b4ef3912","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"0e4253bd1eceaffa57e2164bc817c2c7b4ef3912","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-2.3.2.tgz","fileCount":31,"unpackedSize":4653558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9YhoCRA9TVsSAnZWagAA6RAP/1QMMpVmzaSB52Yw3e2q\nTOMTvp0CHHx1LY/2j6Nmj5MoUhqZnxwuDKXJznS+MZz4HZMzBjf/DG2vo1eB\n4PGJuNi0xtFIoMUggt3hXCGqtaimuuQtL9f7vjD8NeYKBIUc2bllwm2Hs0SU\n+CrdZZHEh0b5EA2bxwHOHLJBfQqKfnpdWnSZEzUlCBfIOx9olix7+E70Q9dU\nunyqMimstplB+NnCT6OZMBMBbHW16Nt3P4jVN4B1iL18JePQRT8YaTRC8tFo\ngHC95364vUYZHUSfq6Bo7gqrUh6dlinE1iEDGfkBUZ49sZyJoHGR1R8BkHP7\nUGuKDp8ayFIJgNswy6NdgihH6CqNmZpDcp28M4z9EIF9y6dooiaXoAzTdeFA\nSee9xWVRKNfiWu7yDPIMTehy5OxMPeyfsvqzyoqd4gzgYQAbnxAZ7oryBTRp\nuJKu9yNAOtdwoeyKqbUDbIbfq0rHUPkzP67mLVJuuYJyX5n1M8OGSC64qY/O\nrcMDHFiyTcW9wducdRLBQVUOv28f9sjxeBZUxc1MHF0F9LEFwOb2OKz1uUV7\nUJcMMUK8Fu5RdkypLylGLSyyexcAlazw1sfIsxa3IktWa2MZkpZplzqK0Rmw\n98qlnC7jmaAUBiiNYEOmFqOISLUOiivYITQZ5glVa+uUmajouvzzSc+u7KZ4\nLbIF\r\n=8S2c\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-RKF1X1tMxMZeEA8MLQZ4yozIKiQEpPlruyc7CX5JzSY4vvppaRjHNTfPZv79fUmxKPkyglKbnL2gM5vDcF34Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFm7181xtCqZqX1OG9FkV2pJSU4YvkBLLqs2asL+NYviAiA2mC3ALPIzfMptll7j1o12L+B0+RyznvHBt32pbSIXCQ=="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome_2.3.2_1526040678814_0.5111478277906145"},"_hasShrinkwrap":false},"3.0.0":{"name":"sinon-chrome","version":"3.0.0","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./readme.md ./out/readme.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^7.2.3","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@3.0.0","_shasum":"75ff034ce7ec5e0e10431c73c8d016e196c13c37","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"75ff034ce7ec5e0e10431c73c8d016e196c13c37","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-3.0.0.tgz","integrity":"sha512-XZ/jTMbzB9TvBToHWJePtWzX6ChacBqCdzdf7QSGoGSrzcPD132c3U4ZMWuqQTw7HW1xeeCQWUEUIBep7xdnzA==","fileCount":31,"unpackedSize":4987839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmzIiCRA9TVsSAnZWagAAYNgP/21HdlYzwTNVz48ECuTS\ndgxihTR23K4wUwOqtrVr0vBnBo6CF3GFoWWSrRpVtHMhvpWUsN2luyz0P3kg\ntW0bRlc4YgojBakIOEOFnP93VaBj8kxa5fPDpPOt94Zk1cEl9l1wRhn7bV4S\nSYtCw8ILyHKbMJVJBNU3V5DgyjM7Gk3+CR7VkYn/K2m8y620uEoDN4cZXWP6\ntlzNoSDzQLembiDqVzu+XfELxlwViETmEKEjtw6W9AXo6LA+EykILZ3BDTQn\niFXF0Y+m/Sg+ocF1vHZFCwCDq1FHVw0+Lv0zMY/Ei0Lvjqnv8PiK/Wf55nBJ\nztnEAp7BuFsp+HkOFBfWWIntG5p/jDS7dx5BQUlfMm5sLp7hqgh8Ulnq1kFO\nSl52Ux3ISUOxchpdJ+yLB2cJhXscYK6Ajd4pRKM64WdqtjkiRlPt6YK/1lmT\nysh5Mzu67a0Uiy8gde3SahDWFtg/zmpSSAf6PBdk8CHXeKLm2j1alSU2j9/Z\nP6mqq272/ak7TZpEkX99zLydM2jM+3Ki8KDdfK5M7Iepem+QlkLPMdyCbTxT\nEY3UsML0CCJzJZ/xY1zeKw/8A9PcbOASDFiuyT6pj1qBlw2wFHqTCMmfqR/f\ni0FjTPhHg+gId7EDBsWBeXxDQbWKrIcpdRgg1atKibaze7U/CbsHfTLPThZ9\nefS5\r\n=s/FL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAmhaC8ftr2zTfjOa7rHABBwxBznJsE4M02cqI7fUbxLAiBPL6I4W58GNuJd2wHUJ4S2gnMNeIJ1f248Rtbc3zxGqQ=="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome_3.0.0_1553674786054_0.05561166664094741"},"_hasShrinkwrap":false},"3.0.1":{"name":"sinon-chrome","version":"3.0.1","description":"Mock of chrome extensions API for unit testing under nodejs","homepage":"https://github.com/acvetkov/sinon-chrome","author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"],"main":"index.js","scripts":{"clean":"rm -rf ./out/","lint":"eslint ./src ./test","test":"mocha --recursive --compilers js:babel-register --require ./test/setup.js","test-navigate":"mocha --compilers js:babel-register examples/navigate.test.js","test-events":"mocha --compilers js:babel-register examples/events.test.js","test-then":"mocha --compilers js:babel-register examples/then-chrome.test.js","transpile":"babel ./src --out-dir ./out","build":"npm run clean && npm run transpile && webpack && cp -R ./src/config out/config","predeploy":"npm run clean && npm run lint && npm test && npm run build && npm run copy2out","bundle":"webpack","bundle-dev":"webpack --watch --progress","copy2out":"cp ./readme.md ./out/readme.md && cp ./package.json ./out/package.json && cp -R ./dist out/bundle"},"license":"ISC","dependencies":{"lodash":"^4.16.3","sinon":"^7.2.3","urijs":"^1.18.2"},"devDependencies":{"babel-cli":"^6.16.0","babel-core":"^6.17.0","babel-eslint":"^7.0.0","babel-loader":"^6.2.5","babel-plugin-add-module-exports":"^0.2.1","babel-preset-es2015":"^6.16.0","babel-register":"^6.16.3","chai":"^3.5.0","chai-as-promised":"^6.0.0","eslint":"^3.7.1","eslint-plugin-import":"^2.0.0","json-loader":"^0.5.4","mocha":"^3.1.0","mocha-lcov-reporter":"^1.2.0","mocha-tldr-reporter":"^1.0.0","webpack":"^1.13.2"},"_id":"sinon-chrome@3.0.1","_shasum":"9fb14c230fa0959cb280f9f589e9eda8ccfda1d9","_from":"out","_resolved":"file:out","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"acvetkov","email":"antondenikin@gmail.com"},"dist":{"shasum":"9fb14c230fa0959cb280f9f589e9eda8ccfda1d9","tarball":"https://registry.npmjs.org/sinon-chrome/-/sinon-chrome-3.0.1.tgz","integrity":"sha512-NTEFhyuiWEMnRmIqldUiA2DhKn2EqnZxyEk5Ez5rBXj+Nl54aJ0MEmF4wjltrxecxd8zlNLxyE0HyLabev9JsQ==","fileCount":31,"unpackedSize":4988033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcohwICRA9TVsSAnZWagAAuZQP/3Z8k4WqNLmULxAJpZPQ\nWkbmB5+3znAFmtsWM3+tB0htKXkK4uavcsoU7AoKJhH3s2iM8KxGpC+xAmYS\n1cl3lzTwhrbxdOuuAnQRMpwNLkeb+95qW0a0xtun3z+dHLEELPHCGeHgbV0j\nLTt7+llJI6nBvkLoxF2ibFl1gNyAvH/Aa3LgTjKxJhfuCn385ssLU0pP2wa0\nm38YmTR6OUwhkgyDMrzeM4Q5boKwSCLMqQLXzkGpk4ZNsO6xTeNLpXeYbv31\nria2rY6lhiVgmJKSJmePkmny4DofS6W6pHekF59Ge2nE2Whosun0a+8C1s6d\nAgXAaLIpqBZJKXTkIAai/gZEFWNL803cDTDZydKHmCOU5R2HSnoAf4Dwfy2F\nL8Ply/k4QHxid6KJAOjUwm6IiTQVCVU3mU/5kx0gH+qu4nGmZ/8lWAqiOv6V\nA4QH0S2iO8KYBOW+ZgX2WjcrVFYcDAsJD5OvL0Cu7x9O3o2CDQbYpXWFqqVs\nlOudAzUoH+kv9oveM3yiDSHSyiFY8l8lIfYMH4PlwyW5O5aKMhlCF0G0x/aZ\nvpYwGDouuyIh8RWqtSLbSdBH47PMx/naNgKM+APPZfWGgppRn3/FiL0IO9x1\nAQOsYFq6ZiBmEJCr5zz5aVysfkYFADOSm85VkZ/NpITGa2YfCtW3InOmvBx6\n3hWq\r\n=wTTi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEO0i+tXxPEFw96j5Ioei5vQTd8nDEs33F7Qr3DzMYpPAiEAtNDe58fmm1+Q31lZa4t12wZPQ5/Xc2FWD/DScDicoCg="}]},"maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sinon-chrome_3.0.1_1554127879654_0.38947920728594454"},"_hasShrinkwrap":false}},"readme":"[![Build Status](https://travis-ci.org/acvetkov/sinon-chrome.svg?branch=master)](https://travis-ci.org/acvetkov/sinon-chrome)\n[![npm version](https://badge.fury.io/js/sinon-chrome.svg)](https://www.npmjs.com/package/sinon-chrome)\n\n# Sinon-chrome\n\nSinon-chrome is helper tool for unit-testing chromium and Firefox extensions and apps. It mocks all extensions api with sinon stubs that allows you to run tests in Node.js without actual browser.\n\n# Schema support\nAPI mocks are generated using official chromium extensions API (Firefox webextensions) schemas that ensures consistency with real API. Actual schemas are taken from Chrome 53 and Firefox 49.\n\n# How it works\n\nSinon-chrome mocks all chrome api, replaced methods by [sinon stubs](http://sinonjs.org/docs/#stubs) with some sugar.\nChrome events replaced by classes with same behavior, so you can test your event handlers with manual triggering chrome events.\nAll properties has values from chrome schema files.\n\n\n# Install\n\nWe recommend use `sinon-chrome` on Node.js platform.\n\n```\nnpm install sinon-chrome --save-dev\n```\n\nBut, if you want...\n\nYou can download `sinon-chrome` bundle from [release](https://github.com/acvetkov/sinon-chrome/releases) page and include it on your page\n\n```html\n<script src=\"/path/to/sinon-chrome.min.js\">\n```\n\nor\n\n```html\n<script src=\"/path/to/sinon-chrome-apps.min.js\">\n```\n\n# Usage\n\nFor mock extensions Api\n\n```js\nconst chrome = require('sinon-chrome');\n\n// or\n\nconst chrome = require('sinon-chrome/extensions');\n```\n\nFor mock apps Api\n\n```js\nconst chrome = require('sinon-chrome/apps'); // stable apps api\n```\n\n# Examples\n\nLet's write small navigation helper, which use chrome api methods.\n\n```js\nexport const navigationTarget = {\n    NEW_WINDOW: 'new-window',\n    NEW_TAB: 'new-tab',\n    CURRENT_TAB: 'current-tab',\n};\n\n/**\n * Navigate user\n * @param {String} url\n * @param {String} [target]\n * @returns {*}\n */\nexport function navigate(url, target = navigationTarget.NEW_TAB) {\n    switch (target) {\n        case navigationTarget.NEW_WINDOW:\n            return chrome.windows.create({url: url, focused: true, type: 'normal'});\n        case navigationTarget.CURRENT_TAB:\n            return chrome.tabs.update({url: url, active: true});\n        default:\n            return chrome.tabs.create({url: url, active: true});\n    }\n}\n```\n\nTest it\n\n```js\nimport chrome from '../src'; // from 'sinon-chrome'\nimport {assert} from 'chai';\nimport {navigate, navigationTarget} from './navigate';\n\ndescribe('navigate.js', function () {\n\n    const url = 'http://my-domain.com';\n\n    before(function () {\n        global.chrome = chrome;\n    });\n\n    it('should navigate to new window', function () {\n        assert.ok(chrome.windows.create.notCalled, 'windows.create should not be called');\n        navigate(url, navigationTarget.NEW_WINDOW);\n        assert.ok(chrome.windows.create.calledOnce, 'windows.create should be called');\n        assert.ok(\n            chrome.windows.create.withArgs({url, focused: true, type: 'normal'}).calledOnce,\n            'windows.create should be called with specified args'\n        );\n    });\n});\n```\n\nYou can run this example by command\n\n```\nnpm run test-navigate\n```\n\nMore tests in `examples` dir.\n\n\n## stubs api\n\nWith original sinon stubs [api](http://sinonjs.org/docs/#stubs) we add `flush` method, which reset stub behavior.\nSinon stub has same method `resetBehavior`, but it has some issues.\n\n**Example**\n\n```js\nchrome.cookie.getAll.withArgs({name: 'my_cookie'}).yields([1, 2]);\nchrome.cookie.getAll.withArgs({}).yields([3, 4]);\n\nchrome.cookie.getAll({}, list => console.log(list)); // [3, 4]\nchrome.cookie.getAll({name: 'my_cookie'}, list => console.log(list)); // [1, 2]\nchrome.cookie.getAll.flush();\nchrome.cookie.getAll({name: 'my_cookie'}, list => console.log(list)); // not called\nchrome.cookie.getAll({}, list => console.log(list)); // not called\n```\n\n### events\n\nLet's write module, which depends on chrome events\n\n```js\nexport default class EventsModule {\n    constructor() {\n        this.observe();\n    }\n\n    observe() {\n        chrome.tabs.onUpdated.addListener(tab => this.handleEvent(tab));\n    }\n\n    handleEvent(tab) {\n        chrome.runtime.sendMessage(tab.url);\n    }\n}\n```\n\nAnd test it\n\n```js\nimport chrome from '../src'; // from 'sinon-chrome'\nimport {assert} from 'chai';\nimport EventsModule from './events';\n\ndescribe('events.js', function () {\n\n    before(function () {\n        global.chrome = chrome;\n        this.events = new EventsModule();\n    });\n\n    beforeEach(function () {\n        chrome.runtime.sendMessage.flush();\n    });\n\n    it('should subscribe on chrome.tabs.onUpdated', function () {\n        assert.ok(chrome.tabs.onUpdated.addListener.calledOnce);\n    });\n\n    it('should send correct url on tabs updated event', function () {\n        assert.ok(chrome.runtime.sendMessage.notCalled);\n        chrome.tabs.onUpdated.dispatch({url: 'my-url'});\n        assert.ok(chrome.runtime.sendMessage.calledOnce);\n        assert.ok(chrome.runtime.sendMessage.withArgs('my-url').calledOnce);\n    });\n\n    after(function () {\n        chrome.flush();\n        delete global.chrome;\n    });\n});\n```\n\nYou can run this test via\n\n```\nnpm run test-events\n```\n\n### properties\n\nYou can set property values. `chrome.flush` reset properties to default values (`null` or specified by schema).\nLet's create module, which wraps chrome api with Promise. If `chrome.runtime.lastError` is set, promise will be rejected.\n\n```js\nexport const api = {\n    tabs: {\n        /**\n         * Wrapper for chrome.tabs.query\n         * @param {Object} criteria\n         * @returns {Promise}\n         */\n        query(criteria) {\n            return new Promise((resolve, reject) => {\n                chrome.tabs.query(criteria, tabs => {\n                    if (chrome.runtime.lastError) {\n                        reject(chrome.runtime.lastError);\n                    } else {\n                        resolve(tabs);\n                    }\n                });\n            });\n        }\n    }\n};\n```\n\nAnd our tests\n\n```js\nimport chrome from '../src'; // from 'sinon-chrome'\nimport chai from 'chai';\nimport {api} from './then-chrome';\nimport chaiAsPromised from 'chai-as-promised';\n\nchai.use(chaiAsPromised);\nconst assert = chai.assert;\n\ndescribe('then-chrome.js', function () {\n\n    before(function () {\n        global.chrome = chrome;\n    });\n\n    beforeEach(function () {\n        chrome.flush();\n    });\n\n    it('should reject promise', function () {\n        chrome.tabs.query.yields([1, 2]);\n        chrome.runtime.lastError = {message: 'Error'};\n        return assert.isRejected(api.tabs.query({}));\n    });\n\n    it('should resolve promise', function () {\n        chrome.runtime.lastError = null;\n        chrome.tabs.query.yields([1, 2]);\n        return assert.eventually.deepEqual(api.tabs.query({}), [1, 2]);\n    });\n\n    after(function () {\n        chrome.flush();\n        delete global.chrome;\n    });\n});\n```\n\nYou can run this test via\n\n```\nnpm run test-then\n```\n\n# Plugins\n\nSinon chrome module supports plugins, that emulates browser behavior.\nMore info on [example page](https://github.com/acvetkov/sinon-chrome/wiki/Cookie-plugin).\n\n- [Cookie plugin](https://github.com/acvetkov/sinon-chrome/wiki/Cookie-plugin)\n- [i18n plugin](https://github.com/acvetkov/sinon-chrome/tree/master/src/plugins/i18n)\n\n```js\nconst chrome = require('sinon-chrome/extensions');\nconst CookiePlugin = require('sinon-chrome/plugins').CookiePlugin;\n\nchrome.registerPlugin(new CookiePlugin());\n```\n\n## Extension namespaces\n\n* [chrome.alarms](https://developer.chrome.com/extensions/alarms)\n* [chrome.bookmarks](https://developer.chrome.com/extensions/bookmarks)\n* [chrome.browserAction](https://developer.chrome.com/extensions/browserAction)\n* [chrome.browsingData](https://developer.chrome.com/extensions/browsingData)\n* [chrome.commands](https://developer.chrome.com/extensions/commands)\n* [chrome.contentSettings](https://developer.chrome.com/extensions/contentSettings)\n* [chrome.contextMenus](https://developer.chrome.com/extensions/contextMenus)\n* [chrome.cookies](https://developer.chrome.com/extensions/cookies)\n* [chrome.debugger](https://developer.chrome.com/extensions/debugger)\n* [chrome.declarativeContent](https://developer.chrome.com/extensions/declarativeContent)\n* [chrome.desktopCapture](https://developer.chrome.com/extensions/desktopCapture)\n* [chrome.devtools](https://developer.chrome.com/extensions/devtools)\n* [chrome.dial](https://chromium.googlesource.com/chromium/src.git/+/master/chrome/common/extensions/api/dial.idl) (undocumented API for communication with DIAL-capable devices)\n* [chrome.downloads](https://developer.chrome.com/extensions/downloads)\n* [chrome.extension](https://developer.chrome.com/extensions/extension)\n* [chrome.extensionTypes](https://developer.chrome.com/extensions/extensionTypes)\n* [chrome.fontSettings](https://developer.chrome.com/extensions/fontSettings)\n* [chrome.gcm](https://developer.chrome.com/extensions/gcm)\n* [chrome.history](https://developer.chrome.com/extensions/history)\n* [chrome.i18n](https://developer.chrome.com/extensions/i18n)\n* [chrome.identity](https://developer.chrome.com/extensions/identity)\n* [chrome.idle](https://developer.chrome.com/extensions/idle)\n* [chrome.instanceID](https://developer.chrome.com/extensions/instanceID)\n* [chrome.management](https://developer.chrome.com/extensions/management)\n* [chrome.notifications](https://developer.chrome.com/extensions/notifications)\n* [chrome.omnibox](https://developer.chrome.com/extensions/omnibox)\n* [chrome.pageAction](https://developer.chrome.com/extensions/pageAction)\n* [chrome.pageCapture](https://developer.chrome.com/extensions/pageCapture)\n* [chrome.permissions](https://developer.chrome.com/extensions/permissions)\n* [chrome.power](https://developer.chrome.com/extensions/power)\n* [chrome.printerProvider](https://developer.chrome.com/extensions/printerProvider)\n* [chrome.privacy](https://developer.chrome.com/extensions/privacy)\n* [chrome.proxy](https://developer.chrome.com/extensions/proxy)\n* [chrome.runtime](https://developer.chrome.com/extensions/runtime)\n* [chrome.sessions](https://developer.chrome.com/extensions/sessions)\n* [chrome.storage](https://developer.chrome.com/extensions/storage)\n* [chrome.system](https://developer.chrome.com/extensions/system)\n* [chrome.tabCapture](https://developer.chrome.com/extensions/tabCapture)\n* [chrome.tabs](https://developer.chrome.com/extensions/tabs)\n* [chrome.topSites](https://developer.chrome.com/extensions/topSites)\n* [chrome.tts](https://developer.chrome.com/extensions/tts)\n* [chrome.ttsEngine](https://developer.chrome.com/extensions/ttsEngine)\n* [chrome.types](https://developer.chrome.com/extensions/types)\n* [chrome.webNavigation](https://developer.chrome.com/extensions/webNavigation)\n* [chrome.webRequest](https://developer.chrome.com/extensions/webRequest)\n* [chrome.webstore](https://developer.chrome.com/extensions/webstore)\n* [chrome.windows](https://developer.chrome.com/extensions/windows)\n\n## Apps namespaces\n\n* [chrome.alarms](https://developer.chrome.com/apps/alarms)\n* [chrome.app.runtime](https://developer.chrome.com/apps/app.runtime)\n* [chrome.app.window](https://developer.chrome.com/apps/app_window)\n* [chrome.bluetooth](https://developer.chrome.com/apps/bluetooth)\n* [chrome.bluetoothSocket](https://developer.chrome.com/apps/bluetoothSocket)\n* [chrome.browser](https://developer.chrome.com/apps/browser)\n* [chrome.commands](https://developer.chrome.com/apps/commands)\n* [chrome.contextMenus](https://developer.chrome.com/apps/contextMenus)\n* [chrome.events](https://developer.chrome.com/apps/events)\n* [chrome.extensionTypes](https://developer.chrome.com/apps/extensionTypes)\n* [chrome.fileSystem](https://developer.chrome.com/apps/fileSystem)\n* [chrome.gcm](https://developer.chrome.com/apps/gcm)\n* [chrome.hid](https://developer.chrome.com/apps/hid)\n* [chrome.i18n](https://developer.chrome.com/apps/i18n)\n* [chrome.identity](https://developer.chrome.com/apps/identity)\n* [chrome.idle](https://developer.chrome.com/apps/idle)\n* [chrome.instanceID](https://developer.chrome.com/apps/instanceID)\n* [chrome.mdns](https://developer.chrome.com/apps/mdns)\n* [chrome.mediaGalleries](https://developer.chrome.com/apps/mediaGalleries)\n* [chrome.notifications](https://developer.chrome.com/apps/notifications)\n* [chrome.permissions](https://developer.chrome.com/apps/permissions)\n* [chrome.power](https://developer.chrome.com/apps/power)\n* [chrome.printerProvider](https://developer.chrome.com/apps/printerProvider)\n* [chrome.runtime](https://developer.chrome.com/apps/runtime)\n* [chrome.serial](https://developer.chrome.com/apps/serial)\n* [chrome.socket](https://developer.chrome.com/apps/socket)\n* [chrome.sockets](https://developer.chrome.com/apps/sockets)\n* [chrome.storage](https://developer.chrome.com/apps/storage)\n* [chrome.syncFileSystem](https://developer.chrome.com/apps/syncFileSystem)\n* [chrome.system](https://developer.chrome.com/apps/system)\n* [chrome.tts](https://developer.chrome.com/apps/tts)\n* [chrome.types](https://developer.chrome.com/apps/types)\n* [chrome.usb](https://developer.chrome.com/apps/usb)\n* [chrome.accessibilityFeatures](https://developer.chrome.com/apps/accessibilityFeatures)\n* [chrome.bluetoothLowEnergy](https://developer.chrome.com/apps/bluetoothLowEnergy)\n* [chrome.documentScan](https://developer.chrome.com/apps/documentScan)\n* [chrome.fileSystemProvider](https://developer.chrome.com/apps/fileSystemProvider)\n* [chrome.vpnProvider](https://developer.chrome.com/apps/vpnProvider)\n* [chrome.wallpaper](https://developer.chrome.com/apps/wallpaper)\n\n## Webextensions API\n\n* [browser.alarms](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/alarms)\n* [browser.cookies](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/cookies)\n* [browser.downloads](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/downloads)\n* [browser.events](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/events)\n* [browser.manifest](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/manifest)\n* [browser.extensionTypes](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/extensionTypes)\n* [browser.extension](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/extension)\n* [browser.i18n](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/i18n)\n* [browser.idle](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/idle)\n* [browser.management](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/management)\n* [browser.notifications](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/notifications)\n* [browser.runtime](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime)\n* [browser.storage](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage)\n* [browser.test](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/test)\n* [browser.webNavigation](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webNavigation)\n* [browser.webRequest](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest)\n* [browser.bookmarks](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/bookmarks)\n* [browser.browserAction](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/browserAction)\n* [browser.commands](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/commands)\n* [browser.contextMenusInternal](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenusInternal)\n* [browser.contextMenus](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus)\n* [browser.history](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/history)\n* [browser.pageAction](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/pageAction)\n* [browser.tabs](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs)\n* [browser.windows](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/windows)\n\n# Any questions?\n\nFeel free to [open issue](https://github.com/acvetkov/sinon-chrome/issues).\n\n# Useful resources\n[Awesome Browser Extensions And Apps](https://github.com/vitalets/awesome-browser-extensions-and-apps) - a curated list of awesome resources for building browser extensions and apps.\n","maintainers":[{"name":"acvetkov","email":"antondenikin@gmail.com"},{"name":"vitalets","email":"noginsk@rambler.ru"}],"time":{"modified":"2022-06-26T20:15:15.889Z","created":"2014-11-06T11:43:45.128Z","0.1.0":"2014-11-06T11:43:45.128Z","0.1.1":"2014-11-11T14:52:07.279Z","0.1.2":"2015-06-30T13:50:00.423Z","0.2.0":"2015-07-16T17:35:42.617Z","0.2.1":"2015-07-16T17:41:25.565Z","1.0.0":"2015-11-13T12:54:44.559Z","1.0.1":"2015-11-13T14:15:01.469Z","1.0.2":"2015-11-16T08:56:47.053Z","1.0.3":"2015-12-15T13:05:36.939Z","1.0.4":"2015-12-15T13:42:48.528Z","1.0.8":"2016-01-05T12:33:24.333Z","1.1.0":"2016-01-11T08:13:57.504Z","1.1.1":"2016-01-31T10:35:22.727Z","1.1.2":"2016-02-15T13:06:01.093Z","1.1.3":"2016-08-17T11:07:42.288Z","1.2.0":"2016-08-24T10:40:12.433Z","2.0.0":"2016-10-06T14:57:23.754Z","2.0.1":"2016-10-06T15:10:20.238Z","2.0.2":"2016-10-06T15:22:01.875Z","2.0.3":"2016-10-06T15:26:39.344Z","2.1.0":"2016-10-12T08:02:59.492Z","2.1.2":"2016-10-18T07:46:43.645Z","2.1.3":"2017-01-24T12:04:42.938Z","2.2.0":"2017-04-17T10:15:32.480Z","2.2.1":"2017-04-28T12:53:16.046Z","2.2.2":"2018-01-15T10:20:30.566Z","2.2.3":"2018-01-17T17:05:36.391Z","2.2.4":"2018-01-18T08:38:35.033Z","2.3.0":"2018-03-01T09:13:08.928Z","2.3.1":"2018-03-05T10:35:32.499Z","2.3.2":"2018-05-11T12:11:19.060Z","3.0.0":"2019-03-27T08:19:46.338Z","3.0.1":"2019-04-01T14:11:19.922Z"},"homepage":"https://github.com/acvetkov/sinon-chrome","repository":{"type":"git","url":"git://github.com/acvetkov/sinon-chrome.git"},"author":{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com"},"bugs":{"url":"https://github.com/acvetkov/sinon-chrome/issues"},"readmeFilename":"readme.md","contributors":[{"name":"Aleksey Tsvetkov","email":"aleksey.dmitrich@gmail.com","url":"https://github.com/acvetkov"},{"name":"Vitaly Potapov","email":"noginsk@rambler.ru","url":"https://github.com/vitalets"},{"name":"Sokratis Vidros","email":"sokratis.vidros@gmail.com","url":"https://github.com/SokratisVidros"}],"license":"ISC","users":{"micjamking":true,"sammkj":true,"erikvold":true,"nfrigus":true},"keywords":["chrome","firefox","extensions","apps","test","tdd","webextensions","chrome api","sinon"]}