{"_id":"state-trooper","_rev":"27-b16565d35f9d393d7db7a38a11dc6fcd","name":"state-trooper","description":"Application State Manager","dist-tags":{"latest":"2.1.3"},"versions":{"0.0.1":{"name":"state-trooper","version":"0.0.1","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --harmony test/**_test.js"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"clone":"^0.1.18","expect.js":"^0.3.1","js-csp":"^0.2.3","mocha":"^1.21.5","object-path":"0.6.0","underscore":"1.7.0"},"gitHead":"5c2c1efe37ad3b88d6aeaa2661bac8d3254701db","_id":"state-trooper@0.0.1","_shasum":"1d87eaa46c813bde2d27154211131edfdc4d704e","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"dist":{"shasum":"1d87eaa46c813bde2d27154211131edfdc4d704e","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.0.1.tgz","integrity":"sha512-p8XRg4W222EX1GMCMT/xcabXL0atBiPBjNldt35hBA0wnHyA3lBPuiok+fL+XWGTmnFsSxUm2pZQ7c8ImsXWnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbpMHOtbvtPgxzOimKSljIJIom5ft0xrunItd1ISxnGgIhALj+/VoqouuLi6aLkxUW58k0VFw2pAWHvBHuwIyjP35v"}]},"directories":{}},"0.0.2":{"name":"state-trooper","version":"0.0.2","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --harmony test/**_test.js"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"clone":"^0.1.18","expect.js":"^0.3.1","js-csp":"^0.2.3","mocha":"^1.21.5","object-path":"0.6.0","underscore":"1.7.0"},"gitHead":"656f09d2d913d4e3249ec282823b678e93420845","_id":"state-trooper@0.0.2","_shasum":"f87059453b2a862a36fd0c55b2c0e92c722a7e6c","_from":".","_npmVersion":"2.0.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"dist":{"shasum":"f87059453b2a862a36fd0c55b2c0e92c722a7e6c","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.0.2.tgz","integrity":"sha512-RXc5TjDf7WRFn0Dd6OncH+v0mLf+3VozM9wS+rMCY1OoVzWsFzx4UTXQ+4AEHLLvh5f/MZNdxzy3uYvYxZvUnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwXOwaoav9FBY4oR2NHpq301QSeEhj+EZTAINcN3MriAiEA+Ayqlw6nawFCCWz1mmz6IO7coI0AcnAR0xPad86wgU0="}]},"directories":{}},"0.1.0":{"name":"state-trooper","version":"0.1.0","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --harmony test/**_test.js"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"clone":"^0.1.18","expect.js":"^0.3.1","js-csp":"^0.2.3","mocha":"^1.21.5","object-path":"0.6.0","underscore":"1.7.0"},"gitHead":"7f262dd28d1207b4b37c7bc59427b07910d36651","_id":"state-trooper@0.1.0","_shasum":"5b5a85077d1342050036fd1c3dd113301b03fda8","_from":".","_npmVersion":"2.1.17","_nodeVersion":"0.10.35","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"5b5a85077d1342050036fd1c3dd113301b03fda8","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.1.0.tgz","integrity":"sha512-+fus15+lwe421opAPxFiCuvWTLVSR25kHRqjgP0e1shG66vu6aV7/XdR2sN588Kj6CcCPUjPZ6YSKK2SdzS/RQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk0ZQSTFCJV9FUa5rJH757AhB+DUsvmkzaOQIYKY3pawIhAJbSOVD5VIha76su3MnVLE54NjT1r32tvfVkN4PPc8zc"}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.4.0":{"name":"state-trooper","version":"0.4.0","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"expect.js":"^0.3.1","immutable":"^3.7.4","mocha":"^1.21.5","sinon":"^1.16.1","underscore":"1.7.0"},"devDependencies":{"babel":"^5.6.7"},"gitHead":"2cd114e83ac7b41a99e87a035ba6d84cfeedd0cf","_id":"state-trooper@0.4.0","_shasum":"030bc9e9edee0b80a961cf06bf2333cecf71f8a9","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"030bc9e9edee0b80a961cf06bf2333cecf71f8a9","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.4.0.tgz","integrity":"sha512-pYIYZNrPv9NOmdq/BbZMpEjElYjSPBp+Res9deJgYx4rQHOGum5fHWGJy2DCzrU1GVu/1ynQ6BOBDiFoUJtSHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkYXlocbyL3eQIjhcPgfQxPMLfBsYB5YFMh4ASrFckNAiA97igWBpgvWr8qb+tpFwMyjQzdUidHMmSSfCr8YIJGTQ=="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.4.1":{"name":"state-trooper","version":"0.4.1","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"expect.js":"^0.3.1","immutable":"^3.7.4","js-csp":"^0.5.0","mocha":"^1.21.5","sinon":"^1.16.1","underscore":"1.7.0"},"devDependencies":{"babel":"^5.6.7"},"gitHead":"9dea9f8bb8821bf13e2e625e69b71b6736cbcb03","_id":"state-trooper@0.4.1","_shasum":"5777377e8294e347eb770d80efc5c8bb766d4f0d","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"5777377e8294e347eb770d80efc5c8bb766d4f0d","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.4.1.tgz","integrity":"sha512-lte88mZ6Uq7zSLAsozN4mu8C7Na1DeCE0Dl4KdMT7IINIfYk6vcZ0QYOSLMfryGy4G2jhBdSNu/NkLq4ynTFUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6ncONzRjEIVqFFWVf+PLW5NazHu5RWcX7VjaR1bb9FQIhAMCiFUjxqin/NArQcH3UJym82ivrcuofBQwXsKKXjO+M"}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.5.0":{"name":"state-trooper","version":"0.5.0","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"expect.js":"^0.3.1","immutable":"^3.7.4","js-csp":"^0.5.0","mocha":"^1.21.5","sinon":"^1.16.1","underscore":"1.7.0"},"devDependencies":{"babel":"^5.6.7"},"gitHead":"29f7d2e6d8fc2bc486d851b4a377b60d1810d0e9","_id":"state-trooper@0.5.0","_shasum":"8c1b8ed7acd22338a6f988c1c5db4d7691b097a3","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"8c1b8ed7acd22338a6f988c1c5db4d7691b097a3","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.0.tgz","integrity":"sha512-turvlbkZE7p5i5fkGJYCZLX8vmcUwDtM2I4rwHLdFN/ys+rf60E4Dxi5+/Z6utq0sYf2se+UiBKjtAhTcIJL+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXWy6xHw6YmP2MQWZpbF2KyuXxKE1vh97/IckaiCYONQIhAOikXvnEDozVGysfSZSrV6dWeUoMBSvQq3JOj2WUue80"}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.5.1":{"name":"state-trooper","version":"0.5.1","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"expect.js":"^0.3.1","immutable":"^3.7.4","js-csp":"^0.5.0","mocha":"^1.21.5","sinon":"^1.16.1","underscore":"1.7.0"},"devDependencies":{"babel":"^5.6.7"},"gitHead":"543a78025dc9e7ec5a9e3c4e7f5a2afd8d83c94b","_id":"state-trooper@0.5.1","_shasum":"46b817c4d61eed1ec115a127e8ccfe6055ff4be0","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"46b817c4d61eed1ec115a127e8ccfe6055ff4be0","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.1.tgz","integrity":"sha512-DnHlbCXs4BMVPdGgRyrGp8z3MMCfkYSINtC06ylnaT4yhZ5qCVqWYobz/Bif/Z3WyDdNsA5dFUuKV7lC/6na9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFccufkD/OzNfLrr/iSPHrH8zlD27YoVtja/Ajl8FW/jAiA+B8ahqqws+f/ltIEGYOCy4Zr/KmCBcQaRlvz3zSk3Vg=="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.5.2":{"name":"state-trooper","version":"0.5.2","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutable":"^3.7.4","js-csp":"^0.5.0","underscore":"1.7.0"},"devDependencies":{"sinon":"^1.16.1","mocha":"^1.21.5","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"f3fb77f98236a75dcd62ce2e3f1e6a39be4a785a","_id":"state-trooper@0.5.2","_shasum":"adfc1e7750a519cf2093d127449ba3d48e03d10a","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.3.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"adfc1e7750a519cf2093d127449ba3d48e03d10a","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.2.tgz","integrity":"sha512-8StmbL7UZGOeMaVJ7VzDaL/wiW3Wz+FENQLXsYoJAe3kvjJD9fkaUDMx3IpSRH6tykxzE5o/TW4N8tWdMAlAIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm6UmYXzHtTHe3Vp87UGUyFpiz6qWoDsHmyZozofdc+AiEA8ejegiI+tzO3ZCYW36ab9OY7R7aYvcjBdyZhwNTVwnU="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"directories":{}},"0.5.3":{"name":"state-trooper","version":"0.5.3","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutable":"^3.7.4","js-csp":"^0.5.0","underscore":"1.7.0"},"devDependencies":{"sinon":"^1.16.1","mocha":"^1.21.5","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"3e16425fe062f70b778d3ee470c0896730bfa163","_id":"state-trooper@0.5.3","_shasum":"dbc9320f5769203d031fc10b4860d1b412125725","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.3.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"dbc9320f5769203d031fc10b4860d1b412125725","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.3.tgz","integrity":"sha512-P8piBZD8X5h6pKs7yzJiS3ZL+eUGCT5q6j2pNZB53keK/qBSTyOprq5CWfsfnEQI8nRJZLuuIkSj1aX9vAUrAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAt7wFpJCwYv8N4ROOWVlsw2lSiDCW0RBz2vaLCv2ipOAiEA25YVStH/4hhDjmrvp2WJ2SsZfFQnNuqNcyKutCc2rx8="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/state-trooper-0.5.3.tgz_1474989315489_0.00029044528491795063"},"directories":{}},"0.5.4":{"name":"state-trooper","version":"0.5.4","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutable":"^3.7.4","js-csp":"^0.5.0","underscore":"1.7.0"},"devDependencies":{"sinon":"^1.16.1","mocha":"^1.21.5","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"2928bf591c0190368b8d0a20d90ff258005fbd0c","_id":"state-trooper@0.5.4","_shasum":"b47016fd6c405c45128e6b6f9f6ad6c98fddd150","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"b47016fd6c405c45128e6b6f9f6ad6c98fddd150","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.4.tgz","integrity":"sha512-5XNG2B43ALp59QqXEzf5qoqOc3gOI+X38rTYryKgmK5Av+1JYo66AFtBjvLRyrEZfigcdgxPKX3D2VptPfsR3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWFMLi+vEVdW+CMqT4nSDbNZjShacHaBGkhZkt6UhdAQIhAJrAKWfFqqfXJIZl9aXz87rwDFy17OFMPxUuCR5hPbFk"}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/state-trooper-0.5.4.tgz_1485794635092_0.4190471034962684"},"directories":{}},"0.5.5":{"name":"state-trooper","version":"0.5.5","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutable":"^3.7.4","js-csp":"^0.5.0","underscore":"1.7.0"},"devDependencies":{"sinon":"^1.16.1","mocha":"^1.21.5","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"df31cee3c14a07bfa8edafffbe665c7077aa3bf2","_id":"state-trooper@0.5.5","_shasum":"4d0310a5489fc3cae0cfc5cc4d40fa575a7d5816","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"4d0310a5489fc3cae0cfc5cc4d40fa575a7d5816","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.5.tgz","integrity":"sha512-z/2/OqiuUUhVTxFTN4XE/CuMuQ1d1PlHhtM0Rs/piLWwQjL+fYY7nQ2JETpXsTw++rtD1KKWhWOkG/shCNeOeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+S3vwnOHlaIqRmkj6mT5LM33JNrL8h+L4RSayrkQ5YQIhAKuuc4ex/ezuYONwjt1Vk25vNiUUd9vafmRJd4UUnA2b"}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/state-trooper-0.5.5.tgz_1490116188873_0.6734405844472349"},"directories":{}},"0.5.6":{"name":"state-trooper","version":"0.5.6","description":"Application State Manager","main":"index.js","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutable":"^3.7.4","js-csp":"^0.5.0","underscore":"1.7.0"},"devDependencies":{"sinon":"^1.16.1","mocha":"^1.21.5","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"86ba6002e35825f0912b59c1ddb2e6a14e308563","_id":"state-trooper@0.5.6","_shasum":"a77147419ccb993bc6be2460433295dcb4dc08cb","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"hojberg","email":"r.hackr@gmail.com"},"dist":{"shasum":"a77147419ccb993bc6be2460433295dcb4dc08cb","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-0.5.6.tgz","integrity":"sha512-TpqLKjaLZgJEaYOw+aryMnpOoZx37gS9gvre3JpuEkvAX0FRrjn7X+zo1byG8uPJa8irm/QBfi/hB9XbuYi0oA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkyJWGlwaL67/mp2I22YNQXxzl96FS4i8/vWgXzDn1SAiEAzjaZu7btVOVbR83lTg/sqAKQpmHCPrTRt/gARiG7dC4="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/state-trooper-0.5.6.tgz_1491486626682_0.5501171408686787"},"directories":{}},"2.0.0-b1":{"name":"state-trooper","version":"2.0.0-b1","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"^0.5.0","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"7c9bc5b9b2a02b19a5ebab0b771903e67d2ca737","_id":"state-trooper@2.0.0-b1","_shasum":"a7f6ab810a8ea923a7934068b9d144406ebc406c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"a7f6ab810a8ea923a7934068b9d144406ebc406c","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.0.0-b1.tgz","integrity":"sha512-hRMTX48EUfTxoR2D6RIcrTE3r6FBWgLfLPhg7m1wZ6XB9xPt2TDQucdccfRDb8Z91XMeb6tAUXgnL8buHk8Hbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6xctJ3i3J2WwOH9l3sn2eAtxSb2UkBxOnx2TKsQgybAiB6CfzCJ//Hdfe4mWJn8siFUt1Hk723oeiXMFV/7yv0eA=="}]},"maintainers":[{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"agoodale@wingspan.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/state-trooper-2.0.0-b1.tgz_1494360698904_0.6925189800094813"},"directories":{}},"2.0.0-b2":{"name":"state-trooper","version":"2.0.0-b2","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"^0.5.0","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"e262cfcb817cb5322c35413825d91434633cd4c3","_id":"state-trooper@2.0.0-b2","_shasum":"c623a65c2a0dc8e2e716f48c11f27f4a9f402790","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"c623a65c2a0dc8e2e716f48c11f27f4a9f402790","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.0.0-b2.tgz","integrity":"sha512-8yUyS/wxr2hYFcN8AHdA3qehB6Ic5sypByyP6lp4SQd+rkQVww7d8cmOyUhOKHmqeYCGQOvIl8FNCyB4em2waA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+QNOKXQNREjOO49kOG70LAJhh2vDWphA+WpjyuwVGQgIgalv0br9eLUrgyv8cNG2Yp+Sh73V8fiV+qQRO/T/TwDw="}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/state-trooper-2.0.0-b2.tgz_1494959865152_0.18991722539067268"},"directories":{}},"2.0.0-b3":{"name":"state-trooper","version":"2.0.0-b3","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"^0.5.0","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"b3b356b6217489d86e68304de86c65852aef867f","_id":"state-trooper@2.0.0-b3","_shasum":"8cd46b5444151a5af91adb187c7bd320c87f4e81","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"8cd46b5444151a5af91adb187c7bd320c87f4e81","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.0.0-b3.tgz","integrity":"sha512-Azx6klKKAh2uq5lkN4aXg8G1aTks153jVhH6F0ymRqSFiz/cDb2LnJ8tqxwZ+vmkobW/g1Q7QO7NMzNcddCyUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIELtdJlreplA8YISVOnAS7DzFlTqZ3l3pFgFCOBQK8DyAiEA06jSbOCxA/8wB+MF2TJv62QIt0dZvt0+QvOW6g0qJG4="}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/state-trooper-2.0.0-b3.tgz_1495043958155_0.4579536644741893"},"directories":{}},"2.0.0":{"name":"state-trooper","version":"2.0.0","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"^0.5.0","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"72271af35558631878d85823fd17bb23886fb77c","_id":"state-trooper@2.0.0","_shasum":"2be706d681bdbedbe25df3292a374fce5ef0ba10","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"2be706d681bdbedbe25df3292a374fce5ef0ba10","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.0.0.tgz","integrity":"sha512-/Pgh7A4+0EYZJCoK5jB44IwvVsAP4FPP6B5nHMIueL0l3Z/5L2OeOPJWwniXpmDO0y056YuNdGcKGJRBoftm3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaw+ayM7GDLbeoDhRo33QDkdd2bueDiG5dK06SRQ5YrAiEAwa2rG4nUfkxYVUsgFcju3X8mThddHf2al8jFXuMR/kI="}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-trooper-2.0.0.tgz_1495637517815_0.45809448999352753"},"directories":{}},"2.1.0":{"name":"state-trooper","version":"2.1.0","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"0.9.2","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"2fc1309615e8905f3355acc032f4b77d1111c4fd","_id":"state-trooper@2.1.0","_shasum":"c077ff279ae4a81e8e3830725dd60e3aab6d08c1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"c077ff279ae4a81e8e3830725dd60e3aab6d08c1","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.1.0.tgz","integrity":"sha512-BafIFtla0ZZnbz2CgTs/yTe3R11uVmocc43LsWP55JVKPCHbZtvRYMhwYTMfHimpX4w5RfxowxQ1hzYruw0hJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6zZfxXFHv5kpEkk7vKNazIsArb9gv+iCx7IK1T7s73wIhAKGb0NfMmor8BDI2wCvV29oUvSew7XL6vBrHx5wO+zNR"}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-trooper-2.1.0.tgz_1497014747437_0.7382206649053842"},"directories":{}},"2.1.1":{"name":"state-trooper","version":"2.1.1","description":"Application State Manager","main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"0.9.2","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"dd3c0eaca97fa37af40084fc9593f546aa535f34","_id":"state-trooper@2.1.1","_shasum":"1ac460223ab4d2015042fb232b33f42b082e53ce","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"1ac460223ab4d2015042fb232b33f42b082e53ce","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.1.1.tgz","integrity":"sha512-MlsItwgE/6sCDoBZob8OgY5k4ljTKiJsq0cr/z/FQs+eRUdErr7DIRtWQlW/Kpp/Loejpr/HJ6jV9ksjNNHw3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID87yVedFNMVv7mBr2rY0eHLSpp3bRptiBn+E4CqYQA+AiEAgFElqcsPC5OlA53jWi4dC+Uy8fRi5I0r5agM46bENb8="}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-trooper-2.1.1.tgz_1500038020088_0.8783471120987087"},"directories":{}},"2.1.2":{"name":"state-trooper","version":"2.1.2","description":"Application State Manager","keywords":["react","cursor","functional","flux","immutable","state"],"main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"0.9.2","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"2f2adf998c975b0c27a69c12f1f9af31e9b754d1","_id":"state-trooper@2.1.2","_shasum":"53b3d97b9ea2fcedc03d85b82fb911f01581e50a","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"53b3d97b9ea2fcedc03d85b82fb911f01581e50a","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.1.2.tgz","integrity":"sha512-BAVq4EbADXLw+0l5/JHGf6d/koO6/hf/3712mMSK5YA+rnOx89c8LiVXGM2VRHsctUjF1UZrqqqNbxkWYw5yUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkmgfHot/tkVLConATVOiXGhi64bF9XneUMPR5D0ti0gIhAIKLthv8TmsGSXkGIPym1NIvRjho1O6wFfoPw/hK2iEh"}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-trooper-2.1.2.tgz_1504033316591_0.10315963602624834"},"directories":{}},"2.1.3":{"name":"state-trooper","version":"2.1.3","description":"Application State Manager","keywords":["react","cursor","functional","flux","immutable","state"],"main":"index.js","types":"index.d.ts","scripts":{"test":"./node_modules/mocha/bin/mocha --reporter dot --compilers js:babel/register test/**_test.js","prepublish":"babel src/ -d dist/"},"repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"license":"MIT","bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"homepage":"https://github.com/swipely/state-trooper","dependencies":{"immutability-helper":"^2.2.0","js-csp":"0.9.2","lodash.isequal":"^4.5.0"},"devDependencies":{"sinon":"^2.2.0","mocha":"^3.3.0","expect.js":"^0.3.1","babel":"^5.6.7"},"gitHead":"117a43602639606082d31d3d9b6c547e9f53b192","_id":"state-trooper@2.1.3","_shasum":"51c2a23aaa8fee5ba7ee8f45a4b1c89d71330fa8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.4","_npmUser":{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"},"dist":{"shasum":"51c2a23aaa8fee5ba7ee8f45a4b1c89d71330fa8","tarball":"https://registry.npmjs.org/state-trooper/-/state-trooper-2.1.3.tgz","integrity":"sha512-5cfZIk16wgz+yxkFQ5ricdqwwfd/OR/Vcfh906RMJbB19qOwBzPuXH92aIkKV4/u1Xeh3IlL8vT9K/fNxyUxaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZoC5UTb5Bj/ElTr4DRzT0RQS2c3dqGIfItexg8s5YhwIhAIEP2rMxAWY8gDMIMA30ENV9ILcte5q/6Y6ytzMNhaam"}]},"maintainers":[{"name":"adamedgett","email":"AdamEdgett@gmail.com"},{"name":"hojberg","email":"r.hackr@gmail.com"},{"name":"newyankeecodeshop","email":"andrewgoodale@upserve.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-trooper-2.1.3.tgz_1508887645874_0.26701404503546655"},"directories":{}}},"readme":"state trooper\n=============\n\n![](https://travis-ci.org/swipely/state-trooper.svg?branch=master)\n\n# Example Usage\n\nCall `StateTrooper.patrolRunLoop` in your route handler/main app entry point\n```javascript\n\nconst config = {\n  // describe the state for the page\n  state: {\n    serverReport: null,\n    bio: null,\n    activity: null\n  },\n\n  // describe the fetchers and persisters for each piece of state\n  // fetchers and persisters are functions that should return channels\n  dataStore: {\n    'serverReport': { fetcher: serverReportFetcher },\n    'bio': { fetcher: bioFetcher, persister: bioPersister },\n    'activity': { fetcher: activityFetcher }\n  }\n};\nconst cursor = StateTrooper.patrolRunLoop(config, (cursor) => {\n  // Re-render the component when state changes generate new cursors\n  React.render(<Server cursor={cursor}/>, document.querySelector('body'));\n});\n\n// Render the component with the initial cursor\nReact.render(\n  <Server cursor={cursor}/>,\n  document.querySelector('body')\n);\n\n```\n\nUsing cursors inside of the components\n```javascript\nconst Server = React.createClass({\n  render: function () {\n    return (\n      <div>\n        <ServerReport cursor={this.props.cursor.refine('serverReport')}/>\n        <Bio cursor={this.props.cursor.refine('bio')}/>\n      </div>\n    );\n  }\n});\n\nconst Bio = React.createClass({\n  render: function () {\n    const bio = this.props.cursor.deref();\n\n    if (bio) {\n      return (\n        <form>\n          <label>Name</label>\n          <input type='text' value={bio.name} onChange={this.handleChange}/>\n          <button onClick={this.handleSaveClick}>Save</button>\n        </form>\n      );\n    }\n    else {\n      return null;\n    }\n  },\n\n  handleChange: function (ev) {\n    this.props.cursor.set({ name: ev.target.value });\n  },\n\n  handleSaveClick: function () {\n    this.props.cursor.persist();\n  }\n});\n```\n\nFetchers will be called with a `cursor` and a `rootCursor`\nPersisters will be called with a `cursor`, a `change` and a `rootCursor`\n\nTo have your fetchers or persisters change the state, simply use one of the\nmutating functions of a cursor.\n\n# How state changes are applied\nState change are applied one after each other. Making a change will always\nproduce a new top level cursor with the update state.  However there are cases\nwhere you can call request several mutate changes via any of the mutative\nfunctions on a cursor (`set`, `replace`, `add`, `remove`) in short succession.\nIn cases like this the state changes might be requested before the first change\nis propegated. StateTrooper ensures that the changes are applied sequentially\nregardless of wether or not a new cursor has been added to the cursor chan yet.\n\n# Cursor API:\nGiven this state:\n```javascript\n{\n  foo: {\n    bar: 'baz',\n    beep: ['hey', 'yo']\n  }\n}\n```\n\n### cursor#refine\n```javascript\ncursor.refine('foo.bar');\n```\nCalling cursor#refine with a string path will create a new cursor for that part\nof the state.  This is useful as you go down the component tree and the focus\nyour component and state on a specific domain.\n\n### cursor#deref\n```javascript\ncursor.refine('foo').deref();\n// or\ncursor.deref('foo');\n```\nCalling cursor#deref returns the value at the refined location.\nIf a path is provided, the path will be used starting at the refined location.\n\n### cursor#set\n```javascript\ncursor.refine('foo').set({ bar: 'foo' });\n```\nCalling cursor#set will merge the changes into the state at the path of the\ncursor. Similar to reacts setState.\nIn this example the state change will result in:\n```javascript\n{\n  foo: {\n    bar: 'foo',\n    beep: ['hey', 'yo']\n  }\n}\n```\nset is only available on Objects/Maps\n\n### cursor#replace\n```javascript\ncursor.refine('foo').replace('bar');\n```\nCalling cursor#replace will replace the entire subtree at the path of the cursor\nIn this example the state change will result in:\n```javascript\n{\n  foo: 'bar'\n}\n```\n\n### cursor#remove\n```javascript\ncursor.refine('foo.beep.0').remove();\n```\nCalling cursor#remove will remove the entire subtree at the path of the cursor.\nThis works on both arrays and objects.\nIn this example the state change will result in:\n```javascript\n{\n  foo: {\n    bar: 'baz',\n    beep: ['yo']\n  }\n}\n```\n\n### cursor#add\n```javascript\ncursor.refine('foo.beep').add('yo');\n```\nCalling cursor#add will push a new value on the end of the array held by the cursor.\nIn this example the state change will result in:\n```javascript\n{\n  foo: {\n    bar: 'baz',\n    beep: ['hey', 'yo', 'yo']\n  }\n}\n```\nadd is only available on `Array` values.\n\n### cursor#equals\n```javascript\nthis.state.cursor.equals(newState.cursor);\n```\nThis method compares the state encapsulated by two cursors. If the cursors hold equivalent values,\nbased on the result of an `equals()` method, comparison by `Object.prototype.valueOf()`,\nor comparison of key/value pairs on the object.\nIf you are a `React` user, this method can be useful for implementing `shouldComponentUpdate`.\n\n# Monitoring Changes\n\nStateTrooper also provides a mechanism for monitoring a piece of state and being notified when it changes.\nThese are called \"stakeouts\". These are useful when an application needs to respond to a change in one piece of state,\nsuch as changing a user preference, and make further state changes.\n\n### StateTrooper.stakeout\n```javascript\nStateTrooper.stakeout('activityReport', (update, cursor) => {\n  // The `update` holds the new value and the action that caused the update\n  // The `cursor` is the root cursor.\n  if (update.value.somethingExcitingChanged) {\n    fetch(myExcitingService)\n      .then(response => response.json())\n      .then(json => cursor.replace('myExcitingState', json));\n  }\n});\n```\n\n### StateTrooper.patrol\n```javascript\n  function handleActivityReportChange(update, cursor) {\n    console.log('handleActivityReportChange', update);\n  }\n\n  const cursorChan = StateTrooper.patrol({\n    // describe the state for the page\n    state: {\n      activity: null,\n      activityReport: null\n    },\n    stakeout: {\n      'activityReport': [handleActivityReportChange]\n    }\n  });\n\n```\n\n# API Changes\n\nA major change in the 2.x release of state-trooper is the removal of `immutable-js` as the internal data structure for storing state.\n\nThe following APIs changed in v2.x:\n\n- cursor#deref(): Values returned are not `immutable-js` Maps or Lists.\n- cursor#derefJS(): *REMOVED*\n- cursor#hasSameValue(): Renamed to `cursor#equals`.\n- cursor#map(): *REMOVED*\n\n- StateTrooper#stakeout(): *ADDED*\n- StateTrooper#patrol(): The \"config\" object supports a `stakeout` property.","maintainers":[{"email":"npm@barnabyclaydon.com","name":"barnabyc"},{"email":"AEdgett77@gmail.com","name":"adamedgett"},{"email":"r.hackr@gmail.com","name":"hojberg"},{"email":"andrewgoodale@upserve.com","name":"newyankeecodeshop"},{"email":"katryn.mcintosh@gmail.com","name":"katrynmc"}],"time":{"modified":"2022-06-26T23:59:34.387Z","created":"2014-10-27T18:36:30.101Z","0.0.1":"2014-10-27T18:36:30.101Z","0.0.2":"2015-02-04T22:23:26.051Z","0.1.0":"2015-06-18T17:56:17.099Z","0.4.0":"2015-10-29T14:51:48.528Z","0.4.1":"2015-10-29T15:03:09.129Z","0.5.0":"2015-11-23T20:39:00.270Z","0.5.1":"2015-11-23T22:04:35.558Z","0.5.2":"2015-12-29T16:06:52.743Z","0.5.3":"2016-09-27T15:15:17.337Z","0.5.4":"2017-01-30T16:43:55.789Z","0.5.5":"2017-03-21T17:09:50.887Z","0.5.6":"2017-04-06T13:50:27.243Z","2.0.0-b1":"2017-05-09T20:11:39.984Z","2.0.0-b2":"2017-05-16T18:37:47.870Z","2.0.0-b3":"2017-05-17T17:59:20.609Z","2.0.0":"2017-05-24T14:51:59.805Z","2.1.0":"2017-06-09T13:25:49.610Z","2.1.1":"2017-07-14T13:13:42.011Z","2.1.2":"2017-08-29T19:01:58.800Z","2.1.3":"2017-10-24T23:27:27.924Z"},"homepage":"https://github.com/swipely/state-trooper","repository":{"type":"git","url":"git://github.com/swipely/state-trooper.git"},"bugs":{"url":"https://github.com/swipely/state-trooper/issues"},"license":"MIT","readmeFilename":"README.md","keywords":["react","cursor","functional","flux","immutable","state"]}