{"_id":"s3-lambda","_rev":"12-f9a641ec1aaa764bc13e7449e6b0101d","name":"s3-lambda","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","dist-tags":{"latest":"5.1.8"},"versions":{"5.0.0":{"name":"s3-lambda","version":"5.0.0","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"array-equal":"^1.0.0","eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"63df12c5d935cb802de4c09a08dd6a15598cf356","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.0.0","_shasum":"b3f270873ab83828d1e5de1108bc84ab709deebc","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"b3f270873ab83828d1e5de1108bc84ab709deebc","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.0.0.tgz","integrity":"sha512-6LyTEgT/we7LUocsTV/YjOzBZy2fP49AxUkYMGE+Kvs/myK1HOIyBw0Fg/NAV+eosVgzsK/Q0XydgtLItAuf7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcwW/w/GHNXIT49qHzHpYq8KC9PU5+ml7UjwTOVCyjbAiEA0zqAaRaRrkdRqRUI2ejyqhsDpqBj1K4DAJNfVTDpI9A="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/s3-lambda-5.0.0.tgz_1486691050055_0.7291320380754769"}},"5.0.2":{"name":"s3-lambda","version":"5.0.2","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"array-equal":"^1.0.0","eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"a89f34bfee879f5aea22d8dd85efc4b1e6c3541a","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.0.2","_shasum":"9a67702f7b6a478aeea56480dfff04146f7ddad2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"9a67702f7b6a478aeea56480dfff04146f7ddad2","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.0.2.tgz","integrity":"sha512-yOGdiYXK2xQtaMXXQuU/LXUizjMtPG09lh9UYnmD49zgqmHntW8tKPsgYA0+Lwgp80bFVFYo8hFe0fqPqmWZTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt+Frlx5Rs2I5jIQZLRTbxdpbzJ2kau8BYaE7q/V+5HAIhAOianIWZL11+v5gG9VhAix5rrVXYR2+Lf9aPn3wrLFRs"}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.0.2.tgz_1486939064445_0.5861491174437106"}},"5.1.0":{"name":"s3-lambda","version":"5.1.0","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"2a1064b5fdc21fa80b34dbc2c599bf6880aea2fb","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.0","_shasum":"e537f6861930d674ee529c1c1d7c129df54feb81","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.0","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"e537f6861930d674ee529c1c1d7c129df54feb81","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.0.tgz","integrity":"sha512-cMM0BWNqoi6COnN1PQhgLF1W/ElmWEm0HyHbGToXSbEuszpZyakEfsY6UfzmBeIWucx4c5NTyX35Zxp8l4RvQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfXZtMDPwm8GnS0f2GskNEOId9Lzt8x0LN+Lp2ECVEaAiEAggh+zgWodygPCzNwflvG+tAONYehPJE1JP/Y2phpayY="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.0.tgz_1489072620866_0.6050346186384559"}},"5.1.1":{"name":"s3-lambda","version":"5.1.1","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"60dc8722e742149557baaf8b8413c996a0b7ca01","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.1","_shasum":"a8d1208668b244ec2c66077cb00a690064e8b840","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.0","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"a8d1208668b244ec2c66077cb00a690064e8b840","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.1.tgz","integrity":"sha512-3OPcZ3TJQscAHMYgd4SQtnHgl1ID6nx5Jl6aL+BXgSfOdNwgq+xAPvRM1gvh7SgEOz18TlHSFMFFekZ9ZSwf7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIElDjazvsgflE5uysC4k6xI1lAfjhA3gPwhoLGKYPXkfAiA7gMsvUDJny/RsxmW8lD/NB5JhaXAHP3x6Ini5dzeO5g=="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.1.tgz_1489430743702_0.8682379515375942"}},"5.1.2":{"name":"s3-lambda","version":"5.1.2","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"ddf1e0942dc89119b8a058ca414e6ca4bae1e9be","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.2","_shasum":"445cb5a0066bb7df0db7bb54d59f8d946d3d641b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.0","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"445cb5a0066bb7df0db7bb54d59f8d946d3d641b","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.2.tgz","integrity":"sha512-VgQ8cvaSLwyK5kT3iWsZElujqxF17jV2ob5pmOGDO30iZloc4AcOIMxyB+8L5JhwGH7U+TCv61d/X6dvqgv8Bg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGAZMo17C7TznNOvFoSg73fyWjlOsTCCR6UxfzkIh7mQIgU3V6q8sOcr5TnR5OHgXF7+B6vdU23JYttj3oO7S/OZU="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.2.tgz_1489589924998_0.185879877069965"}},"5.1.3":{"name":"s3-lambda","version":"5.1.3","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"f35f72d8ef8d70aa1ada1fbadc29d1fd68e4a6a0","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.3","_shasum":"49c74a1ae2964d0afd6b3e93ed133fea312a5cab","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.0","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"49c74a1ae2964d0afd6b3e93ed133fea312a5cab","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.3.tgz","integrity":"sha512-mUoNofE9BMk0+NG+weD2xNrIcmNpeW4lmtCxkYRJdxaPWTSDCrf2//x//mGkVH29czcba57HkREVrEl68sXr3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5rrynXl8frm7eijFYF+iFrm6ukN2/k5OWbr+gMefYOgIhAIsnZfacr3Gn15GhJPs8XMUBYrRAWw2pF44XuvnJ7/ZY"}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.3.tgz_1490109656493_0.9561268701218069"}},"5.1.4":{"name":"s3-lambda","version":"5.1.4","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"1d92af8fd233cd62fa8aa935ff2f603b60da0b82","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.4","_shasum":"cd2ad1c6cd5e5907fa255657140279e1a2058ce5","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.0","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"cd2ad1c6cd5e5907fa255657140279e1a2058ce5","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.4.tgz","integrity":"sha512-PrrUmwerqbsWdLMYTL7HyiujrhA6uq9oc75vj+KeF2D4ps/qEuR9830m5FiCHgFuvZDpwTc9i/96wtMyzIeh4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHdIsAZY/E15uOFu/0WhIxu7gHIATkeJCk5PINGary/AIgflUC0mwoPJMw9dMZqQwK4Vw+o1PT4mfiIqC2BIhKlxk="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.4.tgz_1490195739204_0.573417641222477"}},"5.1.5":{"name":"s3-lambda","version":"5.1.5","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"7ac713f74aa64a2f5179dd39663baeaa00a66d15","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.5","_shasum":"6ca66f20ce5bebb4026c9afb75f6487283573975","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.4","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"6ca66f20ce5bebb4026c9afb75f6487283573975","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.5.tgz","integrity":"sha512-u8M7hcmbqyQjv7Bo9F3vsLcFHT3W18LjJPtomOpi7CxKf8WTWECiMuTMsRnHbFwbbFyJsD4kG6A40YKqpAnDyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFiE1M9FDxO12zHiM/1yb+4HK9JAekSoAiWddtOUOwUJAiEAw4XhUNcBw3qM4jPyUspVAzHH6D7ukuogruBWOKCYcOg="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.5.tgz_1490713719845_0.8956651294138283"}},"5.1.6":{"name":"s3-lambda","version":"5.1.6","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"f908688af34f3cd89cd2e3c5b019c3d7afe27ce5","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.6","_shasum":"5e894bc128a1d1bdb23896479500fab03ce5168e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.4","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"5e894bc128a1d1bdb23896479500fab03ce5168e","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.6.tgz","integrity":"sha512-7QeoyO3WnncEh33hbGmVJJOV7es67rXTv6t176+TUAb5UiV4UUoPbfMK6H+UfBChABEkXQFkQ1ok82LeLZTaXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHwNKh9ERHru2VXpm8SqMOhSfNUvZ2eBzTxga9wuQEayAiEAmlASIPzve6XPZ1TYLMRb0E/eeLsq359y5vHwfRGlJq4="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.6.tgz_1490713935466_0.4547613486647606"}},"5.1.7":{"name":"s3-lambda","version":"5.1.7","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"e3e47cd7750d685e4dc7d790f5b04de01feaf72a","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.7","_shasum":"41df05130a74f42c10b776429e8fd966cac2411b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.4","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"41df05130a74f42c10b776429e8fd966cac2411b","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.7.tgz","integrity":"sha512-sYvwya5hkbMvks+2ue9R3nrBc0NsK2TnJQLQftNFAblcnuMpZ1RSOCPJpVAs74mkdBv+hZ1BM8l6RGH2hXjipw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxGF+7HyyfIbt32hBDaMgg0/DN0lR1Kn6pjc0fQiB+qgIgDOFdFUjrm7ps+O5O/eenOcBh+vbO3tUMg1kdFbzec8M="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.7.tgz_1490972021844_0.9254318494349718"}},"5.1.8":{"name":"s3-lambda","version":"5.1.8","description":"Lambda functions over S3 objects with concurrency control (forEach, map, reduce, filter)","main":"index.js","author":{"name":"Wells Johnston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"scripts":{"test":"node test","lint":"eslint . --fix --ignore-path test/index.js","validate":"eslint . --ignore-path test/index.js"},"dependencies":{"aws-sdk":"^2.2.31","batch":"^0.5.3","mock-aws-s3":"^2.1.0","progress":"^1.1.8"},"devDependencies":{"eslint":"^3.13.1","eslint-config-airbnb":"^14.0.0","eslint-config-airbnb-base":"^11.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^3.0.2","eslint-plugin-react":"^6.9.0","mkdirp":"^0.5.1","rimraf":"^2.5.4","tape":"^4.4.0"},"gitHead":"79e04b21db8a489df99850991f1e0d2963845580","bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"homepage":"https://github.com/littlstar/s3-lambda#readme","_id":"s3-lambda@5.1.8","_shasum":"ba053b5ad1172da2a89bab155f7ec9046b9fb54f","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.7.4","_npmUser":{"name":"wellsjo","email":"w@wellsjohnston.com"},"dist":{"shasum":"ba053b5ad1172da2a89bab155f7ec9046b9fb54f","tarball":"https://registry.npmjs.org/s3-lambda/-/s3-lambda-5.1.8.tgz","integrity":"sha512-aZbsTVgRHGRWcGJFnzmu/jq4TuRHA7RkCuN0HWgMJ64FBIiYRRiABHOfR2bGcixR0Qnt4j3bgxrp6r7ccPplxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH897cb6TBvGKjZ3PjMDhm4fe2V7rX3bLG+3778ZLcgwAiAOEjlHj1vdFLt4wHw52sllfs2Phk/uq2KTwVPuUZu3mg=="}]},"maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/s3-lambda-5.1.8.tgz_1495039137722_0.8485831972211599"}}},"readme":"## s3-lambda\n\n`s3-lambda` enables you to run lambda functions over a context of [S3](https://aws.amazon.com/s3/) objects. It has a stateless architecture with concurrency control, allowing you to process a large number of files very quickly. This is useful for quickly prototyping complex data jobs without an infrastructure like Hadoop or Spark.\n\nAt Littlstar, we use `s3-lambda` for all sorts of data pipelining and analytics.\n\n**Disclaimer** This module does *not* interact with the AWS Lambda service; the name `s3-lambda` is referring to lambda functions in computer science, and all s3 file processing happens locally.\n\n## Install\n```bash\nnpm install s3-lambda --save\n```\n\n## Quick Example\n```javascript\nconst S3Lambda = require('s3-lambda')\n\n// example options\nconst lambda = new S3Lambda({\n  accessKeyId: 'aws-access-key',       // Optional. (falls back on local AWS credentials)\n  secretAccessKey: 'aws-secret-key',   // Optional. (falls back on local AWS credentials)\n  showProgress: true,                  // Optional. Show progress bar in stdout\n  verbose: true,                       // Optional. Show all S3 operations in stdout (GET, PUT, DELETE)\n  signatureVersion: 'v4',              // Optional. Signature Version used in Authentication. Defaults to \"v4\"\n  maxRetries: 10,                      // Optional. Maximum request retries on an S3 object. Defaults to 10.\n  timeout: 10000                       // Optional. Amount of time for request to timeout. Defaults to 10000 (10s)\n})\n\nconst context = {\n  bucket: 'my-bucket',\n  prefix: 'path/to/files/'\n}\n\nlambda\n  .context(context)\n  .forEach(object => {\n    // do something with object\n  })\n  .then(_ => console.log('done!'))\n  .catch(console.error)\n```\n\n## Setting Context\nBefore initiating a lambda expression, you must tell `s3-lambda` what files to operate over by calling `context`. A context is defined with an options object with the following properties: **bucket**, **prefix**, **marker**, **limit**, and **reverse**.\n\n```javascript\nlambda.context({\n  bucket: 'my-bucket',       // The S3 bucket to use\n  prefix: 'prefix/',         // The prefix of the files to use - s3-lambda will operate over every file with this prefix.\n  marker: 'prefix/file1',    // Optional. Start at the first file with this prefix. If it is a full file path, starts with next file. Defaults to null.\n  endPrefix: 'prefix/file3', // Optional. Process files up to (not including) this prefix. Defaults to null.\n  match: /2017/i,            // Optional. Process files matching this regex / string. Defaults to null.\n  limit: 1000,               // Optional. Limit the # of files operated over. Default is Infinity.\n  reverse: false             // Optional. If true, operate over all files in reverse. Defaults to false.\n})\n```\nYou can also provide an array of context options, which will tell `ls-lambda` to operate over all the files in each.\n```javascript\nconst ctx1 = {\n  bucket: 'my-bucket',\n  prefix: 'path/to/files/',\n  marker: 'path/to/logs/2017'\n}\nconst ctx2 = {\n  bucket: 'my-other-bucket',\n  prefix: 'path/to/other/logs/',\n  limit: 100\n}\n\nlambda.context([ctx1, ctx2])\n```\n\n## Modifiers\nAfter setting context, you can chain several other functions that modify the operation. Each returns a `Request` object, so they can be chained. All of these are optional.\n### .concurrency(c)\n{Number} Set the request concurrency level (default is `Infinity`).\n\n### .exclude(e)\n{Function} Sets the exclude function to use before getting objects from S3. This function will be called with the key and should return `true` if the object should be excluded.  \n**Example:** exclude png files\n```javascript\nlambda\n  .context(context)\n  .exclude(key => /.png$/.test(key))\n  .each(...)\n```\n\n### .transform(f)\n{Function} Sets the transformation function to use when getting objects. This transformer will be called with the raw object that is returned by the [`S3#getObject()`](http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property) method in the AWS SDK and the key, and should return the transformed object.  When a transformer function is provided, objects are not automatically converted to strings, and the `encoding` parameter is ignored.\n**Example:** unzipping compressed S3 files before each operation\n```javascript\nconst zlib = require('zlib')\n\nlambda\n  .context(context)\n  .transform((object) => {\n    return zlib.gunzipSync(object.Body).toString('utf8')\n  })\n  .each(...)\n```\n### .encode(e)\n{String} Sets the string encoding to use when getting objects.  This setting is ignored if a transformer function is used.\n### limit(l)\n{Number} Limit the number of files operated over.\n### reverse(r)\n{Boolean} Reverse the order of files operated over.\n### async()\nLets the resolver know that your function is async (returns a Promise).\n\n## Lambda Functions\nPerform synchronous or asynchronous functions over each file in the set context.\n- each\n- forEach\n- map\n- reduce\n- filter\n\n### each\neach(fn[, isasync])  \n\nPerforms `fn` on each S3 object in parallel. You can set the concurrency level (defaults to `Infinity`).\nIf `isasync` is true, `fn` should return a Promise.\n```javascript\nlambda\n  .context(bucket, prefix)\n  .concurrency(5) // operates on 5 objects at a time\n  .each(object => console.log(object))\n  .then(_ => console.log('done!'))\n  .catch(console.error)\n```\n\n### forEach\nforEach(fn[, isasync])  \n\nSame as `each`, but operates sequentially, one file at a time. Setting concurrency for this function is superfluous.\n```javascript\nlambda\n  .context(bucket, prefix)\n  .forEach(object => { /* do something with object */ })\n  .then(_ => console.log('done!'))\n  .catch(console.error)\n```\n### map\nmap(fn[, isasync])  \n\nMaps `fn` over each file in an S3 directory, replacing each file with what is returned\nfrom the mapper function.   If `isasync` is true, `fn` should return a Promise.\n\nThis is a **destructive** action, meaning what you return from `fn` will change the S3 object itself. For your protection, you must specify `inplace()` to map over the existing files. Alternatively, you can use `output()` to output the results of the mapper function elsewhere (as demonstrated below). You can pass a third argument (a function) to rename the output key (bucket + prefix).\n```javascript\nconst addSmiley = object => object + ':)'\n\nlambda\n  .context(bucket, prefix)\n  .inplace()\n  .map(addSmiley)\n  .then(console.log('done!'))\n  .catch(console.error)\n```\nMake this *non-destructive* by specifying an `output` directory.\n```javascript\nconst outputBucket = 'my-bucket'\nconst outputPrefix = 'path/to/output/'\n\nlambda\n  .context(bucket, prefix)\n  .output(outputBucket, outputPrefix, (key) => key.replace('-', '/'))\n  .map(addSmiley)\n  .then(console.log('done!'))\n  .catch(console.error)\n```\n### reduce\nreduce(func[, isasync])  \n\nReduces the objects in the working context to a single value.\n```javascript\n// concatonates all the files\nconst reducer = (previousValue, currentValue, key) => {\n  return previousValue + currentValue\n}\n\nlambda\n  .context(bucket, prefix)\n  .reduce(reducer)\n  .then(result => { /* do something with result */ })\n  .catch(console.error)\n```\n### filter\nfilter(func[, isasync])  \n\n**Destructive**.  Filters (deletes) files in S3. `func` should return `true` to keep the object, and `false` to delete it. If `isasync` is true, `func` returns a Promise.\n\nThis is a **destructive** action, meaning if `fn` is `false`, the object will be deleted from S3. For your protection, you must specify `inplace()` to filter the existing files. Alternatively, you can use `output()` to output the results of the filter function elsewhere (as demonstrated below). As with map, you can pass a function to output to rename the output key.\n\n```javascript\n// filters empty files\nconst fn = object => object.length > 0\n\nlambda\n  .context(bucket, prefix)\n  .inplace()\n  .filter(fn)\n  .then(_ => console.log('done!'))\n  .catch(console.error)\n```\nMake this *non-destructive* by specifying an `output` directory.\n```javascript\nlambda\n  .context(bucket, prefix)\n  .output(outputBucket, outputPrefix, (key) => key.replace('-', '/'))\n  .filter(filter)\n  .then(console.log('done!'))\n  .catch(console.error()\n```\n## S3 Functions\nPromise-based wrapper around common S3 methods.\n- list\n- keys\n- get\n- put\n- copy\n- delete\n\n### list\nlist(bucket, prefix[, marker])  \n\nList all keys in `s3://bucket/prefix`.  If you use a marker, `s3-lambda` will start listing alphabetically from there.\n```javascript\nlambda\n  .list(bucket, prefix)\n  .then(list => console.log(list))\n  .catch(console.error)\n```\n### keys\nkeys(bucket, prefix[, marker])  \n\nReturns an array of keys for the given `bucket` and `prefix`.\n```javascript\nlambda\n  .keys(bucket, prefix)\n  .then(keys => console.log(keys))\n  .catch(console.error)\n```\n### get\nget(bucket, key[, encoding[, transformer]])  \n\nGets an object in S3, calling `toString(encoding` on objects.\n```javascript\nlambda\n  .get(bucket, key)\n  .then(object => { /* do something with object */ })\n  .catch(console.error)\n```\n\nOptionally you can supply your own transformer function to use when retrieving objects.  This transformer will be called with the raw object that is returned by the [`S3#getObject()`](http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property) method in the AWS SDK, and should return the transformed object.  When a transformer function is provided, objects are not automatically converted to strings, and the `encoding` parameter is ignored.\n\n```javascript\nconst zlib = require('zlib')\n\nconst transformer = object => {\n  return zlib.gunzipSync(object.Body).toString('utf8')\n}\n\nlambda\n  .get(bucket, key, null, transformer)\n  .then(object => { /* do something with object */ })\n  .catch(console.error)\n```\n\n### put\nput(bucket, key, object[, encoding])  \n\nPuts an object in S3.  Default encoding is `utf8`.\n```javascript\nlambda\n  .put(bucket, key, 'hello world!')\n  .then(console.log('done!')).catch(console.error)\n```\n### copy\ncopy(bucket, key, targetBucket, targetKey)  \n\nCopies an object in S3 from `s3://sourceBucket/sourceKey` to `s3://targetBucket/targetKey`.\n```javascript\nlambda\n  .copy(sourceBucket, sourceKey, targetBucket, targetKey)\n  .then(console.log('done!')).catch(console.error)\n```\n### delete\ndelete(bucket, key)  \n\nDeletes an object in S3 (`s3://bucket/key`).\n```javascript\nlambda\n  .delete(bucket, key)\n  .then(console.log('done!')).catch(console.error)\n```\n","maintainers":[{"name":"wellsjo","email":"w@wellsjohnston.com"}],"time":{"modified":"2022-06-26T15:11:28.634Z","created":"2017-02-10T01:44:10.680Z","5.0.0":"2017-02-10T01:44:10.680Z","5.0.2":"2017-02-12T22:37:46.457Z","5.1.0":"2017-03-09T15:17:02.830Z","5.1.1":"2017-03-13T18:45:44.441Z","5.1.2":"2017-03-15T14:58:47.058Z","5.1.3":"2017-03-21T15:20:58.585Z","5.1.4":"2017-03-22T15:15:41.136Z","5.1.5":"2017-03-28T15:08:40.640Z","5.1.6":"2017-03-28T15:12:16.341Z","5.1.7":"2017-03-31T14:53:42.572Z","5.1.8":"2017-05-17T16:38:59.767Z"},"homepage":"https://github.com/littlstar/s3-lambda#readme","repository":{"type":"git","url":"git+https://github.com/littlstar/s3-lambda.git"},"author":{"name":"Wells Johnston"},"bugs":{"url":"https://github.com/littlstar/s3-lambda/issues"},"license":"MIT","readmeFilename":"README.md"}