{"_id":"databank","_rev":"101-600b06f89f3b4493a9d05c4c171ac849","name":"databank","description":"Abstraction layer for JSON storage","dist-tags":{"latest":"1.0.9"},"versions":{"0.1.0":{"name":"databank","version":"0.1.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/databank.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.1.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"de2fe671be599dca916cd99d1a8579b01bd0d873","tarball":"https://registry.npmjs.org/databank/-/databank-0.1.0.tgz","integrity":"sha512-SZC86Kf1ZuDBb0CuZCUYM3cYygEqUI391KBw2gzHnL7IUcyvNV4Vgdhsrv839whq0OfNZTeQE0Fvt7VLnNiVLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGo0MrXQHVxxhSpMlIcT3cUbPfwFVduHn6w78kXt5MitAiEAzjlaSOEKVaQe21RmYh7UR3/7pOhUCgGzWFLwNGOi9f8="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.2.0":{"name":"databank","version":"0.2.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.2.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.3","_defaultsLoaded":true,"dist":{"shasum":"fc20527b3637c3de3310072dc1bd55a5d298a6c0","tarball":"https://registry.npmjs.org/databank/-/databank-0.2.0.tgz","integrity":"sha512-udSTc5GYC2FRVj2yNQqnMYFypXj+ltqQELZVoZGp59PlrqH6bVgXHB6XJ8Sy5qqA0hsuEbxg1ZRpWkEQqwAwTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrtCt2hplNoC3WlYn1m548f5nA7cf9TqspxDsPazyLkgIgXtvmhIrZyO5E0LkxG0/QWp1IUjNXO4Cnae4Hh6Xh5XY="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.3.0":{"name":"databank","version":"0.3.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.3.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.3","_defaultsLoaded":true,"dist":{"shasum":"2cda159083ec6822bcd15296d8cd153e2a3f7b22","tarball":"https://registry.npmjs.org/databank/-/databank-0.3.0.tgz","integrity":"sha512-B+d88iWzMGdwGMkAvHf+LEZdRMJxi64xpgkScMxeCxhm312XiG5fF/mP6cXWP4Op6YFF6RqN9yu6y3qUW5o2AA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaOlNdQQ2s0pRiIJMvqNx0z6cGloDMgwsZliYT86G75wIhAPLNgiTohVyLwgq8P2Dp6r0CvgZwJnX8ZOKNmyts7DSp"}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.4.0":{"name":"databank","version":"0.4.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.4.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"caceeee49bf05b0124179fc5817ddd71e67269fb","tarball":"https://registry.npmjs.org/databank/-/databank-0.4.0.tgz","integrity":"sha512-KxNJcWe1QTxuULJvO4VCISu5qd9X0IxfR8AhseT5v1RM7eq3pHKXvFhk06TixrxWCxFSA0fIXA7F65XRqxgPnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgjh2IBJ6xw3XforBRoaUTT7EiJKxp5RVzR3gprf/rQgIhAMuCPT2xWIeiRHas4BBOE7pItJ+h7tyQeRWlzaFHf/xm"}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.4.1":{"name":"databank","version":"0.4.1","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.4.1","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"cd579c0db23e4c7b78e68f1e14dbf71f8aa8709c","tarball":"https://registry.npmjs.org/databank/-/databank-0.4.1.tgz","integrity":"sha512-abnL3f7SI+FwJjAKWdnzZS2LSTDzKqg2cnNJFB6khWmU7/LZUOWaPyGhkeWhIOJ3zN8wVS19FhMTMQK1BdG/Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHt/qgpGnbUdHsbmixvWIu64Z0z44jE2CDZ0zbvgPYvjAiBjx1Ul7zcRVjS6EGgNt9o8DTt0TnyRy0XG+uFlqfKzCg=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.5.0":{"name":"databank","version":"0.5.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.5.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"5df2d8917a7bf8ae80bf520c19d5c35d96ad0ab3","tarball":"https://registry.npmjs.org/databank/-/databank-0.5.0.tgz","integrity":"sha512-vMtySQyZEgPAJGzp/iba3Xj8SMnFJ9P9FZJsynHGFfiBHdy+4I5S2BZUEoqTSqHN8XxZ8VVkxoPWQBRnGRPHuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDb8liVYyuJeu8eV3EnfyFbIINqQqVaDqcyFjde4AUX5AiEA8Zjhka8UhstJf44tgua0fjJU4qrwbRIk3KbfxKyy7dY="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.5.1":{"name":"databank","version":"0.5.1","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.5.1","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"7968a84358ef10b65144480944aeeba169aabbba","tarball":"https://registry.npmjs.org/databank/-/databank-0.5.1.tgz","integrity":"sha512-BkWGujZ2iTPPm2pdnBFPgRMmT0XR6noZ8Io65OgRxcO3i4hvAvPl9K1FOlZvhR0PAVs/QefwNamhB7BgqQ6kQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnzzR82A4IqeCIzYGZ+dowZdjvJSsmNX5C46PF+4pXEgIgfVSz7jfKWVlx3t4UztktZvAfLypVkgLFSPpdhlhDMOo="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.5.2":{"name":"databank","version":"0.5.2","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.5.2","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"d4a3ee3834ecd99db4283d9c456463af640e8406","tarball":"https://registry.npmjs.org/databank/-/databank-0.5.2.tgz","integrity":"sha512-/WWmIdbVLGjAvSkEqUZ/csuxgb/Fdh+OJjL8ABcVVS13I5TuCbGdk73I8c6JL7dGh1lTuOzqswjivXbaV3LMEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7XkMR9fzPJb9ozmZHb2a1KSBEPKNOk9w2jqwodwCkjAiEAgcJJgmnxG8I4DcOa5kqfA+/RDZrrxZ2Ve2hmwJkucLQ="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.6.0":{"name":"databank","version":"0.6.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.6.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"6272c2157dfbdd25114facf6e8fb853c56d56d1e","tarball":"https://registry.npmjs.org/databank/-/databank-0.6.0.tgz","integrity":"sha512-Q75NRl2G7hQMFLlz/BXOMOkC1Fbqgxvb7bNBFhEYhxjXPDeoMxM/mj042XaLy88laev3mIyfoRmLjE+ArXI9mA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEi2UDxCAqidNA4edQJYFmUJfg8skOq4EPGgt1ma6MXgIhAONfG/mr0oSIcLuQ/Pqb15VwndL8LdTrCNKs2Ps71WyE"}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.6.3":{"name":"databank","version":"0.6.3","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.6.3","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"1263affc39d997d2e6cb1534a9970a3d6752db0c","tarball":"https://registry.npmjs.org/databank/-/databank-0.6.3.tgz","integrity":"sha512-9AHL/ePRCkv0n134w3qREKeCOVZctrehAQ2+u8r03l0c2YOFpWq81Q7VMvUMt8C2nGhSscVcy9b7sOv1hbWwdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICmbWOzclq9YyWML1IMu0m7/yTouTBaSzaObm4AqPiwiAiBOtFOrj5Ks2aMLvfhvsA1as0EV7gK58PAiVFzoPmlDuQ=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.7.0":{"name":"databank","version":"0.7.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.7.0","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"20fd5dff8932446c03176885244f68793b44435b","tarball":"https://registry.npmjs.org/databank/-/databank-0.7.0.tgz","integrity":"sha512-sKpjg2KwwvvTsCfCL1aupVlpXYT5lzSaGYhJo3I4rzjt1RTXTV2gCFjg3zVnSMFlAdf737099aqZRI4dG5YmcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA02lpBvaxI2t3QhJAh9/MykLefYyVAJUTDIWlq5/M4xAiBD/XLAj7rfY8OTIu2RuK2yS5q18r+iOy7SRe7ElvXAyw=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.7.1":{"name":"databank","version":"0.7.1","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"~0.5.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.7.1","devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"96066df9d2026676e0571e8482ddb29c9f111154","tarball":"https://registry.npmjs.org/databank/-/databank-0.7.1.tgz","integrity":"sha512-8ynR0k0CrUvlpP+t98Tlg7Qr4qgmTMBcQPt5qqjzIWaNNHZ6S0SYTrzyoAryq53XlcXHiGnOjmuAV0S354nYZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTharvRyOz/HghX96ckIpH1ZosuNDMZYVUmxOKzahiUwIgL27pBTACDrHOaIsfeqwMRzk8OdlYMLdN9PCapR2mLJ8="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.8.0":{"name":"databank","version":"0.8.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.8.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"af7cd66b28fb9e2887f161d9c5df35d624e8a316","tarball":"https://registry.npmjs.org/databank/-/databank-0.8.0.tgz","integrity":"sha512-8qIiwPjmTG3mVZYvghplzbtzE+mmdu9s1HaQk3wusTk8pDS4uw2YxadRB9rbJ9a+LNBPDuIDe871A8l/7Zl1iA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFk0eoItXn9ytjwSadcjKXTM8q1uQxrmKQKX4O6uZadQIhAJS9fT+3e8jzxLg2GDVCfn50sQuWduCstp51R78BNxww"}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.8.1":{"name":"databank","version":"0.8.1","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.8.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"9db157a7a717998a3e9cd20e701481f875fdbe49","tarball":"https://registry.npmjs.org/databank/-/databank-0.8.1.tgz","integrity":"sha512-IBDvwkRKApReGHpjEMK7QitDbkEL/ei3mx1T9nedbyzuruRf3uL/S47pfjkdu+LsOZmQYyHHzPTUhAEYSwG7eA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAr10hJAz5Ezj1Eh/uP853XLZ4DjSH6dmHzeyew+KkI6AiBJLB7iZComRh/XPRFj9ydNoCIeCY2+ZwQkf1Z1hsrjKA=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.8.3":{"name":"databank","version":"0.8.3","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.8.3","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"150c62952342073c70367a292bffc28df47c35c4","tarball":"https://registry.npmjs.org/databank/-/databank-0.8.3.tgz","integrity":"sha512-Guf+akV8EUQFPCszgt6mz8PnbQmWWUUyGPucsDIYbOpHYf7hLaXDcEyiXNclRDhxpsUALeFglB1Dl7VRxi4c0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEE4Lf5/zO+NUQ5oKbzLkdTjG0QdBDaxzPup4dbum1fXAiEAw5CYDek3pPst5NZsGfw/5+rYDM+vgxw3EkzU0ybscdE="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.8.4":{"name":"databank","version":"0.8.4","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.8.4","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.18","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"10a7cff519d80306748293e52ef45000dda93a48","tarball":"https://registry.npmjs.org/databank/-/databank-0.8.4.tgz","integrity":"sha512-Fit9IP/DjUyGR5prJNNqlretHYzl1Kz5UmwMFMBG062hT8We8RtIvewCDG7CGWROTqbOpCPaGRQ2vXn7FXm2nA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmjf7t9nUVvZ9R6MA7KqIl6joVbsL5trOxOakasn5m5gIgILIU7jcfFQ7uodYo4MKphWTIGba6Asmml8F7d5xFOO8="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.9.0":{"name":"databank","version":"0.9.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.9.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"b74167f25c2bdb4f1bf3a23397b35c122c32d227","tarball":"https://registry.npmjs.org/databank/-/databank-0.9.0.tgz","integrity":"sha512-SBP2CGuFcZ8AEzT5W7KNHzAgLXpfyh1oTyDIBBOwJ8DKBl2g2wo4nYdaWTpF0REET9L4BUHui3b3YzXOiLmRNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVDdWn7q2tg30oWNFgw2svI5iurLmUdOo0Q0Y2e6RE6AIgLtKr23hvXjp1j24SSOLF9kUzZlSlaNEb9VP8D0TlTFc="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.10.0":{"name":"databank","version":"0.10.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.10.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"44b675786e8f8a3b091eaa2f1d63386f7c62bc95","tarball":"https://registry.npmjs.org/databank/-/databank-0.10.0.tgz","integrity":"sha512-KZPDesitMAZBYdolEufVaHUyL7D0JhkIsbcDzP3UR5xvCLsCO+C16GbDBlmTxMMxx2tM2pgZHQ0A6aWqlY8VyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPzoYa8prTWbrUYmp4VVr5JZUomRfHh7QCTTVn7I1GlQIhAMSnKURVQweGPn6ecQGJXNJA0rlKPCe81IaDLzngVIck"}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.10.1":{"name":"databank","version":"0.10.1","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.10.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"4e68b7fc221be5982a38599e4aafd7eea79808ce","tarball":"https://registry.npmjs.org/databank/-/databank-0.10.1.tgz","integrity":"sha512-PhmpV4nLXDOosRrhCskyUZuKXLgJEkehAdaqR14yoQQJIOzWfQ1yscQsI9t+joJcMYYgfTctwcLytM72vuGN4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrKh29yfcVRIK+k1aNssZ5I6TFzdLZ69PP/ofVnIf4YAiEAn0C8Y1rThgjEk7Ye+aoFnvVIqdncPRrfIhYJl3RU31s="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.10.2":{"name":"databank","version":"0.10.2","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"*"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.10.2","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"d0ef43c3997b458647d9e95a6466c382668afabe","tarball":"https://registry.npmjs.org/databank/-/databank-0.10.2.tgz","integrity":"sha512-DnJzMvyKubLgv52l5/XrtjUQOtkJyKjpsrUEAPHXjs1p0weLlbjQSOLUnIUrxBx/T6mDAhHNetCkr+edJIBRFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+c4lsp97lOkaKbkL4jg3PzmocM9tmdZQaKvVqrG7OqAiEAqjn/tjnXL3nYRZm7VzFP0hsqNbGAkuPKpKxabmj+uXs="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.11.0":{"name":"databank","version":"0.11.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.11.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"42e503949112f2769d00f29684177aaad636c06a","tarball":"https://registry.npmjs.org/databank/-/databank-0.11.0.tgz","integrity":"sha512-ycISyUJ+a8VQl55/kKaeOg08Fsr6uPyXsumCUhqpbPf1I7etdQaOYMxa0ePGDgvweKlB9X7bogUdb1DFqoojYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCINYbI/4YDKJXrYdoqYU6Al0kn8yAgAFtmFiyNbk5TkwIgYPuuLx8QVzeRrqwkTWDu4Jj18HbfyRg3/oGv2aERUio="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.12.0":{"name":"databank","version":"0.12.0","engines":{"node":"~0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"0.0.x"},"repository":{"type":"git","url":"git://github.com/evanp/databank.git"},"_npmUser":{"name":"evanp","email":"evan@status.net"},"_id":"databank@0.12.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.24","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"7e128186a93ac38dcc2cfa21c8b5625debc3eec1","tarball":"https://registry.npmjs.org/databank/-/databank-0.12.0.tgz","integrity":"sha512-orIyaoyeqc6sqi7RErnzkjgEzMi6NR32OPlw5TGKHhjMU7FHApRXYQtlz0iFmnXVqx0PIJ/Az2wB85KJ91bGxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDE89kBEhw2lYma/mpiF6TFzffwtiV498EPOuKjBr8gRgIgD4pDZhdNq/RXYON3ygBJi+PE7LNYpqyEi3LP60sj1ns="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.12.1":{"name":"databank","version":"0.12.1","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.12.1","dist":{"shasum":"05b26468e1566dbe0b14f9de3e65757d6773dbb6","tarball":"https://registry.npmjs.org/databank/-/databank-0.12.1.tgz","integrity":"sha512-v0JGYiSWRY6G9W+mWNDtoHXzB26Fiy9BFSqWyPNuzsc70MdXWpU0pnBjB68jao9RYlcEbppFZcMO3M0ToCto+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLnF/z4bLPHOka0u5uGRDN8QBslBN05P7GTQogWHqjqAiEA8QJGnVLVl1AAZ4Xyxi6Cg+CuO3wUWHC4JaShFnvPTxo="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.13.0":{"name":"databank","version":"0.13.0","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.13.0","dist":{"shasum":"e8eee0eb2ceb81888391872a5066b55055379b80","tarball":"https://registry.npmjs.org/databank/-/databank-0.13.0.tgz","integrity":"sha512-GE/3PEbICk6qwMzJ/3mtDwgBVKh3K8P3wH4JfO31xORCBRYC39wUBBtM4xl1NcuISzv+ZGdahtoyHKspocipxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEAPtB0vKcFX0D5RhulYDWE/ehGCaR/TT2Ji2iJuYUYAiBBL28nSmMgBGYNry6Db1RgEgjsY2eSfNMnw6hD6sazdA=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.13.1":{"name":"databank","version":"0.13.1","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.13.1","dist":{"shasum":"6a8fd8e41d0dded09a98896385d535a59ab52b05","tarball":"https://registry.npmjs.org/databank/-/databank-0.13.1.tgz","integrity":"sha512-0UeMIPFVJ07Yg6xMTj2HVZG5OTgOdmUhl/YUAUxXFd0FuR6NIItI1SaNttarwA0ZvmhXdeusqFs3YVowAqys9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDa24eIoSTQE8zYPAILHESY+lVA+0uDJQtxJWV3nfuwAAiEAoqryX7hzvUHqFnZ6APU4u3JvdQ7c/k2btp4fBToixyI="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.13.2":{"name":"databank","version":"0.13.2","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","redis":"~0.7.x","mongodb":"~0.9.x","memcached":"~0.0.x","rimraf":"2.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.13.2","dist":{"shasum":"f73bff83a04364c65f8f0f20dd78492e6357b586","tarball":"https://registry.npmjs.org/databank/-/databank-0.13.2.tgz","integrity":"sha512-sjKl5MDtFnv6NXJGoF04I+axJCMVJ4EAcgAU0xtSoTRvMCeNsQn6Kkve7aQKh7/5c265CKODWpZsLLmtaacg0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9enODK8v0pXeMjXn23NRFqmxhUvXN3BjCcGfw8KtK5wIgQkCZCVeJLt+K81AzD44m1Ib+ZBM1hX09us/D5B8Jk1U="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.14.0":{"name":"databank","version":"0.14.0","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.14.0","dist":{"shasum":"64ab88501ebf2a7756f123b08d0aed677918b5c1","tarball":"https://registry.npmjs.org/databank/-/databank-0.14.0.tgz","integrity":"sha512-6uQNCksV6QfH1HBikEGMqegg62qm/rfgqviCTOWpYEw2jNUzoB9HtWVxgvIQiRA/X2A061GFpBhGbQiaRbtVVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICldSw8BxC+ogqQ9BMgQbm47DGnsryhkoW/carCft/3YAiATqBx656YVLCH671RSM1XySB1ceQ5Bbnbe+WzUNpMsPQ=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.14.1":{"name":"databank","version":"0.14.1","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.14.1","dist":{"shasum":"cde6d8189669360c5117947be403c40f1098d293","tarball":"https://registry.npmjs.org/databank/-/databank-0.14.1.tgz","integrity":"sha512-RH2V0tcKHDMxNGGnFGIcx8hhNNGsnpwwkBAcPa1eWA9q9UmPeQndWD2SgujM8lRcn0uo5PG0Bmw6vlq6RNG2Lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3xjkD3w/A7RTfoTQcNk7aLP/volRiQffX3MlKMv+NQAIhAIu6GGGm6zBRnjudeeFN1ScevzeXJQJdEfJqkaL/gCK/"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.14.2":{"name":"databank","version":"0.14.2","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","mkdirp":"0.3.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.14.2","dist":{"shasum":"eebf8c77bfefed10f6adcea5f107b74d0483f737","tarball":"https://registry.npmjs.org/databank/-/databank-0.14.2.tgz","integrity":"sha512-O6B3ZgKZ3WGiWVoOtZxTSzvbN3jfEdQbQooeOPXrZXDiJBEPTI1XPAtwUnKGvYTga43RPEgliuqaDC5s3gN2Pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2QBBJQpiD1G6W96adp773K54vV93i0AnHPKW97+nJ4AiEAk9KqROrhCy/vGy9nuZ5hXOsAEogZWg8Z7QVve5xEjbY="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.14.3":{"name":"databank","version":"0.14.3","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","mkdirp":"0.3.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.14.3","dist":{"shasum":"e55d34586ff3159f2e1c3b84669acb55efc9a1cd","tarball":"https://registry.npmjs.org/databank/-/databank-0.14.3.tgz","integrity":"sha512-aFBtY/CLKTElmeZNzsMKJQ5Le0ziUAWiseThkt8VzQ0pcKqPOs3ISOD+mZ9m0+JrXKcoVDiOr4TDf2Wry4ghVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAoqJcBtUQH1oMTD+lQlWPQe3M35yYv8eS3TlTf0vzS7AiBaDQEqTZlPySv1JqauT8lFSWreL4X5HZ5x1hmtD0mDOw=="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.14.4":{"name":"databank","version":"0.14.4","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","mkdirp":"0.3.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.14.4","dist":{"shasum":"3deb42cbea9412e6c44b1e7e6c45ece3a6a4c8db","tarball":"https://registry.npmjs.org/databank/-/databank-0.14.4.tgz","integrity":"sha512-1fxevV++3dipNwQ57ruD4Icd82aMf0btT6pZLrhST0FluznJH9kJjFejY5M8OI9fF4YDqJV4nPfKXtoYzBvp8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEnr4QpFxpxpcBjR8v+zovm5oPrPHCroyHUNxa2wiC5AAiEA2etgFLx+GC0gqrv/RwnndojMf+3qQNJRm284Vfu8Q3M="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.15.0":{"name":"databank","version":"0.15.0","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","mkdirp":"0.3.x","step":"0.0.x","jankyqueue":"0.1.x","fs-ext":"0.2.x","schlock":"0.1.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.15.0","dist":{"shasum":"1afe42d1ec03c7db8ef428cbe1b8ec966252e174","tarball":"https://registry.npmjs.org/databank/-/databank-0.15.0.tgz","integrity":"sha512-O3JAIuqJE8XYDLT9ZWSaO1L2fhu0lRokRFObhNIJiLIQNYczukD1L1jAEY5+2bOtQ7kxRq1UzhSzMdqpdZ4alw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHXGgjf3fkNQxVgJn5Mf4Xe1iAJcBgzZCe6e8pA51eRAiB8du6H0q/R3pWwupIKpIYdMr1foz3qHWutOwWtfjiNDQ=="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.16.0":{"name":"databank","version":"0.16.0","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@status.net"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.6.x","rimraf":"2.0.x","mkdirp":"0.3.x","step":"0.0.x","jankyqueue":"0.1.x","fs-ext":"0.2.x","schlock":"0.1.x"},"repository":{"type":"git","url":"http://github.com/evanp/databank.git"},"_id":"databank@0.16.0","dist":{"shasum":"d617fce911878d0bbf08f60e99c8acf7f4d73545","tarball":"https://registry.npmjs.org/databank/-/databank-0.16.0.tgz","integrity":"sha512-SLfqdqBmW/s9hbkxd2EXD0fWGhGabgsRZktGgnCFBeavJU4D9lj9omFodE6wDwNr+JPky3KAlMFNhwnyfn1qYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8bLWPKiWm2Ja1mFjsWpFBeLDr/Yksir8/vvSC9oLqcAiAtviaAreDtTPVK6ZFCkr5Xb/PhTVakJXHSr/cLaBeBCQ=="}]},"_npmVersion":"1.1.63","_npmUser":{"name":"evanp","email":"evan@status.net"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.17.0":{"name":"databank","version":"0.17.0","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"_id":"databank@0.17.0","dist":{"shasum":"f3612f84f197ac6c5f09118e06a0175fe8a51c56","tarball":"https://registry.npmjs.org/databank/-/databank-0.17.0.tgz","integrity":"sha512-07TEP916mrFQAK+M7hhbGIWrmSOBhMJ1Vvmo/Kbq9WnPmNdVbzL39XjgKnrt3l1D9GyJzbt/tip7+C0UtG9xqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcaL1M93OoioN9c2RyLrOEYRbldUgWTEqiM/gCB5297gIhAKtLBKNLw1OIYA/YREgcTyC7ELLPR1ShoHTPm2lbetu+"}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.18.0":{"name":"databank","version":"0.18.0","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"_id":"databank@0.18.0","dist":{"shasum":"bfd09b236aff15626997e68b4bd1d5be02d0d563","tarball":"https://registry.npmjs.org/databank/-/databank-0.18.0.tgz","integrity":"sha512-3BbFIriziAzZtyrccfOXwwj68+GRJ57X1Wgj8YfroRPFhGgR5SYBLj1RmspWhWWgkfagGGrYlF/KNaQ7EofYOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2ZCwN9s5ArNyWaR5tDfYg1F/yLsTOKTYmJle6ySUIhQIgZ1a5j4icg7Z/czgd6fJMC4M8Lb3zsD1oeg9l9W8k3oo="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.18.1":{"name":"databank","version":"0.18.1","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"_id":"databank@0.18.1","dist":{"shasum":"dcd80970dc8de27337edfd807419d638c8ec06a1","tarball":"https://registry.npmjs.org/databank/-/databank-0.18.1.tgz","integrity":"sha512-SbOU5iP5F2mxGlxTQ8zdYX6GUBcxFUy1AmKu+Qc2bDQCAbfcybbSmYDQk21nNMwrcIcqlP6tNRMWWJxGxeM85A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhZIZN6e8goal/1HB7VORLPB+vM/aZbTnKH7MkiyhkqAiAEbr2/4Ux75KxWlPXA3qIbnjOZz2RYcXXQXbMF2qf4/g=="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.18.2":{"name":"databank","version":"0.18.2","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","set-immediate":"~0.1.1"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.18.2","dist":{"shasum":"b1f85bafa329cdb415589c0ee819a04c989a03ed","tarball":"https://registry.npmjs.org/databank/-/databank-0.18.2.tgz","integrity":"sha512-Z3UMj42VYzpqYPqUbq+LpMPpS4kLvOp1tyDsNqagy+nNZ6iMIgoZ2/UzCj14X18Z9WElxcXvyNcgoVtQZ9mBlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHLZgerrKOwL66okwZuS9lUYpO23khkaLIgDq8dijfxAIgccQOI/Zkps1uUkUqM2CI6UiDA7uao5rFbJ/D18nZWSQ="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.19.0":{"name":"databank","version":"0.19.0","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","set-immediate":"~0.1.1"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.0","dist":{"shasum":"c07f3fae98c3eec8e0f9e9368bab9ee1ed328d96","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.0.tgz","integrity":"sha512-XGOwOCqYJ5lbmZGjc0tSeczUAvYWiFYCvR81okPF9PguopAxXhbfs8VgR2mN8FW/UG6xOXTenTxIhiTE0p/36w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQTwVnwsrkCAO1PL1hnDQRBXBkO00L2mzc+OMQzAAJ8wIgNuPlwcU4LHbdCT8VXsX9/Xz1W+iH8F2d2TOTK99zrns="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.19.1":{"name":"databank","version":"0.19.1","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","set-immediate":"~0.1.1"},"repository":{"type":"git","url":"http://github.com/e14n/databank.git"},"bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.1","dist":{"shasum":"95c6f662927b891f62c6f07fefe5e690fbe666e0","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.1.tgz","integrity":"sha512-NGuEW5Rcpr+HrrBEeZCe7xPOKdvRu1M5wbawoI14KsyEF35n55zBlLTJN395Yh2Pwf899X/g04epF5FBJdTyYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAWCkP6ZeV0cIMAY9NiLtfJ62Ir6mRMSxNW4cyPDood/AiEA/SSlfY7aLFHl4OvvUlfVljERFlt9I2cF6IbpC5ErIGU="}]},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}]},"0.19.2":{"name":"databank","version":"0.19.2","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","set-immediate":"~0.1.1"},"repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"gitHead":"92f351d1a378a45d54c3a574ba6171516c021be4","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.2","_shasum":"4713224a097906aa6c95fc90311a63adc818d8ac","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"dist":{"shasum":"4713224a097906aa6c95fc90311a63adc818d8ac","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.2.tgz","integrity":"sha512-ypU6FAUaoFRgZ5vrE+gDad4qIPN33rEhnbuT1xG7bOh/x3whP3IHDD5SFmN9jgMUIihtiRDnhtOnQLIxutZ5qg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDDrBuhi0GuPOhuB+QqLioVA2Jy580OsvXwiAR5HLpgfAiANXiVMfb1pTl9xaKErXAuSMT3ZATTGlzBq5Bvt1NHycg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/databank-0.19.2.tgz_1463756952392_0.4003188326023519"}},"0.19.3":{"name":"databank","version":"0.19.3","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","setimmediate":"^1.0.4"},"repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"gitHead":"da07803e00a33a7399feff994a55eceec0628c98","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.3","_shasum":"d5cd56d0e3f84c2ae4907a219194930ef4549ca3","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"dist":{"shasum":"d5cd56d0e3f84c2ae4907a219194930ef4549ca3","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.3.tgz","integrity":"sha512-4uZWnn5Vo8O54NNcYu7ikjFMmvbBMYXWOX2ihpYwIFcRxRQCpdbhVO1LF0mFSmrMrVn7pCkWwkoYHGmt7cUcAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9Sg4ejn6u+nOvO2tJypqmm/50InmR3NZ5s222nKtV5AiEArZYKkVdXMeg+szYcdodE/lbbBloZ3b5w4ji/KNu0zDw="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/databank-0.19.3.tgz_1464184531803_0.07800015527755022"}},"0.19.4":{"name":"databank","version":"0.19.4","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","setimmediate":"^1.0.4"},"repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"gitHead":"cfbe86ceee9ea9960d53b1ba2c08f63f71db428c","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.4","_shasum":"838c2853f2d3cefcdb22520dfb45e8bf255b6286","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"dist":{"shasum":"838c2853f2d3cefcdb22520dfb45e8bf255b6286","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.4.tgz","integrity":"sha512-WRF3Xu0D8egkw3Ee2gOQAO37ovywqzhMK45ysqUT33k4BaUiESQruoJRYo9i0yjSc/W0Y68P3UoGA6gj4+o2Qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtXB2qgh0AZ0s+1A6Xylq02qN9TgBOrVD6ntL/ufzKsgIgNJXl9IVM5vNGpZ2hEzew3b744HgXxpYYsPvJHZjvyCI="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/databank-0.19.4.tgz_1464190618566_0.96978067047894"}},"0.19.5":{"name":"databank","version":"0.19.5","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"vows":"0.7.x","step":"0.0.x","setimmediate":"^1.0.4"},"repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"gitHead":"3d2f23d866b90aa8415cdbdb1fb5eff6465f3d6b","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.5","_shasum":"edcbd954b84730c0c5d0de551e004b92f1f53119","_from":".","_npmVersion":"3.10.4","_nodeVersion":"6.2.2","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"dist":{"shasum":"edcbd954b84730c0c5d0de551e004b92f1f53119","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.5.tgz","integrity":"sha512-Nr0ruNeaOARc9D3DPOrGDKe5pGSRgScuiC9XYm2sViWarB+plyPJ9oH0tk3lpDJFVOVTE7V3VRUjueZtfUlA/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHD2xORJzQle/3x7C/mubUNegsuIafMs3O7rzMzlYEqYAiEAyLnFcKf3PGXeUGZyD8S0y3SIVDoKXk5SwNwCMuS5714="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/databank-0.19.5.tgz_1468910341089_0.9444471416063607"}},"0.19.7":{"name":"databank","version":"0.19.7","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"set-immediate":"^0.1.1","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"1c98b0880a2559d6971ffb3da453b82ecf4ba356","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.7","_shasum":"4663fe4283920740414cf8d550d5b224f9b6f245","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"shasum":"4663fe4283920740414cf8d550d5b224f9b6f245","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.7.tgz","integrity":"sha512-yxeju4qclauDQelWV+lBHTQc/GPLtQByV8smUTerl7kRneX8khei4VDKdgzqd3RwJSNAOtLJ40zIRJtwaTtf1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDRPywZhPGBIdSr7W1qYFBGcscPYpST8KWLmUkDcUci8AiBYOq8iZBS5GdFYDMolGdh2LGr3nkcCs7TMwkAenHowOA=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/databank-0.19.7.tgz_1485190931469_0.8164214452262968"}},"0.19.8":{"name":"databank","version":"0.19.8","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"set-immediate":"^0.1.1","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"df6e566f48febba90f1229ac098696cc0618794e","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@0.19.8","_shasum":"bf73d6b4fc002045793faeff2b1c3fabc9999844","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"shasum":"bf73d6b4fc002045793faeff2b1c3fabc9999844","tarball":"https://registry.npmjs.org/databank/-/databank-0.19.8.tgz","integrity":"sha512-suuo6lMjEOTAqAPlw6z/OB8PvQ1icC447vIEIkSs9h5InCzsdPl356JYDfdkhbCs7gYh5glLFaLm/X+XXB5nnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxgaypNIXXtZMwB8R/ogPiNXGf6RL3u8Pv2WgBwCGP4AIgLnIWc47hA9plJsmR51X5zM1MJEu7v6dryWK4ia9d+xQ="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/databank-0.19.8.tgz_1485196319417_0.49356146273203194"}},"1.0.0":{"name":"databank","version":"1.0.0","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"3183dcbd670ef8073401bdcc1b1134ec85270f34","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.0","_shasum":"a2ca0af7980a2cdd18787ad08fbeb3608f5beffb","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"shasum":"a2ca0af7980a2cdd18787ad08fbeb3608f5beffb","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.0.tgz","integrity":"sha512-Zeld3hxp1WVQVALvkRx/0fhthSWeLZBfTSRzLrvT/Txd61TMAIDLgNxTl40vClGKoOOjV/jH6ebFBSOKxqeJQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH34NjUxICKKmMKTEYas6FDvOjf0wqtDLcJamCZLgt53AiEAt0n53c5ldorpfjchWydQsBhD/+TMe0wBxjl1JxtuqvM="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/databank-1.0.0.tgz_1485456769547_0.561944076558575"}},"1.0.1":{"name":"databank","version":"1.0.1","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"c4a52f8b749eb5419520876fba3fd19263926360","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.1","_shasum":"ef063df1f1aaceb8507ce70f7de6cb32980e874b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"shasum":"ef063df1f1aaceb8507ce70f7de6cb32980e874b","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.1.tgz","integrity":"sha512-71vIkMlu3aluIfMZjorFfJf8RSUcotGNp625rmyw830/dEt+BqLsysqXNysx4H8nHGLk5hiB2BW9xyzArB+vBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC3Fg2jKcOCK1wk7Jo8NVtCmnCEY146vhnY1XJHg4oYQAiAGvOhD+8cYZTFTTfvPuIESgBqnrjay9vVxvGi/3P3IUg=="}]},"maintainers":[{"name":"evanp","email":"evan@status.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/databank-1.0.1.tgz_1485459483047_0.85613250778988"}},"1.0.2":{"name":"databank","version":"1.0.2","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"ced723b80ae4d1d412db1b4622702420b5ff0776","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.2","_npmVersion":"5.6.0","_nodeVersion":"9.2.1","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-zUWUTxrQD4lOERL9ge4Kz1CXnqP0C7cHu9A5W2MS3RfbcZibXyI706qhhU2CDTeP997dKXr7IebGvg7d4RoeHA==","shasum":"1a350bc9cca9eaa1bbae07a5b848264a6cc60a0b","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD80+WSiT8xYwriqlPpEvENq9VE2JLyvht3pgSEgPhebwIgXBVogPqzuVB0Z7MNnQVTx05RU3Pkubl6z/0/mdmeBP0="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank-1.0.2.tgz_1513700145540_0.6680740213487297"}},"1.0.3":{"name":"databank","version":"1.0.3","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-partitioning":"^1.0.3","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"701641407d4ac83382476154974906af03e056f4","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-rbf2WHFRxpb6xUD8fyWE7HmStgeuI5ojG3R/hrtQGa+osJj1e+0gB+RR5GTbY7Gsdvlns8EbSv/g6al2uu3mkQ==","shasum":"4d7be5438855daa0f2e0c40978fb77d3b3f84947","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBURumHxh2RYDajJAN/Vtz6GW7yaYXHem5bTN7n0xjIQAiEA2Z0JdUl3DomFLY+J/3jJw0RXPwkmmlgBPzu2ezKtXAI="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank-1.0.3.tgz_1513712263019_0.3497849144041538"}},"1.0.4":{"name":"databank","version":"1.0.4","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-partitioning":"^1.0.3","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"422ed49eb1789015dd86eb35556147b6cd1f744a","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.4","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-wEZ2Lr4iT3coWk54VQqcac4AmQCrIT8Duued6iRIIwnVC3Jco87MA8tv97YmdaEDt5qzdpOF70oHk2SS5bl41A==","shasum":"9401a0005e5a1df977bad6368607a8b277c225f3","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp738QE2uNeyu+poDqrDZ2P+zdm1oH35qy69QGR4P/MQIhAJhlW5faQeZjItvgOjl2rDsG+jLQe1cBvCpb4tGoNunk"}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank-1.0.4.tgz_1513712455761_0.6245322551112622"}},"1.0.5":{"name":"databank","version":"1.0.5","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-partitioning":"^1.0.3","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"ac6e648832f19f352df37a254d631a7a2befcbc9","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.5","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-Xseziy+n3lbAXVedTgKw/Lw1yhQ116lufLyitBdtaf2SbKi+3daKF4NRfyZFkY/YxPxcQaBiYHBIrBTNi9Qd/Q==","shasum":"99a4490d5528070854b59ec16b7240caf7e19255","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4GLgGN7onSUznlbX4uhj5wDJExzXpDRkv4QjFLEYZ4wIgMjhvWsHjYDdEvzUqkiN0k/8PwD7HHYR+R2+mS+Hji68="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank-1.0.5.tgz_1513712582226_0.29234399925917387"}},"1.0.6":{"name":"databank","version":"1.0.6","homepage":"http://github.com/e14n/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@e14n.com"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-caching":"^1.0.4","databank-partitioning":"^1.0.3","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"license":"Apache-2.0","repository":{"type":"git","url":"git+ssh://git@github.com/e14n/databank.git"},"devDependencies":{"vows":"^0.8.1"},"gitHead":"116a9ed7b7cf230b661123d0c024c603bef46189","bugs":{"url":"https://github.com/e14n/databank/issues"},"_id":"databank@1.0.6","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-49QorpBo+KFpBsBDskg5rz/n3Shf9YnK2/SV4eu5BACtotphNPYQAidiUKkemAvCvOCgLkNLWqQdXYnpSjijlw==","shasum":"d9d0b64bb59deff77e5b6b0d59a0884bd895e929","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDC/sDWcn9Z/zFQxLxDwrQD2Kf9kdrDiCsyqvYrXPLAAiBtFmhTb3dKDGskyMMay2zBe+lqcggJLcjpaQ4NvbzqjA=="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank-1.0.6.tgz_1513713153616_0.5525325841736048"}},"1.0.8":{"name":"databank","version":"1.0.8","homepage":"https://gitlab.com/databank/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@prodromou.name"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-caching":"^1.0.6","databank-partitioning":"^1.0.4","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"keywords":["databank","database","nosql","abstraction","orm"],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://gitlab.com/databank/databank.git"},"bugs":{"url":"https://gitlab.com/databank/databank/issues"},"devDependencies":{"vows":"^0.8.1"},"files":["lib/*.js","lib/drivers/*.js"],"gitHead":"05c23f762b2dea0d889fb666f1d080a00ad9e0d5","_id":"databank@1.0.8","_npmVersion":"6.1.0","_nodeVersion":"6.14.2","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-JiAdQhlPXHtoF1wv4p83dr1xJT3zObNYEJmGjkfJOAsiMh6AEZRsOZ5ZtJdGWIeQkjwBx2gkVZ2zrCR1rQUB9Q==","shasum":"ee108529180b40a65ae327578f0a3b21a0f8500d","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.8.tgz","fileCount":7,"unpackedSize":74217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCa6bCRA9TVsSAnZWagAAgpIP/3vJpeI48jSojTWDlA17\nAF7E6nqzsGDK6v8RcscEgoJajENeV7eOq1+Kz2XN5YxcvAOKy25BpCPs8Qpn\n8BlT4e9Una7iC1vxSdBYs5TI+YMIsUQ/7CekTkvsO3GMuY0FNkBJ08dyqxaJ\nOf0NBIcvPpX3xElkH/o0KQ7DDqCLRXXVFI66pJb6ASKvZ/lR+qeIAQyLbptA\nyWULKZ/zzh5Lr7NzP/BCUgr5Ik03dKLSwcXfCUBLHExiV8AM5wmOozKy8qJi\nRclMy5Igd/zKgSuO+G25CA21kWq94NJrBxhdS6ttWMOLtYUlhgDVoemiOSk8\nw5g24odTx3HmMriP6K/rQ2rZEDxdE+ABN2gSXCL9ARwRMOsZk6vBrmGoyHOo\nf9Cngw0LbhuBL3W+43is0Hm2r2/lsTsMkvY9f2ANdJ/j0qUYRP+ITdnLrtbH\n6qOHzejRAcZKUAMpbkARwjf7nkm2cO5qOrjMltjhXxPCCikXjzEszjErw1of\nhE5IhinZA7HxhAdoLKzgejcE9o9B0p3Z+f6Gn0J+dt3zePFGGdkNNpEL8MNA\nSuJn/oS2zXBelBSDSxuEt1Af99e700WrQrMfYHdR4hzeMdlyJU9sehiQpURs\n7Prs9ZnaLB0Hznc4vHzsbyAntrPZL9aauXJjnLLk/ktcMW6KExFPRbxRodDI\nTeyG\r\n=PzaP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsfJdu6v6N5srG9QCBLIRfzP7SKy4N0Wvo7/gXNagOcgIgdUGZX+RutdgMywEd5CDJJSxO/IoPJmnbb+dZCHBCx2c="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank_1.0.8_1527361177951_0.768125563787913"},"_hasShrinkwrap":false},"1.0.9":{"name":"databank","version":"1.0.9","homepage":"https://gitlab.com/databank/databank","engines":{"node":">=0.6.x"},"author":{"name":"Evan Prodromou","email":"evan@prodromou.name"},"scripts":{"test":"vows test/*-test.js"},"main":"./lib/index.js","directories":{"lib":"./lib/"},"description":"Abstraction layer for JSON storage","dependencies":{"databank-caching":"^1.0.6","databank-partitioning":"^1.0.4","databank-test":"^1.0.4","setimmediate":"^1.0.5","step":"^1.0.0"},"keywords":["databank","database","nosql","abstraction","orm"],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://gitlab.com/databank/databank.git"},"bugs":{"url":"https://gitlab.com/databank/databank/issues"},"devDependencies":{"vows":"^0.8.1"},"files":["lib/*.js","lib/drivers/*.js","*.md"],"gitHead":"3af628ce13504005bd9e9453462bd4bed1355fb0","_id":"databank@1.0.9","_npmVersion":"6.1.0","_nodeVersion":"6.14.2","_npmUser":{"name":"evanp","email":"evan@e14n.com"},"dist":{"integrity":"sha512-Fd1F/nGf9MrcbU6yt7Hw0l1zHhV4H3qECtdAqYjhqIcsP58v7cUZ6b+mSECg5YfGeNM9gtfNUIFgtWl9jmx8Aw==","shasum":"5ec630d5accda4a3940a5a4cf5b0bb99be558763","tarball":"https://registry.npmjs.org/databank/-/databank-1.0.9.tgz","fileCount":8,"unpackedSize":75282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCa8ECRA9TVsSAnZWagAAIGEQAJiAAhY+7rPu6NwqL/NH\n8H9MLFTWPyL6UqWLRh1wtBU8nDrNWSO/AMqNdY8y0QyVGcJv77rBjD1qJTLp\n39YnptGKYVJH3eOOl6iNwZcELU6OPli2lpI3uhe2qjq+gAX5nDfmEM/FwhWB\nK8LihGv00GthojA/wyYWxor5ByBHP8HD2T9q97odgHTXjNK3ffu2q9H1kGjf\no5cZ/V+bHJJ6p5bN3qr1Fo9VVoCyi8B3qHwYRNsBLPDO1hzZdu9q7PSQeVoz\nwRP2125oxV4Xk83JTwU2ElHR+5WXnogWOLtBTvJ49iEz7lGb67pkrDkJ9OH9\nPItZcuQHh14Si5qJbJVuC2RkqFlTvHv2RmKsUjx1ILHfAGDrGVJ0yckaIzMa\nnPcm619byrppWeaxBLwj1+X8lVOsgjgl7J7UkkEPa1YLuqg8nfQ7Tf14nda7\nlPlS8Wd+nHf8B+nZHb1Oqax/e8KPNQrCuY+lkU0X/AwYosQscQAcSJtVm85N\nnCOUjXREsH45YxkYxHJnDQEZ9cO0yNT5FCki4wUONgNfUa5nQmBIIZCQXx8X\nnHSqRSdspb4aiUx4TcVPmydpEcPyeTwOaVTvk6R6lWe2lcqUhLVzM5SAhPXG\nMePK6j1MmCp/u+HGUnfFFUyHDmcPHbf7RCuLz4dIo/BX1UEfjGF+HBou0z5e\nFuMz\r\n=FTMv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmt7msUGWhDnryScXgdhxBjYDMPJvi80jjofX5SLoAQwIgSBYHdg7wbneyNzrbVPjwjDtRZVUC80do7vAbiwoGEUc="}]},"maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/databank_1.0.9_1527361284150_0.8644576050161643"},"_hasShrinkwrap":false}},"readme":"# Databank\n\nThis package is an abstraction tool for document stores or key-value\nstores in Node.js.\n\nMy goal is to hedge my bets by using a simple CRUD + search interface\nfor interacting with a datastore. If at some point I really need the\nspecial snowflake features of Redis or MongoDB or Cassandra or Riak or\nwhatever, I should be able to bust out of this simple abstraction and\nuse their native interface without rewriting a lot of code.\n\nI also want the data structures stored to look roughly like what\nsomeone experienced with the datastore would expect.\n\nI chose the name \"databank\" since it's not in widespread use and won't\ncause name conflicts, and because it sounds like something a 1960s\nrobot would say.\n\nAs a note: I've used this library for a couple of big projects, and\nmostly it just works.\n\n# License\n\nCopyright 2011-2014 E14N https://e14n.com/\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n> http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n# Drivers\n\nThe point of the Databank interface is so applications can use one\ninterface for developing persistence code, and then at deployment time\nyou can decide what driver to use.\n\nThere are three drivers included in this package: 'memory',\n'partitioning', and 'caching'. The first is great for development but\npretty bad for production.\n\nThere are a few drivers not in this package. You can search for them\non npm; they all start with 'databank-'. So, 'databank-leveldb',\n'databank-mongodb', 'databank-memcached', 'databank-redis',\n'databank-disk'.\n\n## Installation\n\nI'm still not 100% on this, so comments welcome. I'd love better\ninstructions.\n\nAt deployment time, if you want to use a particular driver, it's going\nto need to be available to the 'databank' libraries so that\n`Databank.get()` can find it. This means you have two options:\n\n* Install the driver globally, like `npm install -g databank-redis`. This is\n  probably OK as long as you don't have version conflicts between apps.\n* Install the driver in the `databank` dir, like so:\n\n    npm install databank\n\n    cd node_modules/databank/\n\n    npm install databank-redis\n\nIf you're still stuck, there's a `Databank.register()` method that\nwill let you associate a databank driver class with a driver\nname. That's probably only a last resort, though.\n\n## Built-in drivers\n\nThe built-in drivers are documented in MEMORY.md, CACHING.md, and\nPARTITIONING.md respectively.\n\n# Schemata\n\nThis library assumes you have document \"types\" - like \"person\",\n\"chair\", \"photo\", \"bankaccount\", \"trainreservation\" -- that you can\nidentify with a unique scalar key -- email address, URL, UUID, SSN, or\nwhatever.\n\nYour \"document\" is anything that can be JSON-encoded and\ndecoded. Scalar, array and object/tree values are all totally cool.\n\nImplementation classes that support schemata should support a \"schema\"\nelement on the constructor params for `Databank.get()` (see below). A\nschema can have elements for each type, with the following elements:\n\n* pkey: the primary key element name.\n\n* indices: array of element names that should be indexed. You should\n  really have an index on each element you search on frequently.\n\n## Dotted notation\n\nIn schemata you can use dotted-notation, a la MongoDB, to define\nfields that are part of parts of the object. For example, for an\nobject like this:\n\n    { email: \"evan@e14n.com\", name: { last: \"Prodromou\", first: \"Evan\" } }\n\n...you may have a schema like this:\n\n    { person: { pkey: \"email\", indices: [\"name.last\"] } }\n\n# Databank\n\nThe class has a static method for for initializing an instance:\n\n* `get(driver, params)`\n\n  Get an instance of `DriverDatabank` from the module `databank-driver` and\n  initialize it with the provided params (passed as a single object).\n\n  This is the place you should usually pass in a schema parameter.\n\n      var bank = Databank.get('redis', {schema: {person: {pkey: \"email\"}}});\n\n      bank.connect({}, function(err) {\n          if (err) {\n              console.log(\"Couldn't connect to databank: \" + err.message);\n          } else {\n              // ...\n          }\n      });\n\nThere's another static method to change how `get()` works:\n\n* `register(driver, cls)`\n\n   Register a class to use when `get()` asks for `driver`. This is\n   useful if for some reason your driver class isn't exported by the\n   `databank-driver` package somewhere. (I mainly use this for\n   unit-testing drivers.)\n\nThe databank interface has these methods:\n\n* `connect(params, onCompletion)`\n\n  Connect to the databank. `params` may be used by the underlying server.\n\n  `onCompletion` takes one argument: a `DatabankError` object. Null if no error.\n\n* `disconnect(onCompletion)`\n\n  Disconnect from the databank. `onCompletion` takes one argument, a DatabankError.\n\n* `create(type, id, value, onCompletion)`\n\n  Create a databank entry of type `type` with id `id` and content `value`.\n\n  How `type` and `id` are mapped to keys or whatever in the DB is\n  unspecified. Don't mix and match.\n\n  `onCompletion` takes two arguments: a `DatabankError` (or null) and the\n  created object. That created object may have some extra stuff added on.\n\n  Common error type here is `AlreadyExistsError`.\n\n      store.create('activity', uuid, activity, function(err, value) {\n          if (err instanceof AlreadyExistsError) {\n              res.writeHead(409, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(err.message));\n          } else if (err) {\n              res.writeHead(400, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(err.message));\n          } else {\n              res.writeHead(200, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(value));\n          }\n      });\n\n* `read(type, id, onCompletion)`\n\n  Read an object of type `type` with id `id` from the databank. `onCompletion` will get\n  two arguments: a `DatabankError` (or null) and the object if found.\n\n  Common error type here is `NoSuchThingError` if the databank has no such object.\n\n      bank.read('Book', '978-0141439600', function(err, user) {\n          if (err instanceof NoSuchThingError) {\n              res.writeHead(404, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(err.message));\n          } else if (err) {\n              res.writeHead(500, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(err.message));\n          } else {\n              res.writeHead(200, {'Content-Type': 'application/json'});\n              res.end(JSON.stringify(user));\n          }\n      });\n\n* `update(type, id, value, onCompletion)`\n\n  Update the (existing) object of type `type` with id `id` in the databank. `onCompletion`\n  will get two arguments: a `DatabankError` (or null) and the object if found.\n\n  Common error type here is `NoSuchThingError` if the databank has no such object.\n\n* `save(type, id, value, onCompletion)`\n\n  Either create a new object, or update an existing object. For when\n  you don't care which.\n\n* `del(type, id, onCompletion)`\n\n  Delete the object of type `type` with id `id`. `onCompletion` takes one\n  argument, a `DatabankError` (null on success).\n\n  \"delete\" is a keyword, so I decided not to use that.\n\n* `search(type, criteria, onResult, onCompletion)`\n\n  Finds objects of type `type` which match `criteria`, a map of\n  property names to exact value matches. `onResult` is called one time\n  for each result, with a single argument, the object that matches the\n  criteria. Use a collector array if you want all the results in an array.\n\n  Property names can be dotted to indicate deeper structures; for\n  example, this object:\n\n    {name: {last: \"Prodromou\", first: \"Evan\"}, age: 43}\n\n  would match the criteria `{\"name.last\": \"Prodromou\"}`.\n\n  `onCompletion` takes one argument, a `DatabankError`. A search with\n  no results will get a `NoSuchThingError`. I think this is the method\n  most likely to elicit a `NotImplementedError`, since most key-value\n  stores don't handle this kind of thing.\n\n  You're also on your own on sorting.\n\n      function getModerators(callback) {\n          var results = [];\n\n          bank.search('user', {role: 'moderator'}, function(result) {\n                          results.push(result);\n                      },\n                      function(err) {\n                          if (err) {\n                              callback(err, null);\n                          } else {\n                              results.sort(function(a, b) {\n                                  return a.created - b.created;\n                              });\n                              callback(null, results);\n                          }\n                      });\n      }\n\n* `scan(type, onResult, onCompletion)`\n\n  Finds all objects of type `type`. `onResult` is called one time\n  for each result, with a single argument, the object that matches the\n  criteria. Use a collector array if you want all the results in an array.\n\n  `onCompletion` takes one argument, a `DatabankError`. A search with\n  no results will get a `NoSuchThingError`. I think this is the method\n  most likely to elicit a `NotImplementedError`, since most key-value\n  stores don't handle this kind of thing.\n\n  This is probably most useful for off-line processing, like doing a\n  backup or for initializing roll-up data. At scale, this may take\n  days to complete. If you want to do something like searching a\n  range, figure out a better way, like storing an array of matches at\n  write time.\n\n* `readAll(type, ids, onCompletion)`\n\n  Gets all the objects of type `type` with ids in the array\n  `ids`. Results are an object mapping an id to the results. If an ID\n  doesn't exist, the mapped value will be `null`.\n\n  This is kind of like calling `read` over and over, but if the driver\n  supports multiple reads in one call, it can be much more performant.\n\n  `onCompletion` gets two arguments: an error, and the results map.\n\n## Integers\n\nThese are special shims for integer values.\n\n* `incrBy(type, id, n, onCompletion)`\n\n  Increments the integer value of `type` and `id` by\n  `n` steps. `onCompletion` takes two params: an error, and the resulting\n  integer value. If integer value doesn't yet exists, goes to `n`.\n\n  Defaults to a `read` and an `update` or `create`, but drivers can\n  override to do an atomic increment.\n\n* `decrBy(type, id, n, onCompletion)`\n\n  Decrements the integer value of `type` and `id` by\n  `n`. `onCompletion` takes two params: an error, and the resulting\n  integer value. If integer value doesn't yet exists, goes to -`n`.\n\n  Defaults to `incrBy` with -1 * `n`, but drivers can override to do an atomic\n  increment.\n\n* `incr(type, id, onCompletion)`\n\n  Increments the integer value of `type` and `id` by\n  one. `onCompletion` takes two params: an error, and the resulting\n  integer value. If integer value doesn't yet exists, goes to 1.\n\n  Defaults to `incrBy` with `n` = 1, but drivers can override to do an atomic\n  increment.\n\n* `decr(type, id, onCompletion)`\n\n  Decrements the integer value of `type` and `id` by\n  one. `onCompletion` takes two params: an error, and the resulting\n  integer value. If integer value doesn't yet exists, goes to -1.\n\n  Defaults to `decrBy` with `n` = 1, but drivers can override to do an atomic\n  decrement.\n\n## Arrays\n\nThese are special shims for array values.\n\n* `append(type, id, toAppend, onCompletion)`\n\n  Appends the value `toAppend` to the array at `type` and `id`.\n  `onCompletion` takes one param: an error. If array doesn't yet\n  exists, it becomes a single-element array.\n\n  Defaults to call `appendAll`, but drivers can override to do an atomic append.\n\n* `prepend(type, id, toPrepend, onCompletion)`\n\n  Prepends the value `toPrepend` to the array at `type` and `id`.\n  `onCompletion` takes one param: an error. If array doesn't yet\n  exists, it becomes a single-element array.\n\n  Defaults to call `prependAll`, but drivers can override to do an atomic\n  prepend.\n\n* `appendAll(type, id, items, onCompletion)`\n\n  Appends the values in array `items` to the array at `type` and `id`.\n  `onCompletion` takes one param: an error. If array doesn't yet\n  exists, it becomes a new array consisting of `items`.\n\n  Defaults to a `read` and an `update` or `create`, but drivers can\n  override to do an atomic append.\n\n* `prependAll(type, id, items, onCompletion)`\n\n  Prepends the values in array `items` to the array at `type` and `id`.\n  `onCompletion` takes one param: an error. If array doesn't yet\n  exists, it becomes a new array consisting of `items`.\n\n  Defaults to a `read` and an `update` or `create`, but drivers can\n  override to do an atomic prepend.\n\n* `item(type, id, index, onCompletion)`\n\n  Gets the value at `index` in the array at `type` and `id`.\n  `onCompletion` takes two params: an error, and the resulting\n  item value.\n\n  Defaults to read the whole array and pluck out the value, but some\n  drivers might support atomic query of just one item.\n\n* `slice(type, id, begin, end, onCompletion)`\n\n  Like `Array.slice()`, gets the sub-array starting at index `begin`\n  and ending at index `end` of the array at `type` and `id`. `onCompletion`\n  takes two params: `err` for error, and `results` for the resulting\n  slice.\n\n  Defaults to read the whole array and pluck out the slice, but some\n  drivers might support atomic query of a slice.\n\n* `indexOf(type, id, item, onCompletion)`\n\n  Like `Array.indexOf()`, gets the first index of `item` in the array\n  at `type` and `id`. `onCompletion` takes two params: `err` for\n  error, and `index` for the resulting index. Will give an index of -1\n  (like Javascript) on a miss.\n\n* `remove(type, id, item, onCompletion)`\n\n  Like `Array.remove()`, removes the first instance of `item` in the\n  array at `type` and `id`. `onCompletion` takes one param: `err` for\n  error. NOTE: removing an item that doesn't exist in the array does *not*\n  generate an error.\n\n  Defaults to call `removeAll` with `item`.\n\n* `removeAll(type, id, items, onCompletion)`\n\n  Like `Array.remove()`, removes the first instance of each member of `items` in\n  the array at `type` and `id`. `onCompletion` takes one param: `err` for\n  error. NOTE: removing an item that doesn't exist in the array does *not*\n  generate an error.\n\n  Defaults to call `removeAll` with `item`.\n\n* `length(type, id, onCompletion)`\n\n  Gets the length of the array value for `type` and `id`. Defaults to `read`\n  but drivers can override to give atomic results. `onCompletion` takes two\n  parameters: an `err` and the `length` results.\n\n* `truncate(type, id, length, onCompletion)`\n\n  Truncates the array value for `type` and `id` to new length `length`. Defaults\n  to `read` and `update` but drivers can override to give atomic results.\n  `onCompletion` takes one parameters: an `err`.\n\n# DatabankError\n\nThis is a subclass of `Error` for stuff that went wrong with a\n`Databank`. Subclasses include:\n\n* `NotImplementedError`\n\n  That doesn't work (yet).\n\n* `NoSuchThingError`\n\n  The type/id pair you were trying to read/update/delete doesn't exist.\n\n* `AlreadyExistsError`\n\n  The type/id pair you were trying to create *does* exist.\n\n* `NotConnectedError`\n\n  You forgot to call `connect` first.\n\n* `AlreadyConnectedError`\n\n  You already called `connect`.\n\n* `NoSuchItemError`\n\n  There's no item in that array with that value.\n\n* `WrongTypeError`\n\n  You tried to use one of the array operators on a non-array value.\n\n# DatabankObject\n\nThis is a utility class for objects you want to store in a\nDatabank. To create the class, do this:\n\n    var MyClass = DatabankObject.subClass('mytype');\n\nThis will make an object class that stores data in the 'mytype'\ntype. You can add more stuff to the class, of course.\n\nThe class's `type` is stored in `MyClass.type`.\n\nThe constructor takes an object as a parameter; it will copy all its\nproperties from this object. Good for \"classifying\" JSON. So:\n\n    var json = getSomeJSONfromSomewhere();\n    var myInst = new MyClass(json);\n\nEach class has the following class methods:\n\n* `bank()`\n\nGets the class's databank. Used internally for making queries. By\ndefault, gets the DatabankObject.bank property. If you want to change\nhow this works, replace this function with... something else.\n\n* `pkey()`\n\nGets the class's primary key. By default, looks for a class attribute\n\"schema\" and tries to get the \"pkey\" element of that. Otherwise, it\nchecks the class's schema, looks for an element that matches the type\nname, and tries to get pkey element of that. If that fails, it looks\nat the class's databank's \"schema\", and tries to get that. Otherwise,\nit just returns \"id\". Override if you have a better plan.\n\n* `get(id, callback)`\n\nGet the object with primary key `id` and returns it to the `callback`.\n\n* `search(criteria, callback)`\n\nDoes a search for objects matching the criteria, collects them, and\nreturns an array to `callback`.\n\n* `scan(handler, callback)`\n\nFinds all objects of this type and calls `handler` on each one. At the\nend, fires `callback` with a single `err` parameter.\n\n* `create(properties, callback)`\n\nCreates a new instance of class with `properties` and returns it to callback.\n\n* `readAll(ids, callback)`\n\nReads all objects from the databank with the given array of\nprimary-key ids, and returns a map of {id: object}.\n\n* `readArray(ids, callback)`\n\nReads all objects from the databank with the given array of\nprimary-key ids, and returns an array of objects in the same order.\n\nEach instance has the following methods:\n\n* `update(properties, callback)`\n\nFor an existing object, update to the provided properties, and return\nthe resulting object to `callback`. Note that you can use only a few\nproperties; note that you can't use this method to _remove_ properties.\n\n* `del(callback)`\n\nDelete the object. `callback` takes a single error arg.\n\n* `save(callback)`\n\nSave the current state of the object, and return it to\n`callback`. Will create new objects or update existing ones.\n\n## Hooks\n\nWhen I started using this library, I found myself overloading the\ncreate(), update(), and save() methods to do extra things, like add an\nauto-generated ID or timestamp, or to expand attributes stored by\nreference. It was a little tricky, since I had to save off the default\nauto-created function, then define a new function that called that\nsaved one.\n\nTo make this easier, I added a hooks mechanism. Now, every\nDatabankObject subclass has the option of hooking certain\nfunctionality without having to replicate the core\nfunctionality. Default values are all no-ops.\n\nClass methods:\n\n* `beforeCreate(props, callback)`\n\nCalled before `create()`. A chance to add default values\nor validate. `callback` takes two args: an err, or the (possibly\nmodified) props.\n\nInstance methods:\n\n* `afterCreate(callback)`\n\nCalled after `create()`. Good chance to save references. `callback`\ntakes one arg: an err.\n\n* `beforeGet(id, callback)`\n\nCalled before `get()`. I don't see a lot of reason to mess with\nthis, but it's here if you need it. `callback` takes two args: an err,\nor the (possibly modified) id.\n\n* `afterGet(callback)`\n\nCalled after `get()`. Good chance to expand references. `callback`\ntakes one arg: an err.\n\nThis is also called once for each instance returned in `readAll()`.\n\n* `beforeUpdate(props, callback)`\n\nCalled before `update()`. Validate, preserve immutables, or add\nauto-generated properties. `callback` takes two args: an err and the\n(possibly modified) props.\n\n* `afterUpdate(callback)`\n\nCalled after `update()`. `callback` takes one arg: an err.\n\n* `beforeDel(callback)`\n\nCalled before `del()`. Maybe prevent deleting something important?\nReferential integrity? `callback` takes one arg: an err.\n\n* `afterDel(callback)`\n\nCalled after `del()`. Delete related stuff? `callback` takes one arg:\nan err.\n\n* `beforeSave(callback)`\n\nCalled before `save()`. Validate, preserve, autogenerate. `callback`\ntakes one args: an err.\n\n* `afterSave(callback)`\n\nCalled after `save()`. `callback` takes one args: an err.\n\nTODO\n----\n\nSee https://github.com/e14n/databank/issues\n","maintainers":[{"email":"evan@e14n.com","name":"evanp"}],"time":{"modified":"2022-06-14T19:18:12.453Z","created":"2011-11-30T17:33:21.779Z","0.1.0":"2011-11-30T17:33:22.461Z","0.2.0":"2011-12-02T16:49:27.443Z","0.3.0":"2011-12-02T22:15:50.133Z","0.4.0":"2011-12-07T20:17:45.692Z","0.4.1":"2011-12-10T19:55:23.718Z","0.5.0":"2011-12-12T17:46:36.605Z","0.5.1":"2011-12-15T15:33:52.483Z","0.5.2":"2011-12-15T16:53:06.251Z","0.6.0":"2011-12-16T17:49:23.771Z","0.6.3":"2011-12-16T20:01:47.040Z","0.7.0":"2011-12-19T16:37:31.795Z","0.7.1":"2011-12-19T21:03:37.837Z","0.8.0":"2012-02-29T01:25:01.084Z","0.8.1":"2012-02-29T02:48:06.352Z","0.8.3":"2012-03-03T03:41:08.230Z","0.8.4":"2012-04-30T01:37:54.705Z","0.9.0":"2012-05-09T19:21:12.721Z","0.10.0":"2012-06-08T18:20:22.404Z","0.10.1":"2012-06-09T02:04:42.092Z","0.10.2":"2012-06-09T03:15:18.262Z","0.11.0":"2012-06-19T16:55:47.118Z","0.12.0":"2012-06-19T17:24:11.024Z","0.12.1":"2012-07-01T21:35:08.289Z","0.13.0":"2012-07-05T05:01:34.498Z","0.13.1":"2012-07-08T02:10:20.930Z","0.13.2":"2012-07-19T17:31:22.649Z","0.14.0":"2012-07-31T00:57:55.552Z","0.14.1":"2012-10-10T20:38:16.421Z","0.14.2":"2012-10-31T14:55:54.393Z","0.14.3":"2012-10-31T15:20:59.592Z","0.14.4":"2012-10-31T15:44:58.206Z","0.15.0":"2012-11-06T16:31:57.686Z","0.16.0":"2013-01-14T15:38:33.215Z","0.17.0":"2013-03-18T16:09:50.494Z","0.18.0":"2013-03-18T18:28:14.344Z","0.18.1":"2013-04-10T19:54:04.298Z","0.18.2":"2013-05-22T17:49:24.919Z","0.19.0":"2013-07-30T04:53:54.644Z","0.19.1":"2014-04-15T18:46:39.080Z","0.19.2":"2016-05-20T15:09:14.882Z","0.19.3":"2016-05-25T13:55:33.103Z","0.19.4":"2016-05-25T15:36:59.879Z","0.19.5":"2016-07-19T06:39:03.592Z","0.19.7":"2017-01-23T17:02:13.322Z","0.19.8":"2017-01-23T18:32:01.213Z","1.0.0":"2017-01-26T18:52:51.582Z","1.0.1":"2017-01-26T19:38:05.281Z","1.0.2":"2017-12-19T16:15:45.722Z","1.0.3":"2017-12-19T19:37:43.159Z","1.0.4":"2017-12-19T19:40:55.864Z","1.0.5":"2017-12-19T19:43:02.332Z","1.0.6":"2017-12-19T19:52:33.768Z","1.0.8":"2018-05-26T18:59:37.997Z","1.0.9":"2018-05-26T19:01:24.239Z"},"author":{"name":"Evan Prodromou","email":"evan@prodromou.name"},"repository":{"type":"git","url":"git+https://gitlab.com/databank/databank.git"},"users":{"fgribreau":true,"evanp":true},"homepage":"https://gitlab.com/databank/databank","bugs":{"url":"https://gitlab.com/databank/databank/issues"},"readmeFilename":"README.md","license":"Apache-2.0","keywords":["databank","database","nosql","abstraction","orm"]}