{"_id":"livedb","_rev":"132-4375fc1a849b63bcf989963289c76e5d","name":"livedb","description":"Realtime database wrapper","dist-tags":{"latest":"0.5.13"},"versions":{"0.0.0":{"name":"livedb","version":"0.0.0","description":"Realtime database wrapper","main":"lib/index.coffee","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5.0","redis":"~0.8.2","ottypes":"git://github.com/share/ottypes.git"},"devDependencies":{"coffee-script":"~1.5.0","mocha":"~1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":"","author":"","license":"BSD","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","_id":"livedb@0.0.0","dist":{"shasum":"ed386b49a31853bee35a74bced2cfa7be502691d","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.0.0.tgz","integrity":"sha512-0c4IMl4GuhzVIsm2AxZqr7rjgaw4eG5Hmh8pn46dJNwEiCQTAHC0iefMuRjECfgss5/eflKzmzn5fY9nRSWFMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwXcNGcem/je169LnvCGqma1ZW/gCFfYxopQq5jpLuSAIhAOpX5XBrgpRjUnpKa+XkK7BhaDdYkr97YtRu0pmXrmkc"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"}],"directories":{}},"0.0.1":{"name":"livedb","version":"0.0.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5","redis":"~0.8","ottypes":"~0.6","arraydiff":"~0.1"},"devDependencies":{"coffee-script":"~1.5","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.0.1","dist":{"shasum":"f007eaacc57799c83cfd8dcfa232616f87295c7b","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.0.1.tgz","integrity":"sha512-aflhtxwzOadK+VDGwx0PAkY2F7nRvYcLpQEJ6ttiFMgUWW49AbKHAIy8bNm5Pq0mrsFdi0NSZp9NJ/qBB50xRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC93ujtKqAVZuE3G/4cFDcxnZhG+oR6QaYiTWbtNRJ7CQIhAMiko9iiWJaSVhsHM1JJIX9kyf/CaL9c+XxBL/9tVcsN"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"}],"directories":{}},"0.1.0":{"name":"livedb","version":"0.1.0","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5","redis":"~0.8","ottypes":"~0.6","arraydiff":"~0.1.1"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.0","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.0","dist":{"shasum":"24e349fba2545fd2dddc2f79394c4c1605d43592","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.0.tgz","integrity":"sha512-jpINsHi5rGXHuVJtCyeNeWTm6Sz0N+eEqcC/JJQs+SzZBqXDh3x3xSHQ5/TDiUklZrDWjHhKuH1skkrYNYaaCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD85hXdwpIZDfpJIKdMyYBta9ZAmUOPGO7d+Oy3ZSGt4AIgMDHN84q37V+cD54lDuYsvfc4cBjpC0PPjfP3hdPOA5o="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"}],"directories":{}},"0.1.1":{"name":"livedb","version":"0.1.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5","redis":"~0.8","ottypes":"~0.6","arraydiff":"~0.1.1"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.0","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.1","dist":{"shasum":"88bb9f5af5b619631c9c74782f3cf7e5b321ea82","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.1.tgz","integrity":"sha512-XiiyocgAdkpZCsSqFRdDRLehAoMf80BVIz1cx88o1QzCeqlhQkuwP6aytKouf+SM6uuS2l1KbXBx+Ph75RvzFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID79iZrQ3HivVg0pbxBzfXM7R6oqbodtPVXqS4kLpnBSAiEA9r3X6yYLd1ta1KIZ8NFteq1cjSIh3sh5Nt5vIHQMhNk="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.2":{"name":"livedb","version":"0.1.2","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5","redis":"~0.8","ottypes":"~0.6","arraydiff":"~0.1.1"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.2","dist":{"shasum":"a651c66e888a65bc11bb9db83cc3c1f225337f29","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.2.tgz","integrity":"sha512-15vIGojD/T8I1eP1+sYx+RmES2vA/tnS9wzn2mfzfSQI9bJNi/Zcdb4z8o1RErt/b8IRQ+YwWeT2cBWRhQlcXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDJgib0KHysD5A1e4L6x+mu4/ROj7iwGOobJGL85YmrQAiA37EtNk65H1RhW84HpEUmGXx62UMHge3dRyExmEfNb1w=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.3":{"name":"livedb","version":"0.1.3","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"hiredis":"~0.1.14","mongoskin":"~0.5","redis":"~0.8","ottypes":"~0.6","arraydiff":"~0.1.1"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.3","dist":{"shasum":"79597ef839abbb2e388cc3c13dbe4713294beac8","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.3.tgz","integrity":"sha512-FI4k8uhzF0X+qlkrIA49R1x3g1TBHJzvxP08B2wxOry1psPlK0WEhR8wTpJ2uLj5mBDB67mwVJgNlbMODS5UbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ2Iw/sO2VNhsuW9BPttgWRWAeuVenO+aDprJdp2x/VwIhAMwBTuB5LPGO2jdWa3iqw2TTlafCpZMIzJg3O4bpHVy2"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.4":{"name":"livedb","version":"0.1.4","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"mongoskin":"~0.5","redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.4","dist":{"shasum":"81333be3d7fbf6c9e719d7d672762e27cdf12502","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.4.tgz","integrity":"sha512-8tTZFobNDtun30COQOoIhMWMOEun2KoCemfSJdbE++6IcO0pObMgheEuGeiu9M01zpfH0sIKIZ6EVL55YJzDCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7bs4G9uR2h849c/QGfCLZ4XWefDkSkk7f4eUZG4tG4QIhALVa6bV/Uq6wNguzkreEfOldx8jSEXM2hBk5RkB/g+iV"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.5":{"name":"livedb","version":"0.1.5","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"mongoskin":"~0.5","redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.5","dist":{"shasum":"c8163d4433df085e595e016040fe8028f96bcdd2","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.5.tgz","integrity":"sha512-ljDRDxieeZECQ/+UwEexKVf6f/jRutsMyxAEEG/STqgl6GXSNymg18xNA8wiqx5Mc4KxeAYopJZnleqvl+NX2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJPIHqmJOBhDWl1T1gkpcYtGYWIidVXVcFcAY30/c/3AiEAzdcFAPZDir1qUaE3vvUWrlXJHDXcOLo5IIhgk0dtRH4="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.6":{"name":"livedb","version":"0.1.6","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"mongoskin":"~0.5","redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.6","dist":{"shasum":"60cbef4ebdaa1f8882fa763881b2ee994d51388d","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.6.tgz","integrity":"sha512-Uj0ZciLZ4/FzQs4OjrTCoQEQNlmDIjNZtKzxkfiHPpappZMB70YfKcSHfY4q0kq8DmBKqfIaobtngAvw3ea0DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYYQ6lsLdSqPDFvl0nmx0mZdmY5Z3TnNT0c1uw47eb6AiEA4JmAqcrb5/cAATzEf1EaqVfDZS/reQ2OH26cvCGV1KI="}]},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.7":{"name":"livedb","version":"0.1.7","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"mongoskin":"~0.5","redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.7","dist":{"shasum":"493d8adbbfe7c0e6bfaa3d2430ba711d1774c19b","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.7.tgz","integrity":"sha512-G58WIuK0AZ0TNzF+AUtbHJ7Pb/QYSTkBhpk7aCh90N5EmfsNqa00w36KRU0W4NA0Ue3+mWV7BEwxzxL6XgwGPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDp/pSiL+39Czk/8bmPVLbyBtqZ3SdBntcfdF57gyJAKgIhAI807igjDdVjF3UDNLCiql0JYRcz9fNlc7otsIXSgV85"}]},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.1.8":{"name":"livedb","version":"0.1.8","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"mongoskin":"~0.5","redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","livedb-mongo":"0.1.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.1.8","dist":{"shasum":"795a1ab1d285a60497ecf879bd117837b0b9d5b7","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.1.8.tgz","integrity":"sha512-8pbZeUZ2QqydEbXpUtbGMJperue4JnX4wU2OPQc7lvEVKk0ClJ4IJR3ppoKJ78iekPa3d0F+nefPJuh9nnFIDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhJ6Ly66vZzMFxsdmoa8dxUbC4dptDVeaFDBih33XvKAiEAozUsWl26aqUk85/TMUQGRLg069xdSx7acAtq7H2i48g="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.0":{"name":"livedb","version":"0.2.0","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.0","dist":{"shasum":"64dbc29539f506f91a2e3cc36b23cc94b728d822","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.0.tgz","integrity":"sha512-Un+vJpxOFipPu0z4Ax3Tk5mwOu1llvFGS0N7ibM/egpM9nrYAjbU9zboAe/V+LZbgaGtI6K7249nX9awNl/4kA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEqnpWOwB34WDbdOwPvljc1U+SwIpxilDF80DfB2me4+AiBIRqsYW7eNd3K9vf2Fd3JMYd79oXX7BiaMb1aHSfQn0w=="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.1":{"name":"livedb","version":"0.2.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.1","dist":{"shasum":"6e8e8f24ad85c182eaa63eb81a25a99e2f0b2a18","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.1.tgz","integrity":"sha512-Evacdh5mJX2nSpMaaY19Q0X9g+RCf7ouhsct53stWQ/fFpVh5dUYOZ8mcyPNwFKCTQKFXzD4Y/IX4lqk8zdIbw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOUko1valjsjKJL5ba5T9/S/ahdt8TBU1CR5w/kLDZXAIhAPhk8kNtqNcUwHf415UyqLG4Po8b63iB+08EzgQk3j8M"}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.2":{"name":"livedb","version":"0.2.2","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.2","dist":{"shasum":"a0b9590fad6e58043842e94ddf83b06866f938eb","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.2.tgz","integrity":"sha512-Q0iEht93jAmglvBn9dEmDf/SsM0i6F36xblU+TYz8CDwEj+sp36vUmFCGbQlxzkChlyitPpv5kYmOQ9brxHwKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFaW6Jxx0Jz2wvJyVM9x9uofQhHVY9zXJcgVKt8m8oWvAiEA2yo33RYE2m7sOvLjANadJM2K7Usla5gxdTw3QSaQt10="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.4":{"name":"livedb","version":"0.2.4","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.4","dist":{"shasum":"9432c2d8bc8a584b183cd31c64d5f93dc0217ee3","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.4.tgz","integrity":"sha512-bWEq8dMR0gHZd9I5lSWwp3ea2LzlOFJLxx4L9j6nsxVUrSPsKuGx7Rg37udPK3UyCS/JBfg3rbPGtRnGa7yfLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDwFnubuQVSwswxGYJpu915sWIBPgzikyUNg38hXobbHAiEAmw9wbpzXBJY1xIi3L6se7bhlsLIRd9uuiSwkyIgFrjs="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.5":{"name":"livedb","version":"0.2.5","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"0.1.2","arraydiff":"~0.1.1","hiredis":"~0.1.14"},"optionalDependencies":{"hiredis":"~0.1.14"},"devDependencies":{"coffee-script":"~1.6.2","mocha":"~1"},"scripts":{"prepublish":"make all","test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.5","dist":{"shasum":"63dc8e0de15faae46f5350e5764dd9020a32da07","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.5.tgz","integrity":"sha512-HbWVDCD42qezkv2uFrsZrc3IaG5Av0H+fRIP78rjoXPa9RBTlp4P81kzOFtHw7JvB7AhB8itDpxG0wS8vWBpaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhFTbRxfkWXLOD42/ngSDRVXdb/21qK1yYeHV1nqFzhQIgcDK0E015ACCethCziCJr2ZVDeXQNztY3TKls7hA2Yp4="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.6":{"name":"livedb","version":"0.2.6","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"*"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.6","dist":{"shasum":"603d1475f484beac1fb95e3f4d5f1dda76c59804","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.6.tgz","integrity":"sha512-QNWPuguJkVG/RidA5emyJGa7a0Q6b1MdqGKvrue4j4dF94ylSrUBxoinYcoJxv9P0qfZENJ9eG84fWzc2QNk2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwOfH/B+H63zdlc/1XYU0Vtk6zWNOjnVLNnlgxEN1MAgIhAL2uqE6niFJxVrm0Vmqdxvz/o+9hgOq2m6tHaGj3NOl0"}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"directories":{}},"0.2.7":{"name":"livedb","version":"0.2.7","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"*"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.2.7","dist":{"shasum":"b123a865801b5fe41c481e76c50eb9a3a802df2b","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.2.7.tgz","integrity":"sha512-iZaFapzKRcuTntfC563rKYyqaBh+xDDKurMVslebXIGPVD9kn5mMpqrIwypZsecsvYPI3Z96P1Wdta1Yyvjl8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe4QtoExc4utv4Flalygzwphgf0mre2MHHG5iiRLNcsgIhAMTEK19/PX3RN4tnlBRdctwhPcOHbfiN5d278M6/5LWF"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.3.0":{"name":"livedb","version":"0.3.0","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"*"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"_id":"livedb@0.3.0","dist":{"shasum":"3f4459010af4c9597d94b3c4d66465b169de4b19","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.3.0.tgz","integrity":"sha512-eHU2M6sIs9S4wE6EyvPYYVlsPtt2wu0So8HvmHN9LTgSGYU4oKed8tEzqOHR8Y0hody1WlB5QcTArrSdu/VDmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICk5Y4LPhJ3rQhXzk2E/LvmhTANwlHwrI3HmuqHbWneBAiAh9uPITY6d9BN2w8BiENucCm4XU/DUUbXAyP/rJxZsZQ=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.3.1":{"name":"livedb","version":"0.3.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"redis":"~0.8","ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","async":"~0.2.9","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.3.1","dist":{"shasum":"385d3d590411baa308d95762c29efe2350565eb2","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.3.1.tgz","integrity":"sha512-z9Ut32VMvamQVl5+uIsW8LpkDKJw10zP4B8yOa/A7UrLtQVWsfmK24qwlsVng01SsPX0JSfjlDbhupC37mAOhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcgWWkGjmNRTCoEk9QwPalL3IYibC7TX0jC37rxtM1IQIgS7u4XFjeLNQ4HP7VXS5fiGARXJc6fApNqqmpiwm4a6M="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"josephg@gmail.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.0":{"name":"livedb","version":"0.4.0","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.0","dist":{"shasum":"56443db468fd1fa74d47c4115eac5b4decabe97e","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.0.tgz","integrity":"sha512-u2R71EF8W8CdXY24n6TkitVGYDeaxdTrXP2OizAuNM5nXmXFx4BX6uZE5zWt5100KTYyD0QzNlY4x4BV8mhp9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHASlh8/KZouPrWk2qYhy242tXOPyjiF9796+h8ERoxAAiEAwHWdk4wiy85WSdSedBvso4zB9yb3elFMPnH36QOyq/A="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"me@josephg.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.1":{"name":"livedb","version":"0.4.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.1","dist":{"shasum":"3c3aaa163ac72c77807c401d50bfa339fc93445c","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.1.tgz","integrity":"sha512-OYPvGed/IQSWEDRyI6Qf05MiY64iaCmegqwMHQAoCx2lVAOO0rA4X370hBdS2VUaPkRatyqMdRxEoW0PlBn92w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBLVf03IW08GljH/fOv/aj8C3CLm8jukIT2Zu6IhmJ2aAiAbU72kz3/CXXSkFIaR//DzeovjlnQpnDHnXO1e1l8lJA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"me@josephg.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.3":{"name":"livedb","version":"0.4.3","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.3","dist":{"shasum":"822dd498a619909becc8c533627fb8c5e4b8d71c","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.3.tgz","integrity":"sha512-8cQWI59HIfthuqpDZ3xLjXCOLLk6bGcF7vIW+d5CJRQmFRq/Lvd3QQS3/j+ixeARfEdyINsJy1qxiH73ZjdVlA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDFyFcRtaaZ1LDOND9q2wEokQ+hbHWjpWei5hQxdwu0cQIfEdQDUSx6NRPT5s6g/lvBVOtdfK6+xI6y+MUc7zdiFw=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"me@josephg.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.4":{"name":"livedb","version":"0.4.4","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"ottypes":"~1","deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"optionalDependencies":{"redis":"~0.10","hiredis":"~0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.4","dist":{"shasum":"37af121a60d2a5ec4e2a498317b27488e47b37cc","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.4.tgz","integrity":"sha512-HBrqLdAVXF6Xws4rRwY3s5asIQ4ANQR7pzYlwOKRfC4EpK0y0h7kdfP5TBbCZQDlZLR1qjcg9ZlDGxOEe27j9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWvW4Qrp4rpdc9Gu8O6ePzf5xsOaV9yqcVpfD80afMbQIgHIPROgI59zgJI23Mz3J9jyKUfI8gFs8Ho83k2nwQqz0="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"me@josephg.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.7":{"name":"livedb","version":"0.4.7","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.7","dist":{"shasum":"bfd1ffbe8bf10a953437d34c34adbd52f55cce74","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.7.tgz","integrity":"sha512-tIvXvqkrdoWn/iNfDr96Hs8TgLy8AOYs7qv6yQKXj7eWGp9gQd6d+s7eZ+wT4QHFC/f0tNhVR3EDufuWyCQvqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYPmyxXDyZciSL1HMlk0IbrZ6c9XZv285kYsXfaxzB4QIhAMqrpDhczkHJhBio9/wqPAHfMqlrquEeOOeE6pw+xtUi"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"josephg","email":"me@josephg.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.8":{"name":"livedb","version":"0.4.8","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.8","dist":{"shasum":"fe4a432d36b9f1d2867aa8db158c3237891771e5","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.8.tgz","integrity":"sha512-pDJ3t+iTTtyEtJad8d4p3AwSCvETokY/dGy6Dt7f/N2/KP771MOxWhGUgn2YFCVDA9Pr57ENWvA2UA5LLPZ1Qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcJ7DLlDPqNG069eQqfjzCiy6RsFCzDNinrOtKyuqPvgIhAKf45qH52x1Nb+hS/IbrwoSFWPEjiVAUYajnQaOSMjuf"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.9":{"name":"livedb","version":"0.4.9","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.9","dist":{"shasum":"bd3d20dd0f8bcc0f615bee4dca7586492b715379","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.9.tgz","integrity":"sha512-TbWfnOVFejvZZNN3+XmV07EpQrd0uQAeZibRO7K2PDEmMhXzzDRztjoe8pALPUIMR1XrIzw206/DtBK6wvvZMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBeNl5T34C4ttWKQYo2p83jPJfw3WjRgpCriCONpntwkAiEA3g5gCR2uLgKu2Sy9qzrwpya3f2+ETUX7NHFrRjSTpyk="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.10":{"name":"livedb","version":"0.4.10","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.10","dist":{"shasum":"adde524d9ea13c9a70f363cf3066f888400dc599","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.10.tgz","integrity":"sha512-/+r0nAowovoASHjbuvLzcL+qIdvKv9v4hGHNiA/4ZsrJlr84TMG6STFo54Y/vyfhjQf6EbdxzVt2R9KoYvqa0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvuBzLsqU5SllZf+FC56cghSIB1xNJuh3Mz+6xqnTtwgIhAJfkPNvb23f9or6RHv+iNKg6or4i+jjo7ozFB6nShVkC"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.11":{"name":"livedb","version":"0.4.11","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.1","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.11","dist":{"shasum":"00cbe65b3798b077e2f8c5774564a9667456dab7","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.11.tgz","integrity":"sha512-TDQyEqWLNIXYfLXZwTEdUkODBCGoViU/HRgYz8VYOJgp+lFnPLpX/6uftDvHxyhBbUSP4M8HwFXMBn5/Oblqfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICgG9in1rdUkVI0WPfV9t2vuprMP9vQWt1qlVzKdW+MxAiBS2gthjCqoK0d1iLcOFypEMeaikF2g1GU35NlKx4qzmg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}]},"0.4.12":{"name":"livedb","version":"0.4.12","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.12","_shasum":"8881aa17e508ecbdaeaab4c57e51d141ba325fd4","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"8881aa17e508ecbdaeaab4c57e51d141ba325fd4","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.12.tgz","integrity":"sha512-fMzuQaWDz+iStP4r7HaMyqJKY+xnA744CpgmmKl7pxHoKOdpCRdDyAdbn2ezKCUixYBNtWrHEYRn4xW+HHuS5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWwCCivncyYFXLjjl9KNKxRn8rGFysTZB++6VdiCnXJAIgHwBifqW2hdSoxhhClhpNvTmOu8jteLThfdbALNgnr5c="}]}},"0.4.13":{"name":"livedb","version":"0.4.13","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.4.13","_shasum":"ec537f78a5fb4eaece49c63f7638bd142711592f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"ec537f78a5fb4eaece49c63f7638bd142711592f","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.4.13.tgz","integrity":"sha512-cfMbWCgBb1OYcNbXq3WW1x93p74CevzHgbUazipNd7e4R/ous96CsIc0sUgWFu1JCRTmWd33xKFlezCQjuT/9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChcA4m/H0UYrJNRVt6TMqVeHqdgrHBnVrm6gtxQtyCFAIgag2o4EtGDpJ6WGZVktAuru7PbpYngU+wyS24NNACpmk="}]}},"0.5.0":{"name":"livedb","version":"0.5.0","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.0","_shasum":"c2be75c170214ba69a28fec2d14404b63b3abb3f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"c2be75c170214ba69a28fec2d14404b63b3abb3f","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.0.tgz","integrity":"sha512-NxpuVPiL84fcEK456lmNc21yJSewulJleLb66Ceydt9Vrji3OWFHdgtO4aR+f5k1FKORLPsQ9/7C+ETJaWSuhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDA/RWoWlc4ykOGW0KGM4GUETWCRmX/Udjx4Wuc7qXzvAiEAhqqGvOh8tmW8YoLu6NPTKH9L9ZglrfhW/KxVwbzRMfM="}]}},"0.5.1":{"name":"livedb","version":"0.5.1","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.1","_shasum":"05f9bba4a3ad897a4a3ac368128a67e839ded013","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"05f9bba4a3ad897a4a3ac368128a67e839ded013","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.1.tgz","integrity":"sha512-+wpOJX1KQTE4PqzS9F//G1snjAwYwJeqtNxtCssIQ6wU5vuXQzTAPNh3rx5YzWyCW2W0Cpog+30qPrcEHzEkyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFwIRopsfbGIKLVMklj4dD+ZF+7kNF5rQyzJaSi3rD+gIhAI0kJvRR46+feh1aOhz4Xcnj2lXzjLBgjBcvCMZw/hYy"}]}},"0.5.2":{"name":"livedb","version":"0.5.2","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.2","_shasum":"ff55dedea8c4cdf98408c6dff97fa49215ffeeea","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"ff55dedea8c4cdf98408c6dff97fa49215ffeeea","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.2.tgz","integrity":"sha512-ZT4MEXYObz4mRLx5wMZ/LveF5WxJhQ5ADmyO96FiJdWOPInYoyIeV4foQHCAdv3+MN6D5UifCTuK0NVaHmb8Kw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/qzww7WN6nN/yOsb5d62VCFcCXCnh4t1sB0NBQrN6QwIgf311av6kq6C7GGMAFGQ68gmLRZF4omk5tgWLDgKcwCk="}]}},"0.5.3":{"name":"livedb","version":"0.5.3","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.3","_shasum":"fee2a797ffbae71ae08a3733e4b063ed4604c6f9","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"fee2a797ffbae71ae08a3733e4b063ed4604c6f9","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.3.tgz","integrity":"sha512-IhAamoIClju1uprVQQ6HyuMVgS6JElUALqQjnI2vF3qCR3AtEPcSm8L4+xtxWAG4Mr+Dyb8WGbfp8aUqGMGYmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+o8zi7u+/aiTKahnu75efFZ7q+sOLIFd06a3Yiu9WKwIgEePk/PGgfrM83EpaT86CAdceZvQJx3+mYh0IO3URm5s="}]}},"0.5.4":{"name":"livedb","version":"0.5.4","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.4","_shasum":"dc6f8d564cf4cab834947d9bcd54d4e1dfcd76c1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"dc6f8d564cf4cab834947d9bcd54d4e1dfcd76c1","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.4.tgz","integrity":"sha512-JBDkeoFbxlbLl5LzW+VlmaRmqFoId9RrM3ETdc2NgpFerrbnaNoltLsebfQVCxlM0Fbqgf70qJE33iyrasX5KQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID20ptK5MMqWEsEOi9skrc/SuT4svv6rmZ+bqTA5+PYEAiEArjwek3ClrQuV17QeNkMxf9E1rWnR7nrNi4lvaMin1/I="}]}},"0.5.5":{"name":"livedb","version":"0.5.5","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.5","_shasum":"2474602eb2452a91c9273dbeb824e58d6a216f06","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"2474602eb2452a91c9273dbeb824e58d6a216f06","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.5.tgz","integrity":"sha512-uttsoTHz6XoIeA8EqSHGODc7HxsSZwQSYyZJ/eV1n6iMg7tav8UhY7m/jQFjt9eq6VW05Zj/4ZETciFP1+KC2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFYe2Fr3PC1jElvbrngrcO7SrIX+/WEbKCoGnnAz2oqAIgV+bW7s/hXvBTtZ1JSRxSQDVeIG53fKKdQrPKYrZBbf0="}]}},"0.5.6":{"name":"livedb","version":"0.5.6","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.6","_shasum":"c321e738ff5135bb1f8c696561b09388945e7b5c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"c321e738ff5135bb1f8c696561b09388945e7b5c","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.6.tgz","integrity":"sha512-pusV95ic2Spn1+d52jk+c/XkotVW2gTrHL2lfROylVgd2XDZozzTBLpL+TgZJGWVXha7lzboQUkAua/IHqJHzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE+EJaXKcB9gQagkoBc1QKPYRL80pqEp7ZGIphLIkqBsAiBU9KsOMkhnynOuab5RfkSAcpLlXW5bZdc5w4aI3CBUNg=="}]}},"0.5.7":{"name":"livedb","version":"0.5.7","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.7","_shasum":"cd097c0eb103bb78eeef5c788c1dadfa92519c10","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"cd097c0eb103bb78eeef5c788c1dadfa92519c10","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.7.tgz","integrity":"sha512-WJtVaAu9WaZkU9HyuhSacMH6sBzr+OWkwr3whuIyuVWCteWe7fgyYTSkd43Z9oHg9JYonIXmfF+9gPXIaykowA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDP5Zalpps1Exnp83q6OmMJGG7xXmoRs0i4o3Do+h6AwAiEAs1zhIGq7JDOvatZrIz+s3wnOIXxyLf5IExQu58BIlWc="}]}},"0.5.8":{"name":"livedb","version":"0.5.8","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.8","_shasum":"a76fbfaa6eadeed440373d792b6ac16918f6c5bf","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"a76fbfaa6eadeed440373d792b6ac16918f6c5bf","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.8.tgz","integrity":"sha512-Is7FlHyJ/Hnc4RbiJkdmlvHY2qAnioYR7ifPBBkdJjIjB4lduxarJSRQ+Ax9vJD59B7QzdHdfbcqUpSvCBg5Uw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEPmSzXKsZQ9rC9CGrI1x5Wuhdr9iO9vIj9jfFKw4DbAIgHNi78A6NUlgCzTBhF7EKnNCzMkeV4RONsv5Rk80p+Cw="}]}},"0.5.9":{"name":"livedb","version":"0.5.9","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"~0.7","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.9","_shasum":"0b5b145059fbc58ae312dd0bad7de20fbde52c00","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"0b5b145059fbc58ae312dd0bad7de20fbde52c00","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.9.tgz","integrity":"sha512-xKMIC0YksSYfPWZkCmPgnDmMjvV1fu68CL01fAuHc4EUARLQKMT2hcyuAD68MgjUOpoUYfRB+V6wX+ygX+yXlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAf6KJOHrr+9LB1vor9wDz9+tEuZvm+t94V1abCLHH/HAiEA8JgtMA6b/xAFD7BS9n/WiklepMbtk9tGs6Vvkts5sjs="}]}},"0.5.10":{"name":"livedb","version":"0.5.10","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"^0.9.0","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.10","_shasum":"f0466870a02dbf2a57c54c2af8583ea955d9bf7a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"f0466870a02dbf2a57c54c2af8583ea955d9bf7a","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.10.tgz","integrity":"sha512-xzwdjkGNsxxUir9tq7YAgXNroyVzRZgUbd9gC85ptPqALvgbXBh/PYgwTJV3R9M73pSErHrmPeai1EpkIcW8JQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGOmKvJzaLyKdFWu0UN7ngLAQlHudZunHAJqaNkWMq6VAiEAqH4s+T3LhJTIszZahAOLe6seHbswJd4gM0qzrjBt2bE="}]}},"0.5.11":{"name":"livedb","version":"0.5.11","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"^0.9.0","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.11","_shasum":"1d43ae553aaf591a6d0cc9ff4d6bbb2fa4a79fcb","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"1d43ae553aaf591a6d0cc9ff4d6bbb2fa4a79fcb","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.11.tgz","integrity":"sha512-GTm8235CqsQvWqx14Rv2oIJ7wjpoZwdqFAH4LTBTA9GV3DgS6buF1vE+dR94k31OeLloq2YfnjPOj2fHoZ30WA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtapZfTWsc/TbAtd3fWMkLDxLu7HIiLdLWaP7eNd1/aQIhAIdKtPRRKKv0+6jopWcLDIeEYluA2AyBiHe52DC681I2"}]}},"0.5.12":{"name":"livedb","version":"0.5.12","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"^0.9.0","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.12","_shasum":"48d65fbc5c654a1a3445070eb42059233c0bd064","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"48d65fbc5c654a1a3445070eb42059233c0bd064","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.12.tgz","integrity":"sha512-M+u/4H6DnrfsBnwcGAF5ywhqLHxdjPBaHzxH4HhqkmgNM/UY/iHfiXT/F2pOszQEO+LDVb24n1D8knVGZnY8pA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhbZX7spCM1ax0tkIfDU39bntD5mYyXB1eljOXFOC0SAiEArWTABeiWyawqurCju8Bzi6XwjxpRg4Fv8Y7cDBCUWVk="}]}},"0.5.13":{"name":"livedb","version":"0.5.13","description":"Realtime database wrapper","main":"lib/index.js","dependencies":{"deep-is":"~0.1","arraydiff":"~0.1","async":"^0.9.0","ot-text-tp2":"^1.0.0","ot-text":"^1.0.0","ot-json0":"^1.0.0","redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"optionalDependencies":{"redis":"^0.12.1","hiredis":"^0.2.0","statsd-client":"*"},"devDependencies":{"mocha":"~1","sinon":"~1","coffee-script":"~1.7"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"license":"MIT","gitHead":"a95ee727e5cb43a40476f58554774b776fb08f68","bugs":{"url":"https://github.com/share/livedb/issues"},"homepage":"https://github.com/share/livedb","_id":"livedb@0.5.13","_shasum":"7c785e45bd8af8c17a489302c874affca8d1440c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nateps","email":"nate@nateps.com"},"maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"dist":{"shasum":"7c785e45bd8af8c17a489302c874affca8d1440c","tarball":"https://registry.npmjs.org/livedb/-/livedb-0.5.13.tgz","integrity":"sha512-E3FHDYdXdrFSqiEJmz7YRILpKW9mq0o+1ikBwXi7L3FfdBFvS+g1oUjIbMiayGNSMRgyEqWHyXneLw/6u59/lQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8gzujX/TQrqqiLVZb3vkCC5Kz0Hdzt0ABXLqb7JSRSQIhANGzcl02a4+S/Cv+7Ftg9od165Z7lPHG/jZ+fsCzG83V"}]}}},"readme":"# LIVE DB!\n\nLivedb is a database wrapper which exposes the API that realtime databases should\nhave. All database access from ShareJS (and hence racer and derby apps) goes\nthrough a livedb client.\n\nLivedb lets submit operations (edit documents) and subscribe to documents.\nSubscribing gives you a stream of all operations applied to the given\ndocument, as they happen. You can also make live bound queries, which give you\nthe results of your query and a feed of changes to the result set over time.\n\nTo use it, you need a database to actually store your data in.\nA database wrapper for mongo is available in\n[share/livedb-mongo](https://github.com/share/livedb-mongo). I hope to add more\nover time.\n\nIf you want to mess about, livedb also has an in-memory database backend you\ncan use. The in-memory database stores all documents and operations in memory\nforever (or at least, until you restart your server - at which point all\ndocuments and operations are lost.)\n\nFor questions, discussion and announcements, join the [ShareJS mailing list](https://groups.google.com/forum/?fromgroups#!forum/sharejs).\n\nPlease report any bugs you find to the [issue tracker](https://github.com/share/livedb/issues).\n\n\n## Quick tour\n\n```javascript\nvar livedb = require('livedb');\nvar db = require('livedb-mongo')('localhost:27017/test?auto_reconnect', {safe:true});\n\nbackend = livedb.client(db);\n\nbackend.fetchAndSubscribe('users', 'fred', function(err, data, stream) {\n  // Data is simply {v:0} because the fred document doesn't exist yet.\n\n  stream.on('data', function(op) {\n    // We'll see all changes to the fred document as they happen\n    console.log('Fred was edited by the operation', op);\n  });\n});\n\n\n// This could happen from a different process / server but only if you use the\n// redis driver. (Otherwise they won't see each other's changes and everything\n// breaks)\nbackend.submit('users', 'fred', {v:0, create:{type:'json0', data:{name:'Fred'}}}, function(err) {\n  // Created with data {name:'Fred'}\n\n  // Other concurrent edits can happen too, and they'll all be merged using OT.\n  // This operations says at doc['name'][4], insert characters ' Flintstone'.\n  backend.submit('users', 'fred', {v:1, op:[{p:['name', 4], si:' Flintstone'}]}, function(err) {\n    // users.fred now has data {name:'Fred Flintstone'}\n  });\n});\n```\n\n\n## Data Model\n\nIn LiveDB's view of the world, every document has 3 properties:\n\n- **version**: an incrementing number starting at 0\n- **type**: an OT type. OT types are defined in\n[share/ottypes](https://github.com/share/ottypes). Types are referenced using\ntheir URIs (even though those URIs don't actually mean anything). Documents\nwhich don't exist implicitly have a type of `null`.\n- **data**: The actual data that the document contains. This must be pure\nacyclic JSON. Its also type-specific. (JSON type uses raw JSON, text documents\nuse a string, etc).\n\nLiveDB implicitly has a record for every document you can access. New documents\nhave version 0, a null type and no data. To use a document, you must first\nsubmit a *create operation*, which will set the document's type and give it\ninitial data. Then you can submit editing operations on the document (using\nOT). Finally you can delete the document with a delete operation. By\ndefault, livedb stores all operations forever - nothing is truly deleted.\n\n---\n\n## Using Livedb\n\nLivedb requires 3 puzzle pieces to operate:\n\n- A snapshot database, to store actual documents.\n- An oplog to store historical operations. We currently require that operations\n  are stored forever, but I want to change this before 1.0. (It might work\n  today, but we're missing tests).\n- A livedb driver. If you have multiple servers, the driver manages\n  communication between them all. The driver also makes commits atomic (so\n  servers won't clobber each other's changes) and publishes operations.  If you\n  only have one frontend server, you can use the inprocess driver. (This is the\n  default if you do not specify a driver.)\n\nYou can put operations and snapshot data in different places if you want, but\nits easier to put all of your data in the same database.\n\nThe backend database(s) needs to implement a [simple API which has\ndocumentation and a sample implementation\nhere](https://github.com/share/livedb/blob/master/lib/memory.js). Currently the\nonly database binding is [livedb-mongo](https://github.com/share/livedb-mongo).\n\nA livedb client is created using either an options object or a database\nbackend. If you specify a database backend, its used as both oplog and\nsnapshot.\n\n```javascript\ndb = require('livedb-mongo')('localhost:27017/test?auto_reconnect', {safe:true});\nbackend = livedb.client(db);\n```\n\nThis is the equivalent to this:\n\n```javascript\ndb = require('livedb-mongo')('localhost:27017/test?auto_reconnect', {safe:true});\nbackend = livedb.client({db:db});\n// Also equivalent to livedb.client({snapshotDb:db, oplog:db});\n```\n\nYou can use a different database for both snapshots and operations if you want:\n\n```javascript\nsnapshotdb = require('livedb-mongo')('localhost:27017/test?auto_reconnect', {safe:true});\noplog = {writeOp:..., getVersion:..., getOps:...};\nbackend = livedb.client({snapshotDb:snapshotdb, oplog:oplog});\n```\n\nAll of the above examples will use the in-process driver by default. If you\nwant to scale across multiple frontend servers, you should use the redis driver:\n\n```javascript\nvar redis = require('redis');\nclient1 = redis.createClient(6379, '192.168.1.123', auth_pass:'secret');\nclient2 = redis.createClient(6379, '192.168.1.123', auth_pass:'secret');\n\ndriver = livedb.redisDriver(oplog, client1, client2);\nbackend = livedb.client({snapshotDb:snapshotdb, driver:driver});\n```\n\nThe redis driver needs 2 redis clients because redis can't use the same\nconnection for commands and pubsub. [See node-redis documentation for help\nconfiguring\nredis](https://github.com/mranney/node_redis#rediscreateclientport-host-options).\n\n\nThe options object can also be passed:\n\n- **extraDbs:** *{name:query db}* This is used to register extra database\n  backends which will be notified whenever operations are submitted. They can\n  also be used in queries.\n- **sdc:** A pre-configured\n  [node-statsd-client](https://github.com/msiebuhr/node-statsd-client) client\n  to send monitoring information. Note that the events livedb logs to statsd\n  are not considered part of the public API, and may change at any time.\n\n### Creating documents\n\nTo create a document, you need to submit a create operation to the\ndocument to set its type. In livedb's world, a document doesn't exist until it\nhas a type set.\n\nA create operation looks like this: `{create:{type:TYPE, [data:INITIAL DATA]}, [v:VERSION]}`. The type should be something accessible in the map returned by require('ottypes'), for example `json0` or `http://sharejs.org/types/textv1`. Specifying initial data is optional. If provided, it is passed to the type's `create()` method. This does what you expect - for JSON documents, pass your initial object here. For text documents, pass a string containing the document's contents. As with all operations, the version is optional. You probably don't want to specify the version for a create message.\n\nTo submit any changes to documents, you use `livedb.submit(cName, docName, opData, callback)`.\n\nFor example:\n\n```javascript\nlivedb.submit('users', 'fred', {create:{type:'json0', data:[1,2,3]}}, function(err, version, transformedByOps, snapshot) {\n  // I made a document, ma!\n});\n```\n\nSince documents implicitly exist with no type at version 0, usually the create\nmessage will increment the version from 0 to 1. Not all documents you want to\ndelete have a version of 0 - if a document is deleted, it will retain its\nversion.\n\n### Deleting documents\n\nDeleting documents is similar to creating them. A deleted document has no type\nand no data, but will retain its version (actually, the delete operation will\nbump the document's version). A delete operation looks like this:\n`{del:true, [v:VERSION]}`.\n\nYou use the same submit function as above to delete documents:\n\n```javascript\nlivedb.submit('users', 'fred', {del:true}, function(err) {\n  //goneskies! Kapow!\n});\n```\n\n### Editing documents\n\nYou edit a document by submitting an operation. Operations are OT type-specific\nJSON blobs. Refer to the documentation on the particular OT type for details.\nFor example, text documents are documented\n[here](https://github.com/share/ottypes/blob/master/lib/text.js#L10-L16). If we\nhad a text document stored in LiveDB and wanted to edit it, it might look like\nthis:\n\n```javascript\nlivedb.submit('love letters', 'dear fred', {op:[6, \"You never return my calls!\"], v:1002}, function(err) {\n  // ...\n});\n```\n\nYou should always specify the version when submitting edit operations. The\nversion is technically optional - if its missing, your operation will be\nsubmitted against the most recent version of the document in the server. This\nis useful for creating a document which may already exist, but for normal edits\nyou should always specify the expected current version of the document.\n\n\n### Getting a document\n\nYou can fetch the most recent version of a document using `livedb.fetch(cName, docName, callback)` or\n`livedb.bulkFetch(request, callback)`. This will fetch the document(s) from the snapshot database\nand fetch all operations which may or may not have been committed.\n\nFetch returns a snapshot data object via its callback. The snapshot data object\nhas the following fields:\n\n- **v:** version. This is an integer (starting at 0) containing the version of the document\n- **type:** Document type, if set. This field is missing if the document does not exist.\n- **data:** The document's actual data. For JSON documents this is a JSON tree.\n  For text documents this is a string. This field is missing if the document does not exist.\n\n```javascript\nlivedb.fetch('users', 'fred', function(err, snapshot) {\n  // snapshot has {v:123, type:'...', data:{name:'Fred Flintstone'}}\n  // If the document doesn't exist, only the v:version field will exist in the data.\n});\n```\n\nIf you need to get many documents, its more efficient to issue bulk fetches. To\npass the set of requested documents to bulkFetch, you need to make a request\nobject which maps collection names to lists of documents you want in that\ncollection. For example, to get 'red', 'green' and 'blue' from the colors\ncollection, you would make a bulkFetch request of `{colors:['red', 'green',\n'blue']}`.\n\nThe response maps each collection name to a set of snapshots. Each set of\nsnapshots maps document names to snapshot data objects. Continuing our colors\nexample above, the response could be `{colors:{red:{v:0}, green:{v:10, type:..., data:\"emerald\"}, blue:{v:1, type:..., data:{favorite:true}}}}`.\n\nFor example:\n\n```javascript\nlivedb.bulkFetch({users:['fred', 'wilma', 'homer'], admins:['zerocool']}, function(err, results) {\n  // results will be {users:{fred:..., wilma:..., homer:...}, admins:{zerocool:...}}.\n  // Each document has v and optional type and data fields like fetch (above).\n});\n```\n\n\n### Getting historic changes to a document\n\nYou can get old versions of a document (for playback or catching up a client)\nusing `livedb.getOps(cName, docName, from, to, callback)`. This will return\nall operations which have been applied to the named document in the requested range.\nThe range is *open*, so `getOps('users', 'fred', 0, 3, ..)` will return all\noperations up to (but not including) 3. (Ie, operations 0, 1 and 2).\n\nIf you set the *to* field to null, getOps will get all operations up to the\ncurrent version.\n\nLivedb documents always start at version 0, so you can get a document's entire history using `getOps('users', fred', 0, null, callback);`.\n\nIf you set *to* to a version in the future, behaviour is not defined.\n\nExample usage:\n\n```javascript\nlivedb.submit('users', 'fred', {create:{type:'json0', data:{name:'Fred'}}}, function(err) {\n  livedb.submit('users', 'fred', {v:1, op:[{p:['name', 4], si:' Flintstone'}]}, function(err) {\n    // ...\n  });\n});\n\n// ---- Sometime later...\n\nlivedb.getOps('users', 'fred', 0, null, function(err, ops) {\n  // ops contains the two operations which were submitted above:\n  // [{v:0, create:{...}, {v:1, op:[...]}]\n});\n```\n\n### Streaming changes to a document in realtime\n\nYou can subscribe to changes from a document using\n`livedb.subscribe(cName, docName, v, callback)` or\n`livedb.bulkSubscribe(request, callback)`. When you subscribe, you get an\noperation stream which gets packed with operations as they happen.\n\nWhen you subscribe to a document, you need to specify which version you're\nsubscribing to the document *from*. The version cannot be in the future.\n\nThe stream will be populated with each operation from the requested version\nonwards (to infinity and beyond). Each operation will appear in the stream\nexactly once. If you subscribe and request an old document version, all\noperations from that version to the current version will be buffered in the\nstream before the stream is returned to the callback.\n\nYou usually want to call *subscribe* after fetching a document. Pass the\ndocument version that you got from calling *fetch* into your call to\n*subscribe*.\n\nFor example:\n\n```javascript\nlivedb.fetch('users', 'fred', function(err, data) {\n  if (err) { ... }\n  var version = data.v;\n\n  // ... Any amount of time later (literally).\n  livedb.subscribe('users', 'fred', version, function(err, stream) {\n    if (err) { ... }\n\n    // stream is a nodejs ReadableStream with all operations that happen to\n    // users.fred.\n\n    stream.on('data', function(opData) {\n      // The opData is a JSON object, the same object you can pass to submit().\n      // It always has a v: field.\n\n      // Livedb exports a helper function to apply the operation to some\n      // snapshot data:\n      var err = ldb.ot.apply(data, opData);\n      if (err) { ... }\n    });\n  });\n});\n```\n\n**Important!** To avoid leaking memory, when you're done with a stream call `stream.destroy()` to clean it up.\n\nThere is a helper method which will both fetch and subscribe for you (cleverly\ncalled `fetchAndSubscribe(cName, docName, callback)`). It is defined like this:\n\n```javascript\nLivedb.prototype.fetchAndSubscribe = function(cName, docName, callback) {\n  var self = this;\n  this.fetch(cName, docName, function(err, data) {\n    if (err) return callback(err);\n    self.subscribe(cName, docName, data.v, function(err, stream) {\n      callback(err, data, stream);\n    });\n  });\n};\n```\n\nIt calls your callback with `(err, snapshot, stream)`, giving you both the current document snapshot and the stream of operations from the current version.\n\n#### Bulk Subscribe\n\nIf you want to subscribe to multiple documents at once, you should call\n`bulkSubscribe(request, callback)`. The bulk subscribe request is a map from\ncName -> map from docName -> version. For example, `{colors: {red:5, blue:6,\ngreen:0}}`. The response is a map from cName -> map from docName -> stream.\nFor example, `{colors: {red:<stream>, blue:<stream>, green:<stream>}}`.\nbulkSubscribe will either return a stream for all requested objects or (if\nthere was an error), none of them.\n\nAgain, remember to call `stream.destroy()` on all streams returned by bulk\nsubscribe when you're done with them.\n\n\n### Queries\n\nLivedb supports running live queries against the database. It can re-run queries when it suspects that a query's results might have changed - and notify the caller with any changes to the result set.\n\nThis is incredibly inefficient and I want to completely rewrite / rework them. For now, I recommend against using live bound queries in a production app with a decent load. I'll document them when I'm happier with them.\n\n\n### Projections\n\nLivedb supports exposing a *projection* of a real collection, with a specified\n(limited) set of allowed fields. Once configured, the projected collection\nlooks just like a real collection - except documents only have the fields\nyou've requested.\n\nOperations (gets, queries, sets, etc) on the fake collection work, but you only\nsee a small portion of the data. You can use this to drop server & db load\ndramatically and speed up page times. Its similar to SQL VIEWs. For now, this\nonly works on JSON documents. (I don't know what it would look like for text\ndocuments).\n\nFor example, you could make a `users_limited` projection which lets users view\neach other's names and profile pictures, but not password hashes. You would\nconfigure this by calling:\n\n```javascript\nlivedb.addProjection('users_limited', 'users', 'json0', {name:true, profileUrl:true});\n```\n\nHowever, be aware that on its own **this is not sufficient for access control**. If\nusers are still allowed to make arbitrary mongo queries against the projected\ncollection, they can find out any data in the hidden fields.\n\nConfigure a projection by calling `addProjection(projCName, realCName, type, fields)`.\n\n- **projCName:** The projected collection name. (Eg, `users_limited`)\n- **realCName:** The underlying collection name\n- **type:** The OT type. Only JSON0 is supported for now.\n- **fields:** A map of the allowed fields in documents. The keys in this map\n  represent the field names, and the values should be `true`.\n\nLimitations:\n\n- You can only whitelist fields (not blacklist them).\n- The third parameter must be 'json0'.\n- Projections can only limit / allow fields at the top level of the document\n\n","maintainers":[{"name":"josephg","email":"josephg@gmail.com"},{"name":"nateps","email":"nate@nateps.com"}],"time":{"modified":"2022-06-19T12:58:03.344Z","created":"2013-05-24T18:43:55.855Z","0.0.0":"2013-05-24T18:44:33.350Z","0.0.1":"2013-05-25T02:28:22.528Z","0.1.0":"2013-05-25T02:49:42.600Z","0.1.1":"2013-05-28T17:24:53.649Z","0.1.2":"2013-05-29T19:00:39.602Z","0.1.3":"2013-05-31T03:14:47.554Z","0.1.4":"2013-06-05T00:07:05.913Z","0.1.5":"2013-06-17T23:28:26.698Z","0.1.6":"2013-07-02T18:12:06.589Z","0.1.7":"2013-07-07T23:40:50.292Z","0.1.8":"2013-07-31T21:37:31.210Z","0.2.0":"2013-08-14T19:12:41.052Z","0.2.1":"2013-08-15T00:07:25.625Z","0.2.2":"2013-09-19T23:59:49.620Z","0.2.3":"2013-10-01T01:54:28.550Z","0.2.4":"2013-10-01T19:28:59.342Z","0.2.5":"2013-10-07T23:10:24.101Z","0.2.6":"2013-10-16T01:05:53.688Z","0.2.7":"2013-11-13T23:29:02.184Z","0.3.0":"2013-12-10T01:31:52.974Z","0.3.1":"2014-04-09T18:57:41.663Z","0.4.0":"2014-05-01T18:58:08.724Z","0.4.1":"2014-05-02T23:59:56.736Z","0.4.3":"2014-06-16T01:02:50.712Z","0.4.4":"2014-06-25T22:16:09.720Z","0.4.5":"2014-08-15T01:16:53.211Z","0.4.6":"2014-08-15T03:07:55.437Z","0.4.7":"2014-08-15T17:15:31.481Z","0.4.8":"2014-09-24T00:00:59.975Z","0.4.9":"2014-11-13T02:52:43.904Z","0.4.10":"2014-12-12T23:01:30.504Z","0.4.11":"2014-12-19T05:53:10.732Z","0.4.12":"2015-03-02T21:58:35.467Z","0.4.13":"2015-03-04T13:56:24.228Z","0.5.0":"2015-03-06T11:47:08.138Z","0.5.1":"2015-03-06T14:12:57.228Z","0.5.2":"2015-03-06T14:33:25.921Z","0.5.3":"2015-03-07T23:25:12.353Z","0.5.4":"2015-03-08T00:23:00.547Z","0.5.5":"2015-03-08T23:31:56.240Z","0.5.6":"2015-03-09T21:16:05.336Z","0.5.7":"2015-03-17T15:05:25.643Z","0.5.8":"2015-03-25T04:58:04.798Z","0.5.9":"2015-03-30T17:57:40.701Z","0.5.10":"2015-05-08T04:14:11.806Z","0.5.11":"2015-05-08T18:07:16.045Z","0.5.12":"2015-05-11T22:21:02.556Z","0.5.13":"2015-07-15T17:49:48.932Z"},"author":{"name":"Joseph Gentle","email":"josephg@gmail.com"},"repository":{"type":"git","url":"git://github.com/share/livedb.git"},"homepage":"https://github.com/share/livedb","bugs":{"url":"https://github.com/share/livedb/issues"},"license":"MIT","readmeFilename":"README.md","users":{"shanewholloway":true,"russomi":true}}