{"_id":"lambda-api","_rev":"49-6edb4a58287637be6bc8e48fb31f6ce7","name":"lambda-api","dist-tags":{"latest":"1.5.1"},"versions":{"0.1.0-alpha":{"name":"lambda-api","version":"0.1.0-alpha","keywords":["nodejs","api","awslambda","apigateway"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.1.0-alpha","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"f84c333a99304aa79d0083685e066ad3b118469d","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.1.0-alpha.tgz","integrity":"sha512-Luy9rNUH/Xi1avOgIBXxCHrVe0KxlWE2MxJy0wHAprP5ueOrHJuLguAd6Lu1CL3oMYjuWqceDyBo4nAriv0P8Q==","signatures":[{"sig":"MEUCIQDuPR/U4RWwGLecYgUnLze5bkJosnk08Mdt7U/UL81Z5gIgGiGfluvIIwT07dZ5/XoyTwm5CFWt9Ta77i+DhiHvP5I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f84c333a99304aa79d0083685e066ad3b118469d","engines":{"node":">= 6.10.0"},"gitHead":"61b177d48b74b61eb90a0a91eddb5c50d016f5de","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.8","description":"Lightweight Node.js API for AWS Lambda","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"^3.5.1"},"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api-0.1.0-alpha.tgz_1508292901749_0.8286271498072892","host":"s3://npm-registry-packages"}},"0.1.0-beta":{"name":"lambda-api","version":"0.1.0-beta","keywords":["nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.1.0-beta","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"c6b326ee1b5be5f822df2556b9bada077befff29","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.1.0-beta.tgz","integrity":"sha512-mU1jCnj+vJw2lIo7huAIUV6ZWKKXkZGW59u8foIb7Q6q1wCxe8lMey/bueCksIOoZtX7cTfDcWrRzHXfiPBJow==","signatures":[{"sig":"MEUCIDOemFHG9ybyAoONm+opZvFohUPpytXsUlnEgNutHuWOAiEA2j8cLAtXf+BkjMkawnkxHXtyvi2BAPeDkKLQSPyQxwE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c6b326ee1b5be5f822df2556b9bada077befff29","engines":{"node":">= 6.10.0"},"gitHead":"690c2b6b80419d3d68134f035f737dfcbab94a26","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.8","description":"Lightweight Node.js API for AWS Lambda","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"^3.5.1"},"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api-0.1.0-beta.tgz_1508431472629_0.7902220685500652","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"lambda-api","version":"0.1.0","keywords":["nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.1.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"222318c153499323900a275fa22483c3c690d32b","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.1.0.tgz","integrity":"sha512-peRJsmdP/Yube243xX2rADD37LIGupZV8UFz8DBLSLEOq9BeLZBna3rHJc/F1laReOWYhQL/gByJWqd/tJywqg==","signatures":[{"sig":"MEQCIDt6sPsTKrRTbe1gZ2ZGP9NqMVtZv6mc4WVXlktI7fphAiAld+OSSZ7yy3BLRUHFbU4Vya6BdGsCjndPg6ch1GP/Sw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"222318c153499323900a275fa22483c3c690d32b","engines":{"node":">= 6.10.0"},"gitHead":"7579ee3e1cd540640ac69d0541302f311804d782","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight Node.js API for AWS Lambda","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api-0.1.0.tgz_1517158025940_0.9424047509673983","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"lambda-api","version":"0.1.1","keywords":["nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.1.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"d91cf1b3a0686b839531ed220f549b11b8887bcf","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.1.1.tgz","fileCount":16,"integrity":"sha512-vTbLzhnoq9SO+t52tEXnfvSuA7HIRT1aNuTXhaojxAov7Ee2/kxnoEgeS99tQZyBgmblYpAhuDqDlnyeAHFNRg==","signatures":[{"sig":"MEYCIQDSbdusurOVXqZOxDvNQ2rJjA2VFxw3UR5z+pJ6UmX5uAIhAPMeQ7UdEprb709rjArhYNuV0mRz4bmvHL0VsXHAXgHE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75199},"main":"index.js","_from":".","_shasum":"d91cf1b3a0686b839531ed220f549b11b8887bcf","engines":{"node":">= 6.10.0"},"gitHead":"eb22e15a87e419169c0e8b2a6f47a90840271196","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight Node.js API for AWS Lambda","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.1.1_1519924393628_0.05972666838006946","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"lambda-api","version":"0.2.0","keywords":["nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.2.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"842e89722ea46b7f4edfd08ecfb813a7b3882a3a","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.2.0.tgz","fileCount":20,"integrity":"sha512-3+RS10iOUu78CIyQLGebq6GNPWxGnZJo5OPsJVCS5bbIKZjEu4OnCaKUOTRvq7j/+4Zx3vEVIn693fuq8Fj/EA==","signatures":[{"sig":"MEUCIQDMCz6BXvR24Sg2XKQenZ+mj1Hq8RaRCAmpX9BGrpjC1gIgQj4VwFMiR3imhbBNArwW5HAdQdtqonkJZ1wJgzE21ss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88995},"main":"index.js","_from":".","_shasum":"842e89722ea46b7f4edfd08ecfb813a7b3882a3a","engines":{"node":">= 6.10.0"},"gitHead":"2f58e3d6eb147ef63fbdf563450f39f3f6121d50","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight Node.js API for AWS Lambda","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.2.0_1521133904680_0.4482890751859576","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"lambda-api","version":"0.2.1","keywords":["nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.2.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"0f0cf123379dc42407861a3c812a507eda1b7550","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.2.1.tgz","fileCount":20,"integrity":"sha512-beFpRdw0QutBL1Fqj33020dDmIF19z6WgfzVVfZV9M6+1szIbZXE99rYbGy6AoFg9DOSCF0ghIF19QbzFViWcA==","signatures":[{"sig":"MEUCIQCE0y07XVwcL4sJwthrLnvEjKZe+eILPOHzOsp7S0N81AIgC4qtGe0hdMQ96H67GBHS0jE7ZMlc/TwCqacEX/pjDXA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90986},"main":"index.js","_from":".","_shasum":"0f0cf123379dc42407861a3c812a507eda1b7550","engines":{"node":">= 6.10.0"},"gitHead":"6ecf2f5772df4383b2e8f2a6759de865fa36fe33","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.2.1_1521207820897_0.7399203388662947","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"lambda-api","version":"0.3.0","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.3.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"5f99987a7fc42041dc9c05f1e4b68913b16e2d66","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.3.0.tgz","fileCount":21,"integrity":"sha512-mHQ0IGLFqooGEKQRMWD9ynE+B7Ps4OBCIUF8ay27QXlPHkjZh9vAyhZiLm86l10qAJY1XY/kI2jEHUobukqM1w==","signatures":[{"sig":"MEQCIF66AlOA5HuUk/jQlywtzsCuviBxEdpE6Rc8fscfBQVpAiAxf9IjayVJL/aQVGT6EdLA+8Rhse/eN7epJixy4+Ky7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114827},"main":"index.js","_from":".","_shasum":"5f99987a7fc42041dc9c05f1e4b68913b16e2d66","engines":{"node":">= 6.10.0"},"gitHead":"5e23d3823df943601941ccfa30e98ce215914229","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.3.0_1521659519913_0.022603818266397235","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"lambda-api","version":"0.3.1","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.3.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"10789b6d301e8932409eca24d5904b337478a83f","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.3.1.tgz","fileCount":21,"integrity":"sha512-qPRkNYtdmHM1+EDZ35jThx/zgJTtW82GAnDXJdNTSA4kb7AqOdghfsuAKWdOLla9mwMqm2XgL55X0lOr0ff4xg==","signatures":[{"sig":"MEYCIQD9rAGeTn9x9MN4tbIGYKF6iyCS70rsPcZtALfp1aK/ZQIhAP829d9QQRVFaLyxmji3TqXGjFy8iCJD37cJFXsG+TEz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119232},"main":"index.js","_from":".","_shasum":"10789b6d301e8932409eca24d5904b337478a83f","engines":{"node":">= 6.10.0"},"gitHead":"514d73a8c2c74615e2ce7fefcceb150dfdc66404","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.3.1_1521842656147_0.7878210679878428","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"lambda-api","version":"0.4.0","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.4.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"816c92423979432241fddc3c9484bf8e14ace25c","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.4.0.tgz","fileCount":31,"integrity":"sha512-dWkg3ApJP3Iw+KwqDTzYqbSwrFG3KVks2gapLldtE1R1n4ts+SeUBEmZbBcaJKWSGljviwoUcBv1uhBr2ao1cg==","signatures":[{"sig":"MEYCIQCuaGX/PYsDnDxnyJnNFHJdlsnjI8QpREgL+hVUBLVE7gIhANAVLvrjuznon4lTYzkUS9pDNLaifSKLmOlJmgcOdCO6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183091},"main":"index.js","_from":".","_shasum":"816c92423979432241fddc3c9484bf8e14ace25c","engines":{"node":">= 6.10.0"},"gitHead":"0516b7bfc4aadb85ecaffea55e43e8be4556ff5a","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"3.10.10","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"6.10.3","dependencies":{"bluebird":"^3.5.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","aws-sdk":"^2.218.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.4.0_1522635048282_0.6577845904936868","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"lambda-api","version":"0.5.0","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.5.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"2ce15968ec2c6af69b420c6e16bdcf114c110a9b","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.5.0.tgz","fileCount":30,"integrity":"sha512-qyEgROT5tXbgkLt5PpZW4ZippCUfDwyWXLeUjiT4lQz6uLGr/AAgI6uNPZc6LloZfTTZGHtiqYVitinOdOka4g==","signatures":[{"sig":"MEUCIGwR+d/QMmNkPdobcB04QT27zUkNapCGmIpnCrV6+sL3AiEAp4oDGrBCGWdRjH0ucIdn6+IiEqOTT5Gckleqaucgr5w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":186737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4ONYCRA9TVsSAnZWagAA5p8P/2olEwEnU9ufScD7plev\neIyepPRs1oBQb3BnqvdkstkmWpUFphCLPxs8tcoGUwO0/j8Lic5SLZI+3lmR\nb8qVf90QaDyClSyHb/vfJ+/NytZDrKthqeJaT7UAhjallxUqfpuShcxf99KJ\nUkCYVRvpUtGpW4BX3k+xitbuAu+UqchG7LHfjP4G0pnTf768wO7JiGnCfh4h\n3DQGPnpznDpcmXNWpwdhToBRSlrmg97HNB39uvbLpLvLBKYMzLp2psIoBXyk\nZM4/2keKyoke9Cce/qmt3F6ZKz5a4+1qf1EgMEWRhlNcu0QjwhRmlz1brPTU\nn13vYZ2OktZ1keuVNPi9ymZlTzuijXkCjd62uthQNYB271riy9BqvYa2PVl3\nh2Hd3iZlm38wOKTIYduTcaFhiOaveeDOoDP5J7+7Ecgmf8XI+dfNsL+RfPgt\ngeZdOUxgprsxEHDFOyUYobwXrLCiyFICvGqJdnJziyurAk/4s/WU+l/ikEww\noRF85vQ7O4df9jcUQzLootNDjbdRk6t+/RVGdifblNEbwL1iYjxHUlzZ5uR9\nW1li325lguPyBLPJp8fejM2YhiRobR+F6dbql/Ok+0arPR9UJNsnDS/llB41\ngGxsvsFY2na0vBCYfH+fYh4Ya0zcjVboUUxXSpR8x9epSkzBxFoJtX5r7C9W\nZntB\r\n=+FFS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">= 8.10.0"},"gitHead":"386fbe17410f4c7160ad9a0a8f394dd62ebf1c85","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.0.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","aws-sdk":"^2.228.1","bluebird":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.5.0_1524687702293_0.6262195464680935","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"lambda-api","version":"0.5.1","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.5.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"f528159152ff255f4365aec8fc464c3ae9dea83d","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.5.1.tgz","fileCount":30,"integrity":"sha512-Rcy7EY9tCaU34u9l15FOZlB8DnRA3cSSzW7XF5IQXN46Qdz9eKK1JFBy9pJ+Rb1oNu91xg20StXBxhlIl/gVgw==","signatures":[{"sig":"MEQCIHWGz8WHG2ZE580r87luT+ANHPohQfHP08wQN9fceT8sAiAOqXz05TY7xs8meAojFG8+1wEOexZYZC8uNfJSpewE/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":187307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6NT+CRA9TVsSAnZWagAA9ssP/A5tsb7F/3nPPrdVoXGH\njaJOLbJMzZluEF5ZQiE/BauMDIJsXLjtAaECZKlmWvtieXAPgdYfaV0rNcXH\naN5YXoiYSf7T3mj2vCLpbSjISsuminOnRsiYVj6at2ec2g2o3DHAjdQIoHXq\nE759ip/nfhaMAfx7jWunLSU3whDTpwSyhcwxLfuA/AjAVwDgWixHeN7EEbF3\nMtQSJ6C9s1Lasu8Y9h4J4N1fCB3FZUgEuXPhKgl00h9TxrpCLicWEl6oRm8Y\n5CrfGL+M3Mck/6Y+eIfHybT93lidXpxAezgcJX0nCH0bh6K1fnyRUn88q/Ac\nOohQlOIePfSyH0/v94y8LNJAI0TFY99c1ddzSCUL7DlIoEOMQz7CzY7NuLcG\nBsVWGNdpWVUXwuB65bG28do+vObGltxStObagQQ0b370iaL6GoEMFe/OhEb/\n2ndkZhyZmBkWMyyzyFsqDxz9ABHxp5Iw2DH8YH6rRDZDnK/+mL7bNfUuCWnL\nXb0Da5LQrLdWn5spEvTvYHEK7YB+E/O5QqyTwgcp/St7/FJnEc0LSDOMF8BI\nVifKQorpDHwPuxZ2/Y2yalis8c6xSbp6LxUakfNEyY2RHLB3xx7X+o4e+vaE\nPZlQdj5JZqohIbHpjMkYk83m3vD5bKNsYE48R930inVVrSJKmeduB0mKpBdp\n/+ND\r\n=RYR2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">= 8.10.0"},"gitHead":"5e13c0177f9a28a79030c14d56e9a82efe1dcf26","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.0.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","aws-sdk":"^2.228.1","bluebird":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.5.1_1525208316868_0.7881486644439428","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"lambda-api","version":"0.6.0","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.6.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"bd46a8f9efb21e78f004145220c1b20c7fc827d8","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.6.0.tgz","fileCount":32,"integrity":"sha512-XjFH9BihRoxb5RBsvrkNUdpgL2i1X9WNW/ICzIlUok3Vla1CW1ieMx3qB6l071ggMWwLRVxKRyeXIFNznvWHZw==","signatures":[{"sig":"MEUCIQCnJL+MvoQBCQNh+vDKX87jTWaXRfj+ygZrdlIszAgAYwIgSvWUIGE2ITVGtrifkKpradcpViPedZaWnkKhd13shcw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/0erCRA9TVsSAnZWagAA6tIP/1OncpTEj7daxNwwvJVR\nLahAWFSDebaO6bH44k6pFzbiopUFAh6u3+xFTi388hEGdlcuk3YOWuJyd0tq\nXq0GO/ofEa5F3AUwQ6zk4gKAQ9lama1i5r4x4X4YqBVZBvNxEdIKHgB8QeIH\nhiEg/Cw0QW2y6LrefDfWxwqGT68mkLPi57lIeZOPYKbjCI1iaxna4LWXTRQy\nlP2290vhQiUp81aiuapIEM50CR5vwqEeAdKz11F203Nr611mFGXYPFGIa4Xw\nW9xaDxc1yYNCklXik9CgUPJHUVVadOJv77dUgypsyMrjiEGWbDER/hmFMMgg\nUx5k6F8kBVkKJ144gbcEZLeVlnOzKmZp8QoRAr6hqsawfep9mFnhBtFt1Pkk\no+O7qjpZXfe5Zn//wRB3yInUpweqMXDqE3ABaUzXzeCCuEJL0dP3FpnVGZkG\nE/9G/gCYjQoQmmp+qm6GbJYWFKIfN/bD0pdJOsG1IhwqMLz7HTVJ6ofo5Pme\nJWoJoewOSN0TPBhTBJzR5+OjLA7sLhGElEuApPz2ytvbaC5f/vmGpYBSseQY\nckH3ceFb+JX2Ogo7iyZbZG4ObmdtbhEfK2O59uPfbMR5/QWdLFr5wkXqxCLw\nRFRqmaFV3GCu8HBSPeEONeO/7Zmrpfs9DVovfr0F0DNVB4sLIcEcwl7DF3z2\nQCGH\r\n=7Joj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">= 8.10.0"},"gitHead":"7c76f2851eb9f177246c322b4e50bfcad256a613","scripts":{"test":"mocha"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.0.1","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","aws-sdk":"^2.228.1","bluebird":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.6.0_1526679464363_0.16994250112759657","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"lambda-api","version":"0.7.0","keywords":["serverless","nodejs","api","awslambda","apigateway","web","framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.7.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"05045453f641683079c1a0f2344eaa9ba7ec7709","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.7.0.tgz","fileCount":10,"integrity":"sha512-VGiZzLY8F/ceBDYNxdV7Z/tF0sqAJJLT8RAnOyi/Ee/uidiPDFfTmmD1leM9vXgen7pTwxUAvTVaZTlJIsjpig==","signatures":[{"sig":"MEUCIQDMP+eaBuVcum3dQt4sfOHF1TNaPNgBLQiOH+F+NTIxqAIgL82GK4i1dCWT2osWIKZRnT/uKjZPDX4KXEXEJkkpjLg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJIKaCRA9TVsSAnZWagAATjkP/RpRcQKKzR6ifKsixzms\nkKspYuZDra0bCAyj4dpAaHjAcPpCCugjgwVizNhtaOjjkycKuLuN0coiFVq4\nknTPwwl7LsztrMhYn7jmjmsUxId3a7tnslguMrUPIlCvs0Lat9Eqa3+BQ7qX\nmCDZrzjwAQLGpOFYKYXgnui5F2zB/FQDVI/MYwlPnTVgrUBodO8rnHNd6vK1\ng62Fh94jPqfgbRG5OlHKCj9fjk9rXgAuNDAfpmAXi0A07o+mIDOqNfmvSq21\ndoyXTpbs7Xv/k5oBjhO2vA6pdEjhlE1tRvolN6jM7xkSuDig0Aq5CmRX/eCY\ne7plPBMqvcIsdmJK7zgE6phn0JaENjOL/UMDEFPREj98PTiaznySBtAzFfJI\nEycauL96EmM6f/c74MqQFUggTRUY2itErb9E4asUkX1DADHSWz8vwBo+9YLt\nrpe5JwhectS6pF0RuU01/Em+ZniHJgE+lVtLY+II4BYCROCQc8JESUcDyiJx\nTNIHFA1i0tH5LHHqkzFypE1V9ZtrMpSqg/hej+fq+ZOAOulOjLVyVNB0kg5D\n4ISqVK3vUTlckQ1TYiBhZUgerlEMR8A0+I4KndRdrU0WFiheKcmKqfV7MII2\nf4US7BJZgpbhOibeW+q024M7a5E/SamgAQz01Aoz9JvYIwr8vECdfxLD6PX3\np/Xt\r\n=9uC/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","files":["LICENSE","README.md","index.js","lib/"],"engines":{"node":">= 8.10.0"},"gitHead":"8d2bf79edb22168628c0990fafa865e0ded811c2","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=lcov mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.1.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.8.0","chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.228.1","bluebird":"^3.5.1","istanbul":"^0.4.5","coveralls":"^3.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.12.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.7.0_1529119383441_0.7999064692984807","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"lambda-api","version":"0.8.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.8.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"29bee9ad92bcc73b37608a198d2b0032238b95ea","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.8.0.tgz","fileCount":11,"integrity":"sha512-KHzav6WNhVNJe5e1mlAM4iEeDs4HrK45DaAVi4OqDgxvHHzdX3UPr36QxnxWDjyqYpwBY2enef06yFRe/dZqYQ==","signatures":[{"sig":"MEUCIARzRdb2dxkZTb/m3C0a6UHuZ/MpSINFHQG+aDzy4WhmAiEAxZvVoKiqZo0P5nC6gmw8+4J87Bh3As8KDj2J4Bf8L8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbevoOCRA9TVsSAnZWagAAAT8P/2Y1ibiO9+p89zbzqUhL\n6sug+evN5RsJ56poDHR5bhFnID+kQLoTsFEYnU42EdhFjRwh98mMD5dO4bcy\nk4PAQO/lLF916cdkBG0ZOn/iHVcvhaZ2ahjIsEMzsAaxX5L05Bc89MD/E/uR\nlw8/OBegrwQOtQTDkUvI/64Pft0pXx3k6/SxoFJXIrJth8toF/VVNqTvWhht\ng5p8WwO3AvWPZdSHC2hsMMiXKfW05yR473FGnd2wTiRY73kry8E2OU32xLf+\nOaNbd3A3jAEMPiyzHhAYg2deIDO4amf077UTj/jKbUb/hm6jjXvdT33J9C+N\nNyVjwDfytg/Cm/lKUueJgbxrlUHalBuNzjfyu5C/qGpbv9I6WrPubaT5keAh\n4Po8GWP5yXng6uN8NB2Sp/gjBqptFfH2XpV8N0Z8QNYE7tIMeHlv9pHaKOtb\njD7d3iGltNRAkPVj8tW0rkl18cByxhC1I/WRNjM9RXLJlxVFhc2haQYWbVQO\nMVqwSvNt2dDdJWzf6+myDOa5kgGE9XEOcpq/FTLK41YhgOLftVdLf8rfHdZA\n0g17iUpac5Jo4G1SCUNjUCCdeq9e3vHUt5iyHsX17HIAuNrvmHa1lj3O3mYi\nfZDlW0xp+QcvQivjrNzg7aQHe52S/lp8Tq41FW5dqpYHlffwLahPqOSYYu8S\nVmRK\r\n=QYd7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","files":["LICENSE","README.md","index.js","lib/"],"engines":{"node":">= 8.10.0"},"gitHead":"cd09fbc8d601200430513066700b15def4817a09","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.1.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.8.0","chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.228.1","bluebird":"^3.5.1","istanbul":"^0.4.5","coveralls":"^3.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.12.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.8.0_1534786061160_0.9353701128950576","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"lambda-api","version":"0.8.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.8.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"90782227a01fcec005ab8fa489aa47f92ca1a296","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.8.1.tgz","fileCount":11,"integrity":"sha512-rVyoIBxT85mJiZoUgyYZr3vjQPihwsMfTrSNfl+NrqSaN5j/SbEQqhyM4iVLRND9MPyDskoE4IWchOrnh1AxSw==","signatures":[{"sig":"MEUCIQDHoPqA2nsaNXcnyaXE/dXGNL56WF9FPaT3i9jPwhEXVgIgB06zlKNXDmSiMPyyvfUctqNnVIyl950irDwzlWylepg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":115508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvh8fCRA9TVsSAnZWagAAlkAP/jE3P8k8qFIT73y9bAuy\nGr8tGJiCJvSPAXx0ma4t9pJ8Rle/hX/B9yOWFV2uWPkqMlGmgYimLeKVavJF\nT3MH8Sbc5YEJ0LBkpQeby1815bQ2jhyPZUEUW9u6l5osf212ZIQ9026qagQN\nn2zcqe2AUIKludEYCYm/LE9rMdAehj2WM+i2TWPYSdouaCnABsVps93VHx3o\nWt5GXQTJUMjzbltUT1LZe0dvCNUTjFViYsTyN03A3vaWoVyRU8jyeK922O8H\npdqv2CsuNZIQ1dx378eP70kV3nb4WVry+VFdu9lzXfWAY0xd5GvfWibpMdyn\nCqj11l2JE3Z67XSKpFLxjvQCpkKjHnIs0ztw1a+5QipaSmN1s2f7CfS5vpq+\n67gf28sv6osF9W+yKoke0pZAmkw5EpHIUe2XmHrXivS/W3tCzuPN5QpuXxEr\nBX/s9/YeGOmVbDsZmnkm2YH6/l17Eilsjy/dDpFS8j2FxjsM/4o2Qe4F/X9j\nD/AnHApiW/ws+9OM1iHJjgPS2QjzzFzrIFP0zH71BmRvol4LKtgqeo7GndaS\niuvIisyuSO01Ynf+Rpu2QbhSkE6IVrTIo4iRnVF/o/sZN2ii7TfQjyjn0T2d\ncthZGBUtMXZQeJaErvR2hw9XZPUrLcsWeGSXHVltbGDE3vQadOxw3Wc4FEEQ\nBBQP\r\n=u+yE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">= 8.10.0"},"gitHead":"394be89fbb60fd4109636e39ce5812f777a30dc3","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.4.1","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.8.0","chai":"^4.1.2","mocha":"^4.0.1","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.228.1","bluebird":"^3.5.1","istanbul":"^0.4.5","coveralls":"^3.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.12.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.8.1_1539186461792_0.8740266761762747","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"lambda-api","version":"0.9.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.9.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"8dd58e4684ef4fe60c960f9cc249bd0d69d2d7e6","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.9.0.tgz","fileCount":12,"integrity":"sha512-vVq++ItMZqmI3apl6jE7HZ+rFjJEZcg68GnbkUpI0WD10yNs7qSS9T5+FmCA3eYq3Q0vflN/XkeF053JOruQvg==","signatures":[{"sig":"MEYCIQCKJOQh78bcvsWSKOJpUS1H83uK/nERBs00JDqkfqhcOgIhAIad73MCXS8zDwFOtbxBGwZ8ZcKNsWoRfl3FIJqKlqKr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7kYVCRA9TVsSAnZWagAAFegP/i0w1BTfe5AnMlCmkiax\nSY3cgR+bY7Fi0JUmDQ/u+FQ1LrRUUYaOjupzFzn0vq9whFryxK+5XIHy69r7\n9LTGWuWm6BJt9JPbLxPVLZlOvekVqAbab0yUjdBkbWW2X4edeDZ2WlvLJkOt\nUbC1kwD5k4Y9B9OH7KVRlVl7vJfCB6IMQ1Xlj96B8QhbFojdnzDsKTmRrEKu\n8t29w96sJbHg2pfFRW+miKQkO1j9gEkQ+7ipS0padMKkuWEpVNoASWfkIkpn\nXF9sBfKKjUMPtvM9NbgE0XmN7/q4WGcdIQga/taTIRERqFOq+h0GES3m+T4L\nB3ZTueTmE4Nb78R7fig9gP6JnqjJhvBA0+7UAHq5F/Su/whlMZIAikLuxT44\n7C7lCBTaEAicdl4TE1z2MuqV6toyz7tBsCzbzoVHRKlTWVUnUKjTWyYGIXpb\nmUad4LKhdfzuDmpWB7Z9AxsF9IulyvsySKSGKglkWqY7UqZDmJL1eQDnQ6ba\n45HHmAcM0QTe+iTEKasXbnsNdTMnHSp5BAA1wcXZiJHrSOqIEgB7vbkQR8PU\nAmIRsGU1KIuGQC2U4l8UidH2HEH4+r9/ooDrJx8zQLgPdGDOI03tE9v19QNl\nHOk+JCn6o8N1aTBFXA+hWp2JEMD2zF7vvlpqPyaLSS6NSoiB5aTa4NXskvlp\nz1tq\r\n=tzdb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"2996a3f0d4fc838517c8fa76f81d027ef5974ec0","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.4.1","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.9.0","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.357.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.9","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.9.0_1542342164589_0.08564362264183623","host":"s3://npm-registry-packages"}},"0.9.1":{"name":"lambda-api","version":"0.9.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.9.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"3bd0f119508baca85201b6c634cdcc90884e2581","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.9.1.tgz","fileCount":13,"integrity":"sha512-JxtdvD8Bd2GXt6rZBNEXDTnIZ8HBlLc+Cc0/lWj2kTECqJfXtL8YmBTjXPqesuM3k8A1bVFL1PIbPF5Ix5IvOg==","signatures":[{"sig":"MEUCIQCYXtpOOzf/kQOx5/XIzP5cYy0inzC7+Ob5Uzk2skQTZQIgCkprZ4Yim65ktcSyTuihq+aseZVt7pr1PRnqQZ0MYF8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8rAICRA9TVsSAnZWagAA7j0P/3D2SvZtrTEe4B314wR4\njDO4HUTaRzMRvll7mTpDQXDO5A22wLvLVeX+WDWXxB7QxuzYnUcWHbutwhdh\nHJwCQh1/QM9aStlnyuWvuwjFj1v+jHMqYz+g0HIUVTaxqLBneqRXGIlN8ldP\n1A10xOvg9KJ5FAtnwYEGIY9jWQVU966DYc5pGiofptR3ZlfSZnJe1DiWiVCC\nmP9Q30aPXsrOo0kj/0ysziHa7HcZG9s4WbCKeDsFh1RwBlVT8GrTKwQCQhCx\nsTgeDBy9Y6OANDbthP0jOSuZtQlfcXYIvFHSRQVZHum1CYpfpQxIDoUvL9Ig\ns+eR9cXASyGzSgdtvZWIGGIRsKCp4iVgcZBAXnlt6/wcWwwmHj3ryWhe9M0E\n+7yDUQzfjsGOqZqPgjqBf+5TZ254FLy00GJiwmNSine5oFionZnW/bUawEf7\nidfAgG6wkSmCzWdXI9zqYwH/yOnbjrVM0wZaN1B34iTmAVaHOsuR5xu+Qz6g\nLoxkJvNwRgHp3bGTFLrbDZ317VM84orSRTfzHLeGrJ0QyaEh7zUmwx6GjYOg\nmqL/l37jxdUpFwPeJ2TQtWHBjtwh8zJJFqDO7mydD2f+f8oIntGxJ4z52cFt\n1z+X3X68w2mSPzqwRC2UH4gA2A0je5Ip+hrWYpZ0YbytzmuNu+VVEsxgOGqO\nveHT\r\n=nvF5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"8d9757d586ad42c9731cebcbfcd4d1b02cbdebae","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.4.1","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.9.0","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.357.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.9","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.9.1_1542631430880_0.32347917562771533","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"lambda-api","version":"0.9.2","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.9.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"0c588d3d98ce40787c1ddf17b49fa0db10d9c8ee","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.9.2.tgz","fileCount":13,"integrity":"sha512-P5DCxtpibDMPcixBi5niYK/f3xkmn7W6p0yQpqa43vxemRCGLGkF7iUkcz2Nb1SYUzVedZDw/oHga5hl6ADBmA==","signatures":[{"sig":"MEUCIQC/PNuWcxzE05uAGA0h9ELWSivzAg0y98wQYVkr8oi4vgIgNpwkFK1nVES5xTYZopoVFUh2erv1JqvLdOaPocbPrTk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9KdgCRA9TVsSAnZWagAA0qAP/Azowsx8W1ev2P/5D5/a\ngKgMZJegrmApjy3EKMCJe7ROkmoRwXKZkqSuw1RX46WYDpO9ZVYBHa1V9FV3\n/UZrElnwVMRJG1K5YZleWLQXFLKyblJxDB9vumMKC0r86LQt9UN0F9GY6aWR\nj2+edr0WnOmD4m0hYJ+QlmTNEEvsnjjn8kpX0smJNZ2Ddvj6XKxKHkjbGfeY\nMmew4U8YAbCDLJxcI0/kFMT+E+w+KJFEoAgcVypEeSSyUYOgC+S+DTW4FftJ\nAacyxBam7QKESg3FQrKe1m2NKz7Oy1RN+WMw27CY+slhwwtKTz5rXGvOwuqW\nffRvLmh+jZdoKT2afZDLL7RrEvGVGhBQyV3NH+gqlttjDN+Oa5EuGp5CH/+V\nBYFjuxhpJnpg6eDfc3QT8UbgMGrhPNRRxcIkrfjk5g8HlIIC/zPdJREQ1xRv\n8YdUKGJhN54MSFVw9flgIMvo5074v5iC7ryqR/NaFC/mQiVj4/g1LsQW1H9b\ncIYzjiFAU9a1RhsZTn3RhyETkhvwQ+FcSyWG4eh6152jsI7cIx5NqK4XPHlo\nMgs6uyJQpb3758Xop54Ya2/SvO0Cx+hSVPL5f/6CP+OroLixyfGyNPpMwsLH\nNEG1/zdfunj/xw7bpKmopfS5XIB0TxNLWY5A/w4/QpMvKTS/Td0SRlEsQjGG\nPXkD\r\n=Rri7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"881325cbaa699243e3657358838707b9fc729737","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.4.1","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.9.0","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.357.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.9","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.9.2_1542760286983_0.7112170359297965","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"lambda-api","version":"0.10.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"2dfc1f36825ba248b93a8438b1cccddcf3ab7700","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.0.tgz","fileCount":14,"integrity":"sha512-NRsZE6PssFXSY7fp16TkqT9KNpBYn/4Lma2LVfERnzrooqeiLOyb7n6+dYYQqvbDu+qebQN1xhNxuyMjOuRkpw==","signatures":[{"sig":"MEUCIE6pg7SHeXqZHlDHZJd4sN+ogO/Bx6r9qF8xT8mFThZ+AiEAuty7/rs/JrOK8so82059BqQT8iSpLMDOn3LoTLjoNrs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMr1FCRA9TVsSAnZWagAAfooP/0D9vwDyHM5BhlCay5XN\nD/H27ZHxK0T7Q8YwebGFpJ5HdFMlTuBe2H1VfW57ifqumA4yj0/grkWlAZBo\n0XKEqsJPJCtVfOyBbIMsa77BoAcACHGnHQQnZ1A6HxuOm/6LcvwLm0Rs/UOV\nLuQHZ3aAvFLIG1X1cgORebSKg5XDfx979OMAHpGjJUci1AG0dW87wllO7QHM\nGDQog20hj3sS7wBbXMkDqr0k19xt00nEeosWWxiUyGesqHL5Vmi1SxbgnvvN\nA0gQh4lPW4/eq39YTrO01A1zocu+z/3Gws+O4HoluxzQgRhpZb6kiY73mNJc\nra8oCsY/WmZRh3ajDXr4+msRlx16FiUekOADhs3YK8ih2eDfqfKj8IsBxukP\nFze1a616sevqBCRx30gQlHquogdsuMpBvwi8LkLBQxZKNNkDcztNtAKYD92h\nnF9BeKbPvbxJAhQeQaGAU2iVHSsFC0mmnoRBIdtXurz0krOxNvpflZdNMNU7\nPLzStL1aBQ2B/NGuh79pNRpL0ZZf8gnFIiRSjpsPZia4+jK43U+btFN/jQSi\nor5mLwSKpIfL/krlQz5z8yHhoeZP1nNh5/gfvMRC7t49ACf4wooFOfEjdxQC\naZXgXQpTwDOYLzTFr9quDjJlOzwZpC0qWkbAycp52OF6635jqD34SwpGizee\nszW+\r\n=t4Q/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"9337a914b897c34ef55defcd47a9a87a97f6e8ec","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.5.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.9.0","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.370.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.12","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.0_1546829123959_0.18484833395426037","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"lambda-api","version":"0.10.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"48f5ed454aef07375422f7841eae1a7fb0b53555","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.1.tgz","fileCount":14,"integrity":"sha512-m8D73KGCbD7qmMGxZzgezqbbAepX05VgaYTQyodPav3PSDdBmqd0cPKL771U0DpDPu+7mDlTXgY5OCoEj5mdwA==","signatures":[{"sig":"MEUCIQDS+MJiNlXmPRYAGKs743JsC+LDt34rDaRmwCZqQ2ijVwIgPPTr129UcjEJtBRyMtXL4IxPPlIts8AO9M0wRQdKwJE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWlHzCRA9TVsSAnZWagAAIHEP+QH913qi6NDYHrvF9tGi\nLg6dWCNycyYvNk8F4Bpnw0/IpA5Bc/bFzpzywCNMGwE4WiPiCvDZq7AGnCmg\nXLHotB91WMsAG1+eVETc+wfudcvKvOvxdUfW1vUTMXA4/JVqjlfcYTylHiAD\nNnbFhtfFEQEpaRHK9nAILhXmIkEAtCW8dpiojPxI8tPYS+v9FnGTG+UpLwlr\nMg/hKVpFro8i5tUDr6karBw5jghf3FtKDwWl/R0vhJIdGhdIJXBx0fyhglaA\neoUpa3NywIcHTSIdtuQaZjxtLZ0+fQe5BJYfPm954h2D64q8Nir9xmy/WEpd\nHnPDdksUYKINhi0wWo1Uv8vdOYps0K49cOxjcKeMczAn4U11aqOquFa1XYkq\n0/FALhaYLrUSiWKCEM2If58s71XjuU1vC5MEjklgU0xMTDa5iy+2J7qILXXq\neb6Ie99LuJCbK1Gay4VDCqYA6rdA+N5DzW2sZV0vLAe/aPsPxfHlv9/Bhewb\nd+WiXXtxvAl07OuR9kjM50TcoELjA34mMV9cjsxFqnCe62vpfSuUeIbF06gp\nA9pBUOfIOIXDsgVS8JMY0rjUrJ8aGiLUJ+SkWQhI9+17UaTlgq2yMnO9neR7\nAIT6DsG+tL2f+piTsXauMdRTGPsG5dIePYD0ZnrNBRpnboyJyev37hHlINvE\n3QAX\r\n=/NL3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"e05cde6a9278d4be1d871b578e711ee636828548","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.5.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^11.9.0","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.370.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.12","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.1_1549423090553_0.7310273827184961","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"lambda-api","version":"0.10.2","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"e28a43fa164b8d4ebb73124cf3b39250090e97f4","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.2.tgz","fileCount":14,"integrity":"sha512-RX/Z4ooWs4jzm6cxIfWE/lsNX8Wjg6p27vVCyB5lrLsPhtFbQriaA0fG+rXA9/YI6a/8VHvsmzYKijbj5kB5Iw==","signatures":[{"sig":"MEQCIGWmevSYwwPYNpHe6sCcM2p2K2mvYM/xa5qZtW4dlmegAiBKclKdrhNNG5DLbyRzuKb5UcouZ3aQudPFL8uM3CwevQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQ0zDCRA9TVsSAnZWagAA1T8P/RsroUr2BdB1Kfw/xSmP\n1FX6z0/DIULkPgSPPr/EAV+AiMjfkLO404X9ZInDHctX70j8i89LvVeDsD0s\nrkZ50Qwdbd0Ij4ChqvP47SUHa9fFIr7eR9cF7PZNatakUhp5iD7xKS4VN6tJ\nVcEjct2LuB/1Ppb616WXncWUnWM2DAvI1jzRLe+6SP5NnSNJeOim/ywH9hCN\nuJ7tfiiNtYy/TrtS4/yeBjH+b35r8fE4Mkct364LsQIXQDS6qROUBijL3z21\nFvuS1r8a0C1oWiIQo6kLXbwVEDW1CrBuImYi35RnjV2nIhcuQtlrX7uyc3k1\nmk9tv2KiV5fxxitWknLJV/YzFZ3Z3Vh1SFnsEKTBM45l4ERVxApV7g09bcz8\nQQPv2hzZDHO88xqP9WBwv5ePfhlu/j8RI2DzSUX2ga3Xg+ID9b2pYeTTUXWm\n9fZlK9l9SKQMLFp945sT//gxiyPuLWHUG+Cc12bNJsKWWJVfwfWAr5pabKAY\n4pp9Q3kYrlg3hMRQyW9GEMOE2WoHVFoQyXCwdm1PanTnuD1v4SKdgYn1IvE1\nj6TdrfeQZmby1YWmrC7OfltiMpYjzAtoky0EzO3KQuRB0PW1S/joLg5pmoVt\nPT1MqWejVps8Ww7izXSVxRBRSmlzef01638oCY4hMTPwYSbqyv5RG06gNidZ\n38Oq\r\n=NOqk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"b2a85036acfe5c1fe1d5cd285766101ec4d35d3c","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.9.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.370.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.12","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.2_1564691650427_0.8505633975041074","host":"s3://npm-registry-packages"}},"0.10.3":{"name":"lambda-api","version":"0.10.3","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.3","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"c8d7124dbfa664c13549e70a0950d9b7e8448d78","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.3.tgz","fileCount":14,"integrity":"sha512-7dJtmIvw4rjjPuGpWqptPg7Qw7Ho86zHc+iAyj4TQ6cKOrIIlddG1cn8N2CIhRjrXdwHkga4fs8KBjI19YgotQ==","signatures":[{"sig":"MEUCIQC8pqFFdNqf9pM4KgDLSuP+b6yKle7UCd5dkDKsXd17xQIgUSs/IlxNrOSdF2MWAGWPoPbDDToHtnXiQzlxaIkX+Vg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduDMlCRA9TVsSAnZWagAAQiwP/1bRBl5qh8uMTjL1m/jy\n6CVzK8gAGTiAHiKCE+cHXH9W8+kWS/lOZKJq5Qyo2y58b86RI5XjnbLulEOb\nE2MxRrpW39zTxipSWz070IEfV+oKWfBdZjzGdkpthMc3i/7En+dsBFV8zci3\n8RytoAn6B899UZvT3qjnuxKYH7aV4a+Hx+Fly5080EZj4fjm74Pyo1J/aZyV\nHGHugU7sVzDNlGPkKdSNZeueQ+jvcRLA1kbsFhpQ0chJwx/sIDWZAJOQxiEi\n41tpe4yPeTQSwLi9Wn2DViBckufqbbYt9JZ/2tr68YMy0NyrhvvempkSUXcb\nIRFAeU5ZBqIt5gUtn60G3BQdNUeg1UzfMEGU7KYDBVqgE25QbWskAlgAoao8\nwpFV2HggTVxw/UZH/oRjkdbG6juaM0uBdwNq/CVuLEd+412zBzsDp79ZmrWs\ntjmhWALEAd/USY1GwfoB3SOAOc4vz5NTp+LF2+P2dLZRKHlPH7DcbYTmuWPz\ndk+5N33tw1xoBtzDJ7P8HT3dWwPuO/f4oI9kMcnXwLp/JUC6iK89pRdUSNm1\nkW7OegXxlfgqjiaFoQPdSc3WLmZImO+Ccegm6qafGxWUmjiRv74sD1NOm4Qy\n8hSpwLw1LKBZiLplE+ojARD8VPOPiS7psyWDRm6o5wpEVanV407BoGSFW5Jx\nGLNr\r\n=6TOl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"48d5718ec646ab187b0249ef93987c8d2199883d","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.9.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.370.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.12","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.3_1572352804857_0.8727266587119431","host":"s3://npm-registry-packages"}},"0.10.4":{"name":"lambda-api","version":"0.10.4","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.4","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"0712a92ce840995b92a2a99da78387c21d4f8973","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.4.tgz","fileCount":14,"integrity":"sha512-6egpxMunATKnglX4koFHGa+YWtjVx1CCB9Zu374rnkMkHZiV7qer0k+jbMNEK8xhSlzn494hJHTUr4BSOy12yg==","signatures":[{"sig":"MEYCIQD9tStQcwUdV6nUCT3AWEkbStyGOVVBpBWDlyTVsezYbwIhALJz7+zDd2e3dDhpf1uL6T9GCYsgXOocWYSogdRJK4sX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduHuDCRA9TVsSAnZWagAAZBIQAJcMJLmKNviytoZEhOoY\nG4nvTKaRlt2xqeU9/uYrcFUrXkZD90BuCql1DtAgpTJsQOHETBWSYsFLyYfU\nmc7pVPUtB0RWcWRHPwpaN2osB4d4STa4WlYI43aK2rGIkiyOsScibVrPp5YI\nSCwQPh64i7EiVsjDzCKb1f3+A8WNyEg1p86kEB61pH9OLzMGyx8ChrjMfrgN\nlhJdexxdGkFqboKXvHUJ2hwwfx9+io/Gelv18qkPCmXjNDmg4RZho8yf9Uxb\nAdTw41ASmR/G0/nmivx24LiM5euufEh9mSzzchny7Me98B9Hi5WHijLcp6FV\nGBXKIqcl1omwVu5VzEUHq8ZvIh6tyScLRaqpGc7qCHJ8wqLL8xpQrcezY9lr\nTgLm3WfQw4m2g136a9oHhMunsnqnjLNGXStVzICYDeDHVLRMJtWRvo782Qyw\n23mX4z/BcgC/YPvyQ2tvosupv+yhCxaGVHyrB41UXHweSijbbOmQu9tW+1d9\nYe6xxWMFhhOJGNAN9fA0eBTyEBb07Lp4IY6FRFkzlZQzTljk/i4rCuCvdZwX\nPtPlZ/VewK7PO+GQqMnShs3aewLSvzwksznSa6qTl9G37SRIk3fp+G1GklqN\noEiJXAASraoVE+GiY2vNK5chViwTxN3DkyhLUTTJ9D5UMmtheExQJg9p8MQQ\nZhUb\r\n=JJ7c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"30183b2645320e5824257d9e930e029da9a7c5d0","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.9.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"8.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.370.0","bluebird":"^3.5.3","istanbul":"^0.4.5","coveralls":"^3.0.2","@types/node":"^10.12.12","@types/aws-lambda":"^8.10.15","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.4_1572371331350_0.5298752489560365","host":"s3://npm-registry-packages"}},"0.10.5":{"name":"lambda-api","version":"0.10.5","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.5","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"fd7cad86f1da5e623301ce57489de73b86d5fb15","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.5.tgz","fileCount":14,"integrity":"sha512-3HU6PxZpAQVr+P4OvhPUYy7tnkFlp3jdxkL0tEB9DF8U4FV+qT2XXNblwDM2y9FD729GzZQh63Nj8WPbiGP8Ew==","signatures":[{"sig":"MEYCIQDXBe9g8A/N6gfJcz3aiRYF9x7zYpy2rd00h1k5mVR0mwIhANqRC+LGRXxf+hD7+xx5FQck4D5k+wRHlYmnhxvcKaB7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUaP5CRA9TVsSAnZWagAAEYAP/jqtO/5bVMK7BZRhXBAw\n7VGr3XLs8sH+tX6ehBNhYunNDX5klCz5EgrfKjRjp3xGzzMvrw317yLeMFB8\nBrbH0xRBoTH4gjGpr9c2W57MlUQLS27S85+hgF6MJYKDYjj7Vg9zO6onTWi4\nP590zdsYnxT8bLs7jf3R35IN323qqbzWVyTsp9NAnwUemqX86duGtbc1UbFW\nezHa0SF2GbQhTNYPhB2oP6TSA8ODz4OWFHISb3/4aF9Qg+XFBVVAbyGDtZz7\nvD1l0t3UncZbb14S45yao6o99luyCgVlZ28I7Ot4Z0FtsyXabfriPsXD0BRG\n1XiIBZvF7k7ijjquOxWp2oH7YJLXrc8FzKHTY9lrHmdUajesKBXEWIfDh0oW\n0hPDNuxCLY7A2ELYy2RM87d4OnAHn2Md5yHHXg+rmiGNyXnUHIDjZMjJq5KX\nUoVVgPSUCkIFTV+fHURfEHFCE8nHpikciiiMDwX3PXdTMt2qpv8KodUFc9Ez\nloVjK2NVDrcQ2QhkpbYxN60FglqBBfhy0p6/c71xia0sBKos/B/lNX60gSMn\n8OKSmP4fw0JC/q6GISvvQXmqRGS65y6buo+d+XBR+3FVeVB0DtYpD3q95Puv\nqkf32k8oEkyirM2/VAcUT5gypmGIRgJdvyxaAlR+Jf5zsjO24K+S3+tsDsoV\nFS0o\r\n=V8Xi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"11c6dddc8aa57ce72befa9c48ea3c7b111e8ceef","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.13.4","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"12.14.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.624.0","bluebird":"^3.7.2","istanbul":"^0.4.5","coveralls":"^3.0.9","@types/node":"^10.17.16","@types/aws-lambda":"^8.10.44","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.20.1","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.5_1582408696348_0.8656584520545976","host":"s3://npm-registry-packages"}},"0.10.6":{"name":"lambda-api","version":"0.10.6","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.6","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"462d57ad5ceed27b915a8326fe5f1a49f11d5ecc","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.6.tgz","fileCount":14,"integrity":"sha512-Tjn5GQEI4N1a3CojgphpwQX/2692czUykRoG2bnTIgZ6hnRiMea+KlWatD77r4HwF66Uj6xgOOs8YG+jC3xuQg==","signatures":[{"sig":"MEUCIFXBYCzoUJ60lTi6wPF/Nflpeqr/ml+SUp8Ys6ibbal4AiEAiJzqGZ4Su7mIp7QHc+1jaW0KVB9UVHg5bP9YR3+e50I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep07aCRA9TVsSAnZWagAAvYkP/2Gi3TVFbPbh8PEeELXx\nh292j+4Raqs2AgjOWROCCp1lBnO7/MzggE60eSukujJDOFLq7xmMAJafTEw0\nv20OmB5PQkR+GLHDy4WUqWcPFxvch2Y3Q37ryYzlGX/PpKWVJNvMnxPRRBkb\n/BuzBZSLUbzZlHN1TiHmauBLJwcnqzKCscvJw31sM0eQ6w7dIYzY8vOtpWjz\nTZL6xD4Htq9KPGpHAx5PHwzGGh6CJ31IXRuI3f2yFIuaEA17hVqD3jvVzSBt\nYi6/KHn00wNb9P9pYlv8YRTHqYYgS7R0gjunQD7892P4ktPxmfBa6qFHj04Q\nHe6uxGo5iJ0BUMtnEj/Y/MHCMUrdyKG3FwFEJgBqe1jdaZNUHeYaF9zLPpu9\nYjrpLpswSI5MYw2eSuxF9a3i3NjspmuHhoIgNtK+UMYemksJFyW8rXb+1bBC\nBnQBTuO+b0yHWj323AxyAD+/dlV7gs34GGPpw2C4obkJsukkTz4UDqML/iNU\njuA+asKnH10VNHcRcitdSaaO9IM9yDjqy1yk+jX9KUA6OSGjXi56EO8VQq6s\ngTWT9UseYk8htC1/AyOU/8oEy9EGJqev8/jiNWqt2/r5k7rY/r/z8pOeys8T\nJk3R4RKGtz98RCPSVgNKq9HTjUNavwkSTE29MebKQbQ3TPe5eWiN5iwZLKWZ\nqdmv\r\n=PHRs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"3923c43bf3cee6fabcce1153d7d20510128c8e0e","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"6.14.4","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"12.14.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.664.0","bluebird":"^3.7.2","istanbul":"^0.4.5","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.20.2","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.6_1588023001343_0.48618774382931873","host":"s3://npm-registry-packages"}},"0.10.7":{"name":"lambda-api","version":"0.10.7","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.10.7","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"33a772aafd7f902188ae0865048c24a91871d474","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.10.7.tgz","fileCount":14,"integrity":"sha512-PEentCSz6GUpRxdCc/7Nq6bmjNvjjXJmLV3Y2h366NWU7vOE7sqdVtTTyXaf7TMmyjyIoBM9y/5fiSBdz+3K3g==","signatures":[{"sig":"MEYCIQDKbLV4ZaP6uU/Ll1Gj2yUeEeTGP6pqC6GecchQO2uK6QIhANeNGLHCUMx5zovmmKatNhrUvr0qcfAV5X/MCmC3vZb+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":148737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUPezCRA9TVsSAnZWagAAeg0P/jqGrIdI8MlJd+tXlQ2q\n5k43kBwT3770yFtPtBHkZzPYY1pU/bn5YV8GWHWv3hclgjLH4fgNFiUPR9qC\nSGFNqF8OcdVrNNdI/RYoCwGnFkf6JtIK7QFOPHfsHIw0MXSx0iqLJ5IE9+Oi\nqiCtjzy3FClbNaRCYjwaE08+MLyoYXVNa87bRgiybsjaY7K90tL81quO+KOx\nW2xwzKZNIAreYX/LNTsMbo+Qgane79KdztC0RQ3ntuFI81FGtstiyMGcBPbB\nmLQBhkvxc2XgYSYTd80IR/EV29P7PrsB7uJgCgoX4akq3a0AZlqjeXiv7mqW\nAAnx348pU216hzsaqUpLxJ3p7+mEelgAFheK3K1GwTyfWq9slrIdvEnDej6e\nEqR6F2dpCOnjYgwyB/1UQibT/FBWDa0Xe15jfsxWFU+58dIy6K1ikoxotuQ9\nx8y8m6zY9S86/0PBWl/q0R/4eB0iUyUNjqcJ3WR1DfangG3U2Z3rX7knuOYG\n8GteAuTYGnDCYhHACpChW3VJGoAPcWneHCukcZsFKcoAKyJuJUZMgLJNDHNo\nn5V0F28n7hoq7h66mhVyYO09IYgET2hF861pL41mQ0iHIM24s/lh8No5oLcF\nZpjJUo7l7E1Oe6JbcyPKm1aNPi/De4JQBSvlOvgVKt3G7g5U+Y9OX+RvDekw\nP23G\r\n=pAAZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","engines":{"node":">= 8.10.0"},"gitHead":"292022e066b039db66a1789f5aefbd37cc6ee91c","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"eslint . && nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"7.5.6","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^4.1.0","sinon":"^4.5.0","eslint":"^4.19.1","aws-sdk":"^2.664.0","bluebird":"^3.7.2","istanbul":"^0.4.5","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"^2.20.2","eslint-config-airbnb-base":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.10.7_1615919026811_0.9197920462007263","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"lambda-api","version":"0.11.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.11.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"c2e87c96217c90fa837b9c73c85e020b0c7fa750","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.11.0.tgz","fileCount":15,"integrity":"sha512-xeGRa2qglkYU1M9hw1rdlqHxIkMx+tjM9a43Va7f+92aBduJPu1bb9JXyewxXEKutT3cy8uslFhUmNiqA+h0Sg==","signatures":[{"sig":"MEQCIFw1pDsyAWW6w6GCkC4kX635J16cNXw5PP/UV0D9DI0TAiAvQfd/2gouN00zLsNi+l7WmvVrEJsjf0iux0hOAGzCEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":160784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3zVBCRA9TVsSAnZWagAAw14P/A/cyHT5ptCRyMww/gEw\neX6lGs1UXqguJiU1vF50go/I0rUYmhcmnKy5ilAxS8BUB+9KeAlmy8vaSGnw\nKji04OTHWEULPBo0QfE8L9I9s9Id5QLQNVxI+YyvTu8qxCsEx/4/9KuxB4lh\nuQgJEszXwqqdCK0SGPf7hWieyusPEBEvMHSwkSnwPxcnK+erZeKdp4TlaMO/\nqbLMjkuXqD4EVXkk4Hm5iOuPC3aD0dEtlNyhykLEI82Tmacs3qwrRhFOiM2o\nc8ky2MKgTZvLbKv7RtvrY5/bGFOnAHJJ4sIctGMSQqz6NmypyAKNdIhM5CV/\nJgIoD1EQFz8+kujPRQRHt2hfl0cg7AvifTguOgFuS6btMDbJPxbyC1A5azM7\nq1hO60HaAcxY4+xosf+OWR8JiT8W+Qs94/ekRkOsIVRc/tMlz0NlqW1tThvF\nwaOHIaWvtEIsvSlcPfvvAgdMPh1+d8RhsS9D6dEExIHi4Ig36tyI1UbZRl5T\npxEOXZYXIYn36n2LTxHa6UZulKyv5QY4QSjDph4FcjUfY8Rbzb6fBg3GpK13\nlXZlJjiso93TVZME4PRsBfKE4WF4+Z+XMsazuP/R5FGikoERPzgaYPINz+8w\nS3QnjWMH0P3/Fz17/c3Mla64+HEwjxSQW8c1BfpkdPImeysqJopwcTLG9DtL\nR5o5\r\n=2iET\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"d762d86c6058c62ad7365ceade39d7b8f6a0ef8e","scripts":{"lint":"eslint .","test":"jest unit","test-ci":"eslint . && prettier --check . && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","prettier":"prettier --check .","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"7.19.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","aws-sdk":"^2.664.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.11.0_1625240896096_0.01141522853000021","host":"s3://npm-registry-packages"}},"0.11.1":{"name":"lambda-api","version":"0.11.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.11.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"09bd51df34dc9b80f6c28fe3954e6b191cc5a245","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.11.1.tgz","fileCount":15,"integrity":"sha512-/0jx7rPNBgsfKRnjFKsk6v/I8cCys1WLic/uw9/9xhb8+iYgvS8QibRB8wel/F74DtiH5gR7n6phX5jI8uwY9w==","signatures":[{"sig":"MEYCIQCCUxqoupd8a9K2VinYWD+WbFQzObOE7D0EXhhIU5e+iAIhAPx0wUnjgYtQc2ZFXrmc87SG0GGgXnR4kHSAtUqYVHFF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":161415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5wRDCRA9TVsSAnZWagAAjD0P/RP5VETrvl8oeTjc+YMy\nb2mJsgX7FKmffulZgwwwmY7eryM9gqXTAeG9F+6jY7xESKZ1p9facV/TD3ZP\n88xb+1oFarlbUNT9v1cxL3RKhSKg57r3fe7i+5a1zQFmF/JCgwVwKBGAKc1x\n80AJYaRskFPrnj002ZO7bJ9xEgk9NsJdLhHwRFhDAVBG2GMf0ouAtcwuqIAq\n7qsuRwzex0yPV7shyyZ3or9dK8IiU77xOQToIy3RbpHbDw4vQ7kNXxACiFbz\nxyUtxhCOXePKLeeePZPwU2WxtMi+QBBaSv1SWtm9SVU42pjWiIDUnXSnUT2c\n/SsmH/+cZGX2hnGQhoCcjfl2LqFjWsf0bdhNKpXurWEzOkGC1O+2Yl15pqTg\neu26optmtrzFRVhJkg73oU75vuJiEPOT85iKsNLR/rEGDYizSuU4cRqlNZF/\n5wAK2t+CaKLUFjxX+OGyhERAHA0w3JQeFz5G0mWO5i4ztNnzIfdrxsxFXpW/\n60Jq/csCu3H3VSgi8mRSSUNr23Dis4bOiDj9Bnc+NzkhbpWbnIgPenLgMxBS\nlKaBzVjTUrAUK0Ps4xjn3tAB8/rwDg6p/x5s5CaVrYUnHG/DYUm0v7MXiLc7\nSdT9j2jlJGbrzMuU/Zdhwljc7NeZS7XKOwvSLqm/PpgosTiwYPkc2c7mfXnI\nIelM\r\n=TUlz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"28eff9db5d0b890e02c46c7b5af4b2cc4ed4f7be","scripts":{"lint":"eslint .","test":"jest unit","test-ci":"eslint . && prettier --check . && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","prettier":"prettier --check .","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"7.19.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","aws-sdk":"^2.664.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.11.1_1625752642867_0.18797805213121","host":"s3://npm-registry-packages"}},"0.11.2":{"name":"lambda-api","version":"0.11.2","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.11.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"32a27a95983100cc1d7a5dd2aaef6c0f9bc3960b","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.11.2.tgz","fileCount":15,"integrity":"sha512-4LPthd9sg3RdeNul+vz7XDmjqR/RW+Mr+4w857IgVcdcl5UqDzZbK+fxB7dH7HYQoERIusXuzUU/bolZed+agw==","signatures":[{"sig":"MEQCIChdr32khra+Tw6gtanoH2QcG0Oi27KRTKY+nRMooeYNAiAqQzCpGVfwaeFCC4jWbLYqAuq1i8JBbxN/Dh67wLmZsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":161527,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2xfqCRA9TVsSAnZWagAA+H8P+wSTRTp2g4hQoAqg5qpm\nnfUmlSOy4bTy8F/5O3j4YlSEso6PzBlqufgndqYIFcsCgwfaB7WuLgiA9brI\n1wobgIOA+izBBy9a7iqKMo6ipCyjQPsJdXdZI2et8ARiDurmYXKeQxgXam7Q\nUZlPDty29AEcQRRFekrHAb120iZaS3eyyOZxVQQIcAtcQIwWfvbxrlV61Xyi\nMcjeyk26bYuv7n0jK+xnVXTtSJvgaxhiuuf2iDLMbI7l0EslmecUnO/7MsB5\n7RxMLrtTiBAr3yVpJjCyfMgHrIVPjpXh++LyAFwhn0rYFS7HlBACdnBTxJ+q\ne7HYa6dt9+ean6RjhtC6/7giEUdPTX3by6g3mLQQKmluFvo+eadeTw2dx7cP\ncSKR9RNNi489jMW6Fu9JBiwc/Nsk9Fav7Ulv2j6idMDG643acVm323pQOBuN\n8TUiRT/TbyomiRH02uketHkaT/klTJ0CbVK9QmVH/78uPmtBrhWTd2TVGvWg\nwe7Ww+ber7Qs0iNU0eoh0yzqQbL9I4ryrt3BAEbSIrZaU704ua/cFt84rJ2j\n31PR8m+9XdNce+k7F+XWWfei/6MvExAH0feYYd6poSaGtbmjEOmwD7q+wLzk\nnNpU1H5MtdyysgGWpgzXAmQF3M3dhCZbwIzQYBkxmg5XjHVvLUgLvMbTfP8p\nOwfm\r\n=Le+j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"5ca68708194a26a66c65b010c00ad5ff3082dbe6","scripts":{"lint":"eslint .","test":"jest unit","test-ci":"eslint . && prettier --check . && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","prettier":"prettier --check .","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"7.17.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.8.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","aws-sdk":"^2.664.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.11.2_1635195123708_0.6160859354902986","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"lambda-api","version":"0.12.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@0.12.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"e3da377b865b020de60dcbe3f16ed798f1ee2c45","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-0.12.0.tgz","fileCount":15,"integrity":"sha512-o4bogQhD36xwVKBdqwlE+/R6Jfg8XJeIfRvkPTNrjUyXxz5QNwMRphHRMhi1dJJkuvlWOMaN5wupUfVwK1Xnag==","signatures":[{"sig":"MEYCIQCjPTIv6+Z+9y8GKBMPH3bulBw3XNIc424eL7iXF7vwRgIhAMA4r9s+WXuGMTKMCqFfjuQZ7UN9NqDXIsubOK/eVyZd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":160442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwaxCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmQw/9H9cRKktftLkc9FOzeBz81BS3LBFLKk0LMoJWKI5EKS4IbQkC\r\nwrcCyJxz0Hkdf0F12d3nw9mE3CznSWfOEuRhgh8AWp48uWivA5XMUIBFqucQ\r\nZbrTRm19YrloRdozcZkDT1WoQdQ9bwO+L2iLIOJ5+pXPBE83zitRvtqp6IVr\r\n5vddGXGRbu5DjCJ3jqLjw0nLntmdilnSO7Z/osEfV1NYntaVx8IGv5gp2j8e\r\nPMVldKjdqBdwMSArDP7EyytUyHMS2yPOehAUSdqAaTFl1QG24O4Xu8wmJQle\r\nzk4cfqMdxXZoh9uAArfrmOz6vLEAunPrXBK1trnIPzK+z5bNUiT3vnbenNIQ\r\n0l5klyIiOHlntLmBoABPPMMHEjLcLhJvO6c9ImrYywSN2mi+r36oKTIXmBd2\r\nh374nVhCJsYzkpC5TWzKMDyE6pmf8nLwiB8WTpk2QlY+f3liOuhg/wwlkflC\r\nOLax+lDjF3EERjgL1bQLk+EAFV6paFpM6sfZet30HLn+V0tu44V0WHLO8oRj\r\nnxI00VAMof97bNe8dVvX5vVSM73VwIXEp+vc2/gM8n3K+xW8NG0xcDb9ms2W\r\nX8y3NpcDCvhE5gfVfKxWagMTrLTJv/ADBFNymIPzyhTT58/SIOm5ulUZXRBx\r\nHwRuUANfcrnLT500yo391Qa3oMZmoyS6q3U=\r\n=7ICJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"21d17af3a637881016f6033399e6a89368361dab","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"8.11.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","aws-sdk":"^2.664.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_0.12.0_1673636929944_0.7539777271281691","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"lambda-api","version":"1.0.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.0.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"e39697ffddf178e367dfd2ab54a0e2183ed9a3c8","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.0.0.tgz","fileCount":15,"integrity":"sha512-kDIldOFV5VSuJAh51DYh88lFf5iuugkaoKLYGJhVV42wBu4WWrmdabe/B+4Otg2mrVsBY4MIMIUEIymzcIrgTA==","signatures":[{"sig":"MEYCIQDdtYAgDAaEF8G5K6wXB65D6IsHWxOwfINOTq1RqKoNBAIhAIcSS1q04Zb6bKRpiLxPJbyf6WCtYS0dzV8NjgVWYjF+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCfn3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSGA/+I/Bgts/j1PsBr3CcyXcIZOxcok5RT91XlnZg2it7wmS2zl2u\r\nSnT4YLxufxEIL9dmMraBElJicxO0OSP76Zs9un/c/DN6xiTinU52SNL+ViTa\r\ns+GDF2hSba+kFTTJXoNiLFKLAr3/7tNF0iIDs/FVsiDuhVud/3v1ANQB3U9+\r\n7bw81oL//+0na0FoEGxZedNPBbuVZJJGtSNo8sATN0U5aaY2bgKu0F2T8nmL\r\nta6j5SrPETCE/nKPbxvDWQmlHBu0IkFQ8E0cwwnr4HbQrtr8k1RUONyPlOKu\r\nT0ddZ5sqRE6JZ+IKVomVO3fvBNp1EvvOkpQS5vjOEsL6mrclPO5HV32Pg9wI\r\nM/nuYCeqK4/4iZoOiSbqrprKs0ZAqR6LoliV1YTk9A2j9O3K0iK+VE+hWVmL\r\nIFAnNcv3HFH7unlUke+ZImpNYQMuoanKC+LZy2/O0huQfg1eP7mQxDYMJ1NX\r\n8HuhzGobCNN9IQ6Fv+iY73N8w6Al2khEpCAd6oIoXRiaV908/+DwhYLIL3bM\r\nOYErIHKhPQa6UvUonkvZulMZ/Oe6G0mAfYu1p59Mh7tY9uN8WvvgWvQ8gH8N\r\n+9Ld+OeX280SPe2YlFfp5BjQwunZgCkem1fgfH3+Pg5lVijLJEM6rTX9dHO2\r\naIGgT9kEB2DSgr/PM9JZi/0+Tg9Wh+FKXn8=\r\n=B19J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"98912bb05d034ba737fca639fd277eca2f886222","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","@aws-sdk/client-s3":"^3.0.0","eslint-config-prettier":"^8.3.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.0.0_1678375414843_0.12102887775411109","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"lambda-api","version":"1.0.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.0.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"3f80711e4a53cf58ee9f27a4360d99abee9d7d78","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.0.1.tgz","fileCount":15,"integrity":"sha512-ccPlK8xn1x3qaJ+meN/qIO7B1LFtMlgnxAR//Wd3TIV39Fn9vr2jHZujbCgPm+qaMDuFeBlefyy9N5A63paL6A==","signatures":[{"sig":"MEQCIG5GWOqEUfjtdUCSvH8JsmCsWLEXveDYIqCTKrLP41Y1AiBfcedUNL85fmXnpZgph4gz4qDrvQueH231yuhe8DpZEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDmYqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5EQ//RlBrFC80UW+uC9kqDyF2zCd0WoSGeJHvWubT0dgHRKWyWcKV\r\n/tkESFocA6aQEPfJpVZo24ttESgMUfQlikjro8RvYnWUx2QFuNEfSdJhRPwc\r\nYB9Ar/moUJEyX5SjN2ZKL/DyO3YgfprphzB3hoN1OGy0NWF5ob3m5eEqipmS\r\nf3hXHWNRIlP4WR6Wpqi3LbZCypKHy+6N+FF56GivXcn3cizdoFh3/jfEW/RA\r\nwhZLKe8xg/jJ9aLZNvGwhixQpdm3LDBdIR6cRLTlUfwyN0nfbyewFTJYyOGH\r\nU19DG6mEF1s1mP8CNe1IAIP4Jdd5K5xrCLy8QEsgKfBAT2sCt+tsE1OyyvSX\r\n3xmYGCqaaECCwEVoXGC+Q+dj40YJXxfjJbhliv8MhIoIkY4I8WxzQmRuwKTN\r\nMUK0+2aD8tM2NREUUdyMZeDBwjv+h89I+AWQ0STlzggTX0LRtwzz432uAw2g\r\nhcTjA/axVOH70qZUBo4PAq/B8QpFCXLnONlV9q41MopsYQaD8GY5SwjdAUC0\r\nOTsbiQoqAA/pR3dda2Cf71LW27d4Fxq27sOE5PVZ22qnWNapwdS4Wt8+lFwX\r\nkJqMkneodgjXreCMq/oNdiSF2o8mBkYJXZbGJn5vTmG2NC6Cs01mGpRjpWAn\r\nZHK2aHz+2IYPbUt7IC2h96kzM5w4SPvAt1Y=\r\n=DnhZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"09f195de39261e900dfba544b576927ae1bba86b","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.0.1_1678665258098_0.8871355026163059","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"lambda-api","version":"1.0.2","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.0.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"d3ce48553c8546bf6e3ebc0740b5553567b664a5","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.0.2.tgz","fileCount":15,"integrity":"sha512-QBjKx+bEUL1jwf/MAOYeVWkXrr+zGfPtCtZTiAC5EfCY7svL+29gVWPXe7eOka3v5ON4O21u5YB18XFDrFmDcw==","signatures":[{"sig":"MEQCIH6zCPYtv2S9xrneDEo8mL8V+CcvbCiNVGP/krCCOSJqAiB4R+HDoW+R3N5Ojyx+nTdY+C1XBbBH7KMSIZyREjlkdQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163860},"main":"index.js","types":"index.d.ts","gitHead":"4ed067639f545122c7688a224b08520ae9002307","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.0.2_1685802149768_0.45876348979173676","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"lambda-api","version":"1.0.3","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.0.3","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"d22f1e78fa9552cf574e6e0971d6e8ecbe296a9d","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.0.3.tgz","fileCount":15,"integrity":"sha512-tWG58btOkcbjYOGqaIlkUu1f17SEcsMTf4wJiv65Q7bY9kzRmHWyUe54YLW4yoCWy/JOtaGQzTKh8B0MDvckBA==","signatures":[{"sig":"MEYCIQCWtUCBf1sxIIGMQsTlYVROv0W2+3Ijc+4vxmTsYsCiAwIhAOx6kemqFEWJ6WRsxcnme4z3wudv3amyUi3q2udJ2gbG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164431},"main":"index.js","types":"index.d.ts","gitHead":"ba18dcdbdc2a41fe8ae0ae9bd52087b76b318573","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.0.3_1689110600098_0.5702303970461855","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"lambda-api","version":"1.1.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.1.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"3172af68e38b1fb3601720c9baa070ac6e4ce973","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.1.0.tgz","fileCount":15,"integrity":"sha512-iv0WS63rM92NDmvEKyUcNha9ob9nKbAIdAwRjY1PZaZWNi+ZF1Vk2HZC4Gx/+04vlRs/baW1kvEtne1X3yi0nw==","signatures":[{"sig":"MEQCIGmSLvJMrwj8aTxrsaKyx4Bhsj2hqDqv5j37dY3RQwO5AiAd+GDeRc8f8d+RVJoDdraMFSMVgMZC/tfF1GkQCxRAcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164748},"main":"index.js","types":"index.d.ts","gitHead":"8250574ac0fa9c04b352139bf07cf186df0e05d6","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"16.15.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.1.0_1718047567402_0.3506388328620673","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"lambda-api","version":"1.1.1","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.1.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"ab1c804a56df17caa2d9783304a1e0dc6bcc3fe2","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.1.1.tgz","fileCount":15,"integrity":"sha512-4SdCUhRv+yvon1fycKbgJOjEAXt1vPDExUcijy6bdN9IsBSvN2mtvWTfEhazYuAdcR9vl5R5x7jUTMTOdMHEVQ==","signatures":[{"sig":"MEUCIDnaV89lpgiJMBUgUtQ/KhLNBgvm7nBtEiA/JGwmpDYAAiEAgeSCVSYCXVa7JZB29Hl2olBsIg+9OlkmnTaLEaIv42o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164835},"main":"index.js","types":"index.d.ts","gitHead":"08a60d3bedddd790f8a8bac736a83e5b3c16415b","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.1.1_1738784754070_0.6950202766228697","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"lambda-api","version":"1.1.2","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.1.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"436d9ff102334eede42f9d95ad276af61295be9c","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.1.2.tgz","fileCount":15,"integrity":"sha512-K0vvXxbtlt50jN935asshKSgZi47I7jtR7uhVxzgg0m/frtXFdjvfElKIejxa8LDQHdJ/7sTho4Ls9YsKOdmpA==","signatures":[{"sig":"MEUCIQD1mRKwWhyQSLeaABmbcpYBqy3tyxCtN4kq9unZJaJYewIgV+/z7bjjYt74Y0UODTtQ3KdtTlreN3Z8C6DOWabgOT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164750},"main":"index.js","types":"index.d.ts","gitHead":"ff4f4968cdc9c21c29cbcc92c588eb701c0a1e8f","scripts":{"test":"jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","lint:check":"eslint .","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"9.4.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.1.2_1738860541992_0.5398839542561984","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"lambda-api","version":"1.2.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.2.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"7419aaf70304ed0612c9b5371221431ceab0d380","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.2.0.tgz","fileCount":15,"integrity":"sha512-8C0SMa/If9DUdycoNBECgnH80Wa1JzkNe6rl+biONLfBmIl0zVq7F2rAvLTAiMrHxw/X+h91jPVcTTG/htrCsQ==","signatures":[{"sig":"MEUCIEO09BH2hpI4Yr/FLJCYsVf6FhKyg4tothjiZrE1cvJIAiEAlKZ1SnzJOehz21PGJCVCwjnoe4oj0K4kaUXCa/Kk+To=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165423},"main":"index.js","types":"index.d.ts","gitHead":"76dc359154b4a9c53a6b9b8e696009d7096e2922","scripts":{"test":"tsd && jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","test:unit":"jest unit","lint:check":"eslint .","test:types":"tsd","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"10.7.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","eslint-config-prettier":"^8.3.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.2.0_1743874322343_0.13867023328178063","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"lambda-api","version":"1.3.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.3.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"2e5d6f40d3a9f0ec60b5a7d53add33423f4bfeaf","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.3.0.tgz","fileCount":15,"integrity":"sha512-QiwX+q/WnFR1Uehm9VQAakDr94nYTiq4+JYed/ZdpWYDlfNmBUkzGWYlVvT5uYQgoeI2e+6mRZZ10V+UM4RD7A==","signatures":[{"sig":"MEQCIHsld3IkgGqPpL4DCujjS3q4Pr1BW4qrV5LM9R8QF482AiAoOrRz8sKm2Hj8X/fGlMDv+QXf/eB0LjwWawlJhyjPXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lambda-api@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165994},"main":"index.js","types":"index.d.ts","gitHead":"cd2f50a668f610f642cdfc16328d53d97b62350b","scripts":{"test":"tsd && jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","test:unit":"jest unit","lint:check":"eslint .","test:types":"tsd","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c33239-60b3-47a0-826c-ce4955c7e057"}},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","@aws-sdk/client-s3":"3.470.0","eslint-config-prettier":"^8.3.0","@aws-sdk/s3-request-presigner":"3.470.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.470.0","@aws-sdk/s3-request-presigner":"^3.470.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.3.0_1780337702271_0.3020921332223725","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"lambda-api","version":"1.4.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.4.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"d74ea29394fff49e02396f38b2f1dea6abf83fb0","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.4.0.tgz","fileCount":15,"integrity":"sha512-SZKNghnkks0MYnroR+Km96vggBG7mK8DCyTUqJi0xxE94rMLSeZpbdcAlsNrddUYqzWkTDduyPgNUcXjtZsB7A==","signatures":[{"sig":"MEQCIAq35BFdEZOUsR3EMVXQgcnWIPQgSsXZuhO7N/8I/0VpAiAWPd8WqoifaUDo9L/tXBW7ZuEW5/Y6bVYPWb3sH+4OAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lambda-api@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169835},"main":"index.js","types":"index.d.ts","gitHead":"6993f0c3437f3292d2246cb8a7b5c1150d914881","scripts":{"test":"tsd && jest unit","test-ci":"npm run lint:check && npm run prettier:check && jest unit --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"jest unit --coverage","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","test:unit":"jest unit","lint:check":"eslint .","test:types":"tsd","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c33239-60b3-47a0-826c-ce4955c7e057"}},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^26.6.3","sinon":"^4.5.0","eslint":"^7.22.0","bluebird":"^3.7.2","prettier":"^2.3.2","coveralls":"^3.1.0","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","@aws-sdk/client-s3":"3.470.0","eslint-config-prettier":"^8.3.0","@aws-sdk/s3-request-presigner":"3.470.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.470.0","@aws-sdk/s3-request-presigner":"^3.470.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.4.0_1780758425489_0.6546994572905924","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"lambda-api","version":"1.5.0","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"lambda-api@1.5.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/lambda-api#readme","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"dist":{"shasum":"30b0b66fdc9f056adbf09c627cdd2734a7ae8cdc","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.5.0.tgz","fileCount":47,"integrity":"sha512-D2TcLYE2+dZ1vCpWGCPyHOv/u8oB0TBumjk+8/ivRMXAHEcL5uSY/LbdZmBF9/EODTJhrCCOJiKT2rR8h/ZVLg==","signatures":[{"sig":"MEUCIB9H9lYjGHnBCoBmzPAKjwDNHJT+Rp7zXStr/2Q4wzL6AiEA1PSdD4z47/tP0w1ClDgjC/deYi2Zpp73StJKhIwOKPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lambda-api@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285186},"main":"./dist/cjs/index.js","types":"./index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./index.d.ts","import":"./dist/esm/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"},"./lib/*":{"import":{"types":"./dist/esm/lib/*.d.ts","default":"./dist/esm/lib/*.js"},"default":"./dist/cjs/lib/*.js","require":{"types":"./dist/cjs/lib/*.d.ts","default":"./dist/cjs/lib/*.js"}},"./lib/*.js":{"import":{"types":"./dist/esm/lib/*.d.ts","default":"./dist/esm/lib/*.js"},"default":"./dist/cjs/lib/*.js","require":{"types":"./dist/cjs/lib/*.d.ts","default":"./dist/cjs/lib/*.js"}},"./package.json":"./package.json"},"gitHead":"6f45ad68e9a316eff33fcb6a0d189ddb0b69ebc7","scripts":{"test":"npm run build && tsd && jest unit","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"npm run build","test-ci":"npm run lint:check && npm run prettier:check && npm run build && jest unit --coverage && jest module-compat && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","lint:fix":"eslint . --fix","test-cov":"npm run build && jest unit --coverage","test:e2e":"npm run build && node e2e/run-layer1.mjs","build:cjs":"swc src -d dist/cjs --config-file .swcrc.cjs.json --strip-leading-paths","build:esm":"swc src -d dist/esm --config-file .swcrc.esm.json --copy-files --strip-leading-paths","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline","test:unit":"npm run build && jest unit","lint:check":"eslint .","test:types":"tsd","build:types":"tsc -p tsconfig.types.json && cp dist/types/lib/*.d.ts dist/cjs/lib/ && cp dist/types/lib/*.d.ts dist/esm/lib/ && rm -rf dist/types","test:compat":"npm run build && jest module-compat","test:prebuilt":"jest unit","prepublishOnly":"npm test && npm run lint:check","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:e2e:localstack":"npm run build && node e2e/localstack/run-all.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c33239-60b3-47a0-826c-ce4955c7e057"}},"repository":{"url":"git+https://github.com/jeremydaly/lambda-api.git","type":"git"},"_npmVersion":"12.0.2","description":"Lightweight web framework for your serverless applications","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","sinon":"^4.5.0","eslint":"^7.22.0","@swc/cli":"^0.6.0","bluebird":"^3.7.2","prettier":"^2.3.2","@swc/core":"^1.11.0","coveralls":"^3.1.0","typescript":"^5.9.3","@types/node":"^10.17.21","@types/aws-lambda":"^8.10.51","@aws-sdk/client-s3":"3.1106.0","eslint-config-prettier":"^8.3.0","@aws-sdk/s3-request-presigner":"3.470.0"},"peerDependencies":{"@aws-sdk/client-s3":"^3.470.0","@aws-sdk/s3-request-presigner":"^3.470.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lambda-api_1.5.0_1786207333114_0.39015962230307566","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"lambda-api","version":"1.5.1","description":"Lightweight web framework for your serverless applications","main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js","default":"./dist/cjs/index.js"},"./lib/*":{"import":{"types":"./dist/esm/lib/*.d.ts","default":"./dist/esm/lib/*.js"},"require":{"types":"./dist/cjs/lib/*.d.ts","default":"./dist/cjs/lib/*.js"},"default":"./dist/cjs/lib/*.js"},"./lib/*.js":{"import":{"types":"./dist/esm/lib/*.d.ts","default":"./dist/esm/lib/*.js"},"require":{"types":"./dist/cjs/lib/*.d.ts","default":"./dist/cjs/lib/*.js"},"default":"./dist/cjs/lib/*.js"},"./package.json":"./package.json"},"scripts":{"clean":"rm -rf dist","build:cjs":"swc src -d dist/cjs --config-file .swcrc.cjs.json --strip-leading-paths && node scripts/cjs-interop.js","build:esm":"swc src -d dist/esm --config-file .swcrc.esm.json --copy-files --strip-leading-paths","build:types":"tsc -p tsconfig.types.json && cp dist/types/lib/*.d.ts dist/cjs/lib/ && cp dist/types/lib/*.d.ts dist/esm/lib/ && rm -rf dist/types","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","prepare":"npm run build","test":"npm run build && tsd && jest unit","test:types":"tsd","test:unit":"npm run build && jest unit","test:compat":"npm run build && jest module-compat","test:prebuilt":"jest unit","test:e2e":"npm run build && node e2e/run-layer1.mjs","test:e2e:localstack":"npm run build && node e2e/localstack/run-all.mjs","lint:check":"eslint .","lint:fix":"eslint . --fix","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test-cov":"npm run build && jest unit --coverage","test-ci":"npm run lint:check && npm run prettier:check && npm run build && jest unit --coverage && jest module-compat && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","prepublishOnly":"npm test && npm run lint:check","changelog":"git log $(git describe --tags --abbrev=0)..HEAD --oneline"},"repository":{"type":"git","url":"git+https://github.com/jeremydaly/lambda-api.git"},"keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"homepage":"https://github.com/jeremydaly/lambda-api#readme","peerDependencies":{"@aws-sdk/client-s3":"^3.470.0","@aws-sdk/s3-request-presigner":"^3.470.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"devDependencies":{"@aws-sdk/client-s3":"3.1106.0","@aws-sdk/s3-request-presigner":"3.470.0","@swc/cli":"^0.6.0","@swc/core":"^1.11.0","@types/aws-lambda":"^8.10.51","@types/node":"^10.17.21","bluebird":"^3.7.2","coveralls":"^3.1.0","eslint":"^7.22.0","eslint-config-prettier":"^8.3.0","jest":"^29.7.0","prettier":"^2.3.2","sinon":"^4.5.0","tsd":"^0.31.2","typescript":"^5.9.3"},"gitHead":"dbce417a320dd3bf56c2a06f43e8dbb42d48b135","_id":"lambda-api@1.5.1","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-3xuCynCbkJSEEe2nxtiGidBpbwUzKyCnMR4V04T2aBJzlrAyGerZI/ooSckhi5xRwcwDZxAEw9/Muwtlg/KTOg==","shasum":"360728004afd9e2dc73c749afd9021d60c43d6fb","tarball":"https://registry.npmjs.org/lambda-api/-/lambda-api-1.5.1.tgz","fileCount":47,"unpackedSize":285070,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lambda-api@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEB8QVD9uNNbU4sdtM6pyp41pCQegX5XkREl2xgNQ7/qAiEAuIB1Coz3AecIgTMp5gRD/a3JoW7XCt9UzZyY8kzWW3o="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c33239-60b3-47a0-826c-ce4955c7e057"}},"directories":{},"maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lambda-api_1.5.1_1787416782158_0.0045516614301486236"},"_hasShrinkwrap":false}},"time":{"created":"2017-10-18T02:15:02.782Z","modified":"2026-08-22T16:39:42.599Z","0.1.0-alpha":"2017-10-18T02:15:02.782Z","0.1.0-beta":"2017-10-19T16:44:33.662Z","0.1.0":"2018-01-28T16:47:06.034Z","0.1.1":"2018-03-01T17:13:13.722Z","0.2.0":"2018-03-15T17:11:44.757Z","0.2.1":"2018-03-16T13:43:40.950Z","0.3.0":"2018-03-21T19:12:00.003Z","0.3.1":"2018-03-23T22:04:16.296Z","0.4.0":"2018-04-02T02:10:48.333Z","0.5.0":"2018-04-25T20:21:42.367Z","0.5.1":"2018-05-01T20:58:37.044Z","0.6.0":"2018-05-18T21:37:44.552Z","0.7.0":"2018-06-16T03:23:03.511Z","0.8.0":"2018-08-20T17:27:41.279Z","0.8.1":"2018-10-10T15:47:41.963Z","0.9.0":"2018-11-16T04:22:44.785Z","0.9.1":"2018-11-19T12:43:51.048Z","0.9.2":"2018-11-21T00:31:27.182Z","0.10.0":"2019-01-07T02:45:24.104Z","0.10.1":"2019-02-06T03:18:10.673Z","0.10.2":"2019-08-01T20:34:10.577Z","0.10.3":"2019-10-29T12:40:04.993Z","0.10.4":"2019-10-29T17:48:51.492Z","0.10.5":"2020-02-22T21:58:16.559Z","0.10.6":"2020-04-27T21:30:01.597Z","0.10.7":"2021-03-16T18:23:47.040Z","0.11.0":"2021-07-02T15:48:16.395Z","0.11.1":"2021-07-08T13:57:23.008Z","0.11.2":"2021-10-25T20:52:03.884Z","0.12.0":"2023-01-13T19:08:50.112Z","1.0.0":"2023-03-09T15:23:34.996Z","1.0.1":"2023-03-12T23:54:18.297Z","1.0.2":"2023-06-03T14:22:29.975Z","1.0.3":"2023-07-11T21:23:20.325Z","1.1.0":"2024-06-10T19:26:07.595Z","1.1.1":"2025-02-05T19:45:54.287Z","1.1.2":"2025-02-06T16:49:02.163Z","1.2.0":"2025-04-05T17:32:02.544Z","1.3.0":"2026-06-01T18:15:02.428Z","1.4.0":"2026-06-06T15:07:05.644Z","1.5.0":"2026-08-08T16:42:13.263Z","1.5.1":"2026-08-22T16:39:42.290Z"},"bugs":{"url":"https://github.com/jeremydaly/lambda-api/issues"},"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","homepage":"https://github.com/jeremydaly/lambda-api#readme","keywords":["serverless","nodejs","api","AWS Lambda","API Gateway","web framework","json","schema","open"],"repository":{"type":"git","url":"git+https://github.com/jeremydaly/lambda-api.git"},"description":"Lightweight web framework for your serverless applications","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"readme":"[![Lambda API](https://www.jeremydaly.com/images/uploads/2018/03/lambda-api-logo.png)](https://serverless-api.com/)\n\n[![Build Status](https://github.com/jeremydaly/lambda-api/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/jeremydaly/lambda-api/actions/workflows/build.yml)\n[![npm](https://img.shields.io/npm/v/lambda-api.svg)](https://www.npmjs.com/package/lambda-api)\n[![npm](https://img.shields.io/npm/l/lambda-api.svg)](https://www.npmjs.com/package/lambda-api)\n[![Coverage Status](https://coveralls.io/repos/github/jeremydaly/lambda-api/badge.svg?branch=main)](https://coveralls.io/github/jeremydaly/lambda-api?branch=main)\n\n### Lightweight web framework for your serverless applications\n\nLambda API is a lightweight web framework for AWS Lambda using AWS API Gateway Lambda Proxy Integration or ALB Lambda Target Support. This closely mirrors (and is based on) other web frameworks like Express.js and Fastify, but is significantly stripped down to maximize performance with Lambda's stateless, single run executions.\n\n## Using AWS SDK v2?\n\nlambda-api@v1 is using AWS SDK v3.\nIf you are using AWS SDK v2, please use lambda-api@v0.12.0.\n\n## Simple Example\n\n```javascript\n// Require the framework and instantiate it\nconst api = require('lambda-api')();\n\n// Define a route\napi.get('/status', async (req, res) => {\n  return { status: 'ok' };\n});\n\n// Declare your Lambda handler\nexports.handler = async (event, context) => {\n  // Run the request\n  return await api.run(event, context);\n};\n```\n\nFor a full tutorial see [How To: Build a Serverless API with Serverless, AWS Lambda and Lambda API](https://www.jeremydaly.com/build-serverless-api-serverless-aws-lambda-lambda-api/).\n\n## Why Another Web Framework?\n\nExpress.js, Fastify, Koa, Restify, and Hapi are just a few of the many amazing web frameworks out there for Node.js. So why build yet another one when there are so many great options already? One word: **DEPENDENCIES**.\n\nThese other frameworks are extremely powerful, but that benefit comes with the steep price of requiring several additional Node.js modules. Not only is this a bit of a security issue (see Beware of Third-Party Packages in [Securing Serverless](https://www.jeremydaly.com/securing-serverless-a-newbies-guide/)), but it also adds bloat to your codebase, filling your `node_modules` directory with a ton of extra files. For serverless applications that need to load quickly, all of these extra dependencies slow down execution and use more memory than necessary. Express.js has **30 dependencies**, Fastify has **12**, and Hapi has **17**! These numbers don't even include their dependencies' dependencies.\n\nLambda API ships with **ZERO required dependencies**. _None_. _Zip_. _Zilch_. The only extras are the AWS SDK v3 S3 packages (`@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner`), declared as **optional peer dependencies**. They power the built-in S3 file helpers ([`sendFile()`](#sendfilefile--options--callback), [`getLink()`](#getlinks3path--expires--callback), and S3 redirects). Because they're optional, installing Lambda API won't pull them in — npm, pnpm, Yarn, and Bun all skip optional peer dependencies, so your `node_modules` stays clean unless you install them yourself. And because the S3 client is loaded lazily (only when an S3 helper actually runs), bundlers can safely treat the AWS SDK as external when you don't use those features. See [Installation](#installation) for details.\n\nLambda API was written to be _extremely lightweight_ and built specifically for **SERVERLESS** applications using AWS Lambda and API Gateway. It provides support for API routing, serving up HTML pages, issuing redirects, serving binary files and much more. Worried about observability? Lambda API has a built-in logging engine that can even periodically sample requests for things like tracing and benchmarking. It has a powerful middleware and error handling system, allowing you to implement just about anything you can dream of. Best of all, it was designed to work with Lambda's Proxy Integration, automatically handling all the interaction with API Gateway for you. It parses **REQUESTS** and formats **RESPONSES**, allowing you to focus on your application's core functionality, instead of fiddling with inputs and outputs.\n\n### Single Purpose Functions\n\nYou may have heard that a serverless \"best practice\" is to keep your functions small and limit them to a single purpose. I generally agree since building monolith applications is not what serverless was designed for. However, what exactly is a \"single purpose\" when it comes to building serverless APIs and web services? Should we create a separate function for our \"create user\" `POST` endpoint and then another one for our \"update user\" `PUT` endpoint? Should we create yet another function for our \"delete user\" `DELETE` endpoint? You certainly could, but that seems like a lot of repeated boilerplate code. On the other hand, you could create just one function that handled all your user management features. It may even make sense (in certain circumstances) to create one big serverless function handling several related components that can share your VPC database connections.\n\nWhatever you decide is best for your use case, **Lambda API** is there to support you. Whether your function has over a hundred routes, or just one, Lambda API's small size and lightning fast load time has virtually no impact on your function's performance. You can even define global wildcard routes that will process any incoming request, allowing you to use API Gateway or ALB to determine the routing. Yet despite its small footprint, it gives you the power of a full-featured web framework.\n\n## Table of Contents\n\n- [Simple Example](#simple-example)\n- [Why Another Web Framework?](#why-another-web-framework)\n  - [Single Purpose Functions](#single-purpose-functions)\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Requirements](#requirements)\n- [Configuration](#configuration)\n- [Recent Updates](#recent-updates)\n  - [v0.11: API Gateway v2 payload support and automatic compression](#v011-api-gateway-v2-payload-support-and-automatic-compression)\n  - [v0.10: ALB support, method-based middleware, and multi-value headers and query string parameters](#v010-alb-support-method-based-middleware-and-multi-value-headers-and-query-string-parameters)\n- [Routes and HTTP Methods](#routes-and-http-methods)\n- [Returning Responses](#returning-responses)\n  - [Async/Await](#asyncawait)\n  - [Promises](#promises)\n  - [A Note About Flow Control](#a-note-about-flow-control)\n- [Route Prefixing](#route-prefixing)\n- [Debugging Routes](#debugging-routes)\n- [REQUEST](#request)\n- [RESPONSE](#response)\n  - [status(code)](#statuscode)\n  - [sendStatus(code)](#sendstatuscode)\n  - [header(key, value [,append])](#headerkey-value-append)\n  - [getHeader(key [,asArray])](#getheaderkey-asarray)\n  - [getHeaders()](#getheaders)\n  - [hasHeader(key)](#hasheaderkey)\n  - [removeHeader(key)](#removeheaderkey)\n  - [getLink(s3Path [, expires] [, callback])](#getlinks3path--expires--callback)\n  - [send(body)](#sendbody)\n  - [json(body)](#jsonbody)\n  - [jsonp(body)](#jsonpbody)\n  - [html(body)](#htmlbody)\n  - [type(type)](#typetype)\n  - [location(path)](#locationpath)\n  - [redirect([status,] path)](#redirectstatus-path)\n  - [cors([options])](#corsoptions)\n  - [error([code], message [,detail])](#errorcode-message-detail)\n  - [cookie(name, value [,options])](#cookiename-value-options)\n  - [clearCookie(name [,options])](#clearcookiename-options)\n  - [etag([boolean])](#etagboolean)\n  - [cache([age] [, private])](#cacheage--private)\n  - [modified(date)](#modifieddate)\n  - [attachment([filename])](#attachmentfilename)\n  - [download(file [, filename] [, options] [, callback])](#downloadfile--filename--options--callback)\n  - [sendFile(file [, options] [, callback])](#sendfilefile--options--callback)\n- [Enabling Binary Support](#enabling-binary-support)\n- [Path Parameters](#path-parameters)\n- [Wildcard Routes](#wildcard-routes)\n- [Logging](#logging)\n  - [Logging Configuration](#logging-configuration)\n  - [Log Format](#log-format)\n  - [Access Logs](#access-logs)\n  - [Logging Levels](#logging-levels)\n  - [Custom Logging Levels](#custom-logging-levels)\n  - [Adding Additional Detail](#adding-additional-detail)\n  - [Serializers](#serializers)\n  - [Sampling](#sampling)\n- [Middleware](#middleware)\n  - [Restricting middleware execution to certain path(s)](#restricting-middleware-execution-to-certain-paths)\n  - [Specifying multiple middleware](#specifying-multiple-middleware)\n  - [Method-based middleware](#method-based-middleware)\n- [Clean Up](#clean-up)\n- [Error Handling](#error-handling)\n  - [Error Types](#error-types)\n  - [Error Logging](#error-logging)\n- [Namespaces](#namespaces)\n- [CORS Support](#cors-support)\n- [Compression](#compression)\n- [Execution Stacks](#execution-stacks)\n- [Lambda Proxy Integration](#lambda-proxy-integration)\n- [ALB Integration](#alb-integration)\n- [Configuring Routes in API Gateway](#configuring-routes-in-api-gateway)\n- [Reusing Persistent Connections](#reusing-persistent-connections)\n- [TypeScript Support](#typescript-support)\n- [Contributions](#contributions)\n- [Are you using Lambda API?](#are-you-using-lambda-api)\n\n## Installation\n\n```\nnpm i lambda-api --save\n```\n\nLambda API has no required runtime dependencies. The S3 file helpers ([`sendFile()`](#sendfilefile--options--callback), [`getLink()`](#getlinks3path--expires--callback), and S3 redirects) rely on the AWS SDK v3, which is declared as an **optional peer dependency**. If you use those features, install the SDK packages alongside Lambda API:\n\n```\nnpm i @aws-sdk/client-s3 @aws-sdk/s3-request-presigner --save\n```\n\nIf you don't use the S3 helpers, you can skip this — nothing else in Lambda API touches the AWS SDK. The S3 client is loaded lazily, so even when the SDK is present in your tree, bundlers can mark it as external and leave it out of the bundle.\n\nReleases are published to npm via GitHub Actions using [trusted publishing (OIDC)](https://docs.npmjs.com/trusted-publishers), so every published version ships with [npm provenance](https://docs.npmjs.com/generating-provenance-statements) — a signed, verifiable link back to the exact commit and workflow that built it.\n\n## Requirements\n\n- AWS Lambda running **Node 8.10+**\n- AWS API Gateway using [Proxy Integration](#lambda-proxy-integration)\n\n## Configuration\n\nRequire the `lambda-api` module into your Lambda handler script and instantiate it. You can initialize the API with the following options:\n\n| Property             | Type                  | Description                                                                                                                                                                                               |\n| -------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base                 | `String`              | Base path for all routes, e.g. `base: 'v1'` would prefix all routes with `/v1`                                                                                                                            |\n| callbackName         | `String`              | Override the default callback query parameter name for JSONP calls                                                                                                                                        |\n| logger               | `boolean` or `object` | Enables default [logging](#logging) or allows for configuration through a [Logging Configuration](#logging-configuration) object.                                                                         |\n| mimeTypes            | `Object`              | Name/value pairs of additional MIME types to be supported by the `type()`. The key should be the file extension (without the `.`) and the value should be the expected MIME type, e.g. `application/json` |\n| serializer           | `Function`            | Optional object serializer function. This function receives the `body` of a response and must return a string. Defaults to `JSON.stringify`                                                               |\n| version              | `String`              | Version number accessible via the `REQUEST` object                                                                                                                                                        |\n| errorHeaderWhitelist | `Array`               | Array of headers to maintain on errors                                                                                                                                                                    |\n| s3Config             | `Object`              | Optional object to provide as config to S3 sdk. [S3ClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/s3clientconfig.html)                                 |\n\n```javascript\n// Require the framework and instantiate it with optional version and base parameters\nconst api = require('lambda-api')({ version: 'v1.0', base: 'v1' });\n```\n\n## Recent Updates\n\nFor detailed release notes see [Releases](https://github.com/jeremydaly/lambda-api/releases).\n\n### v0.11: API Gateway v2 payload support and automatic compression\n\nLambda API now supports API Gateway v2 payloads for use with HTTP APIs. The library automatically detects the payload, so no extra configuration is needed. Automatic [compression](#compression) has also been added and supports Brotli, Gzip and Deflate.\n\n### v0.10: ALB support, method-based middleware, and multi-value headers and query string parameters\n\nLambda API now allows you to seamlessly switch between API Gateway and Application Load Balancers. New [execution stacks](execution-stacks) enables method-based middleware and more wildcard functionality. Plus full support for multi-value headers and query string parameters.\n\n## Routes and HTTP Methods\n\nRoutes are defined by using convenience methods or the `METHOD` method. There are currently eight convenience route methods: `get()`, `post()`, `put()`, `patch()`, `delete()`, `head()`, `options()` and `any()`. Convenience route methods require an optional _route_ and one or more handler functions. A _route_ is simply a path such as `/users`. If a _route_ is not provided, then it will default to `/*` and will execute on every path. Handler functions accept a `REQUEST`, `RESPONSE`, and optional `next()` argument. These arguments can be named whatever you like, but convention dictates `req`, `res`, and `next`.\n\nMultiple handler functions can be assigned to a path, which can be used to execute middleware for specific paths and methods. For more information, see [Middleware](#middleware) and [Execution Stacks](#execution-stacks).\n\nExamples using convenience route methods:\n\n```javascript\napi.get('/users', (req,res) => {\n  // do something\n})\n\napi.post('/users', (req,res) => {\n  // do something\n})\n\napi.delete('/users', (req,res) => {\n  // do something\n})\n\napi.get('/users',\n  (req,res,next) => {\n    // do some middleware\n    next() // continue execution\n  }),\n  (req,res) => {\n    // do something\n  }\n)\n\napi.post((req,res) => {\n  // do something for ALL post requests\n})\n\n```\n\nAdditional methods are support by calling `METHOD`. Arguments must include an HTTP method (or array of methods), an optional _route_, and one or more handler functions. Like the convenience methods above, handler functions accept a `REQUEST`, `RESPONSE`, and optional `next` argument.\n\n```javascript\napi.METHOD('trace','/users', (req,res) => {\n  // do something on TRACE\n})\n\napi.METHOD(['post','put'],'/users', (req,res) => {\n  // do something on POST -or- PUT\n})\n\napi.METHOD('get','/users',\n  (req,res,next) => {\n    // do some middleware\n    next() // continue execution\n  }),\n  (req,res) => {\n  // do something\n  }\n)\n```\n\nAll `GET` methods have a `HEAD` alias that executes the `GET` request but returns a blank `body`. `GET` requests should be idempotent with no side effects. The `head()` convenience method can be used to set specific paths for `HEAD` requests or to override default `GET` aliasing.\n\nRoutes that use the `any()` method or pass `ANY` to `api.METHOD` will respond to all HTTP methods. Routes that specify a specific method (such as `GET` or `POST`), will override the route for that method. For example:\n\n```javascript\napi.any('/users', (req, res) => {\n  res.send('any');\n});\napi.get('/users', (req, res) => {\n  res.send('get');\n});\n```\n\nA `POST` to `/users` will return \"any\", but a `GET` request would return \"get\". Please note that routes defined with an `ANY` method will override default `HEAD` aliasing for `GET` routes.\n\n## Returning Responses\n\nLambda API supports both `callback-style` and `async-await` for returning responses to users. The [RESPONSE](#response) object has several callbacks that will trigger a response (`send()`, `json()`, `html()`, etc.) You can use any of these callbacks from within route functions and middleware to send the response:\n\n```javascript\napi.get('/users', (req, res) => {\n  res.send({ foo: 'bar' });\n});\n```\n\nYou can also `return` data from route functions and middleware. The contents will be sent as the body:\n\n```javascript\napi.get('/users', (req, res) => {\n  return { foo: 'bar' };\n});\n```\n\n### Async/Await\n\nIf you prefer to use `async/await`, you can easily apply this to your route functions.\n\nUsing `return`:\n\n```javascript\napi.get('/users', async (req, res) => {\n  let users = await getUsers();\n  return users;\n});\n```\n\nOr using callbacks:\n\n```javascript\napi.get('/users', async (req, res) => {\n  let users = await getUsers();\n  res.send(users);\n});\n```\n\n### Promises\n\nIf you like promises, you can either use a callback like `res.send()` at the end of your promise chain, or you can simply `return` the resolved promise:\n\n```javascript\napi.get('/users', (req, res) => {\n  getUsers().then((users) => {\n    res.send(users);\n  });\n});\n```\n\nOR\n\n```javascript\napi.get('/users', (req, res) => {\n  return getUsers().then((users) => {\n    return users;\n  });\n});\n```\n\n**IMPORTANT:** You must either use a callback like `res.send()` **OR** `return` a value. Otherwise the execution will hang and no data will be sent to the user. Also, be sure not to return `undefined`, otherwise it will assume no response.\n\n### A Note About Flow Control\n\nWhile callbacks like `res.send()` and `res.error()` will trigger a response, they will not necessarily terminate execution of the current route function. Take a look at the following example:\n\n```javascript\napi.get('/users', (req, res) => {\n  if (req.headers.test === 'test') {\n    res.error('Throw an error');\n  }\n\n  return { foo: 'bar' };\n});\n```\n\nThe example above would not have the intended result of displaying an error. `res.error()` would signal Lambda API to execute the error handling, but the function would continue to run. This would cause the function to `return` a response that would override the intended error. In this situation, you could either wrap the return in an `else` clause, or a cleaner approach would be to `return` the call to the `error()` method, like so:\n\n```javascript\napi.get('/users', (req, res) => {\n  if (req.headers.test === 'test') {\n    return res.error('Throw an error');\n  }\n\n  return { foo: 'bar' };\n});\n```\n\n`res.error()` does not have a return value (meaning it is `undefined`). However, the `return` tells the function to stop executing, and the call to `res.error()` handles and formats the appropriate response. This will allow Lambda API to properly return the expected results.\n\n## Route Prefixing\n\nLambda API makes it easy to create multiple versions of the same api without changing routes by hand. The `register()` method allows you to load routes from an external file and prefix all of those routes using the `prefix` option. For example:\n\n```javascript\n// handler.js\nconst api = require('lambda-api')();\n\napi.register(require('./routes/v1/products'), { prefix: '/v1' });\napi.register(require('./routes/v2/products'), { prefix: '/v2' });\n\nmodule.exports.handler = (event, context, callback) => {\n  api.run(event, context, callback);\n};\n```\n\n```javascript\n// routes/v1/products.js\nmodule.exports = (api, opts) => {\n  api.get('/product', handler_v1);\n};\n```\n\n```javascript\n// routes/v2/products.js\nmodule.exports = (api, opts) => {\n  api.get('/product', handler_v2);\n};\n```\n\nEven though both modules create a `/product` route, Lambda API will add the `prefix` to them, creating two unique routes. Your users can now access:\n\n- `/v1/product`\n- `/v2/product`\n\nYou can use `register()` as many times as you want AND it is recursive, so if you nest `register()` methods, the routes will build upon each other. For example:\n\n```javascript\nmodule.exports = (api, opts) => {\n  api.get('/product', handler_v1);\n  api.register(require('./v2/products.js'), { prefix: '/v2' });\n};\n```\n\nThis would create a `/v1/product` and `/v1/v2/product` route. You can also use `register()` to load routes from an external file without the `prefix`. This will just add routes to your `base` path. **NOTE:** Prefixed routes are built off of your `base` path if one is set. If your `base` was set to `/api`, then the first example above would produce the routes: `/api/v1/product` and `/api/v2/product`.\n\n## Debugging Routes\n\nLambda API has a `routes()` method that can be called on the main instance that will return an array containing the `METHOD` and full `PATH` of every configured route. This will include base paths and prefixed routes. This is helpful for debugging your routes.\n\n```javascript\nconst api = require('lambda-api')();\n\napi.get('/', (req, res) => {});\napi.post('/test', (req, res) => {});\n\napi.routes(); // => [ [ 'GET', '/' ], [ 'POST', '/test' ] ]\n```\n\nYou can also log the paths in table form to the console by passing in `true` as the only parameter.\n\n```javascript\n const api = require('lambda-api')()\n\n api.get('/', (req,res) => {})\n api.post('/test', (req,res) => {})\n\n api.routes(true)\n\n// Outputs to console\n╔═══════════╤═════════════════╗\n║  METHOD   │  ROUTE          ║\n╟───────────┼─────────────────╢\n║  GET      │  /              ║\n╟───────────┼─────────────────╢\n║  POST     │  /test          ║\n╚═══════════╧═════════════════╝\n```\n\n## REQUEST\n\nThe `REQUEST` object contains a parsed and normalized request from API Gateway. It contains the following values by default:\n\n- `app`: A reference to an instance of the app\n- `version`: The version set at initialization\n- `id`: The awsRequestId from the Lambda `context`\n- `interface`: The interface being used to access Lambda (`apigateway`,`alb`, or `edge`)\n- `params`: Dynamic path parameters parsed from the path (see [path parameters](#path-parameters))\n- `method`: The HTTP method of the request\n- `path`: The path passed in by the request including the `base` and any `prefix` assigned to routes\n- `query`: Querystring parameters parsed into an object\n- `multiValueQuery`: Querystring parameters with multiple values parsed into an object with array values\n- `headers`: An object containing the request headers (properties converted to lowercase for HTTP/2, see [rfc7540 8.1.2. HTTP Header Fields](https://tools.ietf.org/html/rfc7540)). Note that multi-value headers are concatenated with a comma per [rfc2616 4.2. Message Headers](https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2).\n- `rawHeaders`: An object containing the original request headers (property case preserved)\n- `multiValueHeaders`: An object containing header values as multi-value arrays\n- `body`: The body of the request. If the `isBase64Encoded` flag is `true`, it will be decoded automatically.\n  - If the `content-type` header is `application/json`, it will attempt to parse the request using `JSON.parse()`\n  - If the `content-type` header is `application/x-www-form-urlencoded`, it will attempt to parse a URL encoded string using `querystring`\n  - Otherwise it will be plain text.\n- `rawBody`: If the `isBase64Encoded` flag is `true`, this is a copy of the original, base64 encoded body\n- `route`: The matched route of the request\n- `requestContext`: The `requestContext` passed from the API Gateway\n- `pathParameters`: The `pathParameters` passed from the API Gateway\n- `stageVariables`: The `stageVariables` passed from the API Gateway\n- `isBase64Encoded`: The `isBase64Encoded` boolean passed from the API Gateway\n- `auth`: An object containing the `type` and `value` of an authorization header. Currently supports `Bearer`, `Basic`, `OAuth`, and `Digest` schemas. For the `Basic` schema, the object is extended with additional fields for username/password. For the `OAuth` schema, the object is extended with key/value pairs of the supplied OAuth 1.0 values.\n- `namespace` or `ns`: A reference to modules added to the app's namespace (see [namespaces](#namespaces))\n- `cookies`: An object containing cookies sent from the browser (see the [cookie](#cookiename-value-options) `RESPONSE` method)\n- `context`: Reference to the `context` passed into the Lambda handler function\n- `coldStart`: Boolean that indicates whether or not the current invocation was a cold start\n- `requestCount`: Integer representing the total number of invocations of the current function container (how many times it has been reused)\n- `ip`: The IP address of the client making the request\n- `userAgent`: The `User-Agent` header sent by the client making the request\n- `clientType`: Either `desktop`, `mobile`, `tv`, `tablet` or `unknown` based on CloudFront's analysis of the `User-Agent` header\n- `clientCountry`: Two letter country code representing the origin of the requests as determined by CloudFront\n- `stack`: An array of function names executed as part of a route's [Execution Stack](#execution-stack), which is useful for debugging\n\nThe request object can be used to pass additional information through the processing chain. For example, if you are using a piece of authentication middleware, you can add additional keys to the `REQUEST` object with information about the user. See [middleware](#middleware) for more information.\n\n## RESPONSE\n\nThe `RESPONSE` object is used to send a response back to the API Gateway. The `RESPONSE` object contains several methods to manipulate responses. All methods are chainable unless they trigger a response.\n\n### status(code)\n\nThe `status` method allows you to set the status code that is returned to API Gateway. By default this will be set to `200` for normal requests or `500` on a thrown error. Additional built-in errors such as `404 Not Found` and `405 Method Not Allowed` may also be returned. The `status()` method accepts a single integer argument.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.status(404).send('Not Found');\n});\n```\n\n**NOTE:** Status codes that [must not carry content](https://datatracker.ietf.org/doc/html/rfc9110#name-overview-of-status-codes) per RFC 9110 — `1xx`, `204`, `205`, and `304` — are always sent with an empty body. Any body passed to `send()`, `json()`, `html()`, etc. is discarded for these status codes.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.status(204).json({ foo: 'bar' }); // sent as 204 with an empty body\n});\n```\n\n### sendStatus(code)\n\nThe `sendStatus` method sets the status code and returns its string representation as the response body. The `sendStatus()` method accepts a single integer argument.\n\n```javascript\nres.sendStatus(200); // equivalent to res.status(200).send('OK')\nres.sendStatus(403); // equivalent to res.status(403).send('Forbidden')\n```\n\nAs with [`status()`](#statuscode), the `1xx`, `204`, `205`, and `304` status codes are sent with an empty body:\n\n```javascript\nres.sendStatus(204); // equivalent to res.status(204).send('')\nres.sendStatus(304); // equivalent to res.status(304).send('')\n```\n\n**NOTE:** If an unsupported status code is provided, it will return 'Unknown' as the body.\n\n### header(key, value [,append])\n\nThe `header` method allows for you to set additional headers to return to the client. By default, just the `content-type` header is sent with `application/json` as the value. Headers can be added or overwritten by calling the `header()` method with two string arguments. The first is the name of the header and then second is the value. You can utilize multi-value headers by specifying an array with multiple values as the `value`, or you can use an optional third boolean parameter and append multiple headers.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.header('content-type', 'text/html').send('<div>This is HTML</div>');\n});\n\n// Set multiple header values\napi.get('/users', (req, res) => {\n  res.header('someHeader', ['foo', 'bar']).send({});\n});\n\n// Set multiple header by adding to existing header\napi.get('/users', (req, res) => {\n  res\n    .header('someHeader', 'foo')\n    .header('someHeader', 'bar', true) // append another value\n    .send({});\n});\n```\n\n**NOTE:** Header keys are converted and stored as lowercase in compliance with [rfc7540 8.1.2. HTTP Header Fields](https://tools.ietf.org/html/rfc7540) for HTTP/2. Header convenience methods (`getHeader`, `hasHeader`, and `removeHeader`) automatically ignore case.\n\n### getHeader(key [,asArray])\n\nRetrieve a specific header value. `key` is case insensitive. By default (and for backwards compatibility), header values are returned as a `string`. Multi-value headers will be concatenated using a comma (see [rfc2616 4.2. Message Headers](https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2)). An optional second boolean parameter can be passed to return header values as an `array`.\n\n**NOTE:** The ability to retrieve the current header object by calling `getHeader()` is still possible, but the preferred method is to use the `getHeaders()` method. By default, `getHeader()` will return the object with `string` values.\n\n### getHeaders()\n\nRetrieve the current header object. Values are returned as `array`s.\n\n### hasHeader(key)\n\nReturns a boolean indicating the existence of `key` in the response headers. `key` is case insensitive.\n\n### removeHeader(key)\n\nRemoves header matching `key` from the response headers. `key` is case insensitive. This method is chainable.\n\n### getLink(s3Path [, expires] [, callback])\n\nThis returns a signed URL to the referenced file in S3 (using the `s3://{my-bucket}/{path-to-file}` format). You can optionally pass in an integer as the second parameter that will changed the default expiration time of the link. The expiration time is in seconds and defaults to `900`. In order to ensure proper URL signing, the `getLink()` must be asynchronous, and therefore returns a promise. You must either `await` the result or use a `.then` to retrieve the value.\n\nThere is an optional third parameter that takes an error handler callback. If the underlying `getSignedUrl()` call fails, the error will be returned using the standard `res.error()` method. You can override this by providing your own callback.\n\n```javascript\n// async/await\napi.get('/getLink', async (req, res) => {\n  let url = await res.getLink('s3://my-bucket/my-file.pdf');\n  return { link: url };\n});\n\n// promises\napi.get('/getLink', (req, res) => {\n  res.getLink('s3://my-bucket/my-file.pdf').then((url) => {\n    res.json({ link: url });\n  });\n});\n```\n\n### send(body)\n\nThe `send` methods triggers the API to return data to the API Gateway. The `send` method accepts one parameter and sends the contents through as is, e.g. as an object, string, integer, etc. AWS Gateway expects a string, so the data should be converted accordingly.\n\n### json(body)\n\nThere is a `json` convenience method for the `send` method that will set the headers to `application/json` as well as perform `JSON.stringify()` on the contents passed to it.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.json({ message: 'This will be converted automatically' });\n});\n```\n\n### jsonp(body)\n\nThere is a `jsonp` convenience method for the `send` method that will set the headers to `application/json`, perform `JSON.stringify()` on the contents passed to it, and wrap the results in a callback function. By default, the callback function is named `callback`.\n\n```javascript\nres.jsonp({ foo: 'bar' });\n// => callback({ \"foo\": \"bar\" })\n\nres.status(500).jsonp({ error: 'some error' });\n// => callback({ \"error\": \"some error\" })\n```\n\nThe default can be changed by passing in `callback` as a URL parameter, e.g. `?callback=foo`.\n\n```javascript\n// ?callback=foo\nres.jsonp({ foo: 'bar' });\n// => foo({ \"foo\": \"bar\" })\n```\n\nYou can change the default URL parameter using the optional `callback` option when initializing the API.\n\n```javascript\nconst api = require('lambda-api')({ callback: 'cb' });\n\n// ?cb=bar\nres.jsonp({ foo: 'bar' });\n// => bar({ \"foo\": \"bar\" })\n```\n\n### html(body)\n\nThere is also an `html` convenience method for the `send` method that will set the headers to `text/html` and pass through the contents.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.html('<div>This is HTML</div>');\n});\n```\n\n### type(type)\n\nSets the `content-type` header for you based on a single `String` input. There are thousands of MIME types, many of which are likely never to be used by your application. Lambda API stores a list of the most popular file types and will automatically set the correct `content-type` based on the input. If the `type` contains the \"/\" character, then it sets the `content-type` to the value of `type`.\n\n```javascript\nres.type('.html'); // => 'text/html'\nres.type('html'); // => 'text/html'\nres.type('json'); // => 'application/json'\nres.type('application/json'); // => 'application/json'\nres.type('png'); // => 'image/png'\nres.type('.doc'); // => 'application/msword'\nres.type('text/css'); // => 'text/css'\n```\n\nFor a complete list of auto supported types, see [mimemap.js](lib/mimemap.js). Custom MIME types can be added by using the `mimeTypes` option when instantiating Lambda API\n\n### location(path)\n\nThe `location` convenience method sets the `Location:` header with the value of a single string argument. The value passed in is not validated but will be encoded before being added to the header. Values that are already encoded can be safely passed in. Note that a valid `3xx` status code must be set to trigger browser redirection. The value can be a relative/absolute path OR a FQDN.\n\n```javascript\napi.get('/redirectToHome', (req, res) => {\n  res.location('/home').status(302).html('<div>Redirect to Home</div>');\n});\n\napi.get('/redirectToGithub', (req, res) => {\n  res\n    .location('https://github.com')\n    .status(302)\n    .html('<div>Redirect to GitHub</div>');\n});\n```\n\n### redirect([status,] path)\n\nThe `redirect` convenience method triggers a redirection and ends the current API execution. This method is similar to the `location()` method, but it automatically sets the status code and calls `send()`. The redirection URL (relative/absolute path, a FQDN, or an S3 path reference) can be specified as the only parameter or as a second parameter when a valid `3xx` status code is supplied as the first parameter. The status code is set to `302` by default, but can be changed to `300`, `301`, `302`, `303`, `307`, or `308` by adding it as the first parameter.\n\n```javascript\napi.get('/redirectToHome', (req, res) => {\n  res.redirect('/home');\n});\n\napi.get('/redirectToGithub', (req, res) => {\n  res.redirect(301, 'https://github.com');\n});\n\n// This will redirect a signed URL using the getLink method\napi.get('/redirectToS3File', (req, res) => {\n  res.redirect('s3://my-bucket/someFile.pdf');\n});\n```\n\n### cors([options])\n\nConvenience method for adding [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) headers to responses. An optional `options` object can be passed in to customize the defaults.\n\nThe six defined **CORS** headers are as follows:\n\n- Access-Control-Allow-Origin (defaults to `*`)\n- Access-Control-Allow-Methods (defaults to `GET, PUT, POST, DELETE, OPTIONS`)\n- Access-Control-Allow-Headers (defaults to `Content-Type, Authorization, Content-Length, X-Requested-With`)\n- Access-Control-Expose-Headers\n- Access-Control-Max-Age\n- Access-Control-Allow-Credentials\n\nThe `options` object can contain the following properties that correspond to the above headers:\n\n- origin _(string)_\n- methods _(string)_\n- headers _(string)_\n- exposeHeaders _(string)_\n- maxAge _(number in milliseconds)_\n- credentials _(boolean)_\n\nDefaults can be set by calling `res.cors()` with no properties, or with any combination of the above options.\n\n```javascript\nres.cors({\n  origin: 'example.com',\n  methods: 'GET, POST, OPTIONS',\n  headers: 'content-type, authorization',\n  maxAge: 84000000,\n});\n```\n\nYou can override existing values by calling `res.cors()` with just the updated values:\n\n```javascript\nres.cors({\n  origin: 'api.example.com',\n});\n```\n\n### error([code], message [,detail])\n\nAn error can be triggered by calling the `error` method. This will cause the API to stop execution and return the message to the client. The status code can be set by optionally passing in an integer as the first parameter. Additional detail can be added as an optional third parameter (or second parameter if no status code is passed). This will add an additional `detail` property to error logs. Details accepts any value that can be serialized by `JSON.stringify` including objects, strings and arrays. Custom error handling can be accomplished using the [Error Handling](#error-handling) feature.\n\n```javascript\napi.get('/users', (req, res) => {\n  res.error('This is an error');\n});\n\napi.get('/users', (req, res) => {\n  res.error(403, 'Not authorized');\n});\n\napi.get('/users', (req, res) => {\n  res.error('Error', { foo: 'bar' });\n});\n\napi.get('/users', (req, res) => {\n  res.error(404, 'Page not found', 'foo bar');\n});\n```\n\n### cookie(name, value [,options])\n\nConvenience method for setting cookies. This method accepts a `name`, `value` and an optional `options` object with the following parameters:\n\n| Property | Type                  | Description                                                                                                                                                                                                 |\n| -------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| domain   | `String`              | Domain name to use for the cookie. This defaults to the current domain.                                                                                                                                     |\n| expires  | `Date`                | The expiration date of the cookie. Local dates will be converted to GMT. Creates session cookie if this value is not specified.                                                                             |\n| httpOnly | `Boolean`             | Sets the cookie to be accessible only via a web server, not JavaScript.                                                                                                                                     |\n| maxAge   | `Number`              | Set the expiration time relative to the current time in milliseconds. Automatically sets the `expires` property if not explicitly provided.                                                                 |\n| path     | `String`              | Path for the cookie. Defaults to \"/\" for the root directory.                                                                                                                                                |\n| secure   | `Boolean`             | Sets the cookie to be used with HTTPS only.                                                                                                                                                                 |\n| sameSite | `Boolean` or `String` | Sets the SameSite value for cookie. `true` or `false` sets `Strict` or `Lax` respectively. Also allows a string value. See https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-4.1.1 |\n\nThe `name` attribute should be a string (auto-converted if not), but the `value` attribute can be any type of value. The `value` will be serialized (if an object, array, etc.) and then encoded using `encodeURIComponent` for safely assigning the cookie value. Cookies are automatically parsed, decoded, and available via the `REQUEST` object (see [REQUEST](#request)).\n\n**NOTE:** The `cookie()` method only sets the header. A execution ending method like `send()`, `json()`, etc. must be called to send the response.\n\n```javascript\nres.cookie('foo', 'bar', { maxAge: 3600 * 1000, secure: true }).send();\nres\n  .cookie(\n    'fooObject',\n    { foo: 'bar' },\n    { domain: '.test.com', path: '/admin', httpOnly: true }\n  )\n  .send();\nres\n  .cookie('fooArray', ['one', 'two', 'three'], { path: '/', httpOnly: true })\n  .send();\n```\n\n### clearCookie(name [,options])\n\nConvenience method for expiring cookies. Requires the `name` and optional `options` object as specified in the [cookie](#cookiename-value-options) method. This method will automatically set the expiration time. However, most browsers require the same options to clear a cookie as was used to set it. E.g. if you set the `path` to \"/admin\" when you set the cookie, you must use this same value to clear it.\n\n```javascript\nres.clearCookie('foo', { secure: true }).send();\nres\n  .clearCookie('fooObject', {\n    domain: '.test.com',\n    path: '/admin',\n    httpOnly: true,\n  })\n  .send();\nres.clearCookie('fooArray', { path: '/', httpOnly: true }).send();\n```\n\n**NOTE:** The `clearCookie()` method only sets the header. A execution ending method like `send()`, `json()`, etc. must be called to send the response.\n\n### etag([boolean])\n\nEnables Etag generation for the response if at value of `true` is passed in. Lambda API will generate an Etag based on the body of the response and return the appropriate header. If the request contains an `If-No-Match` header that matches the generated Etag, a `304 Not Modified` response will be returned with a blank body.\n\n### cache([age] [, private])\n\nAdds `cache-control` header to responses. If the first parameter is an `integer`, it will add a `max-age` to the header. The number should be in milliseconds. If the first parameter is `true`, it will add the cache headers with `max-age` set to `0` and use the current time for the `expires` header. If set to false, it will add a cache header with `no-cache, no-store, must-revalidate` as the value. You can also provide a custom string that will manually set the value of the `cache-control` header. And optional second argument takes a `boolean` and will set the `cache-control` to `private` This method is chainable.\n\n```javascript\nres.cache(false).send(); // 'cache-control': 'no-cache, no-store, must-revalidate'\nres.cache(1000).send(); // 'cache-control': 'max-age=1'\nres.cache(30000, true).send(); // 'cache-control': 'private, max-age=30'\n```\n\n### modified(date)\n\nAdds a `last-modified` header to responses. A value of `true` will set the value to the current date and time. A JavaScript `Date` object can also be passed in. Note that it will be converted to UTC if not already. A `string` can also be passed in and will be converted to a date if JavaScript's `Date()` function is able to parse it. A value of `false` will prevent the header from being generated, but will not remove any existing `last-modified` headers.\n\n### attachment([filename])\n\nSets the HTTP response `content-disposition` header field to \"attachment\". If a `filename` is provided, then the `content-type` is set based on the file extension using the `type()` method and the \"filename=\" parameter is added to the `content-disposition` header.\n\n```javascript\nres.attachment();\n// content-disposition: attachment\n\nres.attachment('path/to/logo.png');\n// content-disposition: attachment; filename=\"logo.png\"\n// content-type: image/png\n```\n\n### download(file [, filename] [, options] [, callback])\n\nThis transfers the `file` (either a local path, S3 file reference, or Javascript `Buffer`) as an \"attachment\". This is a convenience method that combines `attachment()` and `sendFile()` to prompt the user to download the file. This method optionally takes a `filename` as a second parameter that will overwrite the \"filename=\" parameter of the `content-disposition` header, otherwise it will use the filename from the `file`. An optional `options` object passes through to the [sendFile()](#sendfilefile--options--callback) method and takes the same parameters. Finally, a optional `callback` method can be defined which is passed through to [sendFile()](#sendfilefile--options--callback) as well.\n\n```javascript\nres.download('./files/sales-report.pdf')\n\nres.download('./files/sales-report.pdf', 'report.pdf')\n\nres.download('s3://my-bucket/path/to/file.png', 'logo.png', { maxAge: 3600000 })\n\nres.download(<Buffer>, 'my-file.docx', { maxAge: 3600000 }, (err) => {\n  if (err) {\n    res.error('Custom File Error')\n  }\n})\n```\n\n### sendFile(file [, options] [, callback])\n\nThe `sendFile()` method takes up to three arguments. The first is the `file`. This is either a local filename (stored within your uploaded lambda code), a reference to a file in S3 (using the `s3://{my-bucket}/{path-to-file}` format), or a JavaScript `Buffer`. You can optionally pass an `options` object using the properties below as well as a callback function `callback(err)` that can handle custom errors or manipulate the response before sending to the client.\n\n| Property     | Type                  | Description                                                                                                                                                                | Default |\n| ------------ | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |\n| maxAge       | `Number`              | Set the expiration time relative to the current time in milliseconds. Automatically sets the `Expires` header                                                              | 0       |\n| root         | `String`              | Root directory for relative filenames.                                                                                                                                     |         |\n| lastModified | `Boolean` or `String` | Sets the `last-modified` header to the last modified date of the file. This can be disabled by setting it to `false`, or overridden by setting it to a valid `Date` object |         |\n| headers      | `Object`              | Key value pairs of additional headers to be sent with the file                                                                                                             |         |\n| cacheControl | `Boolean` or `String` | Enable or disable setting `cache-control` response header. Override value with custom string.                                                                              | true    |\n| private      | `Boolean`             | Sets the `cache-control` to `private`.                                                                                                                                     | false   |\n\n```javascript\nres.sendFile('./img/logo.png')\n\nres.sendFile('./img/logo.png', { maxAge: 3600000 })\n\nres.sendFile('s3://my-bucket/path/to/file.png', { maxAge: 3600000 })\n\nres.sendFile(<Buffer>, 'my-file.docx', { maxAge: 3600000 }, (err) => {\n  if (err) {\n    res.error('Custom File Error')\n  }\n})\n```\n\nThe `callback` function supports returning a promise, allowing you to perform additional tasks _after_ the file is successfully loaded from the source. This can be used to perform additional synchronous tasks before returning control to the API execution.\n\n**NOTE:** In order to access S3 files, your Lambda function must have `GetObject` access to the files you're attempting to access.\n\nSee [Enabling Binary Support](#enabling-binary-support) for more information.\n\n## Enabling Binary Support\n\nTo enable binary support, you need to add `*/*` under \"Binary Media Types\" in **API Gateway** -> **APIs** -> **[ your api ]** -> **Settings**. This will also `base64` encode all body content, but Lambda API will automatically decode it for you.\n\n![Binary Media Types](http://jeremydaly.com//lambda-api/binary-media-types.png)\n_Add_ `*/*` _to Binary Media Types_\n\n## Path Parameters\n\nPath parameters are extracted from the path sent in by API Gateway. Although API Gateway supports path parameters, the API doesn't use these values but insteads extracts them from the actual path. This gives you more flexibility with the API Gateway configuration. Path parameters are defined in routes using a colon `:` as a prefix.\n\n```javascript\napi.get('/users/:userId', (req, res) => {\n  res.send('User ID: ' + req.params.userId);\n});\n```\n\nPath parameters act as wildcards that capture the value into the `params` object. The example above would match `/users/123` and `/users/test`. The system always looks for static paths first, so if you defined paths for `/users/test` and `/users/:userId`, exact path matches would take precedence. Path parameters only match the part of the path they are defined on. E.g. `/users/456/test` would not match `/users/:userId`. You would either need to define `/users/:userId/test` as its own path, or create another path with an additional path parameter, e.g. `/users/:userId/:anotherParam`.\n\nA path can contain as many parameters as you want. E.g. `/users/:param1/:param2/:param3`.\n\n## Wildcard Routes\n\nWildcard routes are supported for matching arbitrary paths. Wildcards only work at the _end of a route definition_ such as `/*` or `/users/*`. Wildcards within a path, e.g. `/users/*/posts` are not supported. Wildcard routes do support parameters, however, so `/users/:id/*` would capture the `:id` parameter in your wildcard handler.\n\nWildcard routes will match any deep paths after the wildcard. For example, a `GET` method for path `/users/*` would match `/users/1/posts/latest`. The only exception is for the `OPTIONS` method. A path **must** exist for a wildcard on an `OPTIONS` route in order to execute the handler. If a wildcard route is defined for another method higher up the path, then the `OPTIONS` handler will fire. For example, if there was a `POST` method defined on `/users/*`, then an `OPTIONS` method for `/users/2/posts/*` would fire as it assumes that the `POST` path would exist.\n\nIn most cases, [Path Parameters](#path-parameters) should be used in favor of wildcard routes. However, if you need to support unpredictable path lengths, or your are building single purpose functions and will be mapping routes from API Gateway, the wildcards are a powerful pattern. Another good use case is to use the `OPTIONS` method to provide CORS headers.\n\n```javascript\napi.options('/*', (req, res) => {\n  // Return CORS headers\n  res.cors().send({});\n});\n```\n\n## Logging\n\nLambda API includes a robust logging engine specifically designed to utilize native JSON support for CloudWatch Logs. Not only is it ridiculously fast, but it's also highly configurable. Logging is disabled by default, but can be enabled by passing `{ logger: true }` when you create the Lambda API instance (or by passing a [Logging Configuration](#logging-configuration) definition).\n\nThe logger is attached to the `REQUEST` object and can be used anywhere the object is available (e.g. routes, middleware, and error handlers).\n\n```javascript\nconst api = require('lambda-api')({ logger: true });\n\napi.get('/status', (req, res) => {\n  req.log.info('Some info about this route');\n  res.send({ status: 'ok' });\n});\n```\n\nIn addition to manual logging, Lambda API can also generate \"access\" logs for your API requests. API Gateway can also provide access logs, but they are limited to contextual information about your request (see [here](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html)). Lambda API allows you to capture the same data **PLUS** additional information directly from within your application.\n\n### Logging Configuration\n\nLogging can be enabled by setting the `logger` option to `true` when creating the Lambda API instance. Logging can be configured by setting `logger` to an object that contains configuration information. The following table contains available logging configuration properties.\n\n| Property     | Type                    | Description                                                                                                                                                                                | Default       |\n| ------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- |\n| access       | `boolean` or `string`   | Enables/disables automatic access log generation for each request. See [Access Logs](#access-logs).                                                                                        | `false`       |\n| errorLogging | `boolean`               | Enables/disables automatic error logging.                                                                                                                                                  | `true`        |\n| customKey    | `string`                | Sets the JSON property name for custom data passed to logs.                                                                                                                                | `custom`      |\n| detail       | `boolean`               | Enables/disables adding `REQUEST` and `RESPONSE` data to all log entries.                                                                                                                  | `false`       |\n| level        | `string`                | Minimum logging level to send logs for. See [Logging Levels](#logging-levels).                                                                                                             | `info`        |\n| levels       | `object`                | Key/value pairs of custom log levels and their priority. See [Custom Logging Levels](#custom-logging-levels).                                                                              |               |\n| log          | `function`              | Custom function for overriding standard `console.log`.                                                                                                                                     | `console.log` |\n| messageKey   | `string`                | Sets the JSON property name of the log \"message\".                                                                                                                                          | `msg`         |\n| multiValue   | `boolean`               | Enables multi-value support for querystrings. If enabled, the `qs` parameter will return all values as `array`s and will include multiple values if they exist.                            | `false`       |\n| nested       | `boolean`               | Enables/disables nesting of JSON logs for serializer data. See [Serializers](#serializers).                                                                                                | `false`       |\n| timestamp    | `boolean` or `function` | By default, timestamps will return the epoch time in milliseconds. A value of `false` disables log timestamps. A function that returns a value can be used to override the default format. | `true`        |\n| sampling     | `object`                | Enables log sampling for periodic request tracing. See [Sampling](#sampling).                                                                                                              |               |\n| serializers  | `object`                | Adds serializers that manipulate the log format. See [Serializers](#serializers).                                                                                                          |               |\n| stack        | `boolean`               | Enables/disables the inclusion of stack traces in caught errors.                                                                                                                           | `false`       |\n\nExample:\n\n```javascript\nconst api = require('lambda-api')({\n  logger: {\n    level: 'debug',\n    access: true,\n    customKey: 'detail',\n    messageKey: 'message',\n    timestamp: () => new Date().toUTCString(), // custom timestamp\n    stack: true,\n  },\n});\n```\n\n### Log Format\n\nLogs are generated using Lambda API's standard JSON format. The log format can be customized using [Serializers](#serializers).\n\n**Standard log format (manual logging):**\n\n```javascript\n  {\n    \"level\": \"info\", // log level\n    \"time\": 1534724904910, // request timestamp\n    \"id\": \"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9\", // awsRequestId\n    \"route\": \"/user/:userId\", // route accessed\n    \"method\": \"GET\", // request method\n    \"msg\": \"Some info about this route\", // log message\n    \"timer\": 2, // execution time up until log was generated\n    \"custom\": \"additional data\", // addditional custom log detail\n    \"remaining\": 2000, // remaining milliseconds until function timeout\n    \"function\": \"my-function-v1\", // function name\n    \"memory\": 2048, // allocated function memory\n    \"int\": \"apigateway\", // interface used to access the Lambda function\n    \"sample\": true // is generated during sampling request?\n  }\n```\n\n### Access Logs\n\nAccess logs generate detailed information about the API request. Access logs are disabled by default, but can be enabled by setting the `access` property to `true` in the logging configuration object. If set to `false`, access logs will _only_ be generated when other log entries (`info`, `error`, etc.) are created. If set to the string `'never'`, access logs will never be generated.\n\nAccess logs use the same format as the standard logs above, but include additional information about the request. The access log format can be customized using [Serializers](#serializers).\n\n**Access log format (automatic logging):**\n\n```javascript\n  {\n    ... Standard Log Data ...,\n    \"path\": \"/user/123\", // path accessed\n    \"ip\": \"12.34.56.78\", // client ip address\n    \"ua\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6)...\", // User-Agent\n    \"version\": \"v1\", // specified API version\n    \"device\": \"mobile\", // client device (as determined by CloudFront)\n    \"country\": \"US\", // client country (as determined by CloudFront)\n    \"qs\": { // query string parameters\n      \"foo\": \"bar\"\n    }\n  }\n```\n\n### Logging Levels\n\nLogging \"levels\" allow you to add detailed logging to your functions based on severity. There are six standard log levels as specified in the table below along with their default priority.\n\n| Level   | Priority |\n| ------- | -------- |\n| `trace` | 10       |\n| `debug` | 20       |\n| `info`  | 30       |\n| `warn`  | 40       |\n| `error` | 50       |\n| `fatal` | 60       |\n\nLogs are written to CloudWatch Logs _ONLY_ if they are the same or higher severity than specified in the `level` log configuration.\n\n```javascript\n// Logging level set to \"warn\"\nconst api = require('lambda-api')({ logger: { level: 'warn' } });\n\napi.get('/', (req, res) => {\n  req.log.trace('trace log message'); // ignored\n  req.log.debug('debug log message'); // ignored\n  req.log.info('info log message'); // ignored\n  req.log.warn('warn log message'); // write to CloudWatch\n  req.log.error('error log message'); // write to CloudWatch\n  req.log.fatal('fatal log message'); // write to CloudWatch\n  res.send({ hello: 'world' });\n});\n```\n\n### Custom Logging Levels\n\nCustom logging \"levels\" can be added by specifying an object containing \"level names\" as keys and their priorities as values. You can also adjust the priority of standard levels by adding it to the object.\n\n```javascript\nconst api = require('lambda-api')({\n  logger: {\n    levels: {\n      test: 5, // low priority 'test' level\n      customLevel: 35, // between info and warn\n      trace: 70, // set trace to the highest priority\n    },\n  },\n});\n```\n\nIn the example above, the `test` level would only generate logs if the priority was set to `test`. `customLevel` would generate logs if `level` was set to anything with the same or lower priority (e.g. `info`). `trace` now has the highest priority and would generate a log entry no matter what the level was set to.\n\n### Adding Additional Detail\n\nManual logging also allows you to specify additional detail with each log entry. Details can be added by suppling _any variable type_ as a second parameter to the logger function.\n\n```javascript\nreq.log.info('This is the main log message', 'some other detail'); // string\nreq.log.info('This is the main log message', {\n  foo: 'bar',\n  isAuthorized: someVar,\n}); // object\nreq.log.info('This is the main log message', 25); // number\nreq.log.info('This is the main log message', ['val1', 'val2', 'val3']); // array\nreq.log.info('This is the main log message', true); // boolean\n```\n\nIf an `object` is provided, the keys will be merged into the main log entry's JSON. If any other `type` is provided, the value will be assigned to a key using the the `customKey` setting as its property name. If `nested` is set to `true`, objects will be nested under the value of `customKey` as well.\n\n### Serializers\n\nSerializers allow you to customize log formats as well as add additional data from your application. Serializers can be defined by adding a `serializers` property to the `logger` configuration object. A property named for an available serializer (`main`, `req`, `res`, `context` or `custom`) needs to return an anonymous function that takes one argument and returns an object. The returned object will be merged into the main JSON log entry. Existing properties can be removed by returning `undefined` as their values.\n\n```javascript\nconst api = require('lambda-api')({\n  logger: {\n    serializers: {\n      req: (req) => {\n        return {\n          apiId: req.requestContext.apiId, // add the apiId\n          stage: req.requestContext.stage, // add the stage\n          qs: undefined, // remove the query string\n        };\n      },\n    },\n  },\n});\n```\n\nSerializers are passed one argument that contains their corresponding object. `req` _and_ `main` receive the `REQUEST` object, `res` receives the `RESPONSE` object, `context` receives the `context` object passed into the main `run` function, and `custom` receives custom data passed in to the logging methods. Note that only custom `objects` will trigger the `custom` serializer.\n\nIf the `nested` option is set to true in the `logger` configuration, then JSON log entries will be generated with properties for `req`, `res`, `context` and `custom` with their serialized data as nested objects.\n\n### Sampling\n\nSampling allows you to periodically generate log entries for all possible severities within a single request execution. All of the log entries will be written to CloudWatch Logs and can be used to trace an entire request. This can be used for debugging, metric samples, resource response time sampling, etc.\n\nSampling can be enabled by adding a `sampling` property to the `logger` configuration object. A value of `true` will enable the default sampling rule. The default can be changed by passing in a configuration object with the following available _optional_ properties:\n\n| Property | Type     | Description                                                              | Default |\n| -------- | -------- | ------------------------------------------------------------------------ | ------- |\n| target   | `number` | The minimum number of samples per `period`.                              | 1       |\n| rate     | `number` | The percentage of samples to be taken during the `period`.               | 0.1     |\n| period   | `number` | Number of **seconds** representing the duration of each sampling period. | 60      |\n\nThe example below would sample at least `2` requests every `30` seconds as well as an additional `0.1` (10%) of all other requests during that period. Lambda API tracks the velocity of requests and attempts to distribute the samples as evenly as possible across the specified `period`.\n\n```javascript\nconst api = require('lambda-api')({\n  logger: {\n    sampling: {\n      target: 2,\n      rate: 0.1,\n      period: 30,\n    },\n  },\n});\n```\n\nAdditional rules can be added by specifying a `rules` parameter in the `sampling` configuration object. The `rules` should contain an `array` of \"rule\" objects with the following properties:\n\n| Property | Type                | Description                                                              | Default | Required |\n| -------- | ------------------- | ------------------------------------------------------------------------ | ------- | -------- |\n| route    | `string`            | The route (as defined in a route handler) to apply this rule to.         |         | **Yes**  |\n| target   | `number`            | The minimum number of samples per `period`.                              | 1       | No       |\n| rate     | `number`            | The percent","readmeFilename":"README.md","users":{"jdaly":true}}