{"_id":"@aerofer/utils","_rev":"14-b24d7c0ff13a545081c9539108806b14","name":"@aerofer/utils","dist-tags":{"latest":"0.4.4"},"versions":{"0.0.1":{"name":"@aerofer/utils","version":"0.0.1","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"dist/index.js","scripts":{"build":"webpack --progress --colors","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"babel":{"plugins":["transform-export-extensions"],"presets":["stage-1","react",["env",{"targets":{"node":"6.1"}}]]},"pre-commit":["lint","test","build","clean"],"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"jest":true}},"dependencies":{"aws-sdk":"^2.193.0","bunyan":"^1.8.12"},"gitHead":"8bbe94ca4574b2ee7d4212717a33bbbde58bf613","_id":"@aerofer/utils@0.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-qQ11Zz5zv3SVCef+UAzaTK5cekmhiIaqXKkEN9l6KwdLnflNzeh5At8ZRQJjH3vne2ejCcdCYbX5dFy7HALfiA==","shasum":"8f1aa5e559ac1bb2e01ad629b2252cc4d2864df4","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.0.1.tgz","fileCount":2,"unpackedSize":1934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6tYgBrci+pTPqjauFki8JfgqOV3QSJElNglGAD40MbAiBnnJJGmXmVZE9LnMDdkrbWcY3Et7L2AfPVkSvAj3wmAQ=="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.0.1_1518556855291_0.842387452575615"},"_hasShrinkwrap":false},"0.0.2":{"name":"@aerofer/utils","version":"0.0.2","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"dist/index.js","scripts":{"build":"webpack --progress --colors","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"babel":{"plugins":["transform-export-extensions"],"presets":["stage-1","react",["env",{"targets":{"node":"6.1"}}]]},"pre-commit":["lint","test","build","clean"],"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"jest":true}},"dependencies":{"aws-sdk":"^2.193.0","bunyan":"^1.8.12"},"gitHead":"8bbe94ca4574b2ee7d4212717a33bbbde58bf613","_id":"@aerofer/utils@0.0.2","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-ghnLmJlxM4H1p9cpC9FmxWOBTB9317S58vOTpKCP1MPD35G5jNv3b7dkJtQh3/kXuGNnmO6BzVYO4tWsLnJE/w==","shasum":"603fbb2aa846502c4c05d722f15a8da5a4eb1ddf","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.0.2.tgz","fileCount":7,"unpackedSize":174660,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICDnnAmrdBEboXiVxg7xgBoC46BU0WB6YeYOCj4tjyR7AiEA/69ONDKorzlzGjB/lLxodoeEWHLhgdPxhTRBE2wk70U="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.0.2_1518557045855_0.7064582289387196"},"_hasShrinkwrap":false},"0.0.3":{"name":"@aerofer/utils","version":"0.0.3","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress --colors","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"babel":{"plugins":["transform-export-extensions"],"presets":["stage-1","react",["env",{"targets":{"node":"6.1"}}]]},"pre-commit":["lint","test","build","clean"],"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"jest":true}},"dependencies":{"aws-sdk":"^2.193.0","bunyan":"^1.8.12"},"gitHead":"8bbe94ca4574b2ee7d4212717a33bbbde58bf613","_id":"@aerofer/utils@0.0.3","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-wF7FDeKW7mRnEd86B4Ys6b4H2pYLMDYaWnpB5axg5ggCpDKz48UerKrbR8Cp6TqoUUKGpGVvwIB1SCUzbk619A==","shasum":"58423812551cd609cdbbb5e93841c921310e4f2e","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.0.3.tgz","fileCount":7,"unpackedSize":174661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkSiVQPVZlx5BlGOM/FYOAQruTGkzz8N9E2YjsOkaBagIgLw88BXEkQISZnPGeGvilAJVI8AyhLQa2+yD1yd5FlAQ="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.0.3_1518557506032_0.45363709010522824"},"_hasShrinkwrap":false},"0.0.4":{"name":"@aerofer/utils","version":"0.0.4","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress --colors","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"babel":{"plugins":["transform-export-extensions"],"presets":["stage-1","react",["env",{"targets":{"node":"6.1"}}]]},"pre-commit":["lint","test","build","clean"],"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"jest":true}},"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0","bunyan":"^1.8.12"},"gitHead":"8bbe94ca4574b2ee7d4212717a33bbbde58bf613","_id":"@aerofer/utils@0.0.4","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-nw8Seu4PUAEWBv1IeAGFaA+EvbgYiNUeLCyr3e6F0089j0YeMEPCOQMHhNPkyocDd+bqAUT6rzmrgaKzqFEvHw==","shasum":"c345ec84f0121c10f33099c6477700feaaa82004","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.0.4.tgz","fileCount":7,"unpackedSize":174747,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo7nFOYNsO2UI9Rc2C+BaqNo9ax2vsJJvQVGE1cEqZggIhAIJGg/Yu9s9BzPf7tOaA80VH2e6UpcehJPsIH1UoHkq1"}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.0.4_1518997063379_0.7143136092672504"},"_hasShrinkwrap":false},"0.1.4":{"name":"@aerofer/utils","version":"0.1.4","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"babel":{"plugins":["transform-export-extensions"],"presets":["stage-1","react",["env",{"targets":{"node":"6.1"}}]]},"pre-commit":["lint","test","build","clean"],"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"jest":true}},"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0"},"gitHead":"cda78b3a3214b326d96af787c1a0fad9028fa20f","_id":"@aerofer/utils@0.1.4","_npmVersion":"5.7.1","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-Xn3vKP4txUmbRrybJS78yZjvZOX6O4XtLoLSffzvB2dOjLyK22OOcH0bW3zmXBCUmsYIV3DYww7yPcxLUuVpXg==","shasum":"bc53144d229d3a6e76d09ea818ab885ec90793ec","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.1.4.tgz","fileCount":8,"unpackedSize":13038,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDQxLCRA9TVsSAnZWagAAHHkQAKAnOh15OxJxPRVnBrpI\nuPyfAkZ9zQ+LgSNoOkThXxJRSfsrMEM8PIkzA536diDOXR8Kx2oTIEsDRp4G\nwGdtPXmecW8rUhkrf+2Eb0PnVVwYfykZV5E9fBR28QJ/TB91L4C248/HfQTd\ntZ2oPGN/1JS18muXQrl/xr0glYZLe2GeZaHMbXblG9QqenbQwn5DFIFg7E+q\nHJydl/piyKQCtEE4MuXrLa7POdPV/tEgNi3VYObIvQ9BjLyRkX6WNwsWMeSB\n5J7v8cma4uuiZCMqEW24Hy0BKvUb2ZK0rK4t6D18cNyFVeHe5xPyzDLu9/8h\nLQ9paa9dFyo8n50Gvpt8CeWhZn0PLyWgdRA1+7eCH7OIVGYIYTgVq2E9UQms\nZJlr8QuC92rpc1MY1APNLPq8Dd6ZCGqvTq1dilVeonXwABkKncpZWv+0cxWO\nbzHBm/kKq+9VNgumyFQviAGSk8Qh6Tp66urTh6MpUnWbDaugwCQfzMSkAPaX\nygTip4wj7arszGnrpaJIb9Jp9WblwqPtOFHLEighHTiN50FSHLM7/6JaL+cC\nM6cZOBML2JipOMnxqecvl3JyjQkt8F1ywwycQpeflBGMTgJleeppklPXSroQ\ngOzFeKQfQWQytDWDqUUcplShS7nKRKCJ9HPbngTEgg3j8kjsQTavdjb4zmhg\nas1a\r\n=ycES\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU4k7MymKaCjqgwL5Kuvy2DgqyKPBJtXU9R4aJPFYyMAIhAP2XsKY+ptMc/xVzPA66JsHR8cRIGaBNlhk5m91c2mXv"}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.1.4_1527581769951_0.3026714338133807"},"_hasShrinkwrap":false},"0.2.4":{"name":"@aerofer/utils","version":"0.2.4","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","clean":"rm -rf components","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js","lint:fix":"eslint --fix $1"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"f7d38cd38c853f5bb821883f54088c6e90bcae5a","_id":"@aerofer/utils@0.2.4","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-Y/bf6Fgct4OwCgp7yh4Y45mym+cqR+TiLH0TSgEWmu/jO7pdlEVsn6DeUiaCIoug/FWm1m1LasGE3SWDDVp7Ww==","shasum":"8ea1a5ba5f275a31a0bb0761875148d2c36cca13","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.2.4.tgz","fileCount":11,"unpackedSize":15108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDn5iCRA9TVsSAnZWagAAPeAQAJu1Vfc8yy2lJA66ZLD8\nRTAHdCbdD7WHbGSNStLZ/I6tyEdNq6/odSX4ehMaY7o1/S17XyZM1cybraOK\nPxOcm3WcqZJFT7o4R3Tknpb5LTUC9UbOWvq5v4zNdbQJoWfcqE2TI3WUBD/X\nxG507645HDbCnWv67Yhai93l+yktKyK0M0BlDn8Gcbx9v1Ka0Y/rB6jPJu77\neDq0aqlFkiYOxaekIqpfd9BoNwT3gnvXZFk50Mw91T4Gn39I6wxqj4w8SRn6\ntrRlYWYVBVTHViQwfyWqXOQ9Bt8lnvCagoUzbu99jfzBdMe3Va9taYFzWvjK\nR60MDgddZBD75QBmzqlcqqqmW0nHuxPxT2H8J9IF27gfCD+8tZ6srqbwhnbN\nAv2/u8vrd6fPeowf3UFCFF7IOFJneN8BAlJi4SxXpkxsBTAUhd9ywdr6H199\nLxZ3bhKBBgp+bede0inpAF2K8N4SxD2Qgqi2h81O0DiaRr8P3JsXKwohrID8\nYzW9+b3vRwiua7xmz5lvu8Jl51yhRMCLAB71fSqzjXaxjL2Lqo+8nm+rsXuU\n9ifyFhDH8lyNmtfGHV7Ij9zvgZPwHR+3dcv45TjlIZ9p+XSDhlLItMQZ4+3k\nrKs8MQdxBr9gV31WqtHAU5OaytTrh/KIe2QxsXW9jCLoBsRq9XSR6yHHm5iO\ndbLE\r\n=YuMv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBd8jnObx1K1riUE4HolCsz+VwP3VOMxaG0Q0UzIGWAMAiEAwCpLCYlAwxwuL9EeTm1p5MEJc7EBHKQiZzQqjsgU7ZU="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.2.4_1527676513248_0.5557339805261854"},"_hasShrinkwrap":false},"0.2.5":{"name":"@aerofer/utils","version":"0.2.5","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"f7d38cd38c853f5bb821883f54088c6e90bcae5a","_id":"@aerofer/utils@0.2.5","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-du9UMaSMJy3G7UrmLdVaLT9jcW/whqoVv0PCKpLBc01gLkv1LuhOSMAIvfeiJpwKqEZE+1ugIzdnfJOCFBQpow==","shasum":"1884af1366b1a4bb58a1952c983334bc89bee879","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.2.5.tgz","fileCount":11,"unpackedSize":15071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDn9OCRA9TVsSAnZWagAAf2AP/jfYfgYjWhCCrrJKB8rN\nMR/4noNV3ots6f8boBOSgowQWARP+hQy3iMxv5IwXJpBTDUwuP+yUYtvr1Qh\nrcMZGyFHpzl5x1eRSUjJjvJlhLGmaJdoQhRxcbabM9ZEuQmd5cC/RKjWvoeQ\nt/C/d6KNs6zvbfTCn118G+wMY41hTq81JZqxE7+My9Ln4vfgkDFFunNTQeF/\nRsD020oo7nFbGt+PVdhyVh7vk3tkMuElE9FHpgMwjwXehxsZv8ZRPQFnWPvq\n9O7z4LIrJlIP6GGmJiv7LGtmsfTXDVus78sTZXNYr4fsHfDrp+F4EjlUrtC2\nfyPA5SwCmlAyHBurOdKQkBtpULCoyQRT4TcSOcLZcMMGpdkDHQHCQet70aUz\nJe/1lN/VEVcgGeRlQbyfHaIC+QoXkHMeP4AECZdW/QzyRVs/H9U/GVX+zBi7\n//gf/wRx0PX29lfwH/JJjwfXJUIqTIl36MCmwHEdXyw+j8ZKfvsUa/MZAEo8\nfu7ER2I/TqkmJMoO0lQA/KNMO4PJ2vQf/MCzSDnkuBkuTVPYvr2zN03xgp9H\nHMyyiw+R2l2ij80Y3/m0d4JBWMZ67/8DVcoH3PFDc8KDQMT60D9lST9YaRx1\nSnxpH/BUqfRPqh4Ru/NSwUeoa336j9nbyNTzW30wZTdnwfE4cnffpKruWIVc\nEb2g\r\n=+9Hf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmItbTfaOfgUCy0768C3gTdcZHEZOFi3Sntm4bdMplYAiEAnvFffsYUVyqZK0txq0tD18xdyaYq+mjwZNb73jyl4eY="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.2.5_1527676750059_0.20962254704275618"},"_hasShrinkwrap":false},"0.2.6":{"name":"@aerofer/utils","version":"0.2.6","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"1b2fb2527e69dda0479a256cf5c5cfc268dde244","_id":"@aerofer/utils@0.2.6","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-b4KH3BYOksNiiZD6p5IQ9QvnexrV1u3Z3iJLqJzA6n2PS3q/w6JM8cCOsVwYJ0cx+RwvaI73SgDKZqxI/KWrbQ==","shasum":"d57b467b1ee0062274a292c9bde9d7ea18ba812b","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.2.6.tgz","fileCount":11,"unpackedSize":15071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD7SLCRA9TVsSAnZWagAAdI4QAI0LrnZBrp50r0Bxyh+b\nKSbqm0owLwN6E7XfofgFjQtj80PNdKITxc8Cd3chgDFCx3ujya+fdByiCMgw\nT6jSjmN35CViPQOUlPaMyGfwrMNyrnjBjl7WamrnujRXP7nRELrm9585uuHX\nslNqyNBO8QjcUkSTeXTR9sUOxOGG3BsIXrQ2yAQYo4paeeWZF10JBVGyd+ot\n1jRmew6X8IQ7G7yMsZ+PJHpjOQtXAjWUAKJDzn1B6XS5JO0pV8nY7j6GX+J9\nKalLRZzPA08KzjObH/kRIA9HnAgUr918mmVDCeF/LkImWrzU/TE9+DcbtYo8\neZ3dLohCFS5CyVXPNaaiXFhK33DU+d6K9MCp4W7rVtacfG+zZhlVcNBqiFqX\n8wtGBB8ac0utr/J7Uc0nZrDvcLLCIce3plwAvqNHEg3PGnC/OtKKl740P2Er\npU3CQD1co7hzUCk72AkONSA7Gts3hX8Pf6k6bO7W5QsInilIP6nz8wEZWPnr\nnfHOE6f33X5L+f97BFbKjN4hgZ1VyomD+0HutFmLI5j3jTgxneHN1c4oSwD6\nkACNyTJPeS1h0TxhulwUf+vONpfIPTG8kBE9b/Dc4YeB1rJQlc6shErBjOy3\nF/73M3yhfihMvrNbAoR4OHv+nIKuNr8cTHmdzH0UDQcORsaXu3/25A6T5RIa\nubSd\r\n=gA7O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXwLdw4C0x/yBtAHeZt4WNpdEeJ3grF8KDNR2VEYyZxAIhAKTztO9s/04vSXldeT2O5o3gfHRZ9CEAHJkR5VmKpeSf"}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.2.6_1527755914914_0.30738947328449706"},"_hasShrinkwrap":false},"0.3.0":{"name":"@aerofer/utils","version":"0.3.0","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^1.7.0","babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.0.0","babel-polyfill":"^6.23.0","babel-preset-env":"^1.4.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","empty":"^0.10.1","eslint":"^4.14.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.5.1","faker":"^4.1.0","jest":"^22.2.2","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.1.5","webpack":"^3.10.0"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.193.0","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"a7b5a1c14c77b3e7d66263758f5a88a287e0cd70","_id":"@aerofer/utils@0.3.0","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-tx8czd2LmLlg00uMIGIdnrb3EqQMfYDv/tKxQGX6LKcrA6MW2j+kXVBt1P/diWdFTYzOPtQj3S6ggEDJC0q6vw==","shasum":"3e82e9669effb0f9fc200b094c3a3ee06ee295f5","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.3.0.tgz","fileCount":13,"unpackedSize":152658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD/1DCRA9TVsSAnZWagAAlT4P/2BZ4EK+sTDNQmzO1+IJ\nZGMmUj1w/xBfi5Q/W6uTUvn+NeJQLOTsh+wN+lCuoLQW+AvMW9yh8KNJh3aI\n8zDGNdOj8GrdZuvhiRn9WuPiHkX5rkLTL1qEgEQ5r8KyBK+3ZxrIJ8ygHq4O\n7dYblJuQCwpuRIr66JuYarkWAoGPxn5fvSKATTsiUZCfijaRpTn8Gz+3FveT\nrk1iRcG0U/tVHbs8Hr24E+si7TBImVkeGiqeBCVzvVO8pTwd5U8n6Alnnduc\nCVFtDYoWbTKG0z2daz/Gnu/qBYY08Z8GWUoJNFqYFu/Uyzp5knvGWWZFEmwx\nQeJ8SwW47FKEy//bIKbZdv7ATe8Y9Hi6cXzRetikR/p5BwgQvAWF0DIwKeut\nm+pf520ov+BrA4mErkbOwgv1+SC8TXknzO4eLp3zktgxwNLxCBLDPSLWIlWT\nxihVdrNhrutjQwu/+TMXhhJ8FjpE0sjZ98DlK92GSw+3nrEvNP/ClifnNfS6\n/gshvFGjZ0lk9u+QZFmGzQoAYbd4H8sAH3fLmuTU0XE9P3s4ceajpphGvqlo\nly1Db8DVx1bP/1XRiZuD27vr5EDx/vMFSuMV5f1GPF7bgSlOxhe1wozBXo27\nQiLHzPbcvU7CMk4IMO8OJh7iF5S8eAR6u4Qhqm0gzy1x5PQ1AlnBPd3GK0j5\nJWPo\r\n=sdey\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVAtYYS0+NltLl41jEIuEqGuIprMURIJ2p6pILpA1NzAiEA2Np7d6MUa74QnfTqyI7I7uqymlngHkkozIcpr16IIhM="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.3.0_1527774530040_0.6825878729154697"},"_hasShrinkwrap":false},"0.3.4":{"name":"@aerofer/utils","version":"0.3.4","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^2.0.0","babel-cli":"^6.26.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","empty":"^0.10.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","faker":"^4.1.0","jest":"^23.1.0","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.2.5","webpack":"^4.10.2","webpack-cli":"^2.1.4"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.249.1","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"66a8cb855cdbf5279a5f8bf0d039f67b7f9385cf","_id":"@aerofer/utils@0.3.4","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-RcLTPKSXGk1eK0ne2x50GBtSmkql64Jq64zglK2yykv8fnsAsalgFZlYD9EFMubFw8KTa3xlj7NsfeZD/GfllQ==","shasum":"7bf2f54a158d5af6b0f9c0bfdaa3a2e462a7f2b2","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.3.4.tgz","fileCount":13,"unpackedSize":153710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEAceCRA9TVsSAnZWagAAIf4QAJbd0/qFZfunf6kQpyjQ\n8bBhdtz+VESA2ujYgfpkttqVZQNToWfQCzTS3WqhKHEdiFMBkE6U44OM/64B\nh3MsL45cp5/0N39W7jURA5wA3n5KKNd0AXV4B0ZeN/XJBoynUDrv8Nm3HqID\neGP3XqscBuYuWJ2AYx9hhbPC4HCu074mm/Rt445tTUvRa+gzy+lSqNyNxNd7\nV0vUD8SaVQjyJq3wGsx/5gyu7LkZ1XnDfpd+3PXaB+X7BzOJwE0WyrGgytcp\n5+t25OMkCCiaLzw1xMCjU0dsaWxNW2tJiOzqjodLZSu+8fX1z3rLFoGZHQgP\n6EoDo8L3qifgUtvjmJCBE1Ad557bX57ekJmPCQhXZoq6Ak7NfPu5KHVXNY7Z\nD1BNX/zUxVW80RV/HdxAUF0+zoZwR0I4GMGuNFg2us737uiFmtiMkY4tNGIm\n8xBgiagN4YC7N6XMD8I7B3ufUbY4Pnadg0dGGvZpJ/uIb5b4Wch8jV7me9nm\nfulT7vQJ0InD8BAvIrP8f9YP57UsZFUSOkRPYOcHj/uc7Q/MB9rl6r37M2gX\nXYLlecFOP9vc+q1I4pbgExg+hKVza4XjIIOLcWPrhc6uYWxJa+keQHfLjeH1\nwBcJodzdQYZzMU5WjQOw4H4Oz60GOJs95YGWbgwmgnzcRd12zJZ2ktyaUe3o\nl8pF\r\n=33/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDc2km3u4OCtsE1OIQHIVcZ0yzogSTZYMzVTf5EWeO+MgIhAKEn6iATV18c+KxmWGRcZ6jRRSX7NkDnH1MPLPMLhN8C"}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.3.4_1527777053656_0.49573087786362824"},"_hasShrinkwrap":false},"0.4.0":{"name":"@aerofer/utils","version":"0.4.0","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^2.0.0","babel-cli":"^6.26.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","faker":"^4.1.0","jest":"^23.1.0","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.2.5","webpack":"^4.10.2","webpack-cli":"^2.1.4"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.249.1","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"fc79cb3efc486829dfee7f595bbad62c0b4ecab0","_id":"@aerofer/utils@0.4.0","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-L25TqlB8uyWv+NxF1dFdQ1G2wDfw+EHXDqsvQTvOWfrbOln0XCPtFdZs2FvvMqCgVIwplHB3sZCffzGFJ7Lf9g==","shasum":"9c05c8a6461f9aa4c301ca00d3d1f15d2027710d","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.4.0.tgz","fileCount":14,"unpackedSize":153695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFQ8ICRA9TVsSAnZWagAAULoP/2l1ixLNR+fy4vxJ8RbU\nR6SdSU3dNqI1Ona0wWNCdyPqYsgJmlNqJswADo3S3aGkWyb1kzs4Atg6LwIC\nPk/LGsYfoARx0oLHNmJpYkgTNt/J0G+vF0h3rJCuUZDmGJbklS8cpSOcjC6r\nYZGafKEwAavNqNOxHHtIszf0urSqkXXh3GiTU3LA4uSUWDH9mr2uUWk+CEbh\nSNFhqV74HE5wUuruWDpKBJBXCKzGA+8W5sZs3MLdNP9z0hhof6oz47psciu3\ndg0tXw00Q/Lp5FPNEJYjypy1w+PoDsmLI/e9AOWMfuo8K7O8t3Zhsf9gNEYX\narrY162DlSN1Fr9i8kNyZEwiAK5zorBVlLf527t3x3ZwvXV4Zc8fEUO6k3tA\nHAk70N2Q1s4Z0mUUaAEYPpN9XnSlamL/OMEJmp9OInS2O9Yqwo0VvWPlCXCj\nvTlJk2zFEnlk6X2BwfrEMrI0YueesxUd0nKGPZZXOe19axbsbKcaYoFF2G2p\nolS1qGwUKGvVMUp/sZhnGPHmoLq0Uxo1YoPS9OHDQhoQdSwAE2nXC4rvFADg\nvhDymj1HTpzYNiU/IrPxaPHqHrI+SZSCDZFu55b2j0oqARoybv1BdQ6ilhBv\n0nMHpDZVKm67gXPOAgH/Xv+RW9CFxISvVpzskdrhpGjdg4epbc8BjGLlqSv+\nJNnI\r\n=HXIa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBzFuYnoDKv+UiKK4nvJ++yeF44IbXcRMnZIYdi0TmxxAiBjfaNylm3iFNHTH/sRvWj/4rTQd6gwsYkoQttxg1C8Ww=="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.4.0_1528106759031_0.9488526978342409"},"_hasShrinkwrap":false},"0.4.2":{"name":"@aerofer/utils","version":"0.4.2","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^2.0.0","babel-cli":"^6.26.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","faker":"^4.1.0","jest":"^23.1.0","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.2.5","webpack":"^4.10.2","webpack-cli":"^2.1.4"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.249.1","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"8bda509c8c9c0edfc234a9cbee15d4d6c49c2c0a","_id":"@aerofer/utils@0.4.2","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-cp88GSyqK/GRECHWh4AxcOzTzNwg6EQnvG0gT0EBtZIHmo+4mLXPeQKtSmZEffQgbwI5gZx7t4RZF+Nwh7UXjA==","shasum":"e8176880d8d94d141a8ce16539cf6f80374829cc","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.4.2.tgz","fileCount":15,"unpackedSize":155637,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIPzVCRA9TVsSAnZWagAA6rkQAJJhZIyeB4qwj4xMGw/v\n0yzNbo9LNg9UGyCGf8+PtHEIMTnHxotzHHZn00t9laWP4vccGWDOoo24YhC+\n9d2hl/q9HiV9lymr1vS80vM44xSj4BzKpItli3E3HqOoBcOa4nToXALngZaH\nSkHkHmAB17kGFg/7sR0dGQOCWgQE8abb+ve84/qjd4yjeJD17G3US6gMm+i/\nO79pqJRpyJAbQBN053G4fpljo7LGcPlD6pT1hOvBaOVush4qx1R/w9cn6stz\nZmvtgaNGOMjtsw6ADhwUmbnFNrYaVnb7sytAuy/+mLY0TksXqXD6bKEkSOrW\nHeEHNjB2hrtRzoRQqKi+PrynsHPcZnZSAPPBC3If44RaLSShkKy8oQmYRdYw\nR30J8bYF7jtCsJzgQracC0hsadzqSqP8M8a+RMCFWZsI5oPNJ45Kha0n0ZRF\nHPiCmXissinLsePugOPk76krfT+gcjYKRudm80fAA3zgmyXX5J50fp/lFbc4\nCl5OeoRZwauK2OkMqL8EaIRn45eOkJ++Gz+Jw2jQ43uaW0IzIqxSCKZMRkIJ\nAwePqvlsmHM8f9CMRqgUVTVmMiIHWJLW7ZgsVROLxlgv8OYuBeHa4/bvwlOB\nDkYEFcLSDnrj2dSK1PxE96oAhzM0YtJmBuvLa6rNI/52Syu+Bk5LWcEf2Dzz\nzlNZ\r\n=vr2V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjPCD3QatdZsQkCNdxYc/wmtU7XSpHeFC0aY4TCqhT8AiEAmTMkUKZ13zHojRzmkSDKSKsOUvB0UNzs2GIrhP9YBcI="}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.4.2_1528888532404_0.44021762841364387"},"_hasShrinkwrap":false},"0.4.4":{"name":"@aerofer/utils","version":"0.4.4","description":"Functional utilities for the entire Aerofer Application stack","private":false,"main":"tools/index.js","scripts":{"build":"webpack --progress","prepack":"npm run build","test":"NODE_ENV=test jest __tests__/.+/*.test.js --notify","lint":"eslint __tests__ lib webpack.config.js"},"author":{"name":"Aerofer"},"license":"MIT","devDependencies":{"aws-sdk-mock":"^2.0.0","babel-cli":"^6.26.0","babel-eslint":"^8.2.3","babel-loader":"^7.1.4","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-preset-stage-1":"^6.24.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.8.2","faker":"^4.1.0","jest":"^23.1.0","pre-commit":"^1.2.2","uglifyjs-webpack-plugin":"^1.2.5","webpack":"^4.10.2","webpack-cli":"^2.1.4"},"jest":{"moduleFileExtensions":["js"],"transform":{"\\.js$":"babel-jest"},"moduleNameMapper":{"^@root/(.+)":"<rootDir>/$1"},"setupTestFrameworkScriptFile":"<rootDir>/__tests__/__utils__/setup.js"},"pre-commit":["lint","test","build","clean"],"dependencies":{"aws-sdk":"^2.249.1","aws-xray-sdk":"^1.2.0","aws-xray-sdk-core":"^1.2.0"},"gitHead":"e82891f54c81bd32838a480ae629b85d23839f8a","_id":"@aerofer/utils@0.4.4","_npmVersion":"6.1.0","_nodeVersion":"9.4.0","_npmUser":{"name":"davidkelley","email":"david.james.kelley@gmail.com"},"dist":{"integrity":"sha512-Vh1VgmIT5KjpP0hVG7wNBCvFOEKVwPARGelRsEI2U4ii56Dxq3MfKf94XFbHCaryKVGYvBUDHPY2FT5qVADGpw==","shasum":"3f145d97c9827b82582847203bbfa130fe6c1380","tarball":"https://registry.npmjs.org/@aerofer/utils/-/utils-0.4.4.tgz","fileCount":15,"unpackedSize":155657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIRgFCRA9TVsSAnZWagAAiMIP/0rVLw8CbrvuQ2CPu/8W\nXXt61qcHPxIfEfUVdmHqP0t4v1nsPGFt4HJGOC0NEQ+Auwf4O1FLSlnzI7iT\no0D2pIQKbDpOR+EVAPLgCE6MgTXrufga5MJdm8zKraq32T4IIq9MExYCaT95\nyDw0AAVHGjZViT0eiFHqj4tpuiQKYQpkusHoO95h22gjQx8D37pERX9/2lxq\ngnOIJBUCf/fFRbWPKHNnSr4+1vrqRKuxnvrUaRU29eGhZWeYHsgyGXK2W1Ad\nI9JPf9B1MIsOa6GuUZp61/BhnjpdnEKv91qy85o87vFUEZhfY+npRuvLYmUd\naRdYyKrBSxv3fk1jyVKn9x8EkqE4Dcrmo7VFx0GFbf23jgSCDlekAhmawrmg\nztHMtgnmTLSCpGCHSpqY4XBex2j43u/C2p1CHLunzqxzgakUJfCtrdMF45Qz\ne73x0ZilbPKG/g6TsGkuOKQoSdJGyzqB1no0wO6/Tea9QSsrS+fidGG/Ope/\neGCJrIvigBZ5GUBAExXmQ6Umq4bA2FPrdLYXNMvPjDRddlI2rwxp2mJkWeih\nL0kA27PlytG1HAij3u1rsXvzLl/AZlTw2kHc4Zw5X3cZi2pe1FZR961i87zq\nV7oBrv4r+FXVIrcZGQZvW6UfIdpEtiA3V9a4s7Iv69WAavT+OfZxW8G+ofUf\n3qLa\r\n=I9+v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsAuMtxMIXXcVr4LPEZtuFfQNm4pWfiSZgh0POIDjgMAIhAOJFeVp+aFVwnjHhLufAPG1hGXkvrjktwm3NEA+RGg5s"}]},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/utils_0.4.4_1528895492950_0.40050224147869184"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-13T21:20:54.915Z","0.0.1":"2018-02-13T21:20:56.141Z","modified":"2022-04-04T11:49:14.795Z","0.0.2":"2018-02-13T21:24:06.776Z","0.0.3":"2018-02-13T21:31:46.958Z","0.0.4":"2018-02-18T23:37:43.466Z","0.1.4":"2018-05-29T08:16:10.427Z","0.2.4":"2018-05-30T10:35:13.323Z","0.2.5":"2018-05-30T10:39:10.162Z","0.2.6":"2018-05-31T08:38:35.198Z","0.3.0":"2018-05-31T13:48:50.195Z","0.3.4":"2018-05-31T14:30:53.796Z","0.4.0":"2018-06-04T10:05:59.247Z","0.4.2":"2018-06-13T11:15:32.626Z","0.4.4":"2018-06-13T13:11:33.049Z"},"maintainers":[{"name":"davidkelley","email":"david.james.kelley@gmail.com"}],"description":"Functional utilities for the entire Aerofer Application stack","author":{"name":"Aerofer"},"license":"MIT","readme":"# Cloud Utilities\nA collection of helpful Node.JS utility functions which are used across Lambda (and other) serverless functions.\n\n### Secrets\nWraps function execution with encrypted secrets from [AWS SSM Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) using a specific key, provided that the executing IAM Role has sufficient privileges to do so.\n\n```js\nimport { withParameters } from '@aerofer/utils';\n\nconst SECRET_KEY = '/path/to/ssm/encrypted/secret';\n\nconst ALIAS = 'SUPER_SECRET_KEY';\n\nconst myFn = async ({ [ALIAS]: key }, a, b) => {\n  return thirdPartyApi(key).someOperation(a, b);\n};\n\nexport default withParameters({ [ALIAS]: SECRET_KEY })(myFn);\n```\n\nElsewhere in the application, this function can be consumed as:\n\n```js\nimport myFn from './some-file';\n\nconst handler = async (a, b, ...other) => {\n  const { result } = await myFn(a, b);\n  return result;\n};\n```\n\n---\n\n### Tracing\nWraps modules & functions, providing [AWS XRay]() tracing for trace execution. You may also provide a recognizable name for the module to be traced, in addition to custom metadata, annotations and captured functions as subsegments.\n\nNote, functions wrapped with `traceAsyncFunc` or `traceFunc` should have a `withTracing` higher in their call stack; otherwise XRay will throw an error, as no namespace, segment or context has been configured.\n\n**Note: In-order to dramatically reduce the bundled size (-350kb) of the AWS XRay library, debugging/logging has been disabled.**\n\n##### Async module tracing with\n```js\nimport { traceAsyncFunc } from '@aerofer/utils/tools/tracing';\nimport someRemoteOperation from 'some-other-module';\n\nconst OPERATION = 'Some Remote Operation';\n\nconst metadata = {\n  version: '0.0.1',\n};\n\n// capture arguments and add as annotations\nconst capture = (a, b) => ({ a, b });\n\nconst handler = async (a, b) => {\n  const { body } = await someRemoteOperation(a, b);\n  return body;\n}\n\nexport default traceAsyncFunc(OPERATION, { metadata, capture })(handler);\n```\n\n##### Runtime sync tracing with annotations\n```js\nimport { traceFunc } from '@aerofer/utils/tools/tracing';\nimport captureSync from 'some-other-module';\n\nconst CAPTURE = 'Capture';\n\nconst handler = (customerId, amount) => {\n  const annotations = { customerId };\n  const capture = traceFunc(CAPTURE, { annotations })(captureSync);\n  return capture(customerId, amount);\n};\n\nexport default handler;\n```\n---\n\n### Errors\nProvides a helpful utility for optionally wrapping low-level, native error objects from libraries with application errors which can be:\n\n* Serialized and surfaced to consumer applications.\n* Filtered inside logs using JSONPath to provide custom application error metrics.\n\n```js\nimport { withProperties } from '@aerofer/utils/tools/errors';\n\nexport const FOOBAR_ERROR = 'FoobarError';\n\nconst errors = {\n  ...(withProperties(FOOBAR_ERROR, { statusCode: 400, message: 'A foobar error occurred' })),\n};\n\nexport default errors;\n```\n\nWhen you need to throw an error of this type inside your application, you can instantiate it like so:\n\n```js\nimport Errors, { FOOBAR_ERROR } from './errors';\n\nconst { [FOOBAR_ERROR]: LogicalError } = Errors;\n\nconst fn = (cb) => {\n  someOperation((err, data) => {\n    if (err) {\n      throw new LogicalError('overrides default message', err);\n    } else {\n      cb(data);\n    }\n  })\n};\n```\n\n---\n\n### Logger\nSimple logger for serializing objects and application errors into JSON lines for inspection and JSONPath filtering.\n\n```js\nimport Logger from '@aerofer/utils/tools/logger';\n\nconst TIME_TAKEN = 'ExecutionTimeTaken';\n\nconst reporter = (time) => ({ time, type: TIME_TAKEN });\n\nconst handler = async () => {\n  const start = +new Date();\n  const data = await processor();\n  const end = +new Date();\n  Logger.info(reporter(end - start));\n  return data;\n};\n```\n\nThere are two environment variables you can set, in-order to control the logger:\n\n* `LOG_NAME` - The name of the application generating logs.\n* `LOG_LEVEL` - The level of logging to produce output for.\n\n---\n\n### Responders\nHTTP Responders wrap response objects from Lambda Proxy functions (or any other mechanism), enabling the easy serialization of Javascript objects whether it is a success or failure.\n\n```js\nimport { success, failure } from '@aerofer/utils/tools/responders';\n\n// Object containing security HTTP headers & CORS\nimport headers from './headers';\n\nexport const handler = async (event, context, cb) => {\n  try {\n    const result = await processor(event);\n    const response = success({ code: 201, headers, body: result });\n    cb(null, response);\n  } catch (err) {\n    if (err.statusCode) {\n      // application error\n      cb(null, failure(event, err));\n    } else {\n      // native error\n      cb(err);\n    }\n  }\n};\n```\n","readmeFilename":"README.md"}