{"_id":"apian","_rev":"30-acffe5a06d4ecf0e769e3e1f60b21831","name":"apian","description":"apian","dist-tags":{"latest":"0.1.4"},"versions":{"0.0.1":{"name":"apian","version":"0.0.1","description":"apian =====","main":"index.js","directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"chai":"^1.9.1","colors":"^0.6.2","minimist":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"gitHead":"341f4790856735a73d75754f3808935a883f1aa9","_id":"apian@0.0.1","_shasum":"b65712222f6ceebf597aefd8b84b568b0b4a8607","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"b65712222f6ceebf597aefd8b84b568b0b4a8607","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.1.tgz","integrity":"sha512-Bl0yyBww172+g1jelFbt1/o14E64VarKO6SZq37qDHfcJGhtOM4pn/6JWk7L11l6Qhh60iSlRvNtXim5Nc65ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkuq6sDytT7y8PDHoVpUJwiHXaaG78T3s1k0xD14V/2AiEAvufJ2OYVgGGyBMjJs32ULn2bdNSuT/y8Tgt4EU7oSz8="}]}},"0.0.2":{"name":"apian","version":"0.0.2","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"3d368e41d257af1bc52d88b017e83f3a2da131cd","_id":"apian@0.0.2","_shasum":"b8a2ffdcc4a786190bb038e7d8979ccbfb23ed39","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"b8a2ffdcc4a786190bb038e7d8979ccbfb23ed39","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.2.tgz","integrity":"sha512-XYxJINM+s5444L4CdFOyuShwZLO1Zwq+iJ2aAkovjnYvGnEA9Echg6YYyP205POmYZ3T57HLxruWWmOHFckF7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9Tr5lRBRWWTQe05E35zE0z7xUviSE3haBLI+HtCSaZAiAbw2vlUw14tZhf9BCS7v8ATkOjLYqgrm0hcDkTI54mcw=="}]}},"0.0.3":{"name":"apian","version":"0.0.3","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"4749e3a7d9cde4fdf27fdfa626ad3f41039d765f","_id":"apian@0.0.3","_shasum":"01d1d9af5a5da71663aa9ca9ddede6aec505b4b3","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"01d1d9af5a5da71663aa9ca9ddede6aec505b4b3","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.3.tgz","integrity":"sha512-ggwpk6mJHi/Dh+QOU4cqQqAlU7TSv9AEu9t3rrA7oBZI4bVb+0VsRd0yF7Hzk2g18z8KrVyapIhrDN7gCgaAog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAP6zAeb8c5yQA6UxtOgOQxKpeXoRdS6GKetgHVSrmquAiEA5tRsdq9Zy0wfP/Me/e6SPnWS3tzUGlhsH3HAMtqqTmw="}]}},"0.0.4":{"name":"apian","version":"0.0.4","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"6d7011d825dd969bbaa0c6e7a5850cecd831a2ba","_id":"apian@0.0.4","_shasum":"d052e38eb5bf3cdaa6ec5354f4c6955d96d4f0e3","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"d052e38eb5bf3cdaa6ec5354f4c6955d96d4f0e3","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.4.tgz","integrity":"sha512-ioQ7mZtDKWy57bn5IcM+7ggAD15qC2wCLKZx4nfKbwJozwb1HGXILmOsTYJwJzvokijhrcFTJRPyMnX6EjMjgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHs3m3AUVxeM/yZSFcAj3LTSWw7ywIywgvEHr/6kOMrAiBQ2iyFfV35iW8FRBrlozmPi3MGeshJHJzPoBlqLgFlTA=="}]}},"0.0.5":{"name":"apian","version":"0.0.5","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"aed1b81f25b5c055578babddfc8a7659e256a130","_id":"apian@0.0.5","_shasum":"94180a3a1db507d3015a7100790aec97f660883f","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"94180a3a1db507d3015a7100790aec97f660883f","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.5.tgz","integrity":"sha512-neYvhmSu6pJ6p3w0HS0DNUr9/YsOavZBCLNLqbCnmgEHpHURjcEvZxWhq7Qhz03oE3Cu8odD5qLI7L7KVzSUWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7WEa+nGzlTHmmg/48+Reo5HCxh4sEODySBBE66J9ZyAiEAsrCBnSXQhYUEE2d2LNQHY/9Ib2+eW8+RlBeBsqCEp4Y="}]}},"0.0.6":{"name":"apian","version":"0.0.6","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"61d29a9276b7bb1fee8e58e5282ec9f264092542","_id":"apian@0.0.6","_shasum":"ef5b2350b6c15c00a71eeb2d5248ff26afc395e9","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"ef5b2350b6c15c00a71eeb2d5248ff26afc395e9","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.6.tgz","integrity":"sha512-k+1np94JLFt0+wN+L/OS6QC3mIbUq5ltGxHVfMPmBJktuB02S2c2T11Nq+qqn9ul6SrR6eqIi6OmSX3BSuVZfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAhZNwtS9ZsYCymQWvftLycvRNUDqJ4sxhL74EmX/fmAiEArZu6A8RNBzKf9RLhnGSkysHFMdPeLikdV19jrZaHnCE="}]}},"0.0.7":{"name":"apian","version":"0.0.7","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"f6b35907174d67f1c797b6bea83d4b02b0d5a83b","_id":"apian@0.0.7","_shasum":"e1240745a86126ac38a6f3abaeeab2954927732e","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"e1240745a86126ac38a6f3abaeeab2954927732e","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.7.tgz","integrity":"sha512-Yyw85FlJmQAxS/clhZJ35iir86oGUhUF1l1pbHn0Lub1Z/hGadVULmmcPnLcPkwVxGgYdYTJtk+GZNL5y1EsQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTTSlct6Mi0KNVMyXlXmZ0PCw57XWVL0/litnxPxrOHAiB9Lih7Dbc2LWKsPU/OJE+3XXXzluKzXtq2lwh+EhkSDA=="}]}},"0.0.8":{"name":"apian","version":"0.0.8","description":"apian =====","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"nodeunit tests"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{},"gitHead":"bcb25e1dbd6cebb80fcd248372ca5c48b5058e95","_id":"apian@0.0.8","_shasum":"7afdceb5928786d9de870ebde9c1223c162613ec","_from":"apian","_npmVersion":"1.4.14","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"7afdceb5928786d9de870ebde9c1223c162613ec","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.8.tgz","integrity":"sha512-PzdQEMcKjaBuVR8b1CIjYuJW1c9XHFqfaZwhGg57GdI5o+CCoLXSci7pO9DKndgK267pUSuzq2Cxt1ITxnxiwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9Py/tOcxw9U3lJzROLsryJSjKTaXKGGdp1wZPfTbtcQIgTOCR6YYoc/oMmXUWw7cH7DYjHPFc5tVULSWXrcbWz34="}]}},"0.0.9":{"name":"apian","version":"0.0.9","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"601984f198ba7991acff1e13f434b146df36123a","_id":"apian@0.0.9","_shasum":"213f7a10585ed7605d6ed2ece3d5a190635b3b4e","_from":"apian","_npmVersion":"1.4.27","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"213f7a10585ed7605d6ed2ece3d5a190635b3b4e","tarball":"https://registry.npmjs.org/apian/-/apian-0.0.9.tgz","integrity":"sha512-TjabwSZnZAtU1l5nEhMD7BrIzcPeGGnzXjE7X8NE9qdgWjj6FDNLl/0YXTpEXLHNuCm+I2PwwaOPakCFLx33iw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+SDZkGzQDkryM1RvtYTbPtqjBK4MOg2kKwRIe7qMwZAiAFYStKcXmF0PmMhLfYSjaNTB0Y6sgvWLzF28TnFWGCiQ=="}]}},"0.1.0":{"name":"apian","version":"0.1.0","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"af622f4501efdd733e3089e0b4011f8b033effe5","_id":"apian@0.1.0","_shasum":"df4aab63044a678b8a426dbede448022923453d5","_from":"apian","_npmVersion":"1.4.27","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"df4aab63044a678b8a426dbede448022923453d5","tarball":"https://registry.npmjs.org/apian/-/apian-0.1.0.tgz","integrity":"sha512-235avUyWkD+0C0vrFzxKrBoT637NAOwvliq/tdmlCnU80u51DBqND+GMti0nbv5rDKKr6M6u8DXS7oYZMQHZrg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBqy6sT5/IIP92SrwfrQa4xo/dh8vgWPb/LLYzjAoDhLAiApa8FwTyCfUZhsMaOG/pH6RnWUz8xBjo+41LXb9vgI2g=="}]}},"0.1.1":{"name":"apian","version":"0.1.1","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"388b04416571cc3fec5c531d62310415fcfdcb2c","_id":"apian@0.1.1","_shasum":"0da1160fbb0a8243cd7dd5d6aa1991dba2e26b23","_from":"apian","_npmVersion":"1.4.27","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"0da1160fbb0a8243cd7dd5d6aa1991dba2e26b23","tarball":"https://registry.npmjs.org/apian/-/apian-0.1.1.tgz","integrity":"sha512-vtgWtIg/xZS1mMj27hJgaF7IF5IhtDB0TQggwMRb78T+XaaUYH+s18H1PSYHwzjV+06xvVOUkulccLu9FjoidA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXzX3bGiuaFudiRtoCyd6OdCKfE+kS+eH1dZTNzPH8uAiEA4NhQne8UKTOJ/u75YS86dreY5/BpUHQuRotNyR7+588="}]}},"0.1.2":{"name":"apian","version":"0.1.2","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"099ec6f0e111831407993dfa5c840dce4bd64734","_id":"apian@0.1.2","_shasum":"b65fea636b62e16cab744992def4452bde0cccc3","_from":".","_npmVersion":"1.4.27","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"b65fea636b62e16cab744992def4452bde0cccc3","tarball":"https://registry.npmjs.org/apian/-/apian-0.1.2.tgz","integrity":"sha512-GBuZ0A2g9JqLSZcQQg7JYs7LZWxdLrK6jW89qa0Cu7V+PG8ZNu7yalzfG/QMHnXaD3fHPeav/lDDxV9+T80mgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGmOUbnHkNUdzptajHnQhWlSG4agETHyGILAspbzRAkSAiAdYWnKJFTj5USum7pfiN6xU/501mxdzRdc0iMTjeecfA=="}]}},"0.1.3":{"name":"apian","version":"0.1.3","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"9bd3f7af244731c4c13fbf7e122cfe58bac84d85","_id":"apian@0.1.3","_shasum":"16e85528b9cc6a485c152fd74164b2801e77c55a","_from":"apian","_npmVersion":"1.4.27","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"16e85528b9cc6a485c152fd74164b2801e77c55a","tarball":"https://registry.npmjs.org/apian/-/apian-0.1.3.tgz","integrity":"sha512-XAuPFN49gR8kSuYnTsxBScBqlx06OUzfDHKpDqAkIP+goqxcVy4WGbbvx+CMRUfwm16MnWoG2G6AIKuXW6xJxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHP4CGe97BKMOhpT3LwC+XRhc+f/3VfOgg/7jH3jvCa6AiAkRzjNpEiLygeJnyBGlAG2guZfKtqwt3hExFKDkWEpoA=="}]}},"0.1.4":{"name":"apian","version":"0.1.4","description":"apian","main":"index.js","preferGlobal":true,"directories":{"test":"tests"},"bin":{"apian":"index.js"},"scripts":{"test":"node tests/nodeunit.js"},"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"keywords":["test","testing","api"],"author":{"name":"Itamar Nabriski"},"license":"MIT","bugs":{"url":"https://github.com/nabriski/apian/issues"},"homepage":"https://github.com/nabriski/apian","dependencies":{"ansi_up":"^1.1.1","chai":"^1.9.1","colors":"^0.6.2","commander":"^2.3.0","methods":"^1.1.0","superagent":"^0.18.2","synchronize":"^0.9.8"},"devDependencies":{"ys":"^0.3.4","nodeunit":"^0.9.0"},"gitHead":"a9632d469cd7f9a9185b595e9fb7dcb9c5319781","_id":"apian@0.1.4","_shasum":"2b68907f48214c02893368ce0aec62ad8c216b5a","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"nabriski","email":"itamar.nabriski@gmail.com"},"maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"dist":{"shasum":"2b68907f48214c02893368ce0aec62ad8c216b5a","tarball":"https://registry.npmjs.org/apian/-/apian-0.1.4.tgz","integrity":"sha512-ghfBAivYVjM1I9HMybsIF6zmBXtoC3Q+TWY6fOF3piLAtdSfjHF1FxEg4slGWBRI2eOrJ5O/JKQIzizCPFvtJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJu7edWQIHq42O1vCtWDnpx0cWoqElI1nkvIwbn+02kwIhAPmoc2b0kWvIxX3urwjUXov1uxAz61tmXuj45ABi6scx"}]}}},"readme":"# apian\nFor testing APIs (synchronously)\n\n## Install\n\n```\nsudo npm install -g apian\n```\n\n## Run\n\n```\napian test.js --output json\n```\n\nwhere test.js is:\n``` javascript\nmodule.exports = function testSample(superagent){\n\n    var res = superagent.get(\"http://darkboxjs.com\").end();\n    res.status.should.equal(200);\n\n    res = superagent.get(\"http://ampplifyng.ampplify.com\").end();\n    res.status.should.equal(200);\n};\n```\n\nAnd the output is:\n```\n{\n    \"files\": {\n        \"test.js\": {\n            \"testSample\": {\n                \"outcome\": \"success\"\n            }\n        }\n    },\n    \"outcome\": \"success\"\n}\n```\n\n## Usage\n\n```\n  Usage: apian [options]\n\n  Options:\n\n    -h, --help                        output usage information\n    -V, --version                     output the version number\n    -o, --output <console|json|html>  Output format, default is console\n    -c, --config <{baseurl: url | { name: url }, filters: { key:filter | [filter] } }> Advanced apian configuration, to add ontop of baseurl and filters\n    -b, --baseurl <url>               Base URL to prefix to each request. Deprecated, instead use config.baseurl\n    -f, --config_file <json file path>     Alternative source for configuration. This is only used if no configuration is present in the command line.based on the tags present in the filter.\n  \n```\n## Configuration\nConfiguration is required to allow more advanced options then we had when only defining a base url.\nThere are 2 options to load the configuration:\n1. Command line parameter -c\n2. Configuration File. When config file and command line configuration are present, the file is ignored.\n\nConfiguration values are:\n- baseurl- Can be a single url, similar to -b, or it can be an object for multiple baseurls\n  -  When using an object, every url is identified by a name. This is used for tests to state a dependency for specific baseurls.\n- Filters- Representing the filter to apply on test files against the tags optionaly present in the filter. When this parameter is present in configuration, any file that does not match or does not have any filters will not be run.\n\nExample configuration:\n``` json\n    {\n        \"baseurl\": {\n            \"google\": \"http://www.google.com\",\n            \"yahoo\": \"http://www.yahoo.com\" \n        },\n        \"filters\": { \n            \"env\":[\"test\",\"prod\"],\n            \"role\": \"api\"\n        } \n    }\n\n```\n\nExample running with config parameter:\n``` bash\napian test.js --output json --config {\"baseurl\": {\"google\":\"http://www.goog.com\",\"yahoo\":\"http://www.yahoo.com\"}}\n```\nExample running with config_file parameter:\n``` bash\napian test.js --output json --config_file test_config.json\n```\n\n## Making API Calls\n\nApian uses a synchronous version of [superagent](https://github.com/visionmedia/superagent) to make HTTP requests. Superagent's [documentation](http://visionmedia.github.io/superagent/) can be used for reference, the only difference being that ```end()```, instead of receiving a callback, returns the response.\n\n#### Superagent\n``` javascript\nsuperagent\n   .get('http://example.com/search')\n   .set('API-Key', 'foobar')\n   .set('Accept', 'application/json')\n   .end(function(res){\n       // handle response\n   });\n```\n\n#### Superagent in Apian\n``` javascript\nvar res = superagent\n               .get('http://example.com/search')\n               .set('API-Key', 'foobar')\n               .set('Accept', 'application/json')\n               .end();\n\n```\n\n## Testing The Response\n\nApian uses the [Chai](http://chaijs.com/) assertion library to test the response returned by superagent.\n\n``` javascript\nmodule.exports = function testTwitterAuth(superagent){\n\n    var res = superagent\n                .get(\"https://api.twitter.com/1.1/statuses/mentions_timeline.json\")\n                .query({\n                    count : 2,\n                    since_id :14927799 \n                })\n                .end();\n\n    res.status.should.equal(400);\n    var json = res.body;\n\n    // expected response:\n    // { errors: [ { message: 'Bad Authentication data', code: 215 } ] } \n    json.errors[0].message.should.equal(\"Bad Authentication data\");\n    json.errors[0].code.should.equal(215);\n};\n\n```\n\n## Setting a base URL for all requests in the test\n\n``` bash\nnode index.js -c {\"baseurl\": \"https://api.twitter.com\"} twitterBaseURL.js  \n```\n\nWhere ```twitterBaseURL.js``` contents are:\n``` javascript\nmodule.exports = function testTwitterAuth(superagent){\n\n    var res = superagent\n                .get(\"/1.1/statuses/mentions_timeline.json\")\n                .query({\n                    count : 2,\n                    since_id :14927799 \n                })\n                .end();\n\n    res.status.should.equal(400);\n    var json = res.body;\n\n    // expected response:\n    // { errors: [ { message: 'Bad Authentication data', code: 215 } ] } \n    json.errors[0].message.should.equal(\"Bad Authentication data\");\n    json.errors[0].code.should.equal(215);\n};\n\n```\n\n## Test File Structure\n\nA test file can include one or more tests.\n\n#### Single test\n``` javascript\nmodule.exports = function testName(superagent){\n    \n    // test body ...\n\n};\n\n```\n\n#### One Or More Tests\n\n``` javascript\nmodule.exports = {\n    \n    //Tags for filtering\n    tags{\"env\":\"test\"},\n\n    \"first test name\" : function(superagent){\n\n        //test body\n            \n    },\n    \"second test name\" : function(superagent){\n\n        //test body\n    }\n};\n```\n\n## Auto Login\n\nIf one of the test functions in a file is called ```login``` it will be called before each test in the file.\nThe ```login``` function must return a ```superagent.agent``` object with login cookies attached so it can be passed to each function instead of the standard ```superagent```.\n\nFor example:\n``` javascript\nmodule.exports = {\n\n    login : function(superagent){\n\n        var res = superagent\n                .post(\"/signin/\")\n                .send({\n                        username: \"bob\", \n                        password: \"123456\"\n                })\n                .end();\n\n        var agent = superagent.agent();\n        agent.saveCookies(res);    \n        return agent;\n    },\n\n    \"first test\" : function(superagent){\n\n        //the superagent object here already contains the login cookies\n        var res = superagent\n            .get(\"/fetch/some/resource/\")\n            .end();\n\n        // test code, assertions  ...\n    }\n};\n```\n## Filter\n\nIn some cases you might be running apian in different environments i.e production/test. When running it you might want to be able to only run some of the test on a given environment.\nBy adding tags to the test file (only available for an object test), when running apian, you can supply filter based on those tags, and only test files that match will run. Any file that does not have tags or a function test will be discarded\n\nFor example the following can be targeted to run on both test and dev evironments, and when running integration test.\n\n``` javascript\nmodule.exports = {\n    \n    //Tags for filtering\n    tags{\n        \"env\":[\"test\",\"dev\"],\n        \"test_type\": \"integration\"\n    },\n\n    ....\n}\n```\n\nThese are some examples when the test will be included:\n```\napian test.js --output json --config {\"filters\": {\"env\":\"test\",\"test_type\":\"integration\"}}\napian test.js --output json --config {\"filters\": {\"env\":\"dev\",\"test_type\":\"integration\"}}\napian test.js --output json --config {\"filters\": {\"env\":\"test\"}}\napian test.js --output json --config {\"filters\": {\"test_type\":\"integration\"}}\n```\nThese are examples when the test will be filtered:\n```\napian test.js --output json --config {\"filters\":{\"env\":\"prod\"}}\napian test.js --output json --config {\"filters\":{\"env\":\"prod\",\"test_type\":\"integration\"}}\napian test.js --output json --config {\"filters\":{\"service\":\"click_server\"}}\n```\n\n## Dependencies\nSome scenarios require using more then one api base url. In such cases a test can declare it's superagent dependecies by name, and those will be provided to it's test function.\n\nHere is how such a test would look like:\n``` javascript\nmodule.exports = {\n\n    dependencies: [\n        'google',\n        'yahoo'\n    ],\n    \n    \"test\" : function(superagents){\n        var saGoolge = superagents['google'];\n        var saYahoo = superagents['yahoo'];\n        var gRes = saGoolge.get(\"/\").end();\n        var yRes = saYahoo.get(\"/\").end();\n\n        gRes.status.should.equal(200);\n        yRes.status.should.equal(200);\n    },\n};\n```\n\nInvoke the test like this:\n``` bash\napian test.js --output json --config {\"baseurl\": {\"google\":\"http://www.goog.com\",\"yahoo\":\"http://www.yahoo.com\"}}\n```\n","maintainers":[{"name":"nabriski","email":"itamar.nabriski@gmail.com"}],"time":{"modified":"2022-06-13T03:12:46.013Z","created":"2014-08-13T18:25:57.888Z","0.0.1":"2014-08-13T18:25:57.888Z","0.0.2":"2014-08-14T12:12:20.804Z","0.0.3":"2014-08-26T09:12:37.319Z","0.0.4":"2014-08-26T13:42:46.239Z","0.0.5":"2014-08-26T20:01:31.844Z","0.0.6":"2014-08-27T07:17:10.736Z","0.0.7":"2014-08-27T07:58:59.603Z","0.0.8":"2014-08-27T18:38:11.650Z","0.0.9":"2014-09-14T10:12:35.775Z","0.1.0":"2014-09-14T12:54:08.069Z","0.1.1":"2014-09-15T06:38:49.785Z","0.1.2":"2014-10-28T12:00:25.153Z","0.1.3":"2014-12-23T07:35:14.401Z","0.1.4":"2015-03-08T13:18:57.111Z"},"homepage":"https://github.com/nabriski/apian","keywords":["test","testing","api"],"repository":{"type":"git","url":"https://github.com/nabriski/apian"},"author":{"name":"Itamar Nabriski"},"bugs":{"url":"https://github.com/nabriski/apian/issues"},"license":"MIT","readmeFilename":"README.md"}