{"_id":"papi","_rev":"45-923c27e3b28782b86e5f985af5b5684f","name":"papi","dist-tags":{"alpha":"1.0.0-alpha.2","latest":"1.1.2"},"versions":{"0.13.0":{"name":"papi","version":"0.13.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.13.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"51e5c75576cb1c3e2c8e320c4cb004e250c27642","tarball":"https://registry.npmjs.org/papi/-/papi-0.13.0.tgz","integrity":"sha512-pzoWUZeBPjYeRHaETyfjO60CdxAe2zl+hQHa5XH47mzkobuIo/yLxwOaA3FaoQ+nzJUcnpRhAU5KH5VbmxDE5A==","signatures":[{"sig":"MEUCIQDPzTwv3QSsMlxMu8N4bq3FdB5g/tzxqNM+dzcgvQS+ZAIgBtfpOldkZV+5b4jh5naeqfUe1sQUclm0tT9TIEgRh58=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"51e5c75576cb1c3e2c8e320c4cb004e250c27642","gitHead":"0765a853167c6475fc7992cabe660e7216bf5244","scripts":{"test":"jshint lib test && ./node_modules/.bin/jscs lib test && ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive --check-leaks","cover":"istanbul cover ./node_modules/.bin/_mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"1.4.13","description":"Build HTTP API clients","directories":{},"devDependencies":{"jscs":"^1.5.8","nock":"^0.42.1","debug":"^1.0.3","mocha":"^1.20.1","sinon":"^1.10.3","jshint":"^2.5.2","lodash":"^2.4.1","should":"^4.0.4","istanbul":"^0.3.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.14.0":{"name":"papi","version":"0.14.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.14.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"7d01766a5132d61907676db4438c4a2133fdfa58","tarball":"https://registry.npmjs.org/papi/-/papi-0.14.0.tgz","integrity":"sha512-+zspizloP9/0T8+JwniAVnM6YAzLuaQ8I8OQKjczOjZawj5iYQaV6KuJuSv9386KO67lPTK1N9eNyWM0AZ75nA==","signatures":[{"sig":"MEYCIQDx7Dk6PDALe1t1ScCPVloOdu4DW6DlcnsTAIM+pPcDHwIhAJgSNq4yXkMqSS3+MvgVjY0EW1gFBPWlHyjvVeGzNP5M","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"7d01766a5132d61907676db4438c4a2133fdfa58","gitHead":"41bb4dfc8cebfb5039c1d0375722cd2478572efc","scripts":{"test":"jshint lib test && ./node_modules/.bin/jscs lib test && ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive --check-leaks","cover":"istanbul cover ./node_modules/.bin/_mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"1.4.20","description":"Build HTTP API clients","directories":{},"devDependencies":{"jscs":"^1.5.9","nock":"^0.44.1","debug":"^1.0.3","mocha":"^1.21.4","sinon":"^1.10.3","jshint":"^2.5.3","lodash":"^2.4.1","should":"^4.0.4","istanbul":"^0.3.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.14.1":{"name":"papi","version":"0.14.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.14.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"773025967b2ff0f6b5d642f8d1d1bab37b2509a0","tarball":"https://registry.npmjs.org/papi/-/papi-0.14.1.tgz","integrity":"sha512-KVgNzNEAyaRQwT0ZRxULvlL81OaEfCe8Swer+qx99Kbj3YHFdFzjfJoDrb1oXSn8/5/eQA5jx6e9wid8H48g1A==","signatures":[{"sig":"MEQCICpVAXVdByvTO681cm6LoTuiyIyk5Qc4Ks+xdjgCwDlLAiBLcJmW92RT85LKRBTTTHuZNy5iHIkLmajdRy5A0mwRWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"773025967b2ff0f6b5d642f8d1d1bab37b2509a0","gitHead":"264cf2e9bce365ab67f43290ffb5e3110c1faaec","scripts":{"test":"jshint lib test && ./node_modules/.bin/jscs lib test && ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive --check-leaks","cover":"istanbul cover ./node_modules/.bin/_mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"1.4.20","description":"Build HTTP API clients","directories":{},"devDependencies":{"jscs":"^1.5.9","nock":"^0.44.1","debug":"^1.0.3","mocha":"^1.21.4","sinon":"^1.10.3","jshint":"^2.5.3","lodash":"^2.4.1","should":"^4.0.4","istanbul":"^0.3.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.15.0":{"name":"papi","version":"0.15.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.15.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"55fec244501fd2407bf2a1426cb11dfaf3cf2979","tarball":"https://registry.npmjs.org/papi/-/papi-0.15.0.tgz","integrity":"sha512-z4V5UQcltbp9IkHnzZky0pXVBlgzqpx5jYDnXVvZDnlvEolUMpE12nC3UMsMdy8r9c6IqMWJ4KhadFhRhFXBnA==","signatures":[{"sig":"MEQCICZCfN/IgFZfpg+K5DyRAby2+kUeEXD41Q88httXESnCAiAl//vRLucqq1fqoTsgWZrPa6IdsrbOm+PX7yeCUq+LfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"55fec244501fd2407bf2a1426cb11dfaf3cf2979","gitHead":"3690b72ec6931cac4fc856203a3ffa5515b32d6c","scripts":{"test":"jshint lib test && ./node_modules/.bin/jscs lib test && ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive --check-leaks","cover":"istanbul cover ./node_modules/.bin/_mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.0.0-alpha-5","description":"Build HTTP API clients","directories":{},"devDependencies":{"jscs":"^1.5.9","nock":"^0.45.0","async":"^0.9.0","debug":"^1.0.3","mocha":"^1.21.4","sinon":"^1.10.3","jshint":"^2.5.3","lodash":"^2.4.1","should":"^4.0.4","request":"^2.40.0","istanbul":"^0.3.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.16.0":{"name":"papi","version":"0.16.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.16.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"1adf34e5600a56f9f32046625d743cfa39e5abaf","tarball":"https://registry.npmjs.org/papi/-/papi-0.16.0.tgz","integrity":"sha512-2NPDD7eDnIq6Er/z6glBQYr2T6o9njvyzzKhZuv2rgA7flKKd6uyOfuPSQx2bQQV4nQ46u1zZPW4QdZe/KS+zA==","signatures":[{"sig":"MEUCIQDltDW0brdpfCqX9112xYZDWUzAdECD3PimV0qqwlnEMAIgF3AKNXM0/3Zz5Oko1TaIcHMuppLbGI8Uy1QmluO1nK0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"1adf34e5600a56f9f32046625d743cfa39e5abaf","gitHead":"84f40d057f160060de53ce04fb8403edbaecad42","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 98 --functions 100 --branches 97 --lines 99","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.1.18","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.10.35","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^4.0.4","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.16.1":{"name":"papi","version":"0.16.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.16.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"3616f6410a54ffe387d1b37bdaff03f026e67a39","tarball":"https://registry.npmjs.org/papi/-/papi-0.16.1.tgz","integrity":"sha512-0FUOk5r/l5kg20o9iCYk/72sCDczxibxK9cHgthJUHksOQhDgclAEi8m0AEvf2YCbP4mWnUucZNVo7rBwubU3A==","signatures":[{"sig":"MEUCIQDj70kN1esAS+1GwkqM6qDgz6J/qYDvIxZwHJ7GuDHXlgIgNG/DIzyBbfE8azRTP1hzW53NUVHhl++Z7uWOPE3DMR8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"3616f6410a54ffe387d1b37bdaff03f026e67a39","gitHead":"093018a9ff06a5edad8495d62c8ba7bad561caef","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 98 --functions 100 --branches 97 --lines 99","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.1.18","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.10.35","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^4.0.4","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.17.0":{"name":"papi","version":"0.17.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.17.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"49441953ff0a597de209db7b14a215f80d1e07cd","tarball":"https://registry.npmjs.org/papi/-/papi-0.17.0.tgz","integrity":"sha512-Y057S67Cc21epfJ3YcW4Rf5/yBPwa0IsZhv73FX7sIQwB7pmEQ0Noi8XBgv3P19ZK+Z63n20DLaxT1Md7RKWgw==","signatures":[{"sig":"MEUCIQCEYzy8CROVJ+boedIaWfzgyJhX+ZXY5lq64cWZXUs6jQIgLkl01EsOgUa6JPafpnJLNKgtoV4iOvsOWOdJD8uZ/o4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"49441953ff0a597de209db7b14a215f80d1e07cd","gitHead":"f31a4067fa32b7999473c1cae2866cb77b52ce01","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.5.1","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.12.0","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^4.0.4","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.18.0":{"name":"papi","version":"0.18.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.18.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"e27e7294ab51201501057b327107840a875cf381","tarball":"https://registry.npmjs.org/papi/-/papi-0.18.0.tgz","integrity":"sha512-LRET7eju5gtufoZQaRGQGyW5yizk2kUT8h+u1VwsmBUSABKlNgDBq4RUdICYsPvUyhPVkHHv5ztp7ai6Lp6HEA==","signatures":[{"sig":"MEYCIQD1km5UCK7IUvQFA7NATqYAiGMenugWwYJmbFsyn6HzpwIhAI6he/M5qfgGDEXeWyMkAuIqentnpZtkOUNzdWFoJ0JD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"e27e7294ab51201501057b327107840a875cf381","gitHead":"f647396859cbd08d7979f8571321e217d14095f9","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.5.1","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.12.0","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.19.0":{"name":"papi","version":"0.19.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.19.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"547f69e6d8b7a27df5c6517f5b99fcf956e6fb5e","tarball":"https://registry.npmjs.org/papi/-/papi-0.19.0.tgz","integrity":"sha512-zsz+wSEQ6iAOaFLDKPlzS6gNU+QK9jmJdBExBREZPT16S4SbEG5XwUw37V3GpAKt8Pc2C54uIU/iZnDru/PGDg==","signatures":[{"sig":"MEUCIEGeDneeBfAv4lN4kYmAd/spYScoM0fatxiX48+pjhuVAiEA5vdfmhwbwzSTm2kING4j4CXD55dFnVMA1VITpoC8sEo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"547f69e6d8b7a27df5c6517f5b99fcf956e6fb5e","gitHead":"8dcfddb9e22647362045ade7e4ee22d317f1a6fd","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.5.1","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.12.0","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.19.1":{"name":"papi","version":"0.19.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.19.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"0c439b44c6ad290209a4be4444aeb839615ce8c7","tarball":"https://registry.npmjs.org/papi/-/papi-0.19.1.tgz","integrity":"sha512-iBeVipNEvJDNhLG9l8g82EARG0AvDuIFGPRd9VsYGSu41UgHlQ3kSAXuUiq/HVTGiVRFrZJt9K7iU13BxEUkeQ==","signatures":[{"sig":"MEYCIQCOXBJgdMl65sMWJddtL6NuUbi/4+pEx8R9UtsVRlp5xQIhAMc4C2FilQ2MpHv7NOxJJLfbaBuG+9LHbKCM2V+c1WAA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"0c439b44c6ad290209a4be4444aeb839615ce8c7","gitHead":"f013adf855935a7704269ef990021d36cf07d798","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.7.3","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.12.1","devDependencies":{"jscs":"^1.6.2","nock":"^0.59.1","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.2"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.19.2":{"name":"papi","version":"0.19.2","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.19.2","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"91b1c6becfd4969eb6a4666651c449c81ce57fb6","tarball":"https://registry.npmjs.org/papi/-/papi-0.19.2.tgz","integrity":"sha512-fBXWfhQl7P3rHlxXR5X8lFJOaVRbGwx/78uGwJk+ZPmh2D7vKkfXB9G8N0nybPJdUvjZjv8ahCeWEXiKVizzZw==","signatures":[{"sig":"MEQCICox0KynqjNPlt+UzImFsgbLZTPwfrQgb0/6qEePEGESAiBhWnOiRZu6gu57Gv8FTJU5ykdRI5GYexcZyGI8yh40MA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"91b1c6becfd4969eb6a4666651c449c81ce57fb6","gitHead":"35829eddbf18edd7a4934929c37bf103bb5e781b","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.7.3","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.12.1","devDependencies":{"jscs":"^1.6.2","nock":"^1.4.0","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.13"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.20.0":{"name":"papi","version":"0.20.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.20.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"eed46fa93bad7ccb606b1405c93b3468a39e7ecc","tarball":"https://registry.npmjs.org/papi/-/papi-0.20.0.tgz","integrity":"sha512-7QIrgH0QMgbacdUcUD9FNKqU01gWmj6/fbWXB9rRKuqwxppzF5oVMMTOjvG3tDh9f7dewZmXoJnRIRaVe2eprg==","signatures":[{"sig":"MEUCICjId23yThB7ReDUt6Z6b5qOgDGMNFcdgQMY/bVlPd/WAiEAiI8J+cJemgPxioxPy72uzqMs8POMBFIqBAiyALHxeWo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"eed46fa93bad7ccb606b1405c93b3468a39e7ecc","gitHead":"517ba35beef2f97770d2884e73a95134c0c00f1f","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.1.11","description":"Build HTTP API clients","directories":{},"_nodeVersion":"0.10.33","devDependencies":{"jscs":"^1.6.2","nock":"^1.4.0","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.13"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.21.0":{"name":"papi","version":"0.21.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.21.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"5382a19fef64f25758a9aa883aa7b26ae19699a0","tarball":"https://registry.npmjs.org/papi/-/papi-0.21.0.tgz","integrity":"sha512-4pCXYJDvBamSa1tVvFo2mJC+B8I6GbNmRAqWjm6mMf1s+FbTiXZt1twRgIceRFce1x66MtJwGgANEdKxQsCFOg==","signatures":[{"sig":"MEUCIG9q3k5BRShTDzFHj45+Y6gSWKkouoA2t10sHwXYUKmvAiEAiR8hZP8b0T7R2ktpBpc+PkPlS5flsfx3Nu6WKOSi1SI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"5382a19fef64f25758a9aa883aa7b26ae19699a0","gitHead":"9683097ce4d8759300f7e786b053cab512132866","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.14.4","description":"Build HTTP API clients","directories":{},"_nodeVersion":"4.1.1","devDependencies":{"jscs":"^1.6.2","nock":"^1.4.0","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.13"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.21.1":{"name":"papi","version":"0.21.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.21.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"6fcd5606715f8900217f875a784d8ece6944f860","tarball":"https://registry.npmjs.org/papi/-/papi-0.21.1.tgz","integrity":"sha512-h4merteREpN4HRmvTgfOHu7I434TV1kjHH4zq3WTsA1JpaF2aUYXc4GkByd9VnholbeJEdZ2gkOBT3tJh8G7wA==","signatures":[{"sig":"MEQCIEr4Z6OmbWGFI/9Vn6Hlefk0qZcve2pGL3V4iryHjNEaAiAs8exsnXNj382Gm04ppPXRYjTvs/nBVuNRh+xEz6G66Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"6fcd5606715f8900217f875a784d8ece6944f860","gitHead":"1aec8de52f1c1f43cf31666d0ae3764b5c293ed4","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.14.4","description":"Build HTTP API clients","directories":{},"_nodeVersion":"4.1.1","devDependencies":{"jscs":"^1.6.2","nock":"^1.4.0","async":"^0.9.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^5.0.1","request":"^2.44.0","istanbul":"^0.3.13"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.22.0":{"name":"papi","version":"0.22.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.22.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"1f077d201527eaf872d595ae4143cb4c7d4f6e54","tarball":"https://registry.npmjs.org/papi/-/papi-0.22.0.tgz","integrity":"sha512-5SQamM06Diq3aqGFcS4dsG04xPv4e4oCgMcDVHBZq6dhmTPDOif7D531Hnp9l+gRwBWTgGXCORxegxi+I0UEGw==","signatures":[{"sig":"MEQCICXuG4wxcT7rWsFX57LBRnogRFpIbs5C+eCItC2laKvgAiBdDnYvCWiS96s2+PIxmvqaLaY+55QEIjo2Sr/x0/RqsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"1f077d201527eaf872d595ae4143cb4c7d4f6e54","gitHead":"6c2bbc8958dbf1e8a889e4e65798c1583e9338e4","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"2.14.7","description":"Build HTTP API clients","directories":{},"_nodeVersion":"4.2.1","devDependencies":{"jscs":"^2.5.0","nock":"^2.17.0","async":"^1.5.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^7.1.1","request":"^2.44.0","istanbul":"^0.4.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.23.0":{"name":"papi","version":"0.23.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.23.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"d18ffca3d9e69e36efd7ae0b9596842bce780abe","tarball":"https://registry.npmjs.org/papi/-/papi-0.23.0.tgz","integrity":"sha512-6nQrip5f0VZn2k3SPsb1ckzpDtuuPdihiIP8xh/rljoLtZ5FbAtXAEL7OR3mPsK4D0UaZJN6jdILyE1e6T2nzA==","signatures":[{"sig":"MEUCICdHOjznWuP8BK44Y2aA6iAtBt0HNwusO8v1pvzOMUv5AiEAiM0iN9veFCPlH3adI1UKyc+BNCfdRDuBIY/yDW5EpsI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"d18ffca3d9e69e36efd7ae0b9596842bce780abe","gitHead":"56c1aa3dcb9c49fac64e1880d402c63290b2ffc9","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.3.12","description":"Build HTTP API clients","directories":{},"_nodeVersion":"5.1.0","devDependencies":{"jscs":"^2.5.0","nock":"^2.17.0","async":"^1.5.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^7.1.1","request":"^2.44.0","istanbul":"^0.4.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.24.0":{"name":"papi","version":"0.24.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.24.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"0ab27b9f5754665f4d40489c76e879d56229c6fc","tarball":"https://registry.npmjs.org/papi/-/papi-0.24.0.tgz","integrity":"sha512-yNKuHZXTxc8EqvOG8B8Nbht850BoVFfSE6jB1ACOO2kBXe+4IWvG5kR2fpZImZ/3mpzVOMNMgM7usy64PBGq/A==","signatures":[{"sig":"MEYCIQCnWLzrMPBFL7vaOxNRj8CZh4oEV3lvc2AHWTYOGIk+KgIhAOgw92n557Ga0HTwtVbqb852IcYng9LSTsGVJxH39Jk/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"0ab27b9f5754665f4d40489c76e879d56229c6fc","gitHead":"be15ed18319c92ca7c9420e6581d92b1842da321","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.3.12","description":"Build HTTP API clients","directories":{},"_nodeVersion":"5.1.0","devDependencies":{"jscs":"^2.5.0","nock":"^2.17.0","async":"^1.5.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^7.1.1","request":"^2.44.0","istanbul":"^0.4.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.25.0":{"name":"papi","version":"0.25.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.25.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"3c651af112ae711b6e76eb6ec838e4753e597389","tarball":"https://registry.npmjs.org/papi/-/papi-0.25.0.tgz","integrity":"sha512-fVA6utsUfFz5J882siAcrwYzDg+d/kZj93v8q1zYdMY4GGxFFZ8PdRp0PPm6q2Nb9IONugDfW/BMYjn1zqtmMQ==","signatures":[{"sig":"MEUCIQCWj5+t0vCt+E3cCSLvjwbllVbBnu3baGUSMZAaKgkDAwIgREs1vpgkzPZ2sH8pnyPHkOICVUvCKXQRWH5LdRyDe78=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"3c651af112ae711b6e76eb6ec838e4753e597389","gitHead":"ffc77fde63c1df2eafe5fc7ffd0d62210d6032d8","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.3.12","description":"Build HTTP API clients","directories":{},"_nodeVersion":"5.1.0","devDependencies":{"jscs":"^2.5.0","nock":"^2.17.0","async":"^1.5.0","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^3.1.0","should":"^7.1.1","request":"^2.44.0","bluebird":"^3.1.1","istanbul":"^0.4.0"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.25.1":{"name":"papi","version":"0.25.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.25.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"a54c022b1780f9240fae6aa1e861b21c9f8f12d9","tarball":"https://registry.npmjs.org/papi/-/papi-0.25.1.tgz","integrity":"sha512-pPTJxsz9qIvOXukvtCOfbET2oQBV+6AAdXz++2akP5jl42wEpT0qcY+07yJI4vfQlD2q7HTONImbH1PcpZAqVQ==","signatures":[{"sig":"MEUCIQChA6ckQ5kAOlMa1hgWE26/VTovBu75ahObzU31w+4oLwIgXwC5eNjX6KHiva1eC2mksVMwd5AuzP04g0+qI9kxCrU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"a54c022b1780f9240fae6aa1e861b21c9f8f12d9","gitHead":"d4005b310e15acc9a68446493866718cae10fc2d","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.8.6","description":"Build HTTP API clients","directories":{},"_nodeVersion":"6.0.0","devDependencies":{"jscs":"^3.0.3","nock":"^8.0.0","async":"^2.0.0-rc.3","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^4.11.2","should":"^8.3.1","request":"^2.44.0","bluebird":"^3.1.1","istanbul":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/papi-0.25.1.tgz_1462240104270_0.8945916430093348","host":"packages-12-west.internal.npmjs.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.26.0":{"name":"papi","version":"0.26.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.26.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"d6136a1492075ebc26452bd8e09e449980c47dd3","tarball":"https://registry.npmjs.org/papi/-/papi-0.26.0.tgz","integrity":"sha512-zV//47agoNasg5/FXkXUFLws8lzdvyim/WYceNS/YkuEq/QDg8hKUAwF0pup9xi+jSLqk5f9TvN2Fv+oXO+SBw==","signatures":[{"sig":"MEYCIQDLTdQzciyrtIFqOHe2hjlqJ3car0nsI2c0TmUbHRiDRgIhAJ1pTKIMY0CEe0cBzBOQiSg40RO42+VxO+JNEld/5Dr6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"d6136a1492075ebc26452bd8e09e449980c47dd3","gitHead":"29d25e131d30a6f267aa3ed590a6216feeccd2a6","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.10.3","description":"Build HTTP API clients","directories":{},"_nodeVersion":"6.3.0","devDependencies":{"jscs":"^3.0.3","nock":"^8.0.0","async":"^2.0.0-rc.3","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^4.11.2","should":"^8.3.1","request":"^2.44.0","bluebird":"^3.1.1","istanbul":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/papi-0.26.0.tgz_1470607661460_0.6117291646078229","host":"packages-12-west.internal.npmjs.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.27.0":{"name":"papi","version":"0.27.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.27.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"7392a38ebefa7fb67e98b363bca3d136827caf28","tarball":"https://registry.npmjs.org/papi/-/papi-0.27.0.tgz","integrity":"sha512-W1SKArDV1jx6d7E+TM0XOYI8Zf+IDC5grLx4nN3OfuwomlAY0n84JimZWV3QMtX6tyTlVeuoiilT29xWuf2IvQ==","signatures":[{"sig":"MEUCIHextkax5INwuvKDCn3jBW1HnShyT78nfqhhKp/9Q4VSAiEAmspZLwHtFyGbfAie/kOXpYcxcziHlL+dqnZtAwIJThY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib","_from":".","_shasum":"7392a38ebefa7fb67e98b363bca3d136827caf28","gitHead":"36feca54f44f7834f19c55d6f6b4bd97f2929586","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"3.10.7","description":"Build HTTP API clients","directories":{},"_nodeVersion":"6.6.0","devDependencies":{"jscs":"^3.0.3","nock":"^8.0.0","async":"^2.0.0-rc.3","debug":"^2.0.0","mocha":"^2.1.0","sinon":"^1.10.3","jshint":"^2.5.5","lodash":"^4.11.2","should":"^8.3.1","request":"^2.44.0","bluebird":"^3.1.1","istanbul":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/papi-0.27.0.tgz_1474830952459_0.060172456316649914","host":"packages-16-east.internal.npmjs.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.28.0":{"name":"papi","version":"0.28.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.28.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"f14fc15fcc7eae4d9fc573fb6960ca1bdc1ccfd0","tarball":"https://registry.npmjs.org/papi/-/papi-0.28.0.tgz","fileCount":12,"integrity":"sha512-OOikgZiBqEFbcGhxTimVpOSILOLBNKFPfhKlvBZ4/37qkAx2Kb4JB7cWf8iL/rpb12REkZ4pwZQTYTTBh4Dzdg==","signatures":[{"sig":"MEUCIQD7XNvuoDzeBnGogpA2vtN2CfY9nVqzEvJ1IiwovhzByQIgPLtzlUYzk47SeYhBOk0Q0S60oPV29IKr6Ox32EXJwkM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHWfHCRA9TVsSAnZWagAAj9QP/jfOlbIUT4fAg80Z+FAa\nt1xFFthe4BjxqXuEAfPAJ4Q7sqfuqSfC+8xJ9D8lRv0xzqWJ/nIKNGGiWJ0l\nq0QyApzMAvM4plsuj+E47Glqq51zVQp5R662aBYdjSypQMlntQ8BIgo77GaV\nwSfnNyF+8MefyuFb4Dm0Cs8coG9ubyU4luCPZgbFFgMcncgP0YMkRmjkvDlV\nA3RfxXztfcSKr8dbCp0PJdQMaeIjdYV0zaTCRLKXkEiqmVHDInvIXRMiKjm7\nt8iVXfvw/D3hk2WekHFRODBXywijIxHpK4Eq0cJkV2VPVo+A0ZJHWrTGjFS/\n28mAfzHyzZwXIQNA6SU4NLg/awKYXzf/xG9jA08wT3noaf7ux6Dlx0PKf/cH\n0GXiUwfUuhJR5olovt0o9fKnx4j4M/q7KwhhrLNMAC1FBzL1ljjHiLlAqioC\nybSG1NyHWnLrzWYPcRwUQ1JDnQTKbZJJyvwzgTNGxsMYr2z11zCqW5QiKopi\njiruX3TRZUAht3HdYEM/Huv+xMzP0SxT+pByIIuJuNG7VIOFYZfYl3l5aQkE\n54ThvsG0a4/+FYJ5YHSPpQikYet6ga+VtO0sF3miLl4yWY0KAcb8OkQ/6iAg\n304jwq3Cy9cTKARdg2zr3g8uWewAqKeR2qVM4ZmGJlTrJX+t480V2AS5FY99\nAhmi\r\n=ITBu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","gitHead":"236ec5b0be5ffbff0831572d8cb91879d25f0044","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"5.6.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"10.1.0","_hasShrinkwrap":false,"devDependencies":{"jscs":"^3.0.7","nock":"^9.3.2","async":"^2.6.1","debug":"^3.1.0","mocha":"^5.2.0","sinon":"^1.10.3","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0","bluebird":"^3.5.1","istanbul":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/papi_0.28.0_1528653765967_0.6856484190823873","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.29.0":{"name":"papi","version":"0.29.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.29.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"6bbc332f415d1f3563dea2d2fb8df760d939aebd","tarball":"https://registry.npmjs.org/papi/-/papi-0.29.0.tgz","fileCount":12,"integrity":"sha512-NnZp1pBF0Bt8yV+XX6ejuWfpO6YOt6zUKqZLnpYyZz8MHyWa9jvjNH+oi4NDU3+47CAlpivrl0evekamSbOViQ==","signatures":[{"sig":"MEUCIQD1xELiib6QOvV36N10dVqOs/jFt3W1vxw4X3wifcTdtQIgcFTphKR2KyyuGgSWDSRQ6ITSW/is/Y3mimMLabWJ+k8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH0pnCRA9TVsSAnZWagAAe5cQAJ5lmNNxSKEjFW552BYn\nBpS65cXbWBjX3xyPZRMF2ovexDY6IBFxFQMuyVpMiTc1sXaLki/Mi1Eo8bDI\nIxJnnV728jaIWk4EGgiry9LKNlKleFHyzvOfpysKgH0UhKV80/mtJ4uKrvU3\n4QLTQKFl4kBsBRrbrJGgHXkfLF46ABKoBLdHHbm8gBj2dAOzOMNnRE11kFY/\nyM1hrzi9J48ARmE0UErwZd2iR/LANlIefNRacHuNf8oGiGEVuEYdOEDV6lVH\nPpxubkj0qs4+vPh8eJ+LebtZjJ3PrP5rNWvQ7viR8YhoiLU20SPZWJKLXCfw\nuoEmBVlH6zb67lRzbtrOGRdbMfG7QVz/EMSXaxUErbwPaQyaCZWK5wodPW2B\n0/k0DbotF58v/eUhFgX2Euf4kWjkd5ZT+ikdQ1TE5czX36R2Ozwi8LhO4sgs\nBa7H7Yy/pKM+S/v6kJKp0+I1CUwDon6djTQuZuDSLuZJokjgM7CZKV1Vviiy\nLXLTOqBOU2L5PpP7iGHrmkdo6n8T4YYP0PMzS7BpEmExb4yQas17Q7+olD0Q\nmY+xIa/FMhsEnLI5cP5rjD6b7ewm8jHvj58it93aRGQMdlQ42Wtd+gW4WPH4\nADBEGDY4x/vwbrd8WYtNv/MAgUZkk4JC4hs8oMU1pFLpGBdvjIawu1bn0Tv7\nL++X\r\n=D6DN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","gitHead":"8c54d6a1cc5b3431ae03fed28761c33d6a9ccee2","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"5.6.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"10.1.0","_hasShrinkwrap":false,"devDependencies":{"jscs":"^3.0.7","nock":"^9.3.2","async":"^2.6.1","debug":"^3.1.0","mocha":"^5.2.0","sinon":"^1.10.3","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0","bluebird":"^3.5.1","istanbul":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/papi_0.29.0_1528777317628_0.2863291811175064","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.29.1":{"name":"papi","version":"0.29.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@0.29.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"7373e2c527f5117d61fd2a0e6c6b1dd72bf7f180","tarball":"https://registry.npmjs.org/papi/-/papi-0.29.1.tgz","fileCount":12,"integrity":"sha512-Y9ipSMfWuuVFO3zY9PlxOmEg+bQ7CeJ28sa9/a0veYNynLf9fwjR3+3fld5otEy7okUaEOUuCHVH62MyTmACXQ==","signatures":[{"sig":"MEQCIAgr8sMc68Ta6wgshkuYFfByzmv4ix014ijuY+D6m5grAiAX9OflXTLXL1QDK3jJ8u/dfYDJawuK1dvMZVLa+PWn0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdTxwCRA9TVsSAnZWagAA+t8P/RlXsGBEcDwrKdtI+iTB\nQtlNEyrfiDfY32QrhaSQSMODP1rX6TjJ71ilNP5imDSoT65i4QQNjKW6gxvg\n/SRHN+RzlIHAaoCQiq5n+icjoruP0FLKGMjnzBWsOLAKNtfXldXzxGt28kF0\nvmioZ6kQ0o8FDDiYgi2hnLU8gyvVymL4JtzZw8n0qHQGsDFnUHiITATEaf+v\nMLaI5kEzybq/L5fytxY8SGJ4981lqn4Zdb0Z2SGbVHHh/w0mfuVKTGo5K8hR\nCJkY5XlkmqOrSs1CM6aUNaZpvg0DfhwmrTH/n2+W0SY9xUcYcHmLOq5z9PFC\n2w7HbatRoHT9rqcy+JbII6awygLVVwnFXJ0qFfmR18i+ZkQBBJmNDlFh1nIT\njDDA7outZq+Z+2AxTdN+1W0bUYB4B+oErfjlSoNx2qGkp3Qh16nh/Yi9b7AS\nIYypQLc53u0B6ksHGZQlma8710gRtHaZWThbbTcgF4ZfJQAJPHfQpfjzbsGX\nHLJ/ftq8PxIHuWuv7b3GF7wuWz3AmQugnFBdD5766A9jHmmczqqpuGw/hOlH\nLfsgi9rEHR4HI5oP/vC2RG3KdmzARSPtWRBCiHAxVILZJuTofSffC07+Aewz\nbuqAU8x9HVbCPtILr2X0H9MfsVczp4YTtAO2Yb7CbyMHvboIXiFp21C2y8aN\no2QW\r\n=WxnJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","gitHead":"9ff2ac146c18c66393294691ec22767a640ed8e3","scripts":{"test":"jshint lib test && jscs lib test && istanbul cover _mocha -- --recursive --check-leaks --globals Promise && istanbul check-coverage --statements 100 --functions 100 --branches 100 --lines 100","bench":"BENCHMARK=true mocha test/benchmark.js","cover":"istanbul cover _mocha -- --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"6.7.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"11.10.0","_hasShrinkwrap":false,"devDependencies":{"jscs":"^3.0.7","nock":"^9.3.2","async":"^2.6.1","debug":"^3.1.0","mocha":"^5.2.0","sinon":"^1.10.3","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0","bluebird":"^3.5.1","istanbul":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/papi_0.29.1_1551187055985_0.14458193625922955","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.0-alpha.1":{"name":"papi","version":"1.0.0-alpha.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.0.0-alpha.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"f4d9b4c7c9303064d627e30cdd29044933e18813","tarball":"https://registry.npmjs.org/papi/-/papi-1.0.0-alpha.1.tgz","fileCount":15,"integrity":"sha512-dqbQj9H0tkKBAv5+OviLJj+mdUCO/3h4LmVjt2pDLgb4MVjFFdoDmugPVMXcc9nLSZT8wanaLaIB2sDDSQPxkQ==","signatures":[{"sig":"MEQCIEJd0Fvv8YRmYzwXmkdvIHsUsQmjlRM80arRESmIprv6AiB7Z291BGvvBKznSHoPFQrVsf4jqgqodzk7AuSu6lNrTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK+G2CRA9TVsSAnZWagAAF2AP/iQ5YdGLcd6/E0GU1IQ8\ngUvunAeXPKc0ujHwyZnJytvDGs45YEi18VAyII6f4A46ia5J3375OeTbbKt7\nEV2dLehiGwhEUqjOsXIBOJejMh3EouRkBeRSZFMCD4cYTKUn6E1u8ZTS5Ylp\nPkXFK3mV00frpaP5ITIUtUbsjEumHKOJUH0keBPXVbuq/qkV67A+ssrGIwUl\naQ2FT8sjP41SyhvryXGdfCcIFPT3yPJ60UMeMVQ5LfXe/DwLbLfWfx1LlVKT\nX0NIzoCRVex74Kur2kdQwyxfMrsIR4f8dBUQRFg7NOXlfMqJUQPyzAMmSEO/\nXQGMfJR+sOzm/I34einX2BG+BpX0Nlz+gS7lUBup2PLw8albxCWS+Q+R7O+8\nRHjF6Uq/fSRBHjF+8vhZSAweEIQuyaUkd9+T8WiXQOj0lUZt1n8kVo3gv5R2\n3etokaOrZ+cpjJ8u6iGOOsKrX0FvbF9QFl0ftTUoq5ucl+KO99OP857m0P0n\n1dgQt1bqTy+RtS5hYjduo3q3JtLMu0Xa0WZdShy/lyqs+qEfs0zboe3EO07T\nzOpGZx2WCA6mkciq0STa+lgzw1wwbjGnWLH2eCklzLHdDzVN48b/Pob5Z/xe\njCc5jBhdJmlB7j+N1YdkAfKbf/cfjUa5rdu5JAGhxrnbIHpZcrDieLzOd09J\nURRf\r\n=I5Tn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","engines":{"node":">=10.0.0"},"gitHead":"0dbc689f60f72bd1c5a6129d8df206161c785d9b","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"deprecated":"Accidental release","repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"7.5.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"15.8.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.0.0-alpha.1_1613488566199_0.14820909440058117","host":"s3://npm-registry-packages"}},"1.0.0-alpha.2":{"name":"papi","version":"1.0.0-alpha.2","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.0.0-alpha.2","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"e409ce4b0a814a15fa9c6837558c36fb68f070fd","tarball":"https://registry.npmjs.org/papi/-/papi-1.0.0-alpha.2.tgz","fileCount":11,"integrity":"sha512-8GL1pvd0insoTZbDYLqlnBbNF9voXX86FK4qfrJCePOqIuN9zNOFCCR8e7okBG7kCvAZcEkzpUNMlR/REBXFwg==","signatures":[{"sig":"MEYCIQDFK/Q/r28VWX/TaeLn6/LnRexMWsG+wIEo2UxzeJJxugIhAIQjx5DhJ5jCaKS6w6L9NQXZt9WqDxqonMIrWMHvxlhZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK+t6CRA9TVsSAnZWagAAXM8P/2fPalTi9VPBBoiCdD9t\ndjh18jta8COsmfDOSgAEyGP4QmOYageXMBZD9eXavgOJW5CVxlbJbPhXsAaA\nGeWhY8TiKoRY43p396xgrsFa2szy382JBeo7n0mOZLy0IABpV3t6o6Xj+gUi\nkyJ1zlXDa8sqVuJD23ep1bOeqcL4mnxN3e+L+EwL39UcBwoMQP02HnhX6Nzj\nHsOhRgclTqjl/6/ihowz3Uj/6WJt8Z3mCeVfGZVKUQqCKqlKq5zgeG68B0jH\n/hthscyxnfgtlZTIb4aLixPNzBaDlOhZ5AmWXn2Ydv3vCxQ02Wo/2yYbLvBy\nnWv0fho9NWK0vh+6s2Ouq1CrT5JvXqDpVGQtK8G2kz5V5FtjJEcFePRQNkWc\nmTsHd839i0S09kN4jCko4uW6M1I9NiQrX5/Gppf/AU5S7sY3ATeSfkOLRlgE\nw+YZSCIKwdEDx1avnu1D6ICDmR+dKKa4zeEMz+cLrI2r1sidz0rXnaQFjGBv\nhCVDFMnvilgjKSPpP/9BSIepvBtiH1aFloUUXPImnex/yKYKhPLJwiE3xQ8P\nvWSZ6oXCGHHeU23OdaNuQ6cvJsbvj2bPUfYMsbp4D8BSflytBEd+/YWquUjf\nBZ7shXh7Bxw3kYtEG8yls9EtcVkqbVM0zKATncCrMFk+lwfU+q7K91Cm8XBG\nbT4+\r\n=dr9a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","readme":"# Papi\n\nThis is a library for building HTTP API clients.\n\n * [Documentation](#documentation)\n * [Example](#example)\n * [License](#license)\n\n## Documentation\n\n * [Client](#client)\n * [Shortcuts](#shortcuts)\n\n<a name=\"client\"></a>\n### papi.Client([options])\n\nInitialize a new client.\n\nYour client should extend the Papi `Client` class and call `super(options)`\nwith the appropriate options.\n\nOptions\n\n * baseUrl (string): base URL, should not include trailing slash\n * headers (Object&lt;string, string&gt;, optional): defaults headers to include in every request\n * type (string, optional, supports: form, json, text): default request body encoding type\n * encoders (Object&lt;string, Function&gt;, optional): an object that maps a mime type to a function. The function should accept an object and return a Buffer.\n * decoders (Object&lt;string, Function&gt;, optional): an object that maps a mime type to a function. The function should accept a Buffer or string (must support both) and return an object.\n * tags (string[], optional): tags included in `_log` calls\n * timeout (number, optional): default number of milliseconds before request is aborted\n\nAdvanced options\n\n * agent (http.Agent|https.Agent, optionals): if not set uses the global agent\n * tls options: ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder, key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, and sessionIdContext (see [Node.js docs](https://nodejs.org/dist/latest/docs/api/tls.html#tls_tls_connect_options_callback) for details)\n\nUsage\n\n``` javascript\nconst papi = require('papi');\n\nclass GitHub extends papi.Client {\n  constructor(opts) {\n    opts = opts || {};\n    opts.baseUrl = 'https://api.github.com';\n    opts.header = { accept: 'application/vnd.github.v3+json' };\n    opts.timeout = 15 * 1000;\n\n    super(opts);\n  }\n}\n```\n\n<a name=\"client-request\"></a>\n### client.\\_request(request, [middleware...])\n\nMake an HTTP request.\n\nYour client should use this or the shortcut methods listed below to execute\nHTTP requests in your client methods.\n\nArguments\n\n * request (Object): request options\n * middlware (Function&lt;request, next&gt;, optional): middleware functions that can mutate `request.err` or `request.res`. Call `next` without arguments to continue execution, `next(err)` to break with an error, or `next(false, value)` to return immediately.\n\nRequest\n\n * path (string): request path, can include variable segments defined by curly braces (ex: `/user/{id}`)\n * method (string): request method\n * headers (Object&lt;string, string&gt;, optional): request headers\n * params (Object&lt;string, string&gt;, optional): sets variables in request path\n * query (Object&lt;string, string|string[]&gt;, optional): query parameters\n * body (Object|Buffer|Readable, optional): request body\n * type (string, optional, supports: form, json, text): request body encoding type\n * ctx (EventEmitter, optional): emit `cancel` to abort request\n * timeout (number, optional): number of milliseconds before request is aborted\n * tags (string[], optional): tags included in `_log` calls\n\nThere are also `_get`, `_head`, `_post`, `_put`, `_delete`, `_patch`,\nand `_options` shortcuts with the same method signature as `_request`.\n\nUsage\n\n``` javascript\nclass GitHub extends papi.Client {\n  constructor() {\n    // see example constructor above\n  }\n\n  async gists(username) {\n    const opts = {\n      path: '/users/{username}/gists',\n      params: { username: username },\n    };\n\n    const res = await this._get(opts);\n    return res.body;\n  }\n}\n```\n\nResult\n\n```\n[ { url: 'https://api.github.com/gists/9458207',\n...\n```\n\n### client.\\_log(tags, [data])\n\nEmit log events.\n\nArguments\n\n * tags (string[]): tags associated with event\n * data (optional): remaining arguments\n\nUsage\n\n``` javascript\nclient.on('log', function(tags) {\n  console.log({\n    tags: tags,\n    data: Array.prototype.slice.call(arguments, 1),\n  });\n});;\n\nclient._log(['github', 'gist'], 'silas');\n```\n\nResult\n\n```\n{ data: [ 'silas' ], tags: [ 'debug', 'github', 'gist' ] }\n```\n\n### client.\\_ext(event, callback)\n\nRegister an extension function.\n\nArguments\n\n * event (string): event name\n * callback (Function): function to execute at a specified point during the request\n\nUsage\n\n``` javascript\nclient._ext('onRequest', (request, next) => {\n  console.log('request', request.opts.method + ' ' + request.opts.path);\n\n  request.start = new Date();\n\n  next();\n});\n\nclient._ext('onResponse', (request, next) => {\n  const duration = new Date() - request.start;\n  const statusCode = request.res ? request.res.statusCode : 'none';\n\n  console.log('response', request.opts.method, request.opts.path, statusCode, duration + 'ms');\n\n  next();\n});\n```\n\nResult\n\n```\nrequest GET /users/{username}/gists\nresponse GET /users/{username}/gists 200 1141ms\n```\n\n### client.\\_plugin(plugin, options)\n\nRegister a plugin.\n\nArguments\n\n * plugin (Object): plugin module\n * options (Object, optional): plugin options\n\nUsage\n\n``` javascript\nclient._plugin(require('papi-retry'));\n```\n\n<a name=\"shortcuts\"></a>\n### papi.request(request, [callback...], callback)\n\nShortcuts for making one-off requests.\n\nSee [client request](#client-request) for full options list, with the exception\nthat `path` is replaced with `url`.\n\nRequest\n\n * url (string): request url (ex: `http://example.org/`)\n\nThere are also `get`, `head`, `post`, `put`, `delete` (`del`), `patch`, and\n`options` shortcuts with the same method signature as `request`.\n\nUsage\n\n``` javascript\nasync function show() {\n  const res = await papi.get('https://api.github.com/users/silas/gists');\n\n  res.body.forEach(gist => console.log(gist.url));\n}\n```\n\n\n## Example\n\n``` javascript\nconst papi = require('papi');\n\n/**\n * GitHub API client\n */\nclass GitHub extends papi.Client {\n  constructor(opts) {\n    opts = opts || {};\n\n    if (!opts.baseUrl) {\n      opts.baseUrl = 'https://api.github.com';\n    }\n    if (!opts.headers) {\n      opts.headers = {};\n    }\n    if (!opts.headers.accept) {\n      opts.headers.accept = 'application/vnd.github.v3+json';\n    }\n    if (!opts.headers['user-agent']) {\n      opts.headers['user-agent'] = 'PapiGitHub/0.1.0';\n    }\n    if (opts.tags) {\n      opts.tags = ['github'].concat(opts.tags);\n    } else {\n      opts.tags = ['github'];\n    }\n    if (!opts.timeout) {\n      opts.timeout = 60 * 1000;\n    }\n\n    super(opts);\n\n    if (opts.debug) {\n      this.on('log', console.log);\n    }\n  }\n\n  /**\n   * Get user gists\n   */\n  async gists(username) {\n    const opts = {\n      path: '/users/{username}/gists',\n      params: { username: username },\n    };\n\n    const res = await this._get(opts);\n    return res.body;\n  }\n}\n\n// Print gists for user `silas`\nasync function main() {\n  const github = new GitHub({ debug: true });\n\n  const gists = await github.gists('silas');\n\n  console.log('----');\n\n  gists.forEach(function(gist) {\n    if (gist.description) console.log(gist.description);\n  });\n}\n\nif (require.main === module) {\n  main();\n} else {\n  module.exports = GitHub;\n}\n```\n\n## License\n\nThis work is licensed under the MIT License (see the LICENSE file).\n","engines":{"node":">=10.0.0"},"gitHead":"e5ed17ace251bcae0838db68a032f087cf589d6f","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"7.5.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"15.8.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.0.0-alpha.2_1613491066127_0.21796692635522996","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.0":{"name":"papi","version":"1.0.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.0.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"e50a9d1a1d25f4b80d69aa40484493052fd59a79","tarball":"https://registry.npmjs.org/papi/-/papi-1.0.0.tgz","fileCount":11,"integrity":"sha512-Vwnn+UjTmFqaFsW/O8ctTfskkxtj0LNi+EBJ0HPDEVimIZV1rhI4Cz+ct/loVWd+f1JMLa/UTsCzvhxcUS0WzA==","signatures":[{"sig":"MEYCIQCGZxMevYlkhXCY+GdNk8w0bREpoOI6MJeEVX8ThZg5XQIhANawm1iBYFIR53cF0BN+FMUTHT+fzctVhzyqCU2yXCmu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSMLfCRA9TVsSAnZWagAAYHMP+wRa6YVZCJezN+2gaMPn\n7J8K9SQ7+bwC1oGfOZRXDa0GY3Ucy52CvmrEdX2rg1J55ztAB6KOO0r+XLOR\n5KRiEfsZxGJtiZ18kam47bG1xARUU6eUdC4rqdKroQBs9sGnrGFBqRLvvPZD\ntQ4oGPWKJKef8i4l3PqVcgpdAYQIpI3woVmkvU/DNLg5sZSiptxF5Swdps1j\ni/OiXxzDe3fPaOrjTr/Vs4wacJLoJBGmiGPoCP8LmD8ikreJjnlOryhKjUJl\np6ILJ+juB0ghlq3olRlVobHtv7Yo2+Xgth1BECvnmp5i6IEBlKVobe5FgG+d\nkMUCqrLV08560k7mB2a1Vg5J9KFfgaFF6fWF1+bqQNxQCq49XYvybqC2sK2v\nqUMoBsLtddt2Vv/1bLMM9ad6UCmR6CDE8eNWWC99gW+ra4XGMes7Ug6x03IU\nvGvdxQuS8Q+/hrEHMl2tv2mFQW++alJ2HVY15ADLKN0iBWi7XH08c0DF18Zy\nXvVDhfjr9YfDWZRsusjjLQ5NenhVOT5UcT+TyCUtwN7emn7yncOPPSOj6Qvy\nKBouvQtR8jM/7k+M0S0MSeZfDx9E8oBf3ANc3YFZdBLeOpdvYU3TlW5Doa31\nqd7SExaNz1fDsm0zTnOjqutZ6rbH/UQeLtjVaytN7RMHXZ6DW76fHmGD0eV8\naSoI\r\n=g6Pd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","engines":{"node":">=10.0.0"},"gitHead":"78d2441876a59c6fa4147c16f275c86322850323","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"7.6.0","description":"Build HTTP API clients","directories":{},"_nodeVersion":"15.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.0.0_1615381214996_0.38852261899520646","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.1.0":{"name":"papi","version":"1.1.0","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.1.0","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"15eb3f10b219f478544d51b1b4da394062c67e65","tarball":"https://registry.npmjs.org/papi/-/papi-1.1.0.tgz","fileCount":17,"integrity":"sha512-w02EYhPtKYAGB8XJz+yi5WJPfSev1Zfo3vZrqqvHN6LvkIIJKfJ+VwAnL9EanBMcg6G8Bbwgxh7cqirfsJn2IQ==","signatures":[{"sig":"MEUCIC2b149QAhe54U/ddGGVgpvIUztH7RO5yBkzQlhdEqfLAiEAlTnM4i4eTghvP2PHU5fqN+UIShpaAfAre6gblkwjP/E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3kW4CRA9TVsSAnZWagAAiW8P/2Ym9buUWj35u+qCt+aU\nL14y+E+uKK0WV4l4qNzCl5P/YT1HCguntGdhSimQD8ApZyAChAEs2oFdf7u3\nyc0Cjm/K/SS6/Y54+phlzFf3h8bkK9stI0FrIbMCiZEWyFbEcalOWFAq5fhz\nO19Dfmg8QdsVisZ/5xdJo61/xxF2rXnMO/U2MIy5ly4zI95V2nxD9/5gzBuE\n/YN5N9+atd93FPOQ4qWQYU0RXkWVW4CoFZFm10ZflpkKQs1CoWdBcBPoexvr\n9D8kehjhXYqNZROaplrb/Y19yZEz/fhODQF1NJDENuoN91hO8fFL3f5rrAA0\nYTl0HXRupsa4VZ4XFssrBAj0XBZw+lhOkq0/kzbZumEXl9iiDGqBzjKL+MCK\nXW5jknzmkxs9T/V4c4NZ5C6ONFgQexzGv1vLkuS5a4kYRqJyp2sdIzKERQdm\nMi7j4+nWgGCgA7GOuL+O9ljcz2DCizFE+Gh49zUsOrtWGELRf5DEhaCyblp9\nrMvdjhc5GslM1mVsW9CwC+wi2l6wOTLwLt42f6oCR9YFJuDEhhFwQONtpQ4H\nZ345NC3Td9m2HgL0OMAIiH3SlSQHequ7+8gva1Z/KVgidyrstCVnYk7t0TcO\ny+sNAgmy+nVP5I0H0+pC5gn7xrElBvvc++fU/0h0u0WdaEq0lxPT+p9L4qrD\nCYGw\r\n=foJZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","engines":{"node":">=10.0.0"},"gitHead":"00e4bf40789e223b2e48191b739c894708a93858","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"7.18.1","description":"Build HTTP API clients","directories":{},"_nodeVersion":"16.4.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.1.0_1625179576429_0.07730219286568829","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.1.1":{"name":"papi","version":"1.1.1","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.1.1","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"98ce31738c3693b3431e4135ceb0b3c480941455","tarball":"https://registry.npmjs.org/papi/-/papi-1.1.1.tgz","fileCount":18,"integrity":"sha512-Otls+oRPndde6EapTSz+GbwQLujGa9RESZB3U/MKlnsxQg+YtrB4CbnIlJcYxnTrAAGvDQvDOy0g5Mi70MCAag==","signatures":[{"sig":"MEQCIAPyQzbzCxruGlW6S2cG5wYkqFidd2MCki2j+/RkVTrUAiArgNhLUZBU0kR+NS8fnrwEqfFLPjBvxNgxyBJqpEv79g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfCv4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgIA//ZZMTWSuDbjQkDR50JnJs2xyDo/xmsje0oo2Jtkk/+81X+VIA\r\nuCFkqo0Ydm2uhUXOdKVK3rO0BqDjyQxytBh+8VBMD5ltW5AxYq19CYKwLxOj\r\nfYEiqdL4UXYQR1aM6RV5Rsil268YAv+FuyD6xjCxlCDpnNg5nOftaqLnGCf4\r\n8Pajv+o8p/dQWbcH0UUPEnX0/aG02MUeVixQYO9+uleTe8ihHr5ufH3wWZ66\r\nR0A3o/hIQ5oepFtUiDgEH7Y8fL8xq6y4ao1A3WNH3ZtoJloLGPLTu1pSq+lt\r\nUgAx4Rr7lyrGZBKfYru3g2LsqEA9ry83LBd6rQ7++h/UTeu1IYvfZqlIRBw8\r\nI2d8GUhEsVs9n1JDSL7P2SCsWuzXu0mwpGwP1UiTXhaiCGBKcF5INsP7J/Rd\r\n0tfDI3PYlrzIMLIDCC6CsFd9h0iEGOcYmoxoZlIvS/6twD13C0LwyQHIplK7\r\n58RFiveUFS9dj4+5VLeS8t+/dvpuB8GqY/eDwv6iIcTlGTy5siW8t1XmmxNu\r\n+SKBdZRq1eC1VxkNrSp8vRu/kxBkXZDXpP9W6MyowVFXT78N9rg0xAFXzr5H\r\nK7Yn4VXKNZ6v/Omdssi4RLUvEfVTNRQ8WBT88Q3WH6SUvy75sNRGLckyQdmw\r\n2uWo2i/BE80qNoUNXxcwivZf0XiuXCX+BCQ=\r\n=4jNs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","engines":{"node":">=10.0.0"},"gitHead":"a2f30f8ecc374dc84b11d595fecf0fdc5b6b8f70","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"8.19.2","description":"Build HTTP API clients","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.1.1_1669082104435_0.5647084467448811","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.1.2":{"name":"papi","version":"1.1.2","keywords":["api","client","http","rest"],"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","_id":"papi@1.1.2","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"homepage":"https://github.com/silas/node-papi","bugs":{"url":"https://github.com/silas/node-papi/issues"},"dist":{"shasum":"5b1d7686834bec489f1f823103c5e8554f2b984f","tarball":"https://registry.npmjs.org/papi/-/papi-1.1.2.tgz","fileCount":11,"integrity":"sha512-cwM6pPpfAYgPe3EQi23SmB5J5s4XFS9lou9z63I5BbnMGmFaR8LAKvKboW7n1IUAKj76OtnyK0YU16JjnZrqVg==","signatures":[{"sig":"MEUCIAopFeG195VXcx9/24WfseQSTzWxUdFjYxpyp1WrZMhLAiEAvZv/nNBcxRr6xCAvRWihhTBuG368VENxSLKY2QZ/D2Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfDCiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodhhAAg3GkPa4TXXfJ7QBpJGIiKh6GfOcGzOr6HvirEVAKAupSPPM+\r\n0TLraxUDQC/k2ig3psVMCtD77NwYNqQIorU7SEblpuszXFqNhkOl/JoMHVfY\r\nvqkv4o6O+GKyw0Sa8IIB6VkRlWu6n1etHNWcBbnNP7BYX/o+1XuBPQnhzX68\r\nnWWELfH3frDHWZcXytXPLVXPnsZ+HX3AuZdoC0aKkUvSbl4bsHszc1UkS9Wg\r\ne39vtMta+YToBeaHxAl/zX+/cb7QP+4dcCoIujvs1zXcqvFWIj99tsOiwO8A\r\no9OgQct6NAqWPY34qXG0Z05JA66QVIXpp4uWpGc49Bikf6+7OGWkOUNU52bS\r\ngWqpMiklaXWHuJf5cUCgxNcUTvVUgO6xIxLNfj6l/GW2/91GxYRGPcC7IzHj\r\nOYRUX5svJhmDvu0x6oc5fDUxtgmwJflMCZ2QWQkH+eW/yktR7dfZC/oFPThW\r\n9AaVVvlvNNmcRbC7p76KU3tyqzEjloFzKxPsKKsGttLa3la0Ekay+Y5faZC2\r\nbRIdd6wolox6STD7vTV+19nHcPGlmGcWA4OZ5QMt5uCxeR+Vh1DRwMW+Uvwh\r\nNZdIGLlm0u1L3x4xp+hnujT74BPEQVNZfIUQIdog0cktEUji89BtK8qtEhyT\r\nLZ3mk1/+XnSXZAfm8eSNU1pyNiR7VtzlvxY=\r\n=2fH6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib","engines":{"node":">=10.0.0"},"gitHead":"b2844685eb37cec4e0133cfccbac329895f303fb","scripts":{"test":"jshint lib test && jscs lib test && nyc _mocha --recursive --check-leaks --globals Promise && nyc check-coverage --statements 100 --functions 100 --branches 100 --lines 100","cover":"nyc --reporter=lcov _mocha --recursive && open coverage/lcov-report/index.html"},"_npmUser":{"name":"silas","email":"silas@sewell.org"},"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"_npmVersion":"8.19.2","description":"Build HTTP API clients","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","jscs":"^3.0.7","nock":"^13.0.7","debug":"^4.1.1","mocha":"^8.3.0","sinon":"^9.2.4","jshint":"^2.9.5","lodash":"^4.17.10","should":"^13.2.1","request":"^2.87.0"},"_npmOperationalInternal":{"tmp":"tmp/papi_1.1.2_1669083298206_0.3150723758752061","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2014-08-08T20:34:30.642Z","modified":"2025-05-20T00:48:50.899Z","0.13.0":"2014-08-08T20:34:30.642Z","0.14.0":"2014-08-10T19:29:35.237Z","0.14.1":"2014-08-10T19:33:10.248Z","0.15.0":"2014-08-19T22:47:19.664Z","0.16.0":"2015-02-08T01:02:02.913Z","0.16.1":"2015-02-08T10:13:30.693Z","0.17.0":"2015-02-21T23:03:48.862Z","0.18.0":"2015-02-22T06:18:29.066Z","0.19.0":"2015-03-02T05:48:03.817Z","0.19.1":"2015-03-28T21:18:47.491Z","0.19.2":"2015-04-03T06:15:53.048Z","0.20.0":"2015-07-17T12:06:57.132Z","0.21.0":"2015-10-18T23:05:41.464Z","0.21.1":"2015-10-20T04:10:19.242Z","0.22.0":"2015-11-04T13:49:54.159Z","0.23.0":"2015-12-04T03:48:55.747Z","0.24.0":"2015-12-24T22:42:21.326Z","0.25.0":"2015-12-25T18:24:47.197Z","0.25.1":"2016-05-03T01:48:26.556Z","0.26.0":"2016-08-07T22:07:43.405Z","0.27.0":"2016-09-25T19:15:53.778Z","0.28.0":"2018-06-10T18:02:46.075Z","0.29.0":"2018-06-12T04:21:57.679Z","0.29.1":"2019-02-26T13:17:36.193Z","1.0.0-alpha.1":"2021-02-16T15:16:06.367Z","1.0.0-alpha.2":"2021-02-16T15:57:46.282Z","1.0.0":"2021-03-10T13:00:15.234Z","1.1.0":"2021-07-01T22:46:16.551Z","1.1.1":"2022-11-22T01:55:04.614Z","1.1.2":"2022-11-22T02:14:58.364Z"},"bugs":{"url":"https://github.com/silas/node-papi/issues"},"author":{"name":"Silas Sewell","email":"silas@sewell.org"},"license":"MIT","homepage":"https://github.com/silas/node-papi","keywords":["api","client","http","rest"],"repository":{"url":"git+https://github.com/silas/node-papi.git","type":"git"},"description":"Build HTTP API clients","maintainers":[{"name":"silas","email":"silas@sewell.org"}],"readme":"# Papi\n\nThis is a library for building HTTP API clients.\n\n * [Documentation](#documentation)\n * [Example](#example)\n * [License](#license)\n\n## Documentation\n\n * [Client](#client)\n * [Shortcuts](#shortcuts)\n\n<a name=\"client\"></a>\n### papi.Client([options])\n\nInitialize a new client.\n\nYour client should extend the Papi `Client` class and call `super(options)`\nwith the appropriate options.\n\nOptions\n\n * baseUrl (string): base URL, should not include trailing slash\n * headers (Object&lt;string, string&gt;, optional): defaults headers to include in every request\n * type (string, optional, supports: form, json, text): default request body encoding type\n * encoders (Object&lt;string, Function&gt;, optional): an object that maps a mime type to a function. The function should accept an object and return a Buffer.\n * decoders (Object&lt;string, Function&gt;, optional): an object that maps a mime type to a function. The function should accept a Buffer or string (must support both) and return an object.\n * tags (string[], optional): tags included in `_log` calls\n * socketPath (string, optional): unix socket path (baseUrl is still required)\n * timeout (number, optional): default number of milliseconds before request is aborted\n\nAdvanced options\n\n * agent (http.Agent|https.Agent, optionals): if not set uses the global agent\n * tls options: ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder, key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, and sessionIdContext (see [Node.js docs](https://nodejs.org/dist/latest/docs/api/tls.html#tls_tls_connect_options_callback) for details)\n\nUsage\n\n``` javascript\nconst papi = require('papi');\n\nclass GitHub extends papi.Client {\n  constructor(opts) {\n    opts = opts || {};\n    opts.baseUrl = 'https://api.github.com';\n    opts.header = { accept: 'application/vnd.github.v3+json' };\n    opts.timeout = 15 * 1000;\n\n    super(opts);\n  }\n}\n```\n\n<a name=\"client-request\"></a>\n### client.\\_request(request, [middleware...])\n\nMake an HTTP request.\n\nYour client should use this or the shortcut methods listed below to execute\nHTTP requests in your client methods.\n\nArguments\n\n * request (Object): request options\n * middlware (Function&lt;request, next&gt;, optional): middleware functions that can mutate `request.err` or `request.res`. Call `next` without arguments to continue execution, `next(err)` to break with an error, or `next(false, value)` to return immediately.\n\nRequest\n\n * path (string): request path, can include variable segments defined by curly braces (ex: `/user/{id}`)\n * method (string): request method\n * headers (Object&lt;string, string&gt;, optional): request headers\n * params (Object&lt;string, string&gt;, optional): sets variables in request path\n * query (Object&lt;string, string|string[]&gt;, optional): query parameters\n * body (Object|Buffer|Readable, optional): request body\n * type (string, optional, supports: form, json, text): request body encoding type\n * ctx (EventEmitter, optional): emit `cancel` to abort request\n * timeout (number, optional): number of milliseconds before request is aborted\n * tags (string[], optional): tags included in `_log` calls\n\nThere are also `_get`, `_head`, `_post`, `_put`, `_delete`, `_patch`,\nand `_options` shortcuts with the same method signature as `_request`.\n\nUsage\n\n``` javascript\nclass GitHub extends papi.Client {\n  constructor() {\n    // see example constructor above\n  }\n\n  async gists(username) {\n    const opts = {\n      path: '/users/{username}/gists',\n      params: { username: username },\n    };\n\n    const res = await this._get(opts);\n    return res.body;\n  }\n}\n```\n\nResult\n\n```\n[ { url: 'https://api.github.com/gists/9458207',\n...\n```\n\n### client.\\_log(tags, [data])\n\nEmit log events.\n\nArguments\n\n * tags (string[]): tags associated with event\n * data (optional): remaining arguments\n\nUsage\n\n``` javascript\nclient.on('log', function(tags) {\n  console.log({\n    tags: tags,\n    data: Array.prototype.slice.call(arguments, 1),\n  });\n});;\n\nclient._log(['github', 'gist'], 'silas');\n```\n\nResult\n\n```\n{ data: [ 'silas' ], tags: [ 'debug', 'github', 'gist' ] }\n```\n\n### client.\\_ext(event, callback)\n\nRegister an extension function.\n\nArguments\n\n * event (string): event name\n * callback (Function): function to execute at a specified point during the request\n\nUsage\n\n``` javascript\nclient._ext('onRequest', (request, next) => {\n  console.log('request', request.opts.method + ' ' + request.opts.path);\n\n  request.start = new Date();\n\n  next();\n});\n\nclient._ext('onResponse', (request, next) => {\n  const duration = new Date() - request.start;\n  const statusCode = request.res ? request.res.statusCode : 'none';\n\n  console.log('response', request.opts.method, request.opts.path, statusCode, duration + 'ms');\n\n  next();\n});\n```\n\nResult\n\n```\nrequest GET /users/{username}/gists\nresponse GET /users/{username}/gists 200 1141ms\n```\n\n### client.\\_plugin(plugin, options)\n\nRegister a plugin.\n\nArguments\n\n * plugin (Object): plugin module\n * options (Object, optional): plugin options\n\nUsage\n\n``` javascript\nclient._plugin(require('papi-retry'));\n```\n\n<a name=\"shortcuts\"></a>\n### papi.request(request, [callback...])\n\nShortcuts for making one-off requests.\n\nSee [client request](#client-request) for full options list, with the exception\nthat `path` is replaced with `url`.\n\nRequest\n\n * url (string): request url (ex: `http://example.org/`)\n\nThere are also `get`, `head`, `post`, `put`, `delete` (`del`), `patch`, and\n`options` shortcuts with the same method signature as `request`.\n\nUsage\n\n``` javascript\nasync function show() {\n  const res = await papi.get('https://api.github.com/users/silas/gists');\n\n  res.body.forEach(gist => console.log(gist.url));\n}\n```\n\n\n## Example\n\n``` javascript\nconst papi = require('papi');\n\n/**\n * GitHub API client\n */\nclass GitHub extends papi.Client {\n  constructor(opts) {\n    opts = opts || {};\n\n    if (!opts.baseUrl) {\n      opts.baseUrl = 'https://api.github.com';\n    }\n    if (!opts.headers) {\n      opts.headers = {};\n    }\n    if (!opts.headers.accept) {\n      opts.headers.accept = 'application/vnd.github.v3+json';\n    }\n    if (!opts.headers['user-agent']) {\n      opts.headers['user-agent'] = 'PapiGitHub/0.1.0';\n    }\n    if (opts.tags) {\n      opts.tags = ['github'].concat(opts.tags);\n    } else {\n      opts.tags = ['github'];\n    }\n    if (!opts.timeout) {\n      opts.timeout = 60 * 1000;\n    }\n\n    super(opts);\n\n    if (opts.debug) {\n      this.on('log', console.log);\n    }\n  }\n\n  /**\n   * Get user gists\n   */\n  async gists(username) {\n    const opts = {\n      path: '/users/{username}/gists',\n      params: { username: username },\n    };\n\n    const res = await this._get(opts);\n    return res.body;\n  }\n}\n\n// Print gists for user `silas`\nasync function main() {\n  const github = new GitHub({ debug: true });\n\n  const gists = await github.gists('silas');\n\n  console.log('----');\n\n  gists.forEach(function(gist) {\n    if (gist.description) console.log(gist.description);\n  });\n}\n\nif (require.main === module) {\n  main();\n} else {\n  module.exports = GitHub;\n}\n```\n\n## License\n\nThis work is licensed under the MIT License (see the LICENSE file).\n","readmeFilename":"README.md"}