{"_id":"@commaai/pandajs","_rev":"24-62397f021e116a8e6be20ee8827e2cb8","name":"@commaai/pandajs","dist-tags":{"latest":"0.3.7"},"versions":{"0.1.0":{"name":"@commaai/pandajs","version":"0.1.0","description":"JavaScript interface for communicating with Panda devices.","main":"src/index.js","scripts":{"test":"jest","build":"babel ./src/ --presets es2015,stage-0,flow --ignore '**.test.js','test.js' --out-dir ./lib/","prepublish":"npm run build","jest":"jest","babel":"babel"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-jest":"^22.4.1","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","jest-cli":"^22.4.2"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","is-browser":"^2.0.1","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7"},"gitHead":"6305dfd671ed8b9dbaed0e4f58f52149045b920f","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-DctOnTJ2efD1V5Pf6yE4xG4NBZiVV0uDXljGBl1L/nxjhqobnTK3gEMTzYl1iYYSKIQDpmzA6AXrw0NLlyAsOw==","shasum":"55e7fcb880f22f2f2d814dd2437cddb88f4d69ce","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.0.tgz","fileCount":18,"unpackedSize":182664,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8veYX6dX1WNNyFHCGasO//8RyEWxQRFdNWghwQ2s7HAIhALLReJQ3Wwya12D2N8l1LRHacHxbiMPQRnjKx/UxY0cv"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.0_1521420177591_0.9363707101505687"},"_hasShrinkwrap":false},"0.1.1":{"name":"@commaai/pandajs","version":"0.1.1","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"jest","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepublish":"npm run build","jest":"jest","babel":"babel"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-jest":"^22.4.1","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","jest-cli":"^22.4.2"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","is-browser":"^2.0.1","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7"},"gitHead":"f5b86e1ac3436f470cc7d9b3e2c66e6669da3c7d","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-5ovwn4DuWE2YRLwVTjzgdoG9u3u3zruVDXW0DiyvFiY3Vl8PQ3T2YCmIG9hzFK41N+57gEaaTcVpoSCZ6ibOog==","shasum":"12a3c84d95aa1c5de7d478b8cfefe18b2332026d","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.1.tgz","fileCount":18,"unpackedSize":181502,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH9XGQw1dgBg2jrOFgStbqL52lq1Udg8K/ikjf+JtctwAiBT77GgcxNLS0ERpW3q1Vrwr6d07/7i+vHUoMlC6SMpkw=="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.1_1522697322516_0.37194375172107574"},"_hasShrinkwrap":false},"0.1.2":{"name":"@commaai/pandajs","version":"0.1.2","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"jest","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepublish":"npm run build","jest":"jest","babel":"babel"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-jest":"^22.4.1","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","jest-cli":"^22.4.2"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","is-browser":"^2.0.1","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7"},"gitHead":"080fd8c8244c5b3654cc0a03843bd86bf9907e23","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-tGF9GjRA5BFGs3KhwhTvWRvKz19p5z+2AinHxIyD9vFBfVB23afUo/ossGJsPSy2D7wSzD6TYn0nToa6jzavBg==","shasum":"a21b3b052f512a3ff1c2d404214bcd9b9e13a9a2","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.2.tgz","fileCount":18,"unpackedSize":181529,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDa0HrgTcEvf9hxm3/dh1jyOpIWLZW8bwDQqf87oBhUywIgZF6avT/g+o/qdmf11LxWUfiQNKXP5ZVwKiIr9urA2RU="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.2_1522699382752_0.5438786379147742"},"_hasShrinkwrap":false},"0.1.3":{"name":"@commaai/pandajs","version":"0.1.3","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepublish":"npm run build","jest":"jest","babel":"babel"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"418b4a2d4bb9682001192c1741bea07c2cb3e994","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-y76S8fB/4WhMXd9xak7BMbWYJIQKNLA3WR7C4fjSyX0qakFJAtZ9wFzBp2uWMAuY/RkDdbQRRefF4x3zzEgrTA==","shasum":"4ab431b22bb74196c17777d4cb83483581990277","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.3.tgz","fileCount":23,"unpackedSize":184586,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDWiAQoeqIyCljWwWdeCqhAlAGjTiSiOqJeT/oPJk57IAiEAxDw/mOGwO8yS8UGeO7pePyU2R6hGu/YWPCtMkWGF+R8="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.3_1522777675052_0.9296294883739433"},"_hasShrinkwrap":false},"0.1.4":{"name":"@commaai/pandajs","version":"0.1.4","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"f68dfc61621b4990b84bec307017010461c39f2c","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-0RN+yi/lPgFmd7g0fAij1tLNxWB8b1TPo3BXT1w/Haf6Dc2pl7KfAXyXb06kBcWpeEyNtx/53Jl8ieHWy+4CCQ==","shasum":"722d898303dd1e87332a4ab36a375281abf18483","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.4.tgz","fileCount":23,"unpackedSize":184611,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHwHAeXv6jdaHNCkmy08KdwjRFoQqkPr/Qj1jnw50ylACIHTN47tvHDtgPcbMxRru8nvvMsnjVrBxL8YRVROwlbCF"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.4_1522777860208_0.7357390638386365"},"_hasShrinkwrap":false},"0.1.5":{"name":"@commaai/pandajs","version":"0.1.5","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"c93354bf822346f60235602151a590d92502f663","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.5","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-gz8N27lEuXI/MMWciFiC7Oc6ServxM+dQMgFPHCxTTbq41XmutS5VMuSJmRLzAwMz/cL1OGXeZWEPvhqYhNI4A==","shasum":"27a74a0e1b526d55375e01015af521b5c1fb40ae","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.5.tgz","fileCount":22,"unpackedSize":184770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTPiwfLhIW0Bv/UzC/b/HEUdIuHtCDaY3tb5kxU9cLVAiEAvv/DbLH+C4KID+KOr/TsIhXjywo+YPNM8BuoQQ05e3M="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.5_1522781435902_0.7047738618569588"},"_hasShrinkwrap":false},"0.1.6":{"name":"@commaai/pandajs","version":"0.1.6","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"f158dcb58395c910b3222f9faaa9758fecf4f9a1","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.6","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-mq+C5rYKq8NHZiJO4ezxvKHXFhbeVoDunLcRLUAUhlptRFNphxHi9vdp16IibTYaxGXx9bQcWm2hTP7c3C+WLQ==","shasum":"45b8daf5142d61c151e250baa6b3821e6ae31ba4","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.6.tgz","fileCount":22,"unpackedSize":184810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYAzG/WbzMLWe5h6kwDTBP4PQpcHlH4nyA9pqr73UlGAIhAPxTlYsQrpVjPFgfZKVdepcpiHX3lGS0LCGg+2wCLgAI"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.6_1522783352170_0.8149010818642968"},"_hasShrinkwrap":false},"0.1.7":{"name":"@commaai/pandajs","version":"0.1.7","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"5cae3e8ca64eabddfbf459ecc2ee9723a3cebca4","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-lu0E8dtkNRQJTAhYqz8/2WX2CrSDYkmX969Cj8uxU6/NDO5G9wfc96++L0boEcWm1wACuHP0muOdkudFX9SEXw==","shasum":"595ff8dfa4aadc7db689596852803b881c2ef3c3","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.7.tgz","fileCount":22,"unpackedSize":184602,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5RGemSreGsUZinSQk0X5IvRvbM1Anm/sY8lj9dJd2bAiEAqrqIYQiD5c5Q2kye10g/3qBa9us3soSsPy/Q3ktfZDQ="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.7_1522788665132_0.5744348143159135"},"_hasShrinkwrap":false},"0.1.8":{"name":"@commaai/pandajs","version":"0.1.8","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","es6-sleep":"^2.0.2","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"daecd193402e63b8d05c8af45a29973ddc9c825b","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.8","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-Vqr9hxmdhcE5MnJwkyxqOERbFkNuJX0RXhaqnN5Wlu1M8965gdzmsH/itCLN4wXF4n23020Q84XZsdkJauSl/A==","shasum":"4d99c68adb83fe9211f452ab286e1177dbf3367b","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.8.tgz","fileCount":22,"unpackedSize":184650,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCck4iIwlD7oObBhEnhXm+eROnvvj2Hy3NNKOD+B8inogIhAP4Qg3HN15YCUHT/q391ZD3jiE6tONpzw1IqbUT6oaTL"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.8_1522789255133_0.9804999163344352"},"_hasShrinkwrap":false},"0.1.9":{"name":"@commaai/pandajs","version":"0.1.9","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","delay":"^2.0.0","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"06cc95278fc3b4f7cba01a4d219d44be6f10bcae","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.9","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-pnUtqw3lgrK7Kzb5leW3aCuwhme4n8H5F4sTdy8HJpgzJ+V0I6v4UZUv+5E3tvZjsWwgRoKfuo1kG2zAljxJwA==","shasum":"31adeac13da371d16d4cac8007a178f790492cee","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.9.tgz","fileCount":22,"unpackedSize":184847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD77XfRlkTsGdMOKMpLu5Z5gGxcbT7ksSUSyzj4Lf8ynwIhANRtalnuA7kGjdLSAuqQpxYZqRMp8TIv5xvhMi3Y9RA1"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.9_1522790029481_0.0772864518459857"},"_hasShrinkwrap":false},"0.1.10":{"name":"@commaai/pandajs","version":"0.1.10","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","can-message":"^0.1.0","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"831ac8bb382e30f455e3b8df2e799b153d0aa6d0","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.10","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-1MOVFHO7izZ3OHjuwPFkuuywkFnwOayXcXeJl+Di5IB7CMMPZX+N0/sFZsqxgVL1FWcE4x3uhvg5tpNKH7i8JQ==","shasum":"89ac13c78bc2194144e8d868dadd351967659788","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.10.tgz","fileCount":24,"unpackedSize":186910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEuxSMR2ACILvH+mfnhUvwrNZOE8zFgK47HP6OfrxxQAiEAvD0ICSISVT8OOXQqaegKXC5xi01mHtK1t+1tRsfbYDM="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.10_1522792205067_0.1371674867003858"},"_hasShrinkwrap":false},"0.1.11":{"name":"@commaai/pandajs","version":"0.1.11","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"9780f24921c00101fd3a642b3277a7078bc63f9f","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.11","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-9t2FnajlhOuSjuMI2J9yFPzqVvkqDBURS/p52ulTklxk61aNX9GZvPrLcEF8OXLhmXdNGLq6VGpvUBEX0yfG6w==","shasum":"ed21671dc6847aeed13d9cb283945d07fa723517","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.11.tgz","fileCount":24,"unpackedSize":186910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjZYDMwpQDy2bVmyJpGBMP+aftGqnq6I0flXxaPqBVegIhALgVLcFyMBcWAOYSvxxvJAgasWDZ6Qf81eVW0O5pmWne"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.11_1522794416207_0.15691768899790204"},"_hasShrinkwrap":false},"0.1.12":{"name":"@commaai/pandajs","version":"0.1.12","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"9683235b485abd9677dc842cda80ddca716cbe4e","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.1.12","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-GiJvqpzMB7163BiL4zyPWOHaPShK19hF/dQ+vDOnjszwcEzCwf6p+np4PoAoYHGujWpRi4JUA2AOUR+Kxnlsqw==","shasum":"50c69189e1b8cd937a2e0fc20e47a84ce346e623","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.1.12.tgz","fileCount":24,"unpackedSize":186904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB0L13yYjF7DNLqj9b4HvPWmu5Z9MHbsMvjwUaYvpeuVAiBT9RUecqhuSu8bTx/shp/npf0GRwK/mpeWJDUoohudqg=="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.1.12_1522800205847_0.5590213293390172"},"_hasShrinkwrap":false},"0.2.0":{"name":"@commaai/pandajs","version":"0.2.0","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"browser":{"usb":false},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"fa740c66fa0a9344ed9fd76700605bf7c192836e","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-HK1cOtxuPs1mOP2IJRbYyN0UDQuMk2Ltr6++PCYItf9cKTxUgIgjHFgMT+stKPpcHR7jhqjah8K5IqKdXP3/9g==","shasum":"55608ca9b0dbaf48a2de73c4cb001dbc8917bb6b","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.2.0.tgz","fileCount":22,"unpackedSize":171444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbotSZILQ4Gu2AkAy93970jupJadyqmfqZrLopiVsL9gIgEJ30ikXqh8HyLCfixlWwlaw1vRFfd+c4d1vv9h5J9jk="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.2.0_1522887771962_0.6450155495952226"},"_hasShrinkwrap":false},"0.2.1":{"name":"@commaai/pandajs","version":"0.2.1","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"282b7b56d2719c7cd6bf55f5c06e5a136b5ef645","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.2.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-zdO974iHyY6obFNAGx57saoAQdCCHf6fRIv9Gi7csR+tCsLuyX1stMpbVPsyorTSayr8tmquL19So7Wvthf4vg==","shasum":"948e45a9bc12fa9985ce4bd8763df35fb2cc89cc","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.2.1.tgz","fileCount":27,"unpackedSize":173986,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARz3eT32TuL+bYkXmoNf0l9no11r9hSl1rAQ/FYUvRAAiEAx1w8iNAXRJmLMpkqNjrId5EIBI4ybj0H1aj5FbW9Gng="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.2.1_1522951614641_0.481529300486236"},"_hasShrinkwrap":false},"0.3.0":{"name":"@commaai/pandajs","version":"0.3.0","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"34eace607b185683873ee440f387c2674bc5442f","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-n2ijSdsLm+2jpldKfw70BscUhTAlTACXAnAUnbr+1fW62uuyQJH9VXRmCH29mH8ru4CPgyBcrw1UPZzvCyM29g==","shasum":"ad072defde75ddaf00175d1a0134b3d891a64283","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.0.tgz","fileCount":28,"unpackedSize":193122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDV8ymrGfak9QSgtIXwm8iZvmlSaPvEFAJKUIQcQz2BaQIhAOeVG83yHE05zvZ+/dOVgv6EMR2QpE179VgDINRCWOlR"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.0_1522957568627_0.2661618403777095"},"_hasShrinkwrap":false},"0.3.1":{"name":"@commaai/pandajs","version":"0.3.1","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"26e8d5ba780b5dd33480eb3dcc8392b18ae09a12","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-V1AGmc+4zltLw9hz7j7Gs+xX6agRJP1Mh2c+W0Y2fV7uI90S7WzqV5y09IjY89UaJWpaMqXquQ8Yfkoj8kLmjg==","shasum":"476c9ab63e6bf1897e12da4a2732b2273d643a81","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.1.tgz","fileCount":28,"unpackedSize":193505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa61l4CRA9TVsSAnZWagAAnxsP/RcMs1l65tw83uliA6Vk\nfz5CfjqXkex0vXzmlP56kNkwG6/zKhFkRUB1QbfAqAkd78+jBmOBl/b5hS4Y\nG+KO8W9QjynccSSrU2h+pe6fhQA//AdaM9H49FmxDlY8ZMX8gFPmq9BnKIfW\npHpLQgaC3iZuQaVF8pPF8pb9ftqc2YCvDo6Fr0Ok38jyiwRdD2g3J8jDLGDT\npxP1HeSm4dEmoNT1KvePqAN2B9JsgTYiVC0diNJV5o9aeQmrTjAIPaLByJJR\nv/GhKMo+GEbCtMWI30K+n5bw8C8ECJYRDhi+Hzpm4pdL9jqIhWyn/g1udw+0\nRZQT3brVbe8dtfm3geR2KajhWJyM1q9G7cHaPTOZPziqqrFLKNsAIe+RMFOh\nL1yMfjkZ9JRAQcMNZyDCtDECoAeKGEjyIeqFoRF+tg7/6gUNtUmIhkXNH6MQ\nliyBhusNs/CyZ03j85AVYsl0Oi036cUaf30uDPxlTGWWlNpoCjXtdRt5JMOi\n7KmlWuG8lWyxbvYSD4aQ2U6L9jfNNOoiZoFE7NpkVvdeBjqIs+CT9Ac3ymBG\nm+RvS9TZVWTscGM7ZEFGJZaB59VTy/oCPZA5CS9mNZ3O/P0SLw/sW3CFsrn/\njfIkKpoR9pD1gWBEKzaC5qSAevm6n1UY5Ed+ZfPda4BchvhxuM6Kg5dJk9Ei\nIELF\r\n=xgtf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFsSU8rofEIu6JiooubNsL2g1Nka8JGarUCPEI+EQlCIAiA+wZzvZBIBNtQqDeQr6VVvb+lWd6DCC1eRNcvHg2qUvQ=="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.1_1525373302766_0.19883877780975134"},"_hasShrinkwrap":false},"0.3.2":{"name":"@commaai/pandajs","version":"0.3.2","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","usb":"^1.3.1","weakmap-event":"^2.0.7"},"gitHead":"d4b67badfd0bcd32b90806f1b8d5e3eb5d409d55","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-D20z+5GUirKSR7xwhP4T1rE4Ars//md9s+1aZSN+hSydtRHjORdhHI8tsld0e+KBuSjxKwlgB5rCfmrASXUNjw==","shasum":"2661ad42cdd5d6f20885d65cd34f45ba436d4910","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.2.tgz","fileCount":28,"unpackedSize":193629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa611gCRA9TVsSAnZWagAAevQQAJJe8GfrjQ9PCLbQlq1f\nZWbbKHHx1Po89iHBctc2DpPTvBshSJ6eOHErp+VBii+dPA/xWLqP91r/RIFT\nL0TRZq/MffYrhoxW5CS7EaP6VZddm+q8Z6ppnwLD6L+mmT/nAwY3kKoRJlm8\naIhKyDw4J40F1NLwlV/DEo7IO6vq9GYLafUxc6lyg0vuKhUrVEufd9uVy3b+\nzcu17TfWs+vgc08L2jrT+yrqYDhhPlDGT69FPeAQQYjYL5+bmmkj9eX5KanN\nCAO8BdxdxO2T8Dbg8wbfsQ2+ji9l3e5LJsIFdGNQtY2tvHn9h0NX39niBUN4\nJH4a7Rhy/4rG9bIBtgFKCYRo9uFTSj6Izpflo7NI6ZB1mrupETi4v1Tm0zTC\nY23u6ni48RoObO2m4NF5azVUpmGMIsV67S3VHEacT6gWK8EzDTxYoZ0QaA+Y\nL0DUV/rEMlJWGs5lEey++yD8qngGJZfJpJYDfaI5aLwxzKt50U1Oxcwxk++b\nHZmA4kHXWTj9z+Tp5WQbSvQt/hFkWPLIPUwHZSxWdK/oXVz7WrDNiPX7ajIp\nLYjzNgP2Mlng7JckUi0n+3k3sRExlB/AhF/w5nMYrL48GCAthJk7+unJBt9C\n74AvMS/lBOUMXzaJ4aCYkwsO1dgMQZGAVCV80ia2VfBSAEr0RLyt0Jv3qZXi\nWJpJ\r\n=xFnQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEv67La0zBVkAxmQ4c3oqrxwvXzoXF8PYo2zS0tDFp3lAiEAo/eGqgpDC3dg5i6L767TbwS+bqZgsrEJYObCKmQg3dw="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.2_1525374303135_0.7877071447846884"},"_hasShrinkwrap":false},"0.3.3":{"name":"@commaai/pandajs","version":"0.3.3","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":{"lib/index.js":"lib/browser.js","usb":false},"scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7","usb":"^1.3.1"},"optionalDependencies":{"usb":"^1.3.1"},"gitHead":"04067251fbf8cf1ab9a94d42759b135bf9e304a9","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-bNzx4Y6FGqZsvk0fymvX2jLoD/E/4M+gs0Y5/GZpikS/xj2vEhNM+WAmVe8m61iyCyHRoySuKzUmoT1SFYkcJQ==","shasum":"c23202b849f26b326fae8295aa8d42cef1e79c17","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.3.tgz","fileCount":28,"unpackedSize":196561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8O9bCRA9TVsSAnZWagAAwtQP+gO7vMRlrlWMTIkQ5IMs\nq3pGefCuYV48+HJU+2JJLj3ae4f1Ttco9LcCgPj40sGEI0GPtt65zVna9M82\n1sMub7fbjOC0UPQ6tjOJBoOJEewuPqXl4gMDMdX0tdBB2NJIqsH+U3kiFjt/\nTtGsDQsloNn6frAX75DQHy6swI8DKfmTVWr7jOs5N5Xh9DNeN5JbgaBG6oV+\nqOk7810ajFift+wQuFwBOQNnMPQok7s0ieQK4Y1F5H/3PnR3k5sdneSV0rdf\nAT//pSxDVRWu3BLh99nNA5Kusao4+zLqQxjtmNY/PsZ1nWMlgryXtBMvEPsX\nUKANDHua6Hz5jQqxmcYhigOVptcfT+RsMUppLdg1IBRCfiheOQlRfNCjdvMs\nHY8rUpvxWIJ2TFGyJRcPL4qH+4j83yjw0g0fA8sZwXDZYuVfd9H229eMxAnV\nMkfxYh1QAvGQF2WGV4en+1G47eTZUTiB1x3HXu9H6IVBgxMHGgL45lm/gbzm\n8BJkSSF4ZgBkLeCVqXB/jew9FomKrpxrETJh8LDMscZdcQiHBaOdM4VHemUj\nAwtmOdeXACH96GSQSiqytQg5NPLYFguc5G+fFT5v2+TGCs0y6kB92CMA87jd\nmnAXQS4kP7F3v78dBz36fyc2G+Sf0VzSE/2ZIqS3IjTLc7a/HBIIoHmsxRnp\n6dnd\r\n=ML5o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJRN1FyqQUr/SliCtlPTXqH3Y0krWTwBf+RWB0KsDTlwIhALm7/LRwL4IIUYvmLsZHRrmNj7OmPynNrwwEFP68tKJR"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.3_1525739354606_0.911160152377029"},"_hasShrinkwrap":false},"0.3.4":{"name":"@commaai/pandajs","version":"0.3.4","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7","usb":"^1.3.1"},"optionalDependencies":{"usb":"^1.3.1"},"gitHead":"7ac4e7479c47d6158ec461fca037035b96d8efe6","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-koctVhe20HS7Fs6MiWWdB2EoB2W6nGufoEKYV3gbUgQyMuAaswImAM4Dznp2pTCJGA8yet2ElQRXMPhi7wU7pA==","shasum":"b8ad7f1e1cee2cce15f14f38cbf6f1ba8162814b","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.4.tgz","fileCount":28,"unpackedSize":196517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8PHkCRA9TVsSAnZWagAA74QP/3wCoIPtCbc+1V1GOCcj\ncoueu52V+Ih8Mj5Z5ffRpF+CX57OoNna7kJSDhgIdtIiwgSQKX9LTw0boFop\nMLkaiWfXf/nBEJweHbvk6D4HJkxPh6WcVTx+YbCeKV2YYL34NLjmbP0TPEGP\noVVIS5vo/LBrlnc5BGTw/pxgPdHxJji+IUlexLFhumlvILFOE9c7MZvaonxV\nE0ja3ZK/FzTc4sJ+rbWibGM601xY4uESj/R2qUiGdVaWhJbtvk1MkbwrCKFH\nkJuAHQqupWyv0k94VL27N20sUE+yavPI/+GL58Yh2knVS6JvXcI4HmTL3XTJ\nXWiUE+Q+ww4XXXg/fAJd7iNzieNfuty+c0PmLg8WJUTLKjq4XrwHM9UWB/PR\nF6gtW/dBbOBb4Mo3ggtIg5HsTawdvRSsXVQz7rCEbZy7rC05IyliT1R1DtHd\nqt6kvO6AHiSkMabWvdeLFVN7Ji/sd/S6HB7oCO3357YVzGz9tYo+h3lrAXHU\nE269Gju6TMxlzv/7YKoy9Z/Q3HGUVgpP4rNKv7txoWL8kpkoGaHz3iRZn2JN\n6Pl7/xcY2DDlrggDZDgfIqaDDQx1GgkqNHuSnCNNkRDCGEpPAdrF8JXB9ZM8\n+FRZGkQ9D0dvO6dAXv244ETCwm2u7NS0K2LAvF+iRA3yXMT69OUwjO+f7ziU\nLxek\r\n=7hlD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT+aljTPDzmRCqIMTwuezxPqK6Ud9GomacCcU7U8/YjwIgH9p8GdLg//Gl6/bD11SG0q94VqPlCa60w/gHaTAV/R8="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.4_1525740003636_0.21233249880777416"},"_hasShrinkwrap":false},"0.3.5":{"name":"@commaai/pandajs","version":"0.3.5","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"./dump-can.js","control-panda":"./control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7","usb":"^1.3.1"},"optionalDependencies":{"usb":"^1.3.1"},"gitHead":"b1c1424d1a40bca43d498bd9a5fdf6ca58c9f6e2","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.5","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"dist":{"integrity":"sha512-MIPhiWNz1xz959BrEfmmPOVtbo6hYKhWkG0PW2rQl5106oYvGjydZ3c3DHUB9eXAM0WI/J+Y4qkvHUSAQiEXRw==","shasum":"f1ed91f488c8f5331b1aabebbda20105199d4d13","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.5.tgz","fileCount":27,"unpackedSize":224854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGYsQCRA9TVsSAnZWagAAn2oP/0N5kYuZwa/dsKxn34NU\nw8KtghRw3C8hT2aT+hprxgn6H/YkIXUAvNJZJkSagZg1CkZNSqCgwnFW0x30\nvj/hDNUyQIZu9/7IhxzktrrtuSAx1ECm8+GbVBQopelY0OKUxsuMlelXEZI/\neO7ddyJowPoobznZSWpLw2H2EBSFCuJY0ML7wm3hY1ODmHjNAN7sAFCDVxXo\nCu/Q0/33Yc5EzWfslT/oUc33uEbKYv4k35ruO3MLfA4PkMERuw5ImHh9TH2W\nx81b0cOEd1Ssn1SyUxloIEwiVtLH0ko1LzPqEhg1mFg7lnXu370pUS8+Y7uZ\nGKX6gUyKzNpHD2CnQ3gB27IB0DuDykbcIyhJqqcqypp7dQw3/zZ9O9eYn1Cz\nH3WrB+NJmXC5VepNITtk119R8qLgyu31IhlbgDbB83YuZKDcw6sxLTrS+fPP\nmK8SHK9LknOmvxJ+idFlNxAf5KdUXThte5W2tmfBTH9ZHtndZNV05ur46dXK\nh+AvBTzgwRG0OJJ141fUvsZ3h/fn5rARXqEWnkUKAlcT01lMdFT9bSE7hSWA\nDpH1Fpem8yTr4Aiy4OBCfaRdQ/v4RHtl/vmMjJC3zglfm7bwNkR+2lWsvuwk\nCc/Ow1OZ2lfkGEZqNiHKNdEC1Ca/IGXID1MkAP/7M7jdSfCVRQzsaI9HqNkN\nabUX\r\n=8XWt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHuTZsqKlc+w8Wh5JijtTx7PQvM4kh6G6UQ1D72eBUUdAiEAgnYoHEnLees+yCzn32rzKWxjBs12Z5njJYHg+UZHabQ="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.5_1545177871881_0.6725568808017366"},"_hasShrinkwrap":false},"0.3.6":{"name":"@commaai/pandajs","version":"0.3.6","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"dump-can.js","control-panda":"control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.12.1"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7","usb":"^1.3.1"},"optionalDependencies":{"usb":"^1.3.1"},"gitHead":"f4225af8ef5a75d1ff64fc12fc0e9e3aaf00fc73","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.6","_nodeVersion":"13.5.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-sq4eRQx6J2lVsCLhpzAWGIfU/bHit8W4v7d5rjr+SKzjFTJ4YbSV+y++4M5w9liPZfCcAr6gFuMPPr9RhaxACQ==","shasum":"337a31445c27761eb6b5a211cf69e8a1d31281c2","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.6.tgz","fileCount":26,"unpackedSize":125766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBNZuCRA9TVsSAnZWagAAnMUP/2FjHJdwXvagg7jgTYmU\nOEJKuMp59GpgrgJ8MSyqzy+mYpKDTmw6AlPNWV9cp+xDWprfi/4GE46I2jbn\nMLxcXy/LbARVMa6WSBcYh5CVGOX6vdih5ck5VI5WuEbkWqu9TJCqDurErwiv\n2g/06BITwV57ERwh/9AnDYNcAhHfWSKDvN8zLN23CfoJJXo1UhP4a+49sBIy\nqBV5unkS0WCkD35oo9rv+qwLWLuUUM7Cf03zXBgQ/VfNkiJN1boUCgd5CK7l\nF/C0oMhd/tqkocZpI7n/VNaadpoonP0fRRT2otJw1wZsjy3l8jurYGw4scvh\n9Us8Dmi2eJMagRSt7dRqwZEx7ipdupORI3Ov7HLk+ciz+z77VFec/S7W+fB+\npnqJvWefOfiOSXHCn/5M2RJm0w8NBmCO41JTYTGOrAcB7xny71/mALKYu92a\nBxBJrIbkGGTLCHud6MyFcMvGRxjfCvRC8U/t/32XGXkvKDmmfezgPqtaiJ/i\n2aahBTG0w6WQb1eMBHDbTzoIKbL18bKGV4HJiaaeUZqkCpL3OQrZAe4zHndd\n59UZhkmSfUiRec9Dq6VXADCBKiN64fcPLMu8ofZGylVej1+pbEyL8w3MjacC\nvPu7dBI7RWD+aiirehxtLFltHY2x4lCaEVnhxkz8UNMGcmjFQ7FVbaNbsBh0\nwABm\r\n=NsZH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYhvIaWav41wu3NibLhjhLiXgoLQRNw8g8HaPhhuLSkgIgWHz+j5zEE0GPudfs/SWiqTCZqd1TCzy8a8RQSevvR38="}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.6_1577375341646_0.6984243489119033"},"_hasShrinkwrap":false},"0.3.7":{"name":"@commaai/pandajs","version":"0.3.7","description":"JavaScript interface for communicating with Panda devices.","main":"lib/index.js","browser":"lib/browser.js","scripts":{"test":"tape -r babel-register './src/**/*test.js' | tap-spec","watch":"nodemon -w src --exec npm run build","build":"babel ./src/ --ignore '**.test.js','test.js' --out-dir ./lib/","prepare":"npm run build","tape":"tape","tap-spec":"tap-spec","babel":"babel"},"bin":{"dump-can":"dump-can.js","control-panda":"control-panda.js"},"keywords":["CAN","panda","comma.ai","javascript"],"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","babel-preset-stage-0":"^6.24.1","escape-string-regexp":"^1.0.5","tap-spec":"^4.1.1","tape":"^4.12.1"},"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"dependencies":{"ap":"^0.2.0","babel-runtime":"^6.26.0","can-message":"^0.1.0","commander":"^2.15.1","is-browser":"^2.0.1","is-node":"^1.0.2","is-promise":"^2.1.0","performance-now":"^2.1.0","raf":"^3.4.0","thyming":"^0.1.1","weakmap-event":"^2.0.7","usb":"^1.3.1"},"optionalDependencies":{"usb":"^1.3.1"},"gitHead":"2f5353bf810a8210242efe842f1be99f7691a625","bugs":{"url":"https://github.com/commaai/pandajs/issues"},"homepage":"https://github.com/commaai/pandajs#readme","_id":"@commaai/pandajs@0.3.7","_nodeVersion":"13.5.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-jppwIKyZjFBAsHTBoMX2Wf3l941lMIwyXAmNBU1eIOJhUsA1MVRnagVc3gwG4RDySH+lDGxhkcgkwCYNCs/XUw==","shasum":"81fabad5349e49ea07c7d27a886e8948258da37f","tarball":"https://registry.npmjs.org/@commaai/pandajs/-/pandajs-0.3.7.tgz","fileCount":26,"unpackedSize":125396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBOXiCRA9TVsSAnZWagAA684P/1MF5ZHyOPji/ygJMk7w\nQOWa7jC9hZM0NDMZsWNjjLKyrD85d9uKmkaIXSA1x1DMt6pFtMVPobuUjnDe\nNdqeLVv/xTVRly7lhOMwY3tq305SsCoUBhYHpVm1QCixSzKwoqoc+lxNB6ST\nUfEvLl9SdndfM3QBChvs1AHuMe7yqASRBSqVb/xoyoRLkN7gWWEt1DeNOCu+\neNURiHNu1B3pMHj8QPPlPsB7cs66FBB2uiRTLIkYGCMnD/2IbDxvLP98EPky\ng+wZ3/LJ/q0jL31Inj5p77imSZDiSEJ7gw3574wCueUBCHXdMMBSYmXHIuSb\nE3dEoUke4xr64mWKQPluJquB8MIlHUHZFHsy0/id5V6L4bzVGEckASORb5bM\ncRTXr/rkTG3mJa4PtCOgTYmldkUrKP57R6c+sBJGXHcPajPGWqKrFKQaXJxH\n2kOFRbZtvb+oDiaQDhk1UWnUxEC/w+mETxPwRdKN+W+D3tTek7OwqbiPKNdQ\n1ZVVh5qFozM8Zu5KfU+ymEWyG/+hJ6occcDFy0y1dFs9rAt93HvRHYGvD4gm\n1bjoUykvxLMraDOp5dS6tyboa4vCsVVUg3kFFEIDok0F2Jal5m8IPuQHiUQd\n0NbGTaYm8AA0XmyBac/yxT5YI8apueuDSuTzWuCQhX3CDmk3s8OWPBEhYIYx\nZId8\r\n=YYNY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMtLRc7ypHF6+mHo+12DRc2Xznztl+NEnOb+ROkKtaAwIhAJxppejJEv24HkEBXpOhQSAyYDkG4FURZR7kXtStFkg9"}]},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"_npmUser":{"name":"commabot","email":"andy+commabot@comma.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pandajs_0.3.7_1577379297692_0.6133048806375125"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-19T00:42:57.546Z","0.1.0":"2018-03-19T00:42:57.670Z","modified":"2022-04-05T00:24:37.915Z","0.1.1":"2018-04-02T19:28:42.616Z","0.1.2":"2018-04-02T20:03:02.868Z","0.1.3":"2018-04-03T17:47:55.158Z","0.1.4":"2018-04-03T17:51:00.305Z","0.1.5":"2018-04-03T18:50:36.020Z","0.1.6":"2018-04-03T19:22:32.307Z","0.1.7":"2018-04-03T20:51:05.223Z","0.1.8":"2018-04-03T21:00:55.221Z","0.1.9":"2018-04-03T21:13:49.549Z","0.1.10":"2018-04-03T21:50:05.164Z","0.1.11":"2018-04-03T22:26:56.343Z","0.1.12":"2018-04-04T00:03:26.013Z","0.2.0":"2018-04-05T00:22:52.152Z","0.2.1":"2018-04-05T18:06:54.717Z","0.3.0":"2018-04-05T19:46:08.733Z","0.3.1":"2018-05-03T18:48:22.877Z","0.3.2":"2018-05-03T19:05:03.256Z","0.3.3":"2018-05-08T00:29:14.696Z","0.3.4":"2018-05-08T00:40:03.721Z","0.3.5":"2018-12-19T00:04:32.057Z","0.3.6":"2019-12-26T15:49:01.815Z","0.3.7":"2019-12-26T16:54:57.822Z"},"maintainers":[{"name":"commabot","email":"andy+commabot@comma.ai"}],"description":"JavaScript interface for communicating with Panda devices.","homepage":"https://github.com/commaai/pandajs#readme","keywords":["CAN","panda","comma.ai","javascript"],"repository":{"type":"git","url":"git+https://github.com/commaai/pandajs.git"},"author":{"name":"Chris Vickery","email":"chrisinajar@gmail.com"},"bugs":{"url":"https://github.com/commaai/pandajs/issues"},"license":"MIT","readme":"# PandaJS\nInterract with your [panda OBD-II Dongle](https://shop.comma.ai/products/panda-obd-ii-dongle) from JavaScript.\n\nSupports\n * [x] Browser\n * [x] Node\n * [ ] React Native\n\n## Installation\n`npm i --save @commaai/pandajs`\n\nor\n\n`yarn add @commaai/pandajs`\n\n## Usage\n```js\nimport Panda from '@commaai/pandajs';\n\n// create instance\nvar panda = new Panda();\n\n// register listener\npanda.onMessage((msg) => {\n  console.log(msg.address, msg.busTime, msg.data, msg.bus);\n});\n\n// start reading data\npanda.start();\n\n// pause data\npanda.pause();\n\n// resume reading data\npanda.unpause();\n\n// close connects and take everything down\npanda.disconnect();\n```\n\n## API\n\n#### `new Panda([options])` -> `Panda`\nCreates a new Panda instance\n\n* `options` (*optional* object)\n  * `selectDevice`: (*optional* `function(devices, callback)`) A user defined function for selecting which available device to use, parameters are an array of discovered devices and a callback function. The method can either return the desired device, return a promise, or use the callback function. There is no timeout for this method, so make sure it eventually does one of those three things. *This option does nothing in browser mode since webusb has it's own UI for selecting the device.*\n  * `wifi`: (*optional* `boolean`) Enables wifi mode, communicates with the panda device over an already established wifi connection with it. This option will throw errors if you enable it in browser mode.\n\n### Methods\n#### `Panda.connect()` -> `Promise: string`\nTell the Panda instance to connect to USB. Does not start reading messages until you call `start`. On success, returns the ID of the USB device found.\n\n#### `Panda.disconnect()` -> `Promise: boolean`\nDisconnect from the USB device and stop everything. Returns true if it was running before.\n\n#### `Panda.start()` -> `Promise: string`\nTell the Panda instance to connect to USB if it's not already and start reading messages. On success, returns the ID of the USB device found.\n\nThis function is the same as running\n```js\npanda.connect()\n  .then(() => panda.unpause());\n```\n\n#### `Panda.pause()` -> `boolean`\nPauses reading in messages from the active connection. Returns true only if the stream was not already paused. While paused messages will queue up on the Panda device, however this queue has a limited size so pausing may result in missed messages.\n\n#### `Panda.unpause()` -> `boolean`\nPauses reading in messages from the active connection. Returns true only if the stream was paused.\n\n#### `Panda.resume()` -> `boolean`\nAlias for `unpause`.\n\n#### `Panda.isConnected()` -> `boolean`\nReturns true if the panda instance is currecntly connected to a USB device.\n\n#### `Panda.isPaused()` -> `boolean`\nReturns true if the panda instance currently has message reading paused\n\n#### `Panda.getHealth()` -> `HealthStatus`\nRequests the current health of the Panda unit. Only available while connected, returns the health object on success or errors.\n\n* `HealthStatus`: (object)\n  * `voltage`: (number)\n  * `current`: (number)\n  * `isStarted`: (boolean)\n  * `controlsAreAllowed`: (boolean)\n  * `isGasInterceptorDetector`: (boolean)\n  * `isStartSignalDetected`: (boolean)\n  * `isStartedAlt`: (boolean)\n\n#### `Panda.getDeviceMetadata()` -> `[string, string]`\nRequests both the serial number and secret from the Panda device. This is used internally to power `getSerialNumber` and `getSecret`.\n\nReturns an array with 2 items in, the serial number and then the secret.\n\n#### `Panda.getSerialNumber()` -> `string`\nRequests the serial number.\n\nThis function is the same as running\n```js\npanda.getDeviceMetadata()\n  .then((result) => result[0])\n```\n\n#### `Panda.getSecret()` -> `string`\nRequests the secret used for wifi among other things.\n\nThis function is the same as running\n```js\npanda.getDeviceMetadata()\n  .then((result) => result[1])\n```\n\n#### `Panda.getVersion()` -> `string`\nRequests the string version number, output will look something like `v1.0.1-11d45090-RELEASE`\n\n#### `Panda.isWhite()` -> `boolean`\nQuery if the Panda device is a white Panda. Returns true if it is white.\n\n#### `Panda.isGrey()` -> `boolean`\nQuery if the Panda device is a grey Panda. Returns true if it is grey.\n\n#### `Panda.isBlack()` -> `boolean`\nQuery if the Panda device is a black Panda. Returns true if it is black.\n\n#### `Panda.hasObd()` -> `boolean`\nQuery if the Panda device has a connection to the OBD port. Returns true if it has an OBD port connection.\n\n#### `Panda.setObd(connected)` -> `void`\nConnect Panda device to the OBD port (if supported and parameter is `true`).\n\n#### `Panda.setSafetyMode(mode)` -> `void`\nSets the safety mode on the Panda device.\n\n * `mode`: (*required* `SafetyMode`) The safety mode to enter. Must be a valid safety mode, safety modes are exposed as constants on the root of the library.\n\n```js\nimport { SAFETY_NOOUTPUT, SAFETY_ELM327, SAFETY_ALLOUTPUT } from '@commaai/pandajs';\n```\n\n### Events\n#### `Panda.onMessage(listener)` -> `function`\nRegister a handler for receiving messages. This should be done before calling `start` to avoid missing any messages. Returns an `unlisten` function that will disable the listener when called.\n\n* `listener`: (*required*, `function (messageData)`) Handler to call each time messages are received\n  * `messageData`: (object)\n    * `time`: (number) High precision time in which this event was received.\n    * `canMessages`: (Array<CanMessage>)\n      * `bus`: (number) The bus this message came from\n      * `address`: (number) The bus specific address for the message\n      * `busTime`: (number) The recieve time according to the bus\n      * `data`: (ByteArray) Raw data for this message\n\n#### `Panda.onError(listener)` -> `function`\nRegister an error handler. Returns an `unlisten` function that will disable the listener when called.\n\n* `listener`: (*required*, `function (err)`) Handler to call when errors occur\n  * `err`: (object)\n    * `error`: (Error) Error object incurred\n    * `event`: (string) Description of where the error occured\n\n#### `Panda.onConnect(listener)` -> `function`\nRegister a handler to run when successfully connecting to a Panda device. Returns an `unlisten` function that will disable the listener when called.\n\n* `listener`: (*required*, `function (usbId)`) Handler to call when connected\n  * `usbId`: (string) The ID of the USB device connected to.\n\n#### `Panda.onDisconnect(listener)` -> `function`\nRegister a handler to run when disconnecting from a Panda device. Returns an `unlisten` function that will disable the listener when called.\n\n* `listener`: (*required*, `function (usbId)`) Handler to call when disconnected\n  * `usbId`: (string) The ID of the USB device disconnected from.\n\n## Command Line Tools\nThis package ships with 2 CLI tools. Check the `--help` on each to see all of their options.\n\n#### `dump-can`\nThis is used to dump metadata about the incoming CAN messages, or output the entire messages with `-a`.\n\nExamples:\n```bash\n$ dump-can\nConnected: ba435375436c2a6d\n{ voltage: 12.123,\n  current: 4.093,\n  isStarted: false,\n  controlsAreAllowed: false,\n  isGasInterceptorDetector: false,\n  isStartSignalDetected: false,\n  isStartedAlt: false }\nConnect finished, waiting then reading all messages...\nStart reading...\nMessage count: 1\nFirst message CAN count: 256\nFirst CAN message: { address: 420,\n  busTime: 54858,\n  data: <Buffer 00 66 00 02 00 00 00 0b>,\n  bus: 0 }\nMessage count: 1\nFirst message CAN count: 256\nFirst CAN message: { address: 1024,\n  busTime: 6626,\n  data: <Buffer 79 00 02 00 0a 78 00 09>,\n  bus: 1 }\n```\n```bash\n$ dump-can -an\n{\"time\":7.3178732019999995,\"canMessages\":[{\"address\":1024,\"busTime\":53980,\"data\":[121,0,2,0,10,120,0,9],\"bus\":1},{\"address\":420,\"busTime\":54066,\"data\":[0,102,0,2,0,0,0,11],\"bus\":0},{\"address\":1024,\"busTime\":54115,\"data\":[121,0,2,0,10,120,0,9],\"bus\":1}]}\n{\"time\":7.318214842000001,\"canMessages\":[{\"address\":420,\"busTime\":54202,\"data\":[0,102,0,2,0,0,0,11],\"bus\":0},{\"address\":1024,\"busTime\":54250,\"data\":[121,0,2,0,10,120,0,9],\"bus\":1},{\"address\":420,\"busTime\":54338,\"data\":[0,102,0,2,0,0,0,11],\"bus\":0}]}\n{\"time\":7.31846793,\"canMessages\":[{\"address\":1024,\"busTime\":54385,\"data\":[121,0,2,0,10,120,0,9],\"bus\":1},{\"address\":420,\"busTime\":54474,\"data\":[0,102,0,2,0,0,0,11],\"bus\":0}]}\n```\n\n#### `control-panda`\nThis is a convenience tool wrapping each of the get and set methods exposed by this library.\n\nExamples:\n```bash\n$ ./control-panda.js wifi\nSID: panda-2baf789dacdacb64\nPassword: aGBw61RwD0\n```\n```bash\n$ ./control-panda.js version\nv1.0.1-11d45090-RELEASE\n```\n\n## Contributing\n`yarn run test`\n\n# License\nMIT @ comma.ai\n\nRead more about how to get started hacking your car with [panda](https://shop.comma.ai/products/panda-obd-ii-dongle) [here](https://medium.com/@comma_ai/a-panda-and-a-cabana-how-to-get-started-car-hacking-with-comma-ai-b5e46fae8646).\n","readmeFilename":"README.md"}