{"_id":"apibase","_rev":"53-a0fcf0a19af4ff14d88c87bd3bbb65c8","name":"apibase","description":"Easily build APIs on top of Firebase","dist-tags":{"latest":"0.3.6"},"versions":{"0.1.0":{"name":"apibase","version":"0.1.0","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","_id":"apibase@0.1.0","_shasum":"770c5d8e6baf728f8d9bb7654fea37fa71cf618b","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"770c5d8e6baf728f8d9bb7654fea37fa71cf618b","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.0.tgz","integrity":"sha512-Q7QgfS5lgcafUIksK7glbXd1/4U+oQsbOXCrXxtoMRBzDBAUF3B8R4iPblMBGwJ+7hzExdCHg4J2AItXPrQbjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBu4hW54RxuuPQ1fpzPnadNkMT+SQ57M21CYsKZtJhzpAiEA4v3LlXNk/YHfowM8gO3XGdm3vMqcqLm0CEKkGMM8O6c="}]}},"0.1.1":{"name":"apibase","version":"0.1.1","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.1","_shasum":"873f042b2c9311b4ced2dce67ae7e748ea2676c8","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"873f042b2c9311b4ced2dce67ae7e748ea2676c8","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.1.tgz","integrity":"sha512-K8xFlLVOXAc5FhwEtSt48aDZkFNZMeZul+xZIVXEhgDX2gq2Ky3IWJ6WywcBR308cBiktxsVRIHtUQ1JknZcdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZgvo2UUL7u/zLX44JfaHeGgPyLC9d3+KJlZhuB6IqhAiEAx4KUU+G4bkchWU63ArZ6kI4iQYvFkmZpysO8GnEy9n8="}]}},"0.1.2":{"name":"apibase","version":"0.1.2","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.2","_shasum":"2dba60eb49e0e6fdf02fd0b76abb76d42c4c5833","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"2dba60eb49e0e6fdf02fd0b76abb76d42c4c5833","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.2.tgz","integrity":"sha512-vTfM9Bplw6QM0VosghvZO/gRgJGNj7e81Rjl4tr9jjv7mMve8aZagSd3hvRkSHV7cFgtOvzK1th24/ZzP/lsZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDf97g8Xt0OdOELxcjIy3HF7/1IGwMlPAy5QiHYqrwSfAIhAJgqovBIgXPahA20mpPh9VlEe9zndRgKGMjafg4JT4Wr"}]}},"0.1.3":{"name":"apibase","version":"0.1.3","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.3","_shasum":"6fc784c3b474425c2a4a2e701323fcb755f65333","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"6fc784c3b474425c2a4a2e701323fcb755f65333","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.3.tgz","integrity":"sha512-L6dT2xBv7XkRgytRWIEhhWhcIZs0qG+uNX9iWl4REekCKrUxpKADaRFJe7pivAhMYpfG+7Tm7XSJocuhbmXAXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP97WiCScDjmUCAci53t8fRCshpvwkZLK1Nw5cSJY7TQIhAJubNakFVTAOIOq9L7bAOWYjM04CbCKzlH4W+fQWkN5/"}]}},"0.1.4":{"name":"apibase","version":"0.1.4","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.4","_shasum":"e3adc2d2e8fe8de0d124169274fd09c8e78c40d9","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"e3adc2d2e8fe8de0d124169274fd09c8e78c40d9","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.4.tgz","integrity":"sha512-sIeF9kDyHs6dYv4yclRXtD+1zYm3zeNZpXfUA8f+qFcWWtLmsk4JVu0KOBGMeUP05MSt6OMzmpttTGnpy0eCdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChHy1q5JU1GZgYKIRMQ1W+Bj9CI3joWh91mvlIgH+4+wIhAO31WanIvhABhtaOlGoZbgofQtzuQ3nOWn7cUMeynCfI"}]}},"0.1.5":{"name":"apibase","version":"0.1.5","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.5","_shasum":"9ce1e21b4def9516115833ff2a579b6c0dd3b8e1","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"9ce1e21b4def9516115833ff2a579b6c0dd3b8e1","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.5.tgz","integrity":"sha512-gJO/gO5IbiiWNtw7yc7LQKKlv2lQU1ei6qvWhtEBwNfZ4MglWrLHU7oDXBSeeQPpDx/7pPcBmkUvil2RyVmxyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE94166dPgHYyGmMWpL0KBRA4rVnVWyxT7nhaNQUu+KiAiEAvG84vKRLO1BsCsp9Pxt6StsYateo/2gFjdkvTKgQvKU="}]}},"0.1.6":{"name":"apibase","version":"0.1.6","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.6","_shasum":"d98991efa4fdc5228ded6f23a637532f3a1796e7","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"d98991efa4fdc5228ded6f23a637532f3a1796e7","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.6.tgz","integrity":"sha512-D9PlLVD46MBlCiFAxQmzkCyfPMBXvZjMWe56OCFJeDYFcNh2rH89BdR+mbeiMC8mheg3AOVRwuMotQl/kRhsEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiIjyEUR5QHRgruPwQSOPdZ5ukRl1LUpbym7qTR85fUwIhANuaQdcCOZsaVml0VjwP772q5j6fJ0/qq4Y79RtC8EcJ"}]}},"0.1.7":{"name":"apibase","version":"0.1.7","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.7","_shasum":"fc0c2f140a9e4ab10d2775170c137da444ab8855","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"fc0c2f140a9e4ab10d2775170c137da444ab8855","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.7.tgz","integrity":"sha512-CtN6Qvras0U2O3vU9LFylokQFCNGYR2INcGHM5dYjRjBpcfJMBNorwkHLf+fVmHbReD9oktN7ww+POYgqZ3A2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtjmyskCp7ngRX0QI6tO6+JerZtlpG144sRrIfuve3+gIgOEaboRLwWWZ8Etj4ky5yGQ4tE2T/2pWnB110YfHRTqs="}]}},"0.1.8":{"name":"apibase","version":"0.1.8","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.8","_shasum":"e63df69ff94f903ba5f2c6f70d12f8091dc12ec6","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"e63df69ff94f903ba5f2c6f70d12f8091dc12ec6","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.8.tgz","integrity":"sha512-iuTnECfNLcNM+UOtKAm44L0Ma9pkufAvPEXb+j2uhRWj6sM0w2TNk4akc+AWNTrfuWCZEzqlAXAY363RZEWt3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZVjh3ZT2C9h2BCZmP6PkNkHvl8d5Q9fUabda9KoLQSAiEAhzZqHOywYwoulAoKF65a0M5VBoF3kvvAFWTkbjU8Iqc="}]}},"0.1.9":{"name":"apibase","version":"0.1.9","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.1.9","_shasum":"43c85bb0123e31893c1af25d6b06eb1e788287e9","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"43c85bb0123e31893c1af25d6b06eb1e788287e9","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.1.9.tgz","integrity":"sha512-YYbl0l25QkQTCNQe5GDemA+5ynRvIdOvEnI8VR8DpCAQmHIzFtShqoFj58ZxeVfGnbM/iqVYwLTAmWXoPLOoSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqpKLJZhhuWXgmLEL+8UiK4uE9yUsqdOUeuUUnmLHoCgIhAI6mGJ2aYTW1RZTv1J/CdUs//LkEDk9OUcqmjJxYZXUb"}]}},"0.2.0":{"name":"apibase","version":"0.2.0","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.0","_shasum":"3695f9bf3a7b0fe06113d6559c2e4b9ee14a306a","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"3695f9bf3a7b0fe06113d6559c2e4b9ee14a306a","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.0.tgz","integrity":"sha512-1IhHQaGR+nDxTV5j9TxnEXWX/a2SMLhKpp/h6ObogFDkfuw2mKqNaidnrVfQK/TesPLuZu8ZXpO8FOgiuy3iCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWHxnwHiI+NpAJwlqQzjhVeHojzzomdcPWB+nAw7kV6AiAjV8gYiHHHtK1mznPLEtlAvy4RsaFNMEk1dtmOq8bjFw=="}]}},"0.2.1":{"name":"apibase","version":"0.2.1","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.1","_shasum":"d2ce55363bb1c57db94f1dd29f11346fa977e78f","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"d2ce55363bb1c57db94f1dd29f11346fa977e78f","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.1.tgz","integrity":"sha512-2Q9ZI21JE6mbiTyMpiGwmAV38L/ES1xv6fUHDkmvzmnMRTbsN/06x/KRf4MrACRZtNBouUOtGu6f5mvLGEc86w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALJaxy41R5QWfN8J2czTAuGQnYZo1EaDyyXGYzI5cprAiEA8s+TpzgWBkGF4AyQYzNH21eb9BqPK0n6djGhbildQsg="}]}},"0.2.2":{"name":"apibase","version":"0.2.2","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.2","_shasum":"d9261ce9e8e4f85fccb9aa74e1b9892690e86147","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"d9261ce9e8e4f85fccb9aa74e1b9892690e86147","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.2.tgz","integrity":"sha512-D+59kPRwJY3SC8M+tnxhgbgfwXoq1aimSsEptoJkxg4mbRTmzBS6gVMcoGGPDfkwVG0SH/wqzDokhbZEH5WNjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGCLICQWBuheSubtXMwhyfmQtff3V1vY9eVAomI3njvgIhALIwDSYnCNSnbv0HmwUleGzZHAktbA0CboNrkbgkaMIc"}]}},"0.2.3":{"name":"apibase","version":"0.2.3","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.3","_shasum":"6e98b25811d740a34fc71b9fb8c82204d7600b16","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"6e98b25811d740a34fc71b9fb8c82204d7600b16","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.3.tgz","integrity":"sha512-xWTttfnof5UTgsRazGOVAWqRWwH0k/b5ZiJ0PY+BobLtHqwPMGao3pGh8AJKmZebciiJoqRTLk/LcrwWGqLPZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrC7q8nu9fPVFd2P3xrEZ3y1JLwLCW511xHDTyrVcyNAIgFGCEiX68ylSzVCwx2E4SiHbewm5x01aKZvUDJeVP1K8="}]}},"0.2.5":{"name":"apibase","version":"0.2.5","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.5","_shasum":"2e6495b59a378331865ae92427062669714adacb","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"2e6495b59a378331865ae92427062669714adacb","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.5.tgz","integrity":"sha512-SnOysdUNU9lYUNee9VLv/jN3RZrCpVDH9694Kwo4s+VkSaf5Mc+DJjMHc0Quk+x2scNOHGIRziiIe48F44m+nQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAblHvohiYyRaIMCPykbW+NIrdGkmSWQFb/nCnUMbDU2AiBofhE70i4yjkb943FMMsbz/+zA3gjun08ra3bh+WjQow=="}]}},"0.2.6":{"name":"apibase","version":"0.2.6","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.6","_shasum":"1c63a0713f12bc08e35708edd84d137846c8119d","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"1c63a0713f12bc08e35708edd84d137846c8119d","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.6.tgz","integrity":"sha512-6l14i5gVUUJqOAdqQpCXgMJ4EDwftrQihUwzHdMbreaBBI9UqgWreXu2LUN1OdoOveD/LgeCNlJvPa1zpB3E8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfZfELUVgtQjZKRxAYJNNqsDuXhUVa+Qq9kLZQMwCUiAIhANY8ORQHBgf37Kur/Chtci9kldFIP8+tKeABPj/K0Itk"}]}},"0.2.7":{"name":"apibase","version":"0.2.7","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17"},"_id":"apibase@0.2.7","_shasum":"435dc4ae6b8af4ce1c0041c42e3c03d552aa664e","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"435dc4ae6b8af4ce1c0041c42e3c03d552aa664e","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.7.tgz","integrity":"sha512-0eFI6mJQrtGTAEch4o7XQr3MR5Yt2h/tH+3ioJKi0WHON8BTvLPmxxo727jzXKUciSb9FToEwa0b7qwnvU8HWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDuDM2DSoPSb00Nmp/42F6o9ciF+SiCcb+2y61vKygC/AiEAnvgHix+V8nUWuvgi4Ng6fRvZyWr86OpkMLM67tnWOY8="}]}},"0.2.9":{"name":"apibase","version":"0.2.9","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.2.9","_shasum":"c5fa6c2be86103214ee420a4084bbe3cd99a2081","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"c5fa6c2be86103214ee420a4084bbe3cd99a2081","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.2.9.tgz","integrity":"sha512-KM9wRPMldbFUopTCJUruDE8QtvZPVGKpqdwdobYkH5Hdm/gd0iU2M9o94iBnci7/lOg57BVDKB9Y56Q9AQRJxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5k0O+fBr5Sf3SAhbxYg8EsJIlBJ4BtNCMJcQNZwQCTQIhAPZZaM1XqJXb0xd0Dkq65bkKFTDrqutQCDJeoRgFlr67"}]}},"0.3.0":{"name":"apibase","version":"0.3.0","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.0","_shasum":"e3405dbff997188aa2c6336f7ee0cd152d862414","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"e3405dbff997188aa2c6336f7ee0cd152d862414","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.0.tgz","integrity":"sha512-JgILZTrMPCt/YvtYWQJJy0dhWhC5MZiwUQNpkiUpVd6J8n9tVEYgNouMTDXleuao8yIdpqPYBy+VLLZsg3+c2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTS4Ni2MIQE//s068z09/xhH7u4XS8Ec+VOxiTFWtcSgIhAILHAiT1/VdgwwbGjV+eY8VIbJ0oBIypDv3COVhyM2yS"}]}},"0.3.1":{"name":"apibase","version":"0.3.1","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.1","_shasum":"02d8a625f1ca0cf9534cf6b51e391699e99e4b59","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"02d8a625f1ca0cf9534cf6b51e391699e99e4b59","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.1.tgz","integrity":"sha512-jLmZ1zJ4JUU4xi7xR40UYabVi4YRFaKoTTKL/OmDfDduVfiRz+9MKrcGM568CIRmJc3tkdWiZ3RFOb9zIjzK3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnzMe+LDGjxHKC55P8NDuWt1rVCvehnGCFPvE5nq8jhAiBP4J4SsRQFpbSVb+/kMLSv2cIpIKsz099lxOTzlpY96w=="}]}},"0.3.2":{"name":"apibase","version":"0.3.2","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.2","_shasum":"1dfe0b194b79911dce143a2cde24fbff964f3389","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"1dfe0b194b79911dce143a2cde24fbff964f3389","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.2.tgz","integrity":"sha512-FbpHlxGSbCmpaSbBgwNhm1mH0Lr3ALRK9DoOLc9tPl+6MesQxaqBi8BunoR8lmzOHA2htlUEZGRQDq7EW5KVsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBaXPG4NcykQRhXaWDgLBvLdoRTyfkU9yDPOJPhKwVjuAiEA0tAm/S2Y+dhERsJeEagTLlz3PjhHy9bNWHOhOnGxsVQ="}]}},"0.3.3":{"name":"apibase","version":"0.3.3","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.3","_shasum":"1ad40c30dc4174b88345cd70b6a2c03690e28a54","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"1ad40c30dc4174b88345cd70b6a2c03690e28a54","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.3.tgz","integrity":"sha512-XSne03+q4Nyojld8iS7lvxEedJof79P3zdaoPsnqTx/aN3aUwTcbmqZGVmfVK12R8rk3Lo3svw8AC791px6HLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHsZ+jQZNSiwFAg0I1nGuJklkgXRgokXFjMsRb79vu+WAiEAxSArRP1/bAxSSnFrZK6Jy9AfNqv8x9s0zYnYXxf3LmE="}]}},"0.3.4":{"name":"apibase","version":"0.3.4","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.4","_shasum":"973f5b3c412555fafab8279fd9964b7ff2c745ec","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"973f5b3c412555fafab8279fd9964b7ff2c745ec","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.4.tgz","integrity":"sha512-XkX784fn9ut/knZJ42Nn9fCt1B71f72bgsEhX7+QIIxHEFMpmpxvW9msm0cR8VKgEnB6RYlp+JnX+67X+BIbAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgkxu1XGM+evQsCUaR9E9j6wvxv78jY+zDgGOasmT0bAIgdNqbF9QnCiHsl35wsTThiC3ZNx639pfx98s5eOmy5YA="}]}},"0.3.5":{"name":"apibase","version":"0.3.5","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.5","_shasum":"612545ce75b12b92cd5dd389c6439d0e18bf280f","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"612545ce75b12b92cd5dd389c6439d0e18bf280f","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.5.tgz","integrity":"sha512-eyZBNhWDJFU+PQAwTr6M0PByajWxPI6d8o+nxicI68+Gl+poN6HednbKj1kJ63bgu+QkYX4O8kImOP5G+50w0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4pHpXy9xZXw5azoWFlJydRSV7lG+nb9vbmWabDofhFgIhALoT8vsw9QCROf6cg7drMpJ69vJkfumklLgtL7V4gq1u"}]}},"0.3.6":{"name":"apibase","version":"0.3.6","description":"Easily build APIs on top of Firebase","main":"apibase.js","directories":{"test":"tests"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"keywords":["firebase","api","realtime","browser"],"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"license":"MIT","bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"homepage":"https://github.com/Rigidflame/APIBase.js","dependencies":{"firebase":"^1.0.17","request":"^2.36.0"},"devDependencies":{"gulp":"^3.8.5","gulp-rename":"^1.2.0","gulp-uglify":"^0.3.1"},"_id":"apibase@0.3.6","_shasum":"ff6f0487a8a5b3d4786ce9c08479124c53031f93","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"},"maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"dist":{"shasum":"ff6f0487a8a5b3d4786ce9c08479124c53031f93","tarball":"https://registry.npmjs.org/apibase/-/apibase-0.3.6.tgz","integrity":"sha512-Q8LZwQa9BUaD3uoGpwBRVlqKhHosyMIX91EWt77NZF11576t+7e3JXXeURKEVp5XPZeeRzc7xSyOd/19WMZxQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqA0OSaGsa8yVDdzkhKuESBMi/m396kRI2DhcI4H70kgIhANWBHHhFJtqAVnEzZtYzrGydPCZqfSctW8XNUyGXwDO/"}]}}},"readme":"APIBase.js\n=======\n\nAPIBase is an absurdly easy way to expose an API in NodeJS and communicate with it all through Firebase. APIBase takes care of the technical details like queueing and leaves you with a simple API to build your API on. \n\nBasic Usage\n----------\nTo begin, you must **enable Anonymous Login** on your Firebase. Then **install the security rules** which are specified in `rules.json`.  \n\nCreate a `server.js` file which will be run in Node. \n\n```js\nvar apibase = require('apibase')(\"<Your Firebase>/apibase\");\n\n// If you're using the recommended APIBase security rules\n// Your server must authenticate with your Firebase Secret.\napibase.auth(SECRET);\n\n// Any methods you put on apibase will be exposed publically via your API\napibase.hello = function (name) {   \n    return 'Hello ' + name;\n};\n\n// API methods are passed a `done` method which can be used in place of \"return\"\napibase.rest = function (time, done) {\n    setTimeout(function () {\n        done(\"Coming from a promise!\");\n    }, time);\n};\n\napibase.publish();\n```\n\nCreate a `client.js` file which can be included on your webpage (or ran in Node as well).\n\n```js\nvar apibase = new APIBase(\"<Your Firebase>/apibase\");\n\napibase.retrieve().then(function(API) {\n\n    API.hello(\"Abe\").then(function (result) {\n        alert(result);\n    }, function (err) {\n        alert(err);\n    });\n    \n    API.rest(1000).then(function (result) {\n        alert(result);\n    });\n});\n```\n\nThen, run `node server.js` and open your `client.js` file in a browser and you're done!\n\nUsing a Context\n-------------\nAPIBase supports use of a context which is passed to your API methods when they are invoked server-side as `this.ctx`. A context is an object which can contain arbitrary data which is required for most method calls (like a session token).\n\nA client specifies a new context with `APIBase.context`.\n\n```js\napibase.context({\n    name: \"Abe\"\n});\n\napibase.get(\"greet\")().then(function (greeting) {\n    console.log(greeting); // Logs \"Hello Abe\"\n});\n```\n\nUsing context on the server simply requires reading a field from `this.ctx`.\n\n```js\napibase.greet = function () {\n    return \"Hello \" + this.ctx.name;\n};\n\n// Calling publish allows clients to connect to your API\napibase.publish();\n```\n\nThe context will be sent will every method call until a different context is specified. \n\nUsing Blind Methods\n------------------\n\nAlthough it is generally easier to use `retrieve()` to fetch an object with all known API methods, you can alternatively user blind calls to API methods. Blind calls run the risk of silently failing if the server is not aware of the method being accessed. However, they can be slightly faster if your API consists of hundreds or thousands of methods which would be slow to sync to the client. \n\n```js\nvar hello = apibase.get('hello');\n\nhello(\"Blind Fish\").then(function (result) {\n    console.log(result);\n});\n\n```\n\n\nAuthentication\n--------------\n\nAPIBase requires all requests to be made by an authenticated user with a unique `uid` field in their token data. There are several options availible which allow you to integrate APIBase's authentication with any existing Firebase app. \n\n### Option 0: Using Anonymous Login (Default)\n\nAPIBase makes use of Firebase's powerful Anonymous Login to ensure that requests are secure even when a user is not logged in. By default, every request made from the APIBase client will be authenticated and secured via this  method, unless another authentication system is required by your app.\n\n### Option 1: Calling APIBase.auth (Custom Login)\n\nAn APIBase instance provides an `auth` method which takes a valid Firebase Auth token. When `auth` is called, APIBase will unauth any existing authentication on the Firebase (from, for example, Simple Login) then authenticate with the new token. This method is great if you're using a custom authentication system where your clients retrieve the tokens and would normally just call `FirebaseRef.auth`.\n\n### Option 2: Calling APIBase.setUserData (Simple Login)\n\nIf you're user is already logged in via Simple Login or another method, it can be difficult to retrieve the current authenication token which would be needed by `APIBase.auth`. Alternatively, you can call `setUserData` with a `user` object. APIBase will assume that the `uid` field on the `user` object will be the same as the UID which your Firebase is currently authenticated with. \n\nHere is an example integration of APIBase with Firebase Simple Login.\n\n```js\nvar URL = 'https://<YOUR-FIREBASE>.firebaseio.com';\nvar ref = new Firebase(URL);\nvar apibase = new APIBase(ref.child('api'));\n\nvar auth = new FirebaseSimpleLogin(ref, function(error, user) {\n  if (error) {\n    // an error occurred while attempting login\n    console.log(error);\n  } else if (user) {\n    // user authenticated with Firebase\n    console.log('User ID: ' + user.uid + ', Provider: ' + user.provider);\n    \n    // Tell APIBase that our user data has changed\n    apibase.setUserData(user);\n  } else {\n    // user is logged out\n  }\n});\n```\n\nBenchmarks\n----------------------\n\nAPIBase should significantly out perform HTTP in most situations, but it especially shines when you are making several requests from the same client (for example, in a Single Page App).\n\nIncluded is a hacked up comparison between Express and APIBase which both implement a `hello_world` method which simply returns \"Hello World\" to the client. As I suspected, APIBase dramatically out performs HTTP in this test. This test makes 10000 requests to the `hello_world` endpoint and my experiences show APIBase being **over 3x faster than HTTP**.\n\n**Express (for 10000 requests)**\n\n    2m41.386s\n\n**APIBase (for 10000 requests)**\n\n    0m47.765s\n\nThis test is by no means conclusive, but it does show that APIBase can easily out perform a simple Express endpoint.\n\nCredits\n-------\n\nDevelopment of this library is sponsored by [Rigidflame Consulting](http://www.rigidflame.com).\n","maintainers":[{"name":"abeisgreat","email":"abeisgreat@abeisgreat.com"}],"time":{"modified":"2022-06-13T03:12:52.045Z","created":"2014-06-05T16:04:44.578Z","0.1.0":"2014-06-05T16:04:44.578Z","0.1.1":"2014-06-05T16:06:01.664Z","0.1.2":"2014-06-05T16:17:40.323Z","0.1.3":"2014-06-05T18:56:39.727Z","0.1.4":"2014-06-06T16:53:22.619Z","0.1.5":"2014-06-09T22:31:38.929Z","0.1.6":"2014-06-09T22:37:54.497Z","0.1.7":"2014-06-09T23:55:30.142Z","0.1.8":"2014-06-10T18:39:40.592Z","0.1.9":"2014-06-24T18:46:04.416Z","0.2.0":"2014-06-24T18:49:17.370Z","0.2.1":"2014-06-25T16:45:12.962Z","0.2.2":"2014-06-25T17:36:14.581Z","0.2.3":"2014-06-26T18:37:06.686Z","0.2.5":"2014-06-27T19:05:48.072Z","0.2.6":"2014-06-30T18:39:22.338Z","0.2.7":"2014-06-30T18:50:51.748Z","0.2.9":"2014-07-01T18:58:07.490Z","0.3.0":"2014-07-21T17:35:52.172Z","0.3.1":"2014-07-25T18:11:07.876Z","0.3.2":"2014-07-31T21:59:05.688Z","0.3.3":"2014-08-01T21:38:49.218Z","0.3.4":"2014-08-01T22:20:28.076Z","0.3.5":"2014-08-01T22:22:23.439Z","0.3.6":"2014-08-01T22:26:23.112Z"},"homepage":"https://github.com/Rigidflame/APIBase.js","keywords":["firebase","api","realtime","browser"],"repository":{"type":"git","url":"https://github.com/Rigidflame/APIBase.js"},"author":{"name":"Abraham Haskins","email":"abe@rigidflame.com"},"bugs":{"url":"https://github.com/Rigidflame/APIBase.js/issues"},"license":"MIT","readmeFilename":"README.md","users":{"mynetsky":true}}