{"_id":"@nacelle/lambda-tools","_rev":"35-d2ceede640fd75d37a3639ecaa709030","name":"@nacelle/lambda-tools","dist-tags":{"latest":"3.0.3"},"versions":{"1.0.0":{"name":"@nacelle/lambda-tools","version":"1.0.0","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@1.0.0","maintainers":[{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"dist":{"shasum":"72e8fffdae82416c23b592ce973682a6c793b259","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-1.0.0.tgz","fileCount":176,"integrity":"sha512-UQSI/j3KJzZDuRZGIzwmqZHQ9ryAi8TALCTysOKYopOTckpRLgLMuYuIiWLu/KMes5F3RVOhGBhRALt05hIsMg==","signatures":[{"sig":"MEUCIF313JBwzItBOEPnKTfsgRm9eTeGXiJb8RsY0oSLeT07AiEAxjeAcuCgpJUr1PWtoullzvRmT5ezgzlMLhZmev9AISY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGweWCRA9TVsSAnZWagAAnsEQAJDiFr1IvAzIhiltHAUQ\nCOpt0ls4SQjFB3Di5zp2alBDlM9NqZXVBKvMl9LdMb8UxvRmt8Vg2OuEwhdq\nNPt/rk4PytEBXTaVINWroOz1zSS2T0HTqkmt24hivsJRuwigB9Uc0/S5LVQ0\nIdGpLTmW6Vo0GRT7yPoxiHKDXJDGxZk4LOlV3Nsy5aHa8YBWOPuxMWjr0QJu\nrt2sdCoyjXPgsXJp4cYv44f0D7jZ3sQEEGjaFmET541nCW5RwpsPpBUNrPmK\ni7dyJS01aOpEk/+0Cpuokc83ZsaOxY7CsI40TIAHGYQ4x6NIWdnDAkTu67aw\nMC6oDEC3TCLUWgPhBKlQzrd4nlQUkHKfWTiGVvYIakXrz2eadHzu31/LU65C\nWNBZIPGDuyWvdYcDoag0SMRCK06rdEo+uTTzzHs6wxEgqqnbUR4Bex8SIkCG\ngQ9o8v/g6rO3qS3wWwWXUt1WCrbB7pA3lmwRI2XUubNlYYbWRtGB5cnTJK++\nN4iEImUIR7w4rsw0s0wEV9I2+w9RcHqYWpx+PL4qoeG8zEKutGsxxW4aSypy\nJp6mbb8LVNWjQXSrK9VTBB1UbcUp2bOPv1s8Jx2xsCtjq8UQxv7QZZqC17UB\n9VsARUi+dz2vaeFPMqF+siUXgHQ7YS4Rb75zMW5cerZz854Q5zbuMUDMaHDc\nAEf6\r\n=QKuC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"f7e653879f6de9fc245d020fcb9e1b48eedd8e7b","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","lint-staged":"^10.2.11","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_1.0.0_1595606933745_0.08877666026444575","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@nacelle/lambda-tools","version":"1.0.1","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@1.0.1","maintainers":[{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"8a6695419809bd71b871bedac6c4a49010585e37","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-1.0.1.tgz","fileCount":176,"integrity":"sha512-3jdcepEjzksbyLtTJhXphHPMF4u11yU3lmKlVezOSyWr115rfNqrbssOgG95cYwxHPjZMUUWrhWQ4JTf9hhYNQ==","signatures":[{"sig":"MEUCIQDCGSd+TPEgrCoERdhELqEgenLBuWhpJMWi3kAHHi6yVwIgYFu/JUvjKXDHuCpxe6/dUlbn6cm5J4cBP0UWVmqL6NQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGwhBCRA9TVsSAnZWagAAj6cP/0xhreioZKtp0QPttMYz\ndgsqliCiF/bR964+HlgR8qxEHet9ILzFE+fbHONYaUpHFnRjnYdoKT58TfGE\nwC1btNiUtjEdxoBtmLagiVLH0Gv/NYdgEIzJjAKueTmOnGe6dEEM9UQ05//s\nI+0lL+IB+qGwwRkRmFBzVFRH3CoH6pLCWJVmSfixde+6yJ1Gj6NugBNXomCF\nP8v99hO0ZO+xBY8vHSJf5XhITizuIPCwisEGUtEgw9gdAtlmj+QpfegAcq03\nLJ/I7v+Qk5YJR4zi3byjKewydeaOOLmEH9Hu/wrH3+yYpA2C7lf9+uLCFvnr\ny55rlykJEG4BVgOY2+yxAN59eeUQCPfgsxaiK8OeK7t6oVD/UbDZefnYUTOr\n1J4J+EZuFpsIyPoeY/XnsYKfr3v2j7XTZebIrio/h7CuFW8/CTNTrrdlvwCc\nx+tvCg11nXlvwyXDjiLftiJdHinnY8ITGR9uc5tqcskGmNakQHGDuEXsIa0I\nhwWeJFBxSUEby6G2RF1YboiXAeTRdmgd5udnf0y3KWwtuhqSXFKg2AKs9DXd\n/PIVEAmvAT+HrwmFyEFTtp+8AN7V2PoDZu5VmZOgfw93TT24uFR8PsVdjzya\n2Qium0ygpndgIZ81Hn9ROvHDVA9oQCEkC/ZbO88VYvmkhWq09B6rwSgq4Lts\n2hJY\r\n=TjMe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"a8eb4d0eecbfce06c6994ab661fa1f85b938e96f","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","lint-staged":"^10.2.11","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_1.0.1_1595607105133_0.4257562194134423","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@nacelle/lambda-tools","version":"2.0.0","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.0","maintainers":[{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"fabd54a9c274320236d1cdc61af05c516d85edab","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.0.tgz","fileCount":218,"integrity":"sha512-3j0B4edeMZVCiTkitsi9Q9w/j2nPX/WigcOVxxqlqyo1liNzkRraPcAVJiHMjbUzuGE2IihReMSi0wRhY6Ixdw==","signatures":[{"sig":"MEUCIQCGXbnNYNAe5jZvTpKZjNTw++dSWX993bkf6N2Z0hRFkgIgSPGHzwjuUijSXpyTuKOcr+4zVqtBmY+aLMuSkXVqSvs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":253530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHxoPCRA9TVsSAnZWagAAQW4P/An3PqFfCVtU0zMh+AHe\nf5gDkoII819yKdSQR7yC5+b10l6C13wj0oKBKzZdO5N3/qFvazvQbiGKvQzU\nyo4md26tBuLKsk0t7ZBtpHXifulcGZ6JXQd/BsZ0NKW56u5+amNjmEacC0Ea\niNUmpojPYIX4W3sOgFAam34u0Y3Ojf3qlmWaKVxudGYSyWm3H47MsF9702yH\nd1oMPPozb4w3M/wW5U4Ro7wI8Iw/LgyXJ+EHtx96lIFuLuWzoNalhOI0NY4k\nI4Na7gSTga2mcHZZvyZd8KSlgZJ4e55ewriL7BGCuYGuiYelpczu+iypHSHD\nUKaaXA4XSBhEMEfCbemswh8hfsekxiKZOz9jsXJvlh8xTLjxPyE7kZYETir7\n9477vbM1jjP+L4hq3qoDBywF/4ehaeaCiYb1rxagp7lE3q0O3FY4y3+jK+61\nJevYnvRA7ZA1PADwIrTGNyTZ/xckQnvAjXe+8c1XlW4FRRbt77cvmicJDAML\nHvqxuPmcozHIFjcsXFcjX5fnznxX0PsI0/ESLikoT6HVJMLmuTlCdZ1FImYu\n28/XksMlmjMkbQnJZ/ICz5fXOFbwKIRArCd1B98vMxHNAMfR4uitVWxW+rya\n2Cs8gccuIWvE2XRNuodCz4Hq7NfM/lSezzovLjFdz3vLa3MRQu/GyZi4haQo\ny02A\r\n=rAUv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"192e7e322d21de6434c6f975306fc0c0c5e9cb6c","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.0_1595873806415_0.7397577971345703","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@nacelle/lambda-tools","version":"2.0.1","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.1","maintainers":[{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"2a62b412e298cd6692475e8a35600f453d044fca","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.1.tgz","fileCount":218,"integrity":"sha512-9mmhWv7b695lOQI+SsgD5qYioV9f2oeVl+wPOZldnNaCXkZpOtjWum7tXqHOr4txRzYADAQh80rnprzPqsHjzQ==","signatures":[{"sig":"MEQCIAlWcPCvzj09L5X9tbjROFNZH3efj+BAYrTuhDXkrSslAiBxt+ue5vvVgpVWpVUiJrXVhMlJvY1An1g0wFelepSuvg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":253559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIERwCRA9TVsSAnZWagAABA0P/RTw3m2GcAFEiSvp3q8U\nCIe/D5q3jJMaRCWdueasTBGDcOmTdxLmWFkJfZVDbBirS4WdMPknz/p5FCgo\nNhdQ/6fNi0G3uH/BJLmu8Yd7L3seeQVZy+l20rsLspzYNliDp7jyraj0oHFD\nu8PyzxNnNGC2T8KjhFFw4urhSifs9FpOusJ10xq7ccRQ8tykqhUmXoUPBWeJ\nGPdl1FIy+enx3DM64iCW+N0yEL3HkcD+a6tmRelK7LFZW06h7D2yolo+gXCJ\nf3TtTNTQG1zakUSfIYO7vU4CNnEJKILIjyP8o/KPKeZe+z4HdvlwyTqIZsJG\nrgKbdU+5LFDp223t1TVHBg4MYQJD3zOvdyMW+fFqg/6cjVyISieaya4LsX+Q\n9hvdBOQtM9KPNYCRpkkBCAvj4twKT6WMfLBDXCmUTEw7SRDbQLVuJUthCmNW\ngtoYi/J4wiQFMm/PvC+4ZYoCmXkFlBT/lqkdD9ipxQwyi9gVDFqX9ZfUnpoC\nvNndtgo46PkFtSk6CMfzKpP8vZWUfiW56c3yPl6eOLfKtwZ2pd1rymW6yKrW\nZgp5Dfa7TDjI5by/pIUIwsRqbQg496NI2+B4w83IcAKBqGHo1ok34tkJ5OPb\nuyeW01VBEKzNUFXzdj1MsvFo5PS2HmkebtJfLxV9mBoKlcPIQXxPhgFm9/+f\nVaqd\r\n=hAI8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"5b591df6618af74f4f2ad885a21887730a6acd41","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.1_1595950191448_0.3440539419630477","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"@nacelle/lambda-tools","version":"2.0.2","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.2","maintainers":[{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"bc66f26df8032dc03c5a7dafcad0cc51f6748fd3","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.2.tgz","fileCount":218,"integrity":"sha512-ryey94BMHzjhI3Silor+T+MSLNxQ0Gl0VwTpw8I4LJK8yhqDHysj69GF43z0hIEtQVJlQBkqygpqhjlmP+lwyw==","signatures":[{"sig":"MEUCIFSWzWG5NaYWdOS7Q7lJISmF1M2AZg82y6leZRsqzRu2AiEAoxdGudNjHJpjY0BX3PPIu+lnGq/qpteAiuOsxxyLRtA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":257004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPbigCRA9TVsSAnZWagAABtEQAITt0TYAbA7OdAPRnQnW\ndTJXIMWql5mBEqVVaJj6MK2UGVVroWmhkD4hYx+IcFkIXfH/qMBRsKfarDO3\nusc0minI5HyXUIi3jzIsp6HeoiVHwfENor1y8FrIy2Rt2klHHUUz5IDeRHuP\ng17WrlzVBiWqQZrAMJJUyiMTsn5fnSLxDc4n0IZ/rqSapS66B2Hq7IZTUj9/\nA/3mMDISTJlposCBxYRu91HQMkny7Fsm0ZgDKjOMeVH3L+paOvgDoVg8oT17\nH0/ISHBRCdo7dtGHsZ/3a+t8/pqPA0SHwX7HCMs98Zr/Faewuv1bcwy/3e5h\nIEw3Hc0BuynNZc/PhT0J2gC0v8uspzYepSIGB2S7fLbWiPx6nqQbVujkPhpO\ncM203XcruBi041Ld3rnOQpSqEOkWNY7qLhrx6YXjmYGAv3aowBHuNec5dipe\nZe4vxfn+Cb5bno95uRsIP9Dp/BonHuNXyEGKUar4Zf//V2YiBxCDatVnrGtI\nZNYnZVgbkcOwoOTkBXgeMs+0mHDIGO4SClWBhOf302WXAnwEn7RDCPv1FUXZ\n+AbF/dHolsmfuzZ1bCFDxOujydANYlYpUmY0zD1Q+Ab0Z55yvt7+C2UZuZIg\njqK+U7pE/zKljzyyLxYGZc/UVghW5DsOPCbygsPE9cOHfWUda4JndV4iRymb\ntZGr\r\n=kH0Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"89ded13aea554857bd645b5e5db7f3157de5c14c","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.2_1597880479521_0.3302968859795492","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"@nacelle/lambda-tools","version":"2.0.3","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.3","maintainers":[{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"3a806c48121ab42bfcbf4fd28b5ad776e2a90fa4","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.3.tgz","fileCount":224,"integrity":"sha512-Ps5rR8ZzOsyJzuK6RqAvKY6s2ekb0g2jhQ5YtdfLNcGKSrKwcxISX+Ekw4p/As+lV9dU/WDfVFp13Q26lcFCmA==","signatures":[{"sig":"MEUCIQCcJC76PqugnQPhMVHxwvOUyBWnB4fWXFkjM3puYq4jTQIgPaDX3NlaDp0NtIElUOXyPArdMBsr0vS+at9koNgAlUc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":261639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffjq8CRA9TVsSAnZWagAAEQcP/1SClCpGGCWsoEDWl2Or\nuSWYBaxa8al1lRWh6Xd5tKJNTMb8/BHvCVfvw8PrP2T6oRBGo1VAKfbNxTsX\n//a4ahMWl2CIN19KeVjmjzTRHwQLpdFTwO45eE1ysud1k0P6xs8XoS5mMC+q\n0gIiNMouAAQmxWUHdoZOi51ALLZ9aY2Uvh4jsvBB6KuDNpg+akrpjzkJD9YE\nR6cb36Qda2YNq2Ox1ee4NqLyla2qZcPveVxsAj9VOGz16JQnssgIfqTabxGZ\n+1M7E2mGnMlJNy7ekFsl1LsEfpQihEY60zLe85UlqZGwyWayuFXGrCWnuM0X\nxLNbNm4rEzcyygVdvO9d+E/Oob4F/lChlASZsaxyi2QuiKZWbo7j1wB7B0VH\n5I1Kkhg/DsEsOqHYIrcnkUr1VVATyWVSDNpgSqO5Wc7HlYVUueBGyuwuptVZ\npCvTUmuXZJe1aB96fyyQB6f9WyINI7bFgu36jOZJjtBVh/2u4W7es5DOwAeD\n7co6Si82l1hzRPYhClf3ebBZaXBuq86c53oAstWrBikgDv4f0IYJ5VVR5Ein\nNg9ac55Be7vm4W83hnS1fHapJkQmJj/e4d5vFa/lJjF+mQ1Gwc2V5mnPqbfa\nF8vGFCtcM+L0hjkCqRbcBaiMH+M5txAjYrUMO/VeD1NYxPo/J9GR82GL+jRk\nEjl/\r\n=oUNW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"5f47ef05f138553009b7330204faf374173095fe","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.3_1602108092402_0.866685637274166","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"@nacelle/lambda-tools","version":"2.0.4","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.4","maintainers":[{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"2c4834af628604ff5524311f4f9a52858500a316","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.4.tgz","fileCount":224,"integrity":"sha512-4Ml6SeCXigMDS1pu6gEZ/AbJ3i0fiVQXlSJ3HlwtpHUS5PORtvmUfQ2CJ0lQ93JlbaDyJmC70JZJMq/MW5NSeA==","signatures":[{"sig":"MEUCIQCSsTKc/CsPpLFmgoK7Z2VB66hAjCmBja981z0yYLqA4QIge7ooCPIXTcJj6VSkvjNj40PwJB8FG94Ho9Af65uGV0c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":261643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffj3OCRA9TVsSAnZWagAA/QcQAIZCoHMpkWqTUCgIaOEL\nmJttNZFBvDWcRVBe3EU1Q6Ir3Dg84ZRX5K0cY8JaZM6FptZBjFxEMTtAzaQf\nMvNDJtCRo+Bi8PWuZwZFjKcOxOC42IjYbMy/OH/AQMopk40BgN+RivHUoP3U\nyprCLmcFRjtwygMiBONCQ1ugwoOTQNYqRRu7XL3Gwb273xyrGoKm1BKESCQN\neO2Ezt9y4MRvtGJt6Ml78IB2o/R8BIDUhH4ZJt81mFsOzn8qk0wKGuhzkogC\ni0eMcyUWt2CE75cI7z0bJal5K7syiOXpsyDw63G85lpVVMA3sC2KMGugSnvG\nyLz3bovrmHsHpy/kMXfnLwBNUcUSZru1/Jfu1CXZ2vFpotKiZjkyyLWIJw0P\nQVrfjv19cJmpUX0EV+z/rx7LkTQMU6uBMUpzVi4xbwPS4WgDTYqW5sT4DTlR\nv/s/dyD6aTwX1WnRWsG+ks3tNumNkhWXY82LcR+PvXV56CaqOkbwRr4SpC0F\nRXTOTD9B9XXQQD7M7m8pWlnOHC11PRU1THjaIwJ1MASedVAwErrKcdGoyzJA\nbVOZtPGXvXe6JohT9CBhn8ekO0PI3yHaKS3aZUqvq1ZPp1fLodovaa/vKcEd\nJ790RvAJ2eoz5BUWHoVX6hH1r1r9zX8WjQZJrDaXzs64HtFPc7HxxWwDHQK/\nvjlY\r\n=AMVG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"37c0d233bb74eae25bb700ceaf6db6a74685a1bd","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.4_1602108877676_0.35080751427969536","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"@nacelle/lambda-tools","version":"2.0.5","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.5","maintainers":[{"name":"irnoble","email":"irnoble59@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"9c1f6febfb6a6491d07711468639e50ec90f0f35","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.5.tgz","fileCount":224,"integrity":"sha512-ByQZBtqIe0tFUsE5/yOXScE5xFKO0Xk+QWUzsYKZ2iXHB9AGs1CMWQthf1QfCHEieKmTe0LUCHA4PeEzBDRn4g==","signatures":[{"sig":"MEYCIQCImtMpneisEnObWrOhkCp0w6RBP/1+xVV/L9y5xyLuhQIhALeLZEtNy88diLZZLc7JJ1fh61s/q8c5E7sJN/2UQpN+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":262777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhMRQCRA9TVsSAnZWagAA/skP+wVE0M+V7hNwNzCrCOi2\nZiGx3Ds54fHG9ttw2u9uIm7XqjmaV5ObVU29nLV0thQfw/p96anYRgtaF0aq\n6AueuPrdsRYfpD2EOABggi1D+e2z4OSGcwd9KIMZkc2/oreSM/nsuKEutdpL\nh+n/z6nTcnn4BGlvlNeLu0097W8ErLnPoq7ZW2D/hKSNruedJZjIvowbtk8b\nXGGYtvvZJ5Yel05DZ7+drVuKbkh1GMtS1vM5mmjOb03mVswrV43PMHYQQvtj\nC4440D5pKWS4PTq057EMNMvay81zvxo/MliYGjhLncqkMLu7vzv78XuoH8mw\nc1nycFkGe5YUaSgyU7epfsaKs83ymSXP37/LTKRcdlKvWSbsE3BmwIAh7Jm0\nGug72YKKc1Ek9Oq2OjTcVEq8IzhlIYXeouckq4SbV8zZjr9kUSeQtlL3j4Dt\nhEVbxGy37t3LhKnoZ/uzRv0rN3y5SOKliEF9PbylMkHyI1EXDs2jplUu8w6E\na4JE2bTEe/ziz7DwziGd5p+mMNUPfn6FEa23GaBkwtxli/9Bu9W/16ienQTh\n5dfMBE5ZiG/a2GRLWMb/PGv2ywT6+fayQavKMUHgeCBK5rKMXcwYE2zeCm9t\nWyXg8U6g4Tcgy8hnQJBGDbKjQHKt8h0g+lgrMeOjsKfXTECCreaizgHdJpLE\nnStL\r\n=8bOn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"775543c802bf78ee198631780dfea4f46c70253e","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"irnoble","email":"irnoble59@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.4","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"12.16.3","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.5_1602536528005_0.8688704872101445","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"@nacelle/lambda-tools","version":"2.0.6","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@2.0.6","maintainers":[{"name":"irnoble","email":"irnoble59@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"9bbf48c372dadca813cef16ed4fd3415d0c9cff5","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-2.0.6.tgz","fileCount":224,"integrity":"sha512-WXW7L9BCPWlSuUpnmp9pPQe5YE+6Gk50AF2HG1ELKPx1MNBNY8Q8ZCwc3qpuCj5UiII/dyjOvXP/kBJgI8f9UA==","signatures":[{"sig":"MEQCIGPaJpI0VyzPDi69XrrVMEQF1kpUCJ2z8q96L0fzvuKbAiAyLAIJcvzxwRB4t1dd6jEk3HeV4Ro5jQXgTXcicGB3SA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":263315,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhi2bCRA9TVsSAnZWagAAdzwP/ibJjdoSe7aImLD99Wtl\nH5aupuz9HWG3FEMBaufXZXC7l6wyN+AvguUtqZ3EammbHy1Tw+gD28J2T+7/\nkzLGNvSXtrIuGMgEcvDZsRqGP3YE5M9C8CTs1bQgPaa4ucjw2Na3pfeK8/1e\nL10nhnF4xyd6TMNTCaOHia8XmJOT+TlCsKSb5LPkFOIoBKSKGRS6psc0/tZ1\nbCUm73/w6Ay8ePQqnXsmk+3ogRQVxoZWvEh1wY46jfsHind94HpowHp5CyI+\nbxMHpSgBhEW3Qt8u2stKtd8QDfSDcYY3Du3fDnjk9KilbJ9k/vO2k9CvJpMG\n6RoThBCoZifIJa2bOvSsVO9SKG6h67hgttXypbaKPKDh39svLkWMuKECI5Uq\n4zxQ8D0poJU2YHacpriXj+xltAS6XWuJfL88x0WSbD94wEdGwuxACIIJL1C8\nepbcncpi5wWsPKJwq3IK/cYV2cV76dGFwMaJjafDNhY94tqfG/zStxUEoepO\neDZu25jfG44edBFccsF6PcFSPDpKDEBd6uXLaEKNPpkAqPw0W0TmwGhECNgc\nQlvSDOizz1ryP6rdA5wXiH7Le63Uf4X5F8soJJA492bVE9pBEz2aYpZZNkFi\nYIPHDo5q2zljSz52Ja0XsCeFGs49m++PEQsJpdE6YUObRDr8ne6dfskWPF4d\nL8e7\r\n=ny7S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"e1f635f3f820e0b2fac9690d19372f87845794ab","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"irnoble","email":"irnoble59@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.4","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"12.16.3","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_2.0.6_1602629019018_0.027787898855847315","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@nacelle/lambda-tools","version":"3.0.0","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@3.0.0","maintainers":[{"name":"irnoble","email":"irnoble59@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"1bd5807b5b5ae75c858eb6853c6ad943a34e26d0","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-3.0.0.tgz","fileCount":224,"integrity":"sha512-DTkSxvg99JqibqGidNGDq8TXXI1KHzqbe+lj6YFQVN7WxFsjZZ414omSBibFMRJ7/HZyrXHmbMFpIDY3DUz23w==","signatures":[{"sig":"MEUCIQDxxxZWOR2JehPUXnlPfFVhsU2SBO10R5eRC+PB2b6HkgIgeASYF6lB2ZRp+W/iI/tnu9RNc35bDGicUrh1nVZTuII=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpHgCCRA9TVsSAnZWagAAFoQQAIjRCGP+7hhFarj4R2aH\ny9s3nydFCa4kZxXHyC671agKB2AQSpF+ntBIIzUprcglZ6FpLEDHvkPSFAjF\nAINNf1jEgQudCfTtY3HH6cVvpcGW1+DIMJN2dbe3khzFkngRH2MprFb7kj7z\nA6a1RfncodPKwPaZ9g1xPt5tX6JCKndsfVeOR63MWs0LTN7FSbxbUoD1QEnC\neV8nIxKqejXyV647prSIhrtQ9oyDqtfHfW+VvvkpJkcMCG20muYHe6lio0KL\nn4dexxda8xD4mCROLcDsKqlRfO/D/J7Y21+VxVSUDpB0VRMBo8+32GqYZNCQ\neZ6KZwD4I+gf5yA9m7Jtfk7j0MBrclnabnjsLhQY/NaCW9/2Z2wM4g14Horg\nIqRcgHM9fB3Qt+ilA2wdpzbU0lpiL5UcJpSqTAmEwZUMXmzVli8UNZ1eMkCJ\nwudqAm5/wtHMRv0oXYyfhkapwzUfWiuZSkBgSd+XZkXWBCPvEJPNU9FOS7ZO\nj+QTYJgIC/E6gjV5KmxJlGAXohqmmsAhR+E2I0IwI25F5drwssfZvD5ml/eR\n1qsTE2WmTTkBNPC+hvEmfhEygEJ3jqjRZLh4i5rx94lYHhIxucyZua+dfXc+\nnIGGJ6f58r2t7ZFBlClCdbVQNfl3oYSerRQp2vA41t5l2y6NftKRXrOcR0CY\nGw9s\r\n=K4H5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"c063d0031aa97ddfecce1d4c6991070c37e5be53","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"curbol","email":"curtis@getnacelle.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.8","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"12.16.3","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_3.0.0_1604614145525_0.15235558917788228","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@nacelle/lambda-tools","version":"3.0.1","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@3.0.1","maintainers":[{"name":"irnoble","email":"irnoble59@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"leviwhalen","email":"levi@leviwhalen.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"f18b12796f1c6511eb8b5c06c6a84eb34b9b6d0e","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-3.0.1.tgz","fileCount":224,"integrity":"sha512-mn1otrik5gKLyDcqHI0jiOAYzCNTqeZCrFBwJ4RTPNmDKWTKLttEjPPNioNuHXLYyYMz42wc8zq95o15F8cpiA==","signatures":[{"sig":"MEUCIQCHLhhf6W+hKtANQpNEuby6f7w+OpNVuXouFnJACy8GqwIgFlIcsLe7yqp4Owb2nGR8BO7qxyrnMFxxg7vo0pqc5LM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":284972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfstP5CRA9TVsSAnZWagAAkvsP/2eHiMF09r/FdiSY2xUC\nf7UPbQ0lD/HBHEkyWUjsJvneJZR5m7DjrtVxznI1ycNLNtOK+WBJeBdfe9ug\n4svsdIl8fpK7Gmn5SpaT5PnZ2du6dEPjrGELxLrb5gbV4sn1jZk8HymnStP3\nr5xoIiz8nK/MH9Xr2mB9ZMQs4QYyryWnz6RfcxtNT4AviwQamRmLjTmjFc7o\nvxLPhIHsL2oXDB04+TS17ZJ6TYTcgQw3dAcoRskMuxfSkEOQpl0ALRNsOli8\nEFebe+j11stsQcyO9WyPfqvayF/HsCYuS1g8DzwX+AhHhLvIwgfkt7i3IzRH\nfqqs3HFvlsVhOOt7rE346LY00ZTRkFpuaG8XU6aPi4yOHT+noHEiT7fic8zX\nC+M7faWGr4fDRQOXC87fwIPP83G35lnytVlE3LnQ8WWjNklPYyuL9WzRbz6J\nczE7yiwfgdMXhBd/cywNMdgFwuIBM+EKoYVkfntIYxHvhgJvgUmHQ2RXPMXZ\nDwwBxV5IEqeK4fOufbjc95SySxBViVkoLukGcdwSGudyYqisgfyrVEiXQe/J\nTS7YCyIoCJCk25ZCvosSNSjgUp1FftuzkfqgJIu7VlXsJCEWwh2tw9evfRIv\nhiVw7GHpjmpPBKmTo3GxXiPFvXkBRX1LAgFjnDbakXBrC/o09pUTYqd4jmmL\nYLHK\r\n=Cjg2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"f1abe15b7f46de6f946b41f0ea39128c8e7cd989","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.5","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.4.0","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_3.0.1_1605555192660_0.48482850005465905","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@nacelle/lambda-tools","version":"3.0.2","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@3.0.2","maintainers":[{"name":"austin1237","email":"austindavis4@gmail.com"},{"name":"nacelle-bot","email":"jeff@getnacelle.com"},{"name":"alexnacelle","email":"alex@getnacelle.com"},{"name":"jongeyer","email":"jon@supraset.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"irnoble","email":"irnoble59@gmail.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"4810fb16982d3121da353f920195e56798e9009c","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-3.0.2.tgz","fileCount":236,"integrity":"sha512-iN/SyYYqublSL288EaqRx+VNiswsDIX59s7LlddLGoe9Ph1ufn0+4Zm/WxM9sTWf0wZlM+iUuO3MNpqygPY64Q==","signatures":[{"sig":"MEYCIQC0QXDiye1TXygDOb9QDqnGaGWEeZt+EOxNLGaWua6wmAIhANvZrMoOZC/8DFg7NhPdjmua8SqwGa8v4scIgZUPXsWG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":291361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5KTrCRA9TVsSAnZWagAAaKsP/12mAocoIS9JVmDMHg4Z\nco5pK45le/iRQ00X0mvU09623MLLs88VgNsmC948uXNzgCqzcGxFr04GZm8n\njQfaRc2BmT8xjcXvuc0BKj+htoQ4FE/ytXrYSNWD50s8drstb6YIoXQY4v6S\nNOdKRuB2gnrhlLYSb5RK7XXeCViL9XAJLfm1mLVrl9tV9m9CXISnMDMU/USj\nlzzin23mVTv0TCcL7G4uroDEmRWrhxWTL2Kp10jBryd2RwdSUbZqA1gm3w7Z\nfpOtHyA91Iz7020EEpJrIDYNYdzHRcApwSQB1sev6z6ViIRgtUhL57GlzN6W\nluXqwrCIBc0de5rQFsoobd/ja2lF9tnCPnxRcYKOea+cRtFwDZKXEfKk5dUU\nULpcu0SZQ4Lepdcf/xWLTywgIdXXbvRV6DvavDHUgJrtfepH+rYUQW8vf/4R\n1nJ0uGsbYuRm6OgxlMcyVTnAUy9p+HgNLMhyrek4lcJzHtMqi/nTiNrCP3cD\n+xiRCz8fXJGTgxapHQ0WLqpKb88ZlDuFkXiKwBHQfx0E4/4KCNrAfwPcdZRo\nnM0JD0HCWMUHGzgHOWV1cylaQFriqBMwbJkVIWf0ve7LM3sU5z+HDB04HiBc\nIi79eANykAlvSY/uzf4nYLqQ7J+Jg2iR+eXOxDBWrD4gbW/roZpS64WC33ad\nX9Vu\r\n=5NAL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"9bf8a3b43ca53f4eef48b2bdd1806db2d1a89472","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"irnoble","email":"irnoble59@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.8","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.16.1","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_3.0.2_1625597163104_0.9993638227107675","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"@nacelle/lambda-tools","version":"3.0.3","keywords":["serverless","lambda","aws","nacelle"],"author":{"name":"Nacelle Dev Team"},"license":"MIT","_id":"@nacelle/lambda-tools@3.0.3","maintainers":[{"name":"badiolaignacio","email":"ignacio@getnacelle.com"},{"name":"leviwhalen","email":"levi@leviwhalen.com"},{"name":"andrew-nacelle","email":"andrew@shopelf.agency"},{"name":"nwrichmond","email":"get@nickrichmond.dev"},{"name":"brianvanderson","email":"brianvanderson@gmail.com"},{"name":"cbodtorf","email":"cbodtorf@gmail.com"},{"name":"johnstonbl01","email":"johnstonbl01@gmail.com"},{"name":"krisq","email":"kquemener1@gmail.com"},{"name":"curbol","email":"curtis@getnacelle.com"},{"name":"irnoble","email":"irnoble59@gmail.com"},{"name":"jongeyer","email":"jon@supraset.com"},{"name":"alexnacelle","email":"alex@getnacelle.com"},{"name":"nacelle-bot","email":"jeff@getnacelle.com"},{"name":"austin1237","email":"austindavis4@gmail.com"}],"homepage":"https://github.com/getnacelle/nacelle-lambda-tools","bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"dist":{"shasum":"e164404bf4b947548501cf43d77e1133ecd015e9","tarball":"https://registry.npmjs.org/@nacelle/lambda-tools/-/lambda-tools-3.0.3.tgz","fileCount":236,"integrity":"sha512-lxyDXkDWHhQ0nvViAgq1vc7TR8qntNlwB2DRcKu1vMNHHwo0zAgdgkAQWADDys24BNKq6+B1Q0XfXNoxVU7hcQ==","signatures":[{"sig":"MEQCICvi909w4F+BdaIA+TTpWo/CeRZtoxFi5EBA0r3xhn9qAiAVEmF6yv4a5ljPiajgn/SV/SKItEG/cuW7Ez8zIg1tew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDY2vCRA9TVsSAnZWagAAhqAP/j3nftcZJe0kbTJss39o\nUBBJwQXw/WFjBJlCt17T4NFwklGNT1LE8dvWfFKSgUqhZabOHUoNYFcS60yR\ntk1cwAnwCXK0GqcMcYsDisDD6SN2lq1oiyJkMSTeqXsnr9DFLhGRC+pvBb5p\niv2HQjRxnoaCslB+6/06EPgE9tbgeVVtNDYmjaP/5Ig9roJVuOGlKPX/Mee7\n/TrrUdDqUKGY9nUDa5XDd611tRmU5gd0ZqJD2AR5tkoZbRg/8aLt0rTRk5CN\neKcRSwXdZZkdu5mNAfWYJmcGNNKiuvdFyH+Cx675Fs73cQol5LFIq1gexEPQ\nghj3hGpoR8MpzTMyCNflChsnnFqapcRHYoDATeb8I6rth/c3RYPEOGqlg5sc\nW1nl2HVFjOUGRK1Y3cz36RFq1/I0j1EhUJ+S0VeYzbx3PQUaSzDgWJHLbvsX\nZXNcWfizTbBPMahM3usqtG8AeyR6jZ49mPEkVyDgvLbvkpjOMbzonJFa8H+W\nn3MtvqhZSdiy8h71fECl4PysSd5pdW400+lsNmHJuLhcCgb+4O9hVAEed6GV\nPlvVOSIReuV5MvdGTZBFd0qY7qXPXWOzLQf8uujqhpV+e0EylQoOhc2KpsOK\nLTyNk/jeVBKfzjvKmPkWDfPt3nQ/XKWSj4cC+tdDc0J/zH2GGcIP7q/XXls5\ngTMW\r\n=o8rp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","husky":{"hooks":{"pre-push":"npm run test:ci && npm run build","pre-commit":"lint-staged"}},"module":"./dist/esm/index.js","gitHead":"dcf68dae57603ec91d8dfa21b33c08370bc7343a","scripts":{"lint":"eslint ./lib","test":"jest --watch","build":"tsc -p tsconfig.json && tsc -p tsconfig.cjs.json","clean":"rimraf ./dist","test:ci":"jest --no-coverage --runInBand","prebuild":"npm run clean","prepublishOnly":"npm run test:ci && npm run build"},"_npmUser":{"name":"irnoble","email":"irnoble59@gmail.com"},"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"_npmVersion":"6.14.8","description":"Re-usable utility functions useful when working with Serverless lambdas","directories":{},"lint-staged":{"*{json, md}":["prettier --write"],"src/**/*.(js|ts)":["prettier --write","npm run lint"]},"_nodeVersion":"14.16.1","dependencies":{"uuid":"^8.2.0","lodash":"^4.17.19","aws-sdk":"^2.719.0","lambda-log":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.5.0","rimraf":"^3.0.2","graphql":"^15.3.0","ts-jest":"^26.1.3","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.5","@types/uuid":"^8.0.0","lint-staged":"^10.2.11","@types/lodash":"^4.14.158","@types/aws-lambda":"^8.10.59","@types/lambda-log":"^2.2.0","jest-watch-typeahead":"^0.6.0","@typescript-eslint/parser":"^3.7.0","@typescript-eslint/eslint-plugin":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/lambda-tools_3.0.3_1628278191008_0.1971993019934868","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-07-24T16:08:53.483Z","modified":"2025-10-29T15:33:37.194Z","1.0.0":"2020-07-24T16:08:53.911Z","1.0.1":"2020-07-24T16:11:45.285Z","2.0.0":"2020-07-27T18:16:46.568Z","2.0.1":"2020-07-28T15:29:51.728Z","2.0.2":"2020-08-19T23:41:19.669Z","2.0.3":"2020-10-07T22:01:32.520Z","2.0.4":"2020-10-07T22:14:37.808Z","2.0.5":"2020-10-12T21:02:08.283Z","2.0.6":"2020-10-13T22:43:39.198Z","2.1.0":"2020-11-05T20:40:36.164Z","3.0.0":"2020-11-05T22:09:05.683Z","3.0.1":"2020-11-16T19:33:13.061Z","3.0.2":"2021-07-06T18:46:03.289Z","3.0.3":"2021-08-06T19:29:51.203Z"},"bugs":{"url":"https://github.com/getnacelle/nacelle-lambda-tools/issues"},"author":{"name":"Nacelle Dev Team"},"license":"MIT","homepage":"https://github.com/getnacelle/nacelle-lambda-tools","keywords":["serverless","lambda","aws","nacelle"],"repository":{"url":"git+https://github.com/getnacelle/nacelle-lambda-tools.git","type":"git"},"description":"Re-usable utility functions useful when working with Serverless lambdas","maintainers":[{"email":"ignacio@getnacelle.com","name":"badiolaignacio"},{"email":"jeffrichie@gmail.com","name":"jeffrichie"},{"email":"support@getnacelle.com","name":"nacelle-support"},{"email":"brianvanderson@gmail.com","name":"brianvanderson"},{"email":"jeff@getnacelle.com","name":"nacelle-bot"}],"readme":"# Nacelle Lambda Tools\n\nA collection of useful functions for building Serverless lambdas.\n\n## What's Included?\n\n- AWS DynamoDB Tools\n  - Wraps Dynamo methods and builds query expressions (more info below)\n- AWS S3 Tools\n  - Utility functions for saving & loading JSON files in S3 buckets\n- AWS CloudFront Tools\n  - Utility functions for invalidating cache for a distribution.\n- AWS SES Tools\n  - Utility functions for sending emails via SES\n- Lambda Logger\n- Nacelle Models & Mocks\n- Utility Functions for filtering, handling URLs, etc\n\n## Installation\n\n```\nnpm i @nacelle/lambda-tools -S\n```\n\n## Usage\n\n### DynamoTools\n\n```js\nimport { DynamoDB } from 'aws-sdk'\nimport { dynamoTools } from '@nacelle/lambda-tools'\n\nexport const dynamoDb = dynamoTools.init(\n  new DynamoDB.DocumentClient({ convertEmptyValues: true })\n)\n```\n\n### S3 Tools\n\n```js\nimport { S3 } from 'aws-sdk'\nimport { s3Tools } from '@nacelle/lambda-tools'\n\nexport const s3 = s3Tools.init(new S3({ apiVersion: '2006-03-01' }))\n```\n\n### CloudFront Tools\n\nparams:\n\n- _distributionId(required)_: String. Id of the CloudFront distribution you want to invalidate the cache of.\n\n- _quantity(required)_: Int. The number of invalidation paths specified for the objects that you want to invalidate.\n\n- _spaceId(optional)_: String[]. Array of paths to invalidate.\n\n```js\nimport { CloudFront } from 'aws-sdk'\nimport { cloudfrontTools } from '@nacelle/lambda-tools'\n\nexport const cloudfront = cloudfrontTools.init(new CloudFront({\n  apiVersion: '2020-05-31'\n  })\n)\n\nconst distributionId = 'E1FLDI5PK7XUGF'\nconst quantity = 1\nconst paths = ['/*']\nconst response: CloudFront.CreateInvalidationResult = await cloudfront.invalidateCache(\n    distributionId,\n    quantity,\n    paths\n  )\n```\n\n### SES Tools\n\n```js\nimport { SES } from 'aws-sdk'\nimport { sesTools } from '@nacelle/lambda-tools'\n\nexport const ses = sesTools.init(new SES(), 'Your Team <yourteam@example.com>')\n```\n\n### Lambda Logger\n\nDebug logging is enabled, and development mode is enabled in any environment that's not `production` or `test`.\n\n```js\nimport { logger } from '@nacelle/lambda-tools'\n\nlogger.info('Log something')\n```\n\n## Querying DynamoDB\n\nQuerying DynamoDB requires creation of an object outlining different expressions depending on the type of query and fields being requested. This can be tedious and error prone, so `createQueryExpression()` is provided for convenience.\n\n### Creating Query Conditions\n\n`createQueryExpression` requires 2 arguments -- the name of the table being queried and the query conditions. Query conditions is an object that outlines the type of query you want to make, and the values and columns to filter on. It's (very) loosely based on a similar concept in Sequelize.\n\n```js\nconst queryCondition = {\n  where: {\n    id: 'my-id'\n  },\n  fields?: ['columnOne', 'columnTwo'],\n  update?: {\n    stringColumn: 'value',\n    objectColumn: { x: 5, y: 'seven', index?: 2 },\n    arrayColumn: [{ z: 8 }],\n    returnValues?: 'ALL_NEW'\n  },\n  remove?: {\n    stringColumn: null,\n    objectColumn: { index: 2 },\n    returnValues?: 'ALL_NEW'\n  },\n  type: Update | Query | Scan\n}\n```\n\nAbove is an example of the query condition object with all possible values and variations. Here are definitions for each of the fields:\n\n- _queryCondition.where (required)_: This field is used to determine how to filter the query. Multiple properties and values here are converted to AND statements. Example: `where: { x: 5, y: 7 }` is converted to `where x = 5 AND y = 7`. There is currently not support for `OR` clauses, but it can be added in a future update. Note that for the `Query` type, `id` is required.\n\n- _queryCondition.fields (optional)_: This field is used to filter the fields included in the query result. If this property is included, only fields included will be contained in the query result\n\n- _queryCondition.update (optional)_: This field is used to specify column names and their updated value(s). Note that several types of data value are supported, but each accomplishes a specific task.\n\nIf the value is an object and _does_ include an `index` property, it will be used to update a list _in place_. The index should correspond with the item's position in that list. If it does not have an `index` property, it will overwrite the column value in the database with whatever the value is in that object. Null values are acceptable here _as long as they are not part of a primary index key_.\n\nIf the value is an array, the value within the list will be appended to the list that is in the database for that column.\n\n- _queryCondition.remove (optional)_: Similar to `update`, but any value for the column will be removed. If the value is an object with an index property, then it will remove the item at that index position from that column in the db.\n\n- _queryCondition.operation (required)_: The type of query being made -- Update, Query or Scan\n\n_queryCondition.returnValues (optional)_: Allows you to specify what type of response you'd like from Dynamo. Options can be found [here](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html#API_UpdateItem_RequestSyntax)\n\nThere are several examples in `src/db/dynamo/helpers.test.ts` for reference.\n\n### The Dynamo Query Expression Object\n\nBefore moving on, it may be beneficial to see the the output of `createQueryExpression` to better understand how a `queryCondition` object relates to the output.\n\n```js\nconst queryExpression = {\n  TableName: 'my-table',\n  FilterExpression?: '#email = :email',\n  ProjectionExpression?: '#id, #email',\n  Key?: { id: 'user-id' },\n  KeyConditionExpression?: '#id = :id',\n  ExpressionAttributeNames?: { '#email': 'email', '#id': 'id' },\n  ExpressionAttributeValues?: { ':email': 'me@example.com', ':id': 'user-id' },\n  UpdateExpression?: 'SET #email = :email',\n  ReturnValues?: 'ALL_NEW'\n}\n```\n\nNote that not all of these properties will be present every time and that it is highly dependent on the type of query and values provided in the query conditions.\n\n- _TableName_: The name of the Dyanamo Table being queried\n- _FilterExpression_: A string used to determine additional filter fields for dynamo. Think of these as AND filters\n- _ProjectionExpression_: The fields to be returned in the query response. Note that these can only be used in Query and Scan operations\n- _Key_: The primary key field (this is only used in the Update type)\n- _KeyConditionExpression_: The primary key field to filter on (this is only used in the Query type)\n- _ExpressionAttributeNames_: Alias values and their associated column names\n- _ExpressionAttributeValues_: Column values for the aliased names\n- _UpdateExpression_: Any column values that need to be updated\n- _ReturnValues_: The type of response\n\n### Examples\n\n#### Query By Id, Email and Role\n\n```js\n// input\nconst queryConditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n    email: { value: userEmail },\n    role: { value: userRole },\n  },\n  operation: DBOperations.Query,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  FilterExpression: '#email = :email and #role = :role',\n  KeyConditionExpression: '#id = :id',\n  ExpressionAttributeNames: {\n    '#id': 'id',\n    '#email': 'email',\n    '#role': 'role',\n  },\n  ExpressionAttributeValues: {\n    ':id': userId,\n    ':email': userEmail,\n    ':role': userRole,\n  },\n}\n```\n\n#### Find By UserId\n\n```js\n// input\nconst queryConditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  fields: ['id', 'email'],\n  operation: DBOperations.Query,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  KeyConditionExpression: '#id = :id',\n  ProjectionExpression: '#id, #email',\n  ExpressionAttributeNames: { '#email': 'email', '#id': 'id' },\n  ExpressionAttributeValues: { ':id': userId },\n}\n```\n\n#### Handle Paginated Scans\n\n```js\n// input\nconst conditions = {\n  tableName: 'Users',\n  where: {\n    id: { value: userId },\n  },\n  operation: DBOperations.Scan,\n  lastEvaluatedKey: { id: 'abc123' },\n}\n\n//output\nconst queryExpression = {\n  TableName: 'Users',\n  FilterExpression: '#id = :id',\n  ExpressionAttributeNames: {\n    '#id': 'id',\n  },\n  ExpressionAttributeValues: {\n    ':id': userId,\n  },\n  ExclusiveStartKey: {\n    id: 'abc123',\n  },\n}\n\n// example code\nasync function scanDb(conditions, results = []) {\n  try {\n    const result = await dynamoDb.scan(conditions)\n    const combinedResults = results.concat(result.Items)\n\n    if (result.LastEvaluatedKey) {\n      return await scanDb(\n        {\n          ...conditions,\n          lastEvaluatedKey: result.LastEvaluatedKey,\n        },\n        combinedResults\n      )\n    }\n\n    return combinedResults\n  } catch (err) {\n    console.error(err)\n  }\n}\n```\n\n#### Update User Info\n\n```js\n// input\nconst queryConditions = {\n  tablename: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  update: {\n    user: { value: { name: 'Bruce', email: userEmail } },\n  },\n  returnValues: 'ALL_NEW',\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#user': 'user' },\n  ExpressionAttributeValues: {\n    ':user': { name: 'Bruce', email: userEmail },\n  },\n  UpdateExpression: 'SET #user = :user',\n  ReturnValues: 'ALL_NEW',\n}\n```\n\n#### Update Item In a List\n\n```js\n// input\nconst queryConditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  update: {\n    spaces: { value: { id: spaceId, role: userRole, index: 2 } },\n  },\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#spaces': 'spaces' },\n  ExpressionAttributeValues: {\n    ':spaces': { id: spaceId, role: userRole },\n  },\n  UpdateExpression: 'SET #spaces[2] = :spaces',\n}\n```\n\n#### Append Item to List\n\n```js\n// input\nconst queryConditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  update: {\n    spaces: { append: true, value: [{ id: spaceId, role: userRole }] },\n  },\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#spaces': 'spaces' },\n  ExpressionAttributeValues: {\n    ':emptyList': [],\n    ':spaces': [{ id: spaceId, role: userRole }],\n  },\n  UpdateExpression:\n    'SET #spaces = list_append(if_not_exists(#spaces, :emptyList), :spaces)',\n}\n```\n\n#### Updating Multiple Values\n\n```js\n// input\nconst queryConditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  update: {\n    email: { value: userEmail },\n    domain: { value: 'www.me.com' },\n  },\n  returnValues: 'ALL_NEW',\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#email': 'email', '#domain': 'domain' },\n  ExpressionAttributeValues: {\n    ':email': userEmail,\n    ':domain': 'www.me.com',\n  },\n  UpdateExpression: 'SET #email = :email, #domain = :domain',\n  ReturnValues: 'ALL_NEW',\n}\n```\n\n#### Delete a Value\n\n```js\n// input\nconst conditions = {\n  tableName: 'Users',\n  where: {\n    id: { primary: true, value: userId },\n  },\n  remove: {\n    email: null,\n  },\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#email': 'email' },\n  UpdateExpression: 'REMOVE #email',\n}\n```\n\n#### Delete Item In a List\n\n```js\n// input\nconst queryConditions = {\n  where: {\n    id: { primary: true, value: userId },\n  },\n  remove: {\n    spaces: { index: 3 },\n  },\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: { '#spaces': 'spaces' },\n  UpdateExpression: 'REMOVE #spaces[3]',\n}\n```\n\n#### Delete and Update in One Query\n\n```js\n// input\nconst queryConditions = {\n  where: {\n    id: { primary: true, value: userId },\n  },\n  update: {\n    email: { value: userEmail },\n    domain: { value: 'www.me.com' },\n  },\n  remove: {\n    spaces: { index: 3 },\n  },\n  operation: DBOperations.Update,\n}\n\n// output\nconst queryExpression = {\n  TableName: 'Users',\n  Key: { id: userId },\n  ExpressionAttributeNames: {\n    '#spaces': 'spaces',\n    '#email': 'email',\n    '#domain': 'domain',\n  },\n  ExpressionAttributeValues: {\n    ':email': userEmail,\n    ':domain': 'www.me.com',\n  },\n  UpdateExpression: 'SET #email = :email, #domain = :domain REMOVE #spaces[3]',\n}\n```\n\n### isFeatureAllowed\n\nUtility function used to determine whether or not a feature is allowed.\n\nparams:\n\n- _featureName(required)_: Name of the feature flag as it is on the space object\n\n- _space(optional)_: Space. Must be used for non-lambda projects for db permissions reasons. Will check this before fetching the space data from dynamo if provided.\n\n- _spaceId(optional)_: If space param is not provided, the space data will be fetched from dynamoDB using this id.\n\n- _envOverride(optional)_: If the environment var is set to 'true', this will override the space's featureFlags.\n\nNote: One of the `space`, `spaceId`, or `envOverride` params must be provided, or the result will automatically be false.\n\n```js\nimport { isFeatureAllowed } from '@nacelle/lambda-tools'\n\nconst isExampleFeatureAllowed = await isFeatureAllowed({\n  featureName: 'exampleFeature',\n  space: exampleSpace,\n  spaceId: exampleSpaceId,\n  envOverride: process.env.FEATURE_EXAMPLE === 'true',\n})\n\nif (isExampleFeatureAllowed) {\n  // do something for spaces with the example featureFlag\n}\n```\n","readmeFilename":"README.md"}