{"_id":"aws-fanout","_rev":"71-5ae925ce90b0a0e33550ba6446e95b04","name":"aws-fanout","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","dist-tags":{"latest":"2.1.0","rc":"2.0.0-rc.2"},"versions":{"1.0.0":{"name":"aws-fanout","version":"1.0.0","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/quevents.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/quevents/issues"},"dependencies":{"aws-sdk":"^2.2.3","babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","ramda":"^0.17.1","standard":"^5.1.1","winston":"^1.0.0"},"devDependencies":{"babel-runtime":"^5.8.20","bluebird":"^2.9.34","sinon":"^1.16.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"0971fa6a7be9998b303acf74284276dd019dac1e","homepage":"https://github.com/mishguruorg/quevents#readme","_id":"aws-fanout@1.0.0","_shasum":"6937e9f939b9f0625f2cfd6d08213188a9c42c58","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"6937e9f939b9f0625f2cfd6d08213188a9c42c58","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.0.0.tgz","integrity":"sha512-r8AE1q3Dk4r1+bcL5q3hZACT8l4l+bwO6FvOtc0KlW9HMh3wIU2wQXmXI6vps53pZv4VyLZJjqtx1marEyM/7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG8joAnaU0KePdKIAIJsuX1CIdkuFJ9FDwKiyiOVVZ8wIhAKFi9QZ/OZKXohkRTcDRBxT5Ttw8IgP8E5AJh0+2ab4A"}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.0.1":{"name":"aws-fanout","version":"1.0.1","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","standard":"^5.1.1","winston":"^1.0.0","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"1ac4b3d130be72e440273d6078b7a0c643e7202b","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.0.1","_shasum":"1cb4601e95e745592a1800b8a050d6d2c78a5dcf","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"1cb4601e95e745592a1800b8a050d6d2c78a5dcf","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.0.1.tgz","integrity":"sha512-6CmtfO6bp2OCVG7z76nKSBoNfzAFiM50zSJt8ObMTuR3xsPquFHTlBf1Ib67IGuon0sDwfEHh6kQiz/yd2jZWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQLI1J2Do6TinARFLyfSbX+wrt+OBFormEHOid4WfcfAiA4mL1shl/Hu7zbE2tHVFHqwnaan+Veld6e9ShM3f23Mg=="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.0.2":{"name":"aws-fanout","version":"1.0.2","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","standard":"^5.1.1","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"645ec5a311b33428359c046bc180c2a3ce856f19","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.0.2","_shasum":"cf2e6a761691c357da46bb46ecd6f9df37db8005","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"cf2e6a761691c357da46bb46ecd6f9df37db8005","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.0.2.tgz","integrity":"sha512-qy4BEaiyJg6EITTaAoNZslb6x2o9Ear0lQEAAyL9Xu7ZFZwFDPD5BtQdlWdBtvxxDZdvr8nBqbCtfufRzPhtkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF9mwrjstrh3slsrcWOXx4K3MPWns4ypQObnWHjSoCGQIgQHWO8a2zu7GWmR8cLHligykYwZ5dstEmCZ6eUZuGxTM="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.0.3":{"name":"aws-fanout","version":"1.0.3","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","standard":"^5.1.1","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"2ca7d742ccd325224cbabc814a1bddc251c039d3","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.0.3","_shasum":"b0d87d2a535dce1e9365e96416a5c35409d6e315","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"b0d87d2a535dce1e9365e96416a5c35409d6e315","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.0.3.tgz","integrity":"sha512-MqgVu7YNN8KSA727ZBB00A4FWxUk8KQTrBt8c73DMszIvJOVSAhWKPAI+Qqnr65PMnwL0bXEATbzH8cdmBy3Rg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUieyGsR9KJv+4JdaxyFuj6BO7UBAof80teroNmOuWIAiAOd05EhSv+jxW2M1CGpIif67FdOMnTeNXlZNCT0qoVfw=="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.0.4":{"name":"aws-fanout","version":"1.0.4","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","standard":"^5.1.1","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"f95ee76ffc33634fb36761d171853502bf700194","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.0.4","_shasum":"b87670b83391dddff63db7248774b37a172d0f69","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"b87670b83391dddff63db7248774b37a172d0f69","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.0.4.tgz","integrity":"sha512-4Je6ep1A9BDiQ5VJuxkbtwsA+jgCIK2iYrkLGqM/yOYkppwALRos0qubfVBMB4/2gOhWCo829jvymOIsmcxmzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1A20qD5vQa2aVoh5lUVyo5QNENjnmYrbtZRKXh/95dgIgJZtA6Jma0D4hYXJsVxUt98WyuOjDuQUcd82dHncWdOg="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.0":{"name":"aws-fanout","version":"1.1.0","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.0","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","standard":"^5.1.1","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"d6decc262f03f098a0288d391634161fb3d72378","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.0","_shasum":"9c65e7bb731a79521601ebdafe265fb79be49d50","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"9c65e7bb731a79521601ebdafe265fb79be49d50","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.0.tgz","integrity":"sha512-48uJixqArHrRpDWhJvnl0QvAGKb/DGc05VBvVDbBRoWi6udcBjTPutm9jwR+MSotyOUY6FvebGjXmAnWZrdvEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSO+NppucJaPxAFihkQB8/9lwZ9/IWXQUH+3bPH5M9IgIgdBuiwP4eRpiIhdG4OkcvonSV/Il35HgTl02WYu0h2e0="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.1":{"name":"aws-fanout","version":"1.1.1","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"692f3df54946fad3bc80eed3809f2fa89eb3da92","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.1","_shasum":"2856d939d5df2e57d61b0ea127453ab925bee72c","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"2856d939d5df2e57d61b0ea127453ab925bee72c","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.1.tgz","integrity":"sha512-7NE6jPrX2pcXfT5vvMLBVRA26QVP8TtMyvXSYLtIEjkp/VCBDNaUddBM5XwGj0axbrT0w9zWKd28HOE4fs7cjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3MqdQTNChYe3bY9LL1RafbmOAnKQdvn47rjoaaSaI7AiEAwvqSfFAP303g1TTxZz0AyXpBVtHE72MPbNcj8lcLNn0="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.2":{"name":"aws-fanout","version":"1.1.2","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"5912e7b207b352d147f66c8ce68b5da1f02380d0","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.2","_shasum":"7badc1502d2754c25134174eea80d1eb1c37a0f2","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"7badc1502d2754c25134174eea80d1eb1c37a0f2","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.2.tgz","integrity":"sha512-3D93OUBya+xrYiVLQBVr2enzpA+HDsUBOwCY7OqFZHugwzkItqa8ofZlbtrrUOx7wqVsxZ9TFF0ZOBzkY/Kesg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDWEMwEEHXUwUUr+7Lp4N+/q27EZQHdib0Rfoy0q0fL7AiEAjSdPGwLXDfz4QCuDnJqlZ3Lym+UXgw8qPAUrLWLJQCc="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.3":{"name":"aws-fanout","version":"1.1.3","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"44dac4d854c7052fcc0d1483993e585f8e167f3a","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.3","_shasum":"e9b241a15b5855a736ac2ce83fb9d0e17eeb7e72","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"e9b241a15b5855a736ac2ce83fb9d0e17eeb7e72","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.3.tgz","integrity":"sha512-BRWF9hFCneyqA5OH25jnR07HfPvDb9ZPQnzPnsBhNL37yFifdfJZSiauem2RGq1nzKAeIiQTa60JQI/GMrf8KA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcaBm/ZeBi+Ot0kdSH4b9BuPyZdnPBSp7P9Xj3LAHhcQIhAPVxrT1XtIlb+yNtgalp4Lw585s9yl8wOifFT4ZvdIHe"}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.4":{"name":"aws-fanout","version":"1.1.4","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"335ba8bd6a7e4fb113851497af99ef05152595ad","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.4","_shasum":"557c7dbeb563a4966b6fa47557327df953357511","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"557c7dbeb563a4966b6fa47557327df953357511","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.4.tgz","integrity":"sha512-tHGaJehMWsol15LeYzluq7YLOSTkOCyqaoYBD/tYMb+z9fhrnWQcnM3yfdQ2aadGAQutocT0VJpVjjvjS7DZBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8THg/GvvWktvecXL20P2qDiU60qYCORRgZ0xu1ax4EgIhAIWnM43BpctzKhGwnhT4Qd/eZLMmWMIIfOpT2k2aCUcf"}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.5":{"name":"aws-fanout","version":"1.1.5","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"31903f64ac2919943af0335a2f8af60b7788b895","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.5","_shasum":"29cc7db7a26eae64dee3f1e7742b2b19c4bc3aa3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"29cc7db7a26eae64dee3f1e7742b2b19c4bc3aa3","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.5.tgz","integrity":"sha512-ECKgsBL0/jTVJDweY1KNcFfMake+a3i2kZqBpRG1E/IgBfPaqNMF7J6IQ4sZ3T1gFAJw89WsnHYM8f5gQ+FSvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAt2SUvmLN3nHPVyx1fujArF/vWOirKzYFkgt9gvDwvJAiBPOoHuvKmWEtFmztvKzLQeLNAYXht9MexyuZS5nnYukw=="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.6":{"name":"aws-fanout","version":"1.1.6","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"1b306f21a6b3daa2c3afdad670ea1d5459314043","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.6","_shasum":"34a9120e2f41f7a78a924b2e5fed48e82badf059","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"mishguru","email":"dev@mish.guru"},"dist":{"shasum":"34a9120e2f41f7a78a924b2e5fed48e82badf059","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.6.tgz","integrity":"sha512-hFj2DzQX/TQ7Vh9M4qw8NJyUL3EdE+mukb5SlFDLsDIfdXRHQvk/m3/UCoNaa8ppmAxVsyB65Lj8mxJEAXV0lA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3oaoi6CHgcn9I7qEI9gbijeZLVwhVqhthUyDDdntG5AIgCeNiGmLPrR4O4xJTd/z6K+MQWcWSwZMEL8v0PjjeSAk="}]},"maintainers":[{"name":"mishguru","email":"dev@mish.guru"}],"directories":{}},"1.1.7":{"name":"aws-fanout","version":"1.1.7","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"ddc55bedb0c2452d92db3c88db942fae63e5a8c1","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.7","_shasum":"d72402d935a30ed175a8c38e4d22639b1b83202a","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"mishbuild","email":"dev@mish.guru"},"dist":{"shasum":"d72402d935a30ed175a8c38e4d22639b1b83202a","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.7.tgz","integrity":"sha512-R2wIjjtmDcB1M7P/QC4yKIrs9cQz3WDP/IaVxjX85nbbLxK/TKPZSI6pBd6MVLS+Z6CuONTDXfPgcUED638mEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGDxG+6azVpxuFpOIUp4MT7nF6lZenlEPP0f7WXsgXO3AiAc5XMYE5MIxAGjKrU2Eo2RLnh1OHw0IpJoZl4F3qphkQ=="}]},"maintainers":[{"name":"ashokfernandez","email":"ashok.fernandez@gmail.com"},{"name":"gerard","email":"gerardchin91@gmail.com"},{"name":"jladuval","email":"jladuval@gmail.com"},{"name":"mishbuild","email":"dev@mish.guru"},{"name":"nayanbhana","email":"nayan@mish.guru"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/aws-fanout-1.1.7.tgz_1454468508372_0.5323774265125394"},"directories":{}},"1.1.8":{"name":"aws-fanout","version":"1.1.8","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"dcd71aecb8c7e1b3209b0d5f41002b73194fb694","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.8","_shasum":"348cdd25013e4dbde4e6758fb1e2c4750d14ff27","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"mishbuild","email":"dev@mish.guru"},"dist":{"shasum":"348cdd25013e4dbde4e6758fb1e2c4750d14ff27","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.8.tgz","integrity":"sha512-JanCoOjIhieJdoLUIRXwLK+Ra6R7BeMwXD6eGLanQYnYU1OgaDF+HP//sMdwyMKXPb3ycKac+ByC+L1sFs7n1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+Tl6wCj7xRX577Zh1AcJwpqg77OiizphgZiHUFp6uqgIgMA4vBxX0qGj0yVoVDPble4tDvPbL0oAygT4m4tTiuzU="}]},"maintainers":[{"name":"ashokfernandez","email":"ashok.fernandez@gmail.com"},{"name":"gerard","email":"gerardchin91@gmail.com"},{"name":"jladuval","email":"jladuval@gmail.com"},{"name":"mishbuild","email":"dev@mish.guru"},{"name":"nayanbhana","email":"nayan@mish.guru"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/aws-fanout-1.1.8.tgz_1454472537028_0.19202646845951676"},"directories":{}},"1.1.9":{"name":"aws-fanout","version":"1.1.9","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"ec79bc389d2be3e57b030920eca3a27019f52bc9","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.1.9","_shasum":"ffdede1109ff87bc14323d71dd0be46e96dca338","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"mishbuild","email":"dev@mish.guru"},"dist":{"shasum":"ffdede1109ff87bc14323d71dd0be46e96dca338","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.1.9.tgz","integrity":"sha512-SSa/IByT8Zskz/xZC4rcKbj5HPLlU1eIN3WDXAteAbjksnAwIzFls5AQN1VWh10YkQhYqQML8Eu5zvssPlBGcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5YPakI2PSdBxgg1Icqiv0DOHazaSxgIarJRRfjxubWwIgagAstWZGzlNljG5ZzcPR33u2UQCGhmsfutZKmt8Rrw8="}]},"maintainers":[{"name":"ashokfernandez","email":"ashok.fernandez@gmail.com"},{"name":"gerard","email":"gerardchin91@gmail.com"},{"name":"jladuval","email":"jladuval@gmail.com"},{"name":"mishbuild","email":"dev@mish.guru"},{"name":"nayanbhana","email":"nayan@mish.guru"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/aws-fanout-1.1.9.tgz_1454973446909_0.14972952869720757"},"directories":{}},"1.2.2":{"name":"aws-fanout","version":"1.2.2","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","scripts":{"test":"mocha --compilers js:babel/register --recursive specs && standard","prepublish":"rm -rf dist && babel --optional runtime lib --out-dir dist --copy-files","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"babel":"^5.8.23","babel-eslint":"^4.1.3","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1","standard":"^5.3.1"},"dependencies":{"aws-sdk":"^2.2.3","babel-runtime":"^5.8.20","bluebird":"^2.9.34","ramda":"^0.17.1"},"standard":{"ignore":["dist"],"parser":"babel-eslint"},"gitHead":"b25fc7a78218b42f24eabfad6ee15e8b7ccf7d19","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.2.2","_shasum":"2057e3365e95e5860548f1f714a00dfaa6321878","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"mishbuild","email":"dev@mish.guru"},"dist":{"shasum":"2057e3365e95e5860548f1f714a00dfaa6321878","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.2.2.tgz","integrity":"sha512-oHcjCHSMcGHtE4jNuPx8fgad3Qd4eybiSR1AkFuKmBXE0MdyWVL14cx9MKP6zldyiWZtylNRxoQf87D8X683fQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnv5MxTRRI6NoO+ZbbV7lIkO8nKCDtast5q4/n4Qa9JgIhAIuAzIlr1f13Mn51/6IhVsbsCmEaOa9DKGfA2BAenFdg"}]},"maintainers":[{"name":"ashokfernandez","email":"ashok.fernandez@gmail.com"},{"name":"gerard","email":"gerardchin91@gmail.com"},{"name":"jladuval","email":"jladuval@gmail.com"},{"name":"mishbuild","email":"dev@mish.guru"},{"name":"nayanbhana","email":"nayan@mish.guru"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/aws-fanout-1.2.2.tgz_1455597079752_0.7414832129143178"},"directories":{}},"1.2.3-0":{"name":"aws-fanout","version":"1.2.3-0","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","srcPath":"lib","scripts":{"build":"pkg-build","flow":"pkg-flow","lint":"pkg-lint","test":"mocha --compilers js:babel-register --recursive specs","prepublish":"rm -rf dist && pkg-build","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^1.8.5","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","bluebird":"^3.5.0","common-prefix":"^1.1.0","ramda":"^0.24.1"},"babel":{"presets":["flow",["env",{"targets":{"node":"current"}}]],"plugins":[["transform-object-rest-spread",{"useBuiltIns":true}]]},"gitHead":"addc511af1e6df5d2147d2e44b3376c637d02bc9","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.2.3-0","_shasum":"a21f4740ba506db30e0f9bfd523135cbcbdc2ebd","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.7.4","_npmUser":{"name":"brendonjohn","email":"brendon@mish.guru"},"dist":{"shasum":"a21f4740ba506db30e0f9bfd523135cbcbdc2ebd","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.2.3-0.tgz","integrity":"sha512-OARLsEn2yB6aB3/2NnI5sTyjinJAXGbFicWtdADd7R6iiFHWuknx9osCGQgEpIXBr/oabSfthHWVMk685A7FAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQof5YmmAZL/tMcd8rLaSYTeDL/FxT33i3q2YhWAPnVAiEAxuXVkGWpnFxpNEzeKzp/Cq/Fx3LX4+eRowCATER7QGQ="}]},"maintainers":[{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"george@czabania.com","name":"stayradiated"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"jmargolis97@gmail.com","name":"teknogeek"},{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"dev@mish.guru","name":"mishbuild"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout-1.2.3-0.tgz_1503009463554_0.7619298961944878"},"directories":{}},"1.2.3":{"name":"aws-fanout","version":"1.2.3","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","srcPath":"lib","scripts":{"build":"pkg-build","flow":"pkg-flow","lint":"pkg-lint","test":"mocha --compilers js:babel-register --recursive specs","prepublish":"rm -rf dist && pkg-build","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^1.8.5","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","bluebird":"^3.5.0","common-prefix":"^1.1.0","ramda":"^0.24.1"},"babel":{"presets":["flow",["env",{"targets":{"node":"current"}}]],"plugins":[["transform-object-rest-spread",{"useBuiltIns":true}]]},"gitHead":"55b7c61eb07773a6e1713ee2c885e1ea8b2a3379","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.2.3","_shasum":"2727b81658c1e76d1483f4a08244c862e45154fc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.7.4","_npmUser":{"name":"brendonjohn","email":"brendon@mish.guru"},"dist":{"shasum":"2727b81658c1e76d1483f4a08244c862e45154fc","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.2.3.tgz","integrity":"sha512-Z3uXb4PVn926ZXaGz5LaZhq4NnvHREMleKMuCtEScA3CTlEn8rVViGLbjbUwVkO/Vyhq85iOA4uAB3iLl5C9Ig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKPCCmdJl8e+BnrfgecqAYvxDUt/Wg4o5RpYFii/CRGQIhAMelddcIoOJcxbIBVukZQwqj1b9ROqRKbVPtzKlMytxx"}]},"maintainers":[{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"george@czabania.com","name":"stayradiated"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"jmargolis97@gmail.com","name":"teknogeek"},{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"dev@mish.guru","name":"mishbuild"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout-1.2.3.tgz_1503037348409_0.23179184086620808"},"directories":{}},"1.2.4":{"name":"aws-fanout","version":"1.2.4","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","srcPath":"lib","scripts":{"build":"pkg-build","flow":"pkg-flow","lint":"pkg-lint","test":"mocha --compilers js:babel-register --recursive specs","prepublish":"rm -rf dist && pkg-build","postpublish":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^1.8.5","chai":"^3.2.0","mocha":"^2.2.5","proxyquire":"^1.7.2","sinon":"^1.16.1"},"dependencies":{"aws-sdk":"^2.2.3","bluebird":"^3.5.0","common-prefix":"^1.1.0","ramda":"^0.24.1"},"babel":{"presets":["flow",["env",{"targets":{"node":"current"}}]],"plugins":[["transform-object-rest-spread",{"useBuiltIns":true}]]},"gitHead":"b8621758c7fd3810a23e0025a3198d9e57e674c8","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.2.4","_shasum":"923fddb75cfc56a5b890065e5abdd28237844ae7","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.7.4","_npmUser":{"name":"brendonjohn","email":"brendon@mish.guru"},"dist":{"shasum":"923fddb75cfc56a5b890065e5abdd28237844ae7","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.2.4.tgz","integrity":"sha512-xcNyiBrXqST19RumHa0Z8XrbRhVRuPT/EYNDfq+bcwYwACviOz1z1gIGMwTP4rz0dR8LQtp1SsiW9SxB+1Evhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFkxFd+Yueq0LFLzcDeGvHrc3HR7nNQ1kruKjAsh2oqhAiEAvmTttOHhquWKdcXT5E7QCkUeH45vya11RtLPWmafRvw="}]},"maintainers":[{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"george@czabania.com","name":"stayradiated"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"jmargolis97@gmail.com","name":"teknogeek"},{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"dev@mish.guru","name":"mishbuild"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout-1.2.4.tgz_1503038229991_0.8513947541359812"},"directories":{}},"1.3.2":{"name":"aws-fanout","version":"1.3.2","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"dist/index.js","srcPath":"lib","scripts":{"prepare":"pkg-build","build":"pkg-build","flow":"pkg-flow","lint":"pkg-lint","test":"mocha --compilers js:@babel/register --recursive specs"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["SQS SNS"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^4.4.0","chai":"^4.1.2","mocha":"^5.2.0","proxyquire":"^2.0.1","sinon":"^6.1.3"},"dependencies":{"aws-sdk":"^2.275.1","bluebird":"^3.5.1","common-prefix":"^1.1.0","ramda":"^0.25.0"},"babel":{"presets":["@babel/flow"],"plugins":[["@babel/plugin-proposal-object-rest-spread",{"useBuiltIns":true}],"@babel/plugin-transform-modules-commonjs"]},"gitHead":"3e2855c537cd0eb5c2792224be738ee5b9371b7f","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@1.3.2","_npmVersion":"6.1.0","_nodeVersion":"8.9.1","_npmUser":{"name":"ignatov","email":"ivan@mish.guru"},"dist":{"integrity":"sha512-4sGGk7Je3rvoCIlAA/wC+iNDahDuMhN7FSIaRKLghN2XdNxOFSQStHoIXrLaMtgoaD0gStMlmmUNghwZ6E4p9A==","shasum":"78d13bdfe58b5a3f3e9a649354ef5ecf97f8f9be","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-1.3.2.tgz","fileCount":54,"unpackedSize":234316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTVzNCRA9TVsSAnZWagAAV3wQAJBTF6VhKnwzYO7Pnrk3\n47dhK0OaUlDt8QV1r0VlT4EE9YT3Dr3E5EAkTK68uv7b9XlyxL8eeqRQlI7n\n5ETjbkbyByGDAENzZg96gQ9HfXTv9z9yFhg7giolsFJSnZ2VQAPpznucvVJ5\ncG2Ua0StLt7wyAt5TRLhRlpgJaYBJT2JgGE8f7UgJ54kpjOLFIGgKuk+bAP/\nXYClUdlhpJ+4HwVyA2RY9q6GDdDEgOw99S1ZB7o18PDTjHYa2WfR5mXLN18f\nKP9NuG2F+OG9cwQsdbw6iGIyWC9BCauhBHNUpQ5zz2dzGMi8XPlSvwOhUxFG\n8U/zzf72no+/Ix1nfzu1x5l5kGaABrssPZROUP9a2YTzwj+bXnyP3hSzwWXI\nPFzursKe+EGLsJBYIak8rHiisPA+e8FovW/ieoWOVBecqYVn6vgOL0FPZBsH\n7T6FVgkMkeQ2dMBsWZC7oF9UHTRgi5NVNW7UejeXBzz7SDfqczpONOTvJlW7\n2vTjPI3CWUBAW+hzR1xbqm0uoRk2cW9X08f6jn446+IsuRONuqrb8xQ+jOPX\nZ0xbbW7eyOrbFiHxAsPYvzSHsBquR2UVTsmOxRtqP9h40RFNksL0tnf+rn5N\nZ7XX8zNO4f+DO1JA3SMzGuNojzN55BdxpBn8lbWhZCkSliA3PK0zVWRb/0+Z\n2jJV\r\n=LQhP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBPVRg9HoUBJKJvsPthK0cdNMdpqDzUnZea5myeROKKHAiBjCYPjZ8SMOlEKxA58KPjvmIyZMRA1+hFMU3hyoziMjg=="}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"},{"email":"jmargolis97@gmail.com","name":"teknogeek"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_1.3.2_1531796685096_0.9089280900694428"},"_hasShrinkwrap":false},"2.0.0-rc.0":{"name":"aws-fanout","version":"2.0.0-rc.0","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"precommit":"pkg-precommit","test":"pkg-test","build":"pkg-build","lint":"pkg-lint","tidy":"pkg-tidy"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^7.7.0","sinon":"^7.4.1","timekeeper":"2.2.0"},"dependencies":{"aws-sdk":"^2.517.0","bottleneck":"^2.19.5","common-prefix":"^1.1.0","mem":"^5.1.1","stu":"3.1.0"},"readme":"# AWS-Fanout\n\nA library wrapping SNS and SQS to allow for human readable names when using a\nfanout technique. Now you use the fanout pattern without needing to hard code\nARNS throughout your application!\n\n## Installation\n\nThis module is installed via npm:\n\n```bash\n$ npm install aws-fanout\n```\n\n## Example Usage\n\n```typescript\nimport { subscribeQueuesToTopics, publish } from 'aws-fanout'\n\nconst queueName = 'post-office'\nconst topicNames = ['send-email']\n\nawait subscribeQueuesToTopics(credentials, topicNames, queueName)\n\nawait publish(credentials, 'send-email', {\n  address: 'john.smith@example.co.nz',\n  subject: 'Good Morning John',\n})\n```\n\n## API Documentation\n\n- [`deleteTopic(c, topicName)`](#deleteTopic)\n- [`deleteQueue(c, queueName)`](#deleteQueue)\n- [`deleteMessage(c, queueName, receiptHandle)`](#deleteMessage)\n- [`receiveMessage(c, number, timeout, queueName)`](#receiveMessage)\n- [`registerTopics(c, topicNames)`](#registerTopics)\n- [`registerQueues(c, queueNames)`](#registerQueues)\n- [`subscribeQueuesToTopics(c, topicNames, queueName, ...)`](#subscribeQueuesToTopics)\n- [`subscribeQueueTopicsByTheirPrefix(c, topicNames, queueName, ...)`](#subscribeQueueTopicsByTheirPrefix)\n- [`publish(c, topicName, message)`](#publish)\n\n### `deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nconst topicName = 'my-topic-name'\n\nawait deleteTopic(credentials, topicName)\n```\n\n### `deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nawait deleteQueue(credentials, queueName)\n```\n\n### `deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete the message from\n- `receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, 1, 10, queueName)\nif (messages.length > 0) {\n  const receiptHandle = messages[0].ReceiptHandle\n  await deleteMessage(credentials, queueName, receiptHandle)\n}\n```\n\n### `registerTopics`\n\nCreate multiple topics on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to create\n\n```typescript\nimport { registerTopics } from 'aws-sdk'\n\nconst topicNames = [\n  'create-account',\n  'read-account',\n  'update-account',\n  'destroy-account',\n]\n\nawait registerTopics(credentials, topicNames)\n```\n\n### `registerQueues`\n\nCreate multiple queues on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `queueNames`: list of queues to create\n\n```typescript\nimport { registerQueues } from 'aws-sdk'\n\nconst queueNames = [\n  'logs',\n  'errors',\n  'actions',\n]\n\nawait registerQueues(credentials, queueNames)\n```\n\n### `receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `maxNumberOfMessages`: Maximum number of messages to retrieve\n- `visibilityTimeout`: The duration (in seconds) that the received messages are\n  hidden from subsequent retrieve requests\n- `queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst maxNumberOfMessages = 5\nconst visibilityTimeout = 15\nconst queueName = 'actions'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages,\n  visibilityTimeout,\n  queueName\n)\n```\n\n### `subscribeQueuesToTopics`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueuesToTopics(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `subscribeQueueTopicsByTheirPrefix`\n\nIf you have a large number of topics to create, you may start hitting the\nAWS limit on how large the queue policy can be.\n\nInstead you can define the queue to accept any topic that matches a wildcard.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueueTopicsByTheirPrefix(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `publish`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\nThe message will be serialized using `JSON.stringify`.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic\n- `message`: message payload to send\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicName = 'create'\nconst message = {\n  userId: 123,\n  email: 'john.smith@example.co.nz'\n}\n\nawait publish(credentials, topicName, message)\n```\n\n### Credentials\n\nThe `credentials` object is passed through to the `SNS`/`SQS` constructor.\n\n- [SQS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#constructor-property)\n- [SNS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#constructor-property)\n\nIf you are using IAM roles or a shared credentials file, you can just leave\nthis empty.\n\n[Reference: Setting AWS Credentials in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html)\n\nIf you want to load credentials from environment variables, then you can do\nsomething like this:\n\n```typescript\nconst credentials = {\n  region: process.env.AWS_REGION,\n  accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n}\n```\n","readmeFilename":"README.md","gitHead":"6c1824fc95a740a532730f1fd28783f426f9bf2b","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@2.0.0-rc.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HQ0FJgQAyey4rpss5FP9/oh0lIxpx1kVqG9ldL9SZDSOiJ5/QKarBCKKwTH8FWtICxVzrSOgY+9bJd7whBiZow==","shasum":"42a3a737dcb9071e39eb86197467799041f999aa","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-2.0.0-rc.0.tgz","fileCount":137,"unpackedSize":810037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYkktCRA9TVsSAnZWagAA77cQAJIYOot2pKiB12n63tfb\nNnZmpKWe9zHB6WSSvKjhDpx46CVsGYQCXvY3fPKie6xCN7Fc8LcI43jhTjlh\ns3jFMzO4uA3n4i0aVwrMTVvU77sf22oTemNLP5tCxjskWbW3dAlOMsJhYqhj\ngEE9knN6r280VV/s4rGAOLcl3P5NiH1Nkl8jjAA8uwYnJP9gfwHqVL3Rp6Rj\nri0A0MT5dnW0Rru7l6z5qKZbllvdvP01Mi6QxRLkRISFtS4JfsCau5UIJIra\ngWqZSqcBYw9fLREL1txRnfzD666ls62Joi3HsEJPCotEI5LjG7H1c5bdLbmE\nKRLU4GuiQcREGkQKCI8NhTDx6hg45zUP+c0TY5x3W8L6LqP6IJYxWR1bD+0F\nCSCs66qKdl8XXXo8EHjGx/k1/11ZWPuEDrOZYZEtcJkqAuOMSz/GjzmnUtTm\nYo4Ip5dXBcozkMQeddIgpva620K8769WuAfn3Fd4zcejXVi25yJe7pqOjsOl\npA8PNLp9gUrgTJ06PrqsZc8n+CaasmVRhaVndXMLIbLsE4GAPQcanVxVXBtK\nUeHgA8jHZ/xvudNDSOEhip7bFafYkOsfg1eT+DiRJf1MWRMHrS5cCiHLDkSF\nrNeDYWt7hJH0tcNtC9qVHGTdE4ZUTYmxFiYeMDWU4dnmhH129WvXg0euo/u4\n6SbG\r\n=vh16\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLx/FtOEjv4pUawt/p8oGpA8NOHnN0x8Feg18ybNED6QIhAKU11rRK6I6K9tI9ViLKbFrcFckmM5CwspTQwnpnu8Sf"}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"bejal@mish.guru","name":"bejal"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"paveltarno@gmail.com","name":"paveltarno"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"}],"_npmUser":{"name":"stayradiated","email":"george@czabania.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_2.0.0-rc.0_1566722348790_0.6680812201299673"},"_hasShrinkwrap":false},"2.0.0-rc.1":{"name":"aws-fanout","version":"2.0.0-rc.1","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"precommit":"pkg-precommit","test":"pkg-test","build":"pkg-build","lint":"pkg-lint","tidy":"pkg-tidy"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^7.7.0","sinon":"^7.4.1","timekeeper":"2.2.0"},"dependencies":{"aws-sdk":"^2.517.0","bottleneck":"^2.19.5","common-prefix":"^1.1.0","mem":"^5.1.1","stu":"3.1.0"},"readme":"# AWS-Fanout\n\nA library wrapping SNS and SQS to allow for human readable names when using a\nfanout technique. Now you use the fanout pattern without needing to hard code\nARNS throughout your application!\n\n## Installation\n\nThis module is installed via npm:\n\n```bash\n$ npm install aws-fanout\n```\n\n## Example Usage\n\n```typescript\nimport { subscribeQueuesToTopics, publish } from 'aws-fanout'\n\nconst queueName = 'post-office'\nconst topicNames = ['send-email']\n\nawait subscribeQueuesToTopics(credentials, topicNames, queueName)\n\nawait publish(credentials, 'send-email', {\n  address: 'john.smith@example.co.nz',\n  subject: 'Good Morning John',\n})\n```\n\n## API v2 Documentation\n\n- `createQueue(credentials, { queueName })`\n- `createTopic(credentials, { topicName })`\n- `deleteMessage(credentials, { queueName, receiptHandle })`\n- `deleteQueue(credentials, { queueName })`\n- `deleteTopic(credentials, { topicName })`\n- `publishMessage(credentials, { topicName, message })`\n- `receiveMessage(credentials, { queueName, maxNumberOfMessages, visibilityTimeout })`\n- `setQueuePolicy(credentials, { queueName, topicNames, ignoreExistingPolicy })`\n- `setQueuePolicyWithPattern(credentials, { queueName, topicNamePattern })`\n- `setQueueRedrivePolicy(credentials, { queueName, deadLetterQueueName, maxReceiveCount })`\n- `subscribeQueueToTopic(credentials, { queueName, topicName })`\n\n## API v1 Documentation\n\n- [`deleteMessage(credentials, queueName, receiptHandle)`](#deleteMessage)\n- [`deleteQueue(credentials, queueName)`](#deleteQueue)\n- [`deleteTopic(credentials, topicName)`](#deleteTopic)\n- [`publish(credentials, topicName, message)`](#publish)\n- [`receiveMessage(credentials, maxNumberOfMessages, visibilityTimeout, queueName)`](#receiveMessage)\n- [`registerQueues(credentials, queueNames)`](#registerQueues)\n- [`registerTopics(credentials, topicNames)`](#registerTopics)\n- [`subscribeQueueTopicsByTheirPrefix(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5]`](#subscribeQueueTopicsByTheirPrefix)\n- [`subscribeQueuesToTopics(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5])`](#subscribeQueuesToTopics)\n\n### `deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nconst topicName = 'my-topic-name'\n\nawait deleteTopic(credentials, topicName)\n```\n\n### `deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nawait deleteQueue(credentials, queueName)\n```\n\n### `deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete the message from\n- `receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, 1, 10, queueName)\nif (messages.length > 0) {\n  const receiptHandle = messages[0].ReceiptHandle\n  await deleteMessage(credentials, queueName, receiptHandle)\n}\n```\n\n### `registerTopics`\n\nCreate multiple topics on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to create\n\n```typescript\nimport { registerTopics } from 'aws-sdk'\n\nconst topicNames = [\n  'create-account',\n  'read-account',\n  'update-account',\n  'destroy-account',\n]\n\nawait registerTopics(credentials, topicNames)\n```\n\n### `registerQueues`\n\nCreate multiple queues on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `queueNames`: list of queues to create\n\n```typescript\nimport { registerQueues } from 'aws-sdk'\n\nconst queueNames = [\n  'logs',\n  'errors',\n  'actions',\n]\n\nawait registerQueues(credentials, queueNames)\n```\n\n### `receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `maxNumberOfMessages`: Maximum number of messages to retrieve\n- `visibilityTimeout`: The duration (in seconds) that the received messages are\n  hidden from subsequent retrieve requests\n- `queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst maxNumberOfMessages = 5\nconst visibilityTimeout = 15\nconst queueName = 'actions'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages,\n  visibilityTimeout,\n  queueName\n)\n```\n\n### `subscribeQueuesToTopics`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueuesToTopics(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `subscribeQueueTopicsByTheirPrefix`\n\nIf you have a large number of topics to create, you may start hitting the\nAWS limit on how large the queue policy can be.\n\nInstead you can define the queue to accept any topic that matches a wildcard.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueueTopicsByTheirPrefix(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `publish`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\nThe message will be serialized using `JSON.stringify`.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic\n- `message`: message payload to send\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicName = 'create'\nconst message = {\n  userId: 123,\n  email: 'john.smith@example.co.nz'\n}\n\nawait publish(credentials, topicName, message)\n```\n\n### Credentials\n\nThe `credentials` object is passed through to the `SNS`/`SQS` constructor.\n\n- [SQS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#constructor-property)\n- [SNS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#constructor-property)\n\nIf you are using IAM roles or a shared credentials file, you can just leave\nthis empty.\n\n[Reference: Setting AWS Credentials in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html)\n\nIf you want to load credentials from environment variables, then you can do\nsomething like this:\n\n```typescript\nconst credentials = {\n  region: process.env.AWS_REGION,\n  accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n}\n```\n","readmeFilename":"README.md","gitHead":"213b679efa61ee0ae9d0ba2ba19ef808359909c1","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@2.0.0-rc.1","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-9ObkLn2Bhn9RKd8uanjWKdXPwUw9NDfQpC3tdzHsanT4D/RNBanf9w7U+E94nCAanbtlZIOWjlRq9I7LK5Dt2g==","shasum":"fb3a9c5405446a7b256ddc9151d8b9be6ffeedeb","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-2.0.0-rc.1.tgz","fileCount":145,"unpackedSize":825512,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYnQcCRA9TVsSAnZWagAAHh8P/3CpRI1H7i+oZ4SAsy9Y\nyfE+qx8vLbH7WgHuT3z+uxndNSeL1U4WStte4BHT/qoJgUd9jROg622JoMus\nSr3kyZ4PsBNu+MSEPccmdt3tcfCsk5FCyiiRHogHHDGufTCbbJo+0yDhOAG6\nBEUo7by96+KaovI1dE0bs9pOZw5z8uaL5wgTazeJwRMPBj8eOONRiIELVL+s\ndGz890+2zJ44V+YFkrb1w4Aw69RwQc5MgOO9Q98IVQWLIvSVvRQwqMIWQZ8w\nwQlI3acEBDFd1cizHtc3A8Ft6stChJaW4MC4qe6xkG+21HxW5itpU/YbbjNB\nii4xsUdctA7X8Is5ZiLUGw+mCARmPCqbVfIm6IMa1QhA0DMsRURxXHG45ub+\nRhId6qOOqfDcCrdCUC6ln/NWTRXz9M6+R12ds3HhCZR2E80M9phBzBzfiuXC\nbGvefSlQobijxdYezh1CuJk6MTa83kaj8elM+a29cEoJ4nDok/PRS5pRJpld\nYrMYMj09JRP8rWkhde+G+gS+mnQn68r13wRhWw9Q4XEPddCY9S+YK24vPxRo\nkkD2iNKNull483Pd9fA26eHAIy53WLbaRgyoF49GKUhkNv0Ch8XgeGyKora6\ny7RScmnnufsdY0ZzXBElPSsiUcmL7gtX/I0XDt4Jd6siGrZfEhDLi6bu13SC\nVZWg\r\n=rQEO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ8CvSBKdKdxpK1gUFVy1MNOPZPfZLRGMjs4RbvFyuvAIhALPokwniy+nOzMJ39fIKi+sBz2nmpgj/qsdNkyEnRn7F"}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"bejal@mish.guru","name":"bejal"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"paveltarno@gmail.com","name":"paveltarno"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"}],"_npmUser":{"name":"stayradiated","email":"george@czabania.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_2.0.0-rc.1_1566733339366_0.9842049285804877"},"_hasShrinkwrap":false},"2.0.0-rc.2":{"name":"aws-fanout","version":"2.0.0-rc.2","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"precommit":"pkg-precommit","test":"pkg-test","build":"pkg-build","lint":"pkg-lint","tidy":"pkg-tidy"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^7.7.0","sinon":"^7.4.1","timekeeper":"2.2.0"},"dependencies":{"aws-sdk":"^2.517.0","bottleneck":"^2.19.5","common-prefix":"^1.1.0","mem":"^5.1.1","stu":"3.1.0"},"readme":"# AWS-Fanout\n\nA library wrapping SNS and SQS to allow for human readable names when using a\nfanout technique. Now you use the fanout pattern without needing to hard code\nARNS throughout your application!\n\n## Installation\n\nThis module is installed via npm:\n\n```bash\n$ npm install aws-fanout\n```\n\n## Example Usage\n\n```typescript\nimport { subscribeQueuesToTopics, publish } from 'aws-fanout'\n\nconst queueName = 'post-office'\nconst topicNames = ['send-email']\n\nawait subscribeQueuesToTopics(credentials, topicNames, queueName)\n\nawait publish(credentials, 'send-email', {\n  address: 'john.smith@example.co.nz',\n  subject: 'Good Morning John',\n})\n```\n\n## Environment Variables\n\n### `AWS_FANOUT_RATE_LIMIT_MS`\n\n**Default value: `10`**\n\nThe API calls to SQS/SNS are rate limited.\n\nBy default there is a maximum of request made per 10ms. This results in a\nmaximum of 100 requests per second.\n\n## API v2 Documentation\n\n- [`createQueue(credentials, { queueName })`](#v2createQueue)\n- [`createTopic(credentials, { topicName })`](#v2createTopic)\n- [`deleteQueue(credentials, { queueName })`](#v2deleteQueue)\n- [`deleteTopic(credentials, { topicName })`](#v2deleteTopic)\n- [`publishMessage(credentials, { topicName, message })`](#v2publishMessage)\n- [`receiveMessage(credentials, { queueName, maxNumberOfMessages, visibilityTimeout })`](#v2receiveMessage)\n- [`deleteMessage(credentials, { queueName, receiptHandle })`](#v2deleteMessage)\n- [`setQueuePolicy(credentials, { queueName, topicNames, ignoreExistingPolicy })`](#v2setQueuePolicy)\n- [`setQueueRedrivePolicy(credentials, { queueName, deadLetterQueueName, maxReceiveCount })`](#v2setQueueRedrivePolicy)\n- [`subscribeQueueToTopic(credentials, { queueName, topicName })`](#v2subscribeQueueToTopic)\n\n### `v2.createQueue`\n\nCreate a single queue on SQS.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to create\n\n```typescript\nimport { createQueue } from 'aws-sdk'\n\nawait createQueue(credentials, {\n  queueName: 'logger'\n})\n```\n\n### `v2.createTopic`\n\nCreate a single topic on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic to create\n\n```typescript\nimport { createTopic } from 'aws-sdk'\n\nawait createTopic(credentials, {\n  topicName: 'create-account'\n})\n```\n\n### `v2.deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nawait deleteQueue(credentials, {\n  queueName: 'my-queue-name'\n})\n```\n\n### `v2.deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nawait deleteTopic(credentials, {\n  topicName: 'my-topic-name'\n})\n```\n\n### `v2.publishMessage`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic\n- `options.message`: message payload to send, must be a string\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nawait publish(credentials,\n  topicName: 'create',\n  message: JSON.stringify({\n    userId: 123,\n    email: 'john.smith@example.co.nz'\n  })\n)\n```\n\n### `v2.receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.maxNumberOfMessages`: Maximum number of messages to retrieve\n- `options.visibilityTimeout`: The duration (in seconds) that the received\n  messages are hidden from subsequent retrieve requests\n- `options.queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages: 5,\n  visibilityTimeout: 15,\n  queueName: 'actions'\n)\n```\n\n### `v2.deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to delete the message from\n- `options.receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, {\n  maxNumberOfMessages: 1,\n  visibilityTimeout: 10,\n  queueName\n})\n\nif (messages.length > 0) {\n  await deleteMessage(credentials, {\n    queueName,\n    receiptHandle: messages[0].ReceiptHandle\n  })\n}\n```\n\n### `v2.setQueuePolicy`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: queue to forward topics to\n- `options.topicNames`: list of topics to subscribe to\n- `options.ignoreExistingPolicy`: whether to preserve any existing topics that\n  have previously been allowed to post to this queue.\n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nawait subscribeQueuesToTopics(credentials, {\n  queueName: 'actions',\n  topicNames: ['create', 'read', 'update', 'destroy'],\n  ignoreExistingPolicy: false\n})\n```\n\nIf you have a large number of topics to create, you may start hitting the AWS\nlimit on how large the queue policy can be.  Instead you can define the queue\nto accept any topic that matches a wildcard pattern.\n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nawait subscribeQueuesToTopics(credentials, {\n  queueName: 'logger',\n  topicNames: ['*'],\n  ignoreExistingPolicy: false\n})\n```\n\n### `v2.setQueueRedrivePolicy`\n\n- `credentials`: [Credentials](#credentials)\n- `options.deadLetterQueueName`: (optional) The name of dead-letter queue to\n  which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `options.maxReceiveCount`: (optional, default = 5) The number of times a\n  message is delivered to the source queue before being moved to the\n  dead-letter queue. When the ReceiveCount for a message exceeds the\n  maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { setQueueRedrivePolicy } from 'aws-sdk'\n\nawait setQueueRedrivePolicy(credentials, {\n  queueName: 'actions',\n  deadLetterQueueName: 'deadLetter',\n  maxReceiveCount: 5\n})\n```\n\n### `v2.subscribeQueueToTopic`\n\nSubscribe a queue to a topic.\n\nWhen the topic is published, a copy of it will be sent to the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue\n- `options.topicName`: name of the topic\n\n```typescript\nimport { subscribeQueueToTopic } from 'aws-sdk'\n\nawait subscribeQueueToTopic(credentials, {\n  queueName: 'actions',\n  topicName: 'create'\n})\n```\n\n## API v1 Documentation\n\n- [`registerQueues(credentials, queueNames)`](#v1registerQueues)\n- [`registerTopics(credentials, topicNames)`](#v1registerTopics)\n- [`deleteQueue(credentials, queueName)`](#v1deleteQueue)\n- [`deleteTopic(credentials, topicName)`](#v1deleteTopic)\n- [`publish(credentials, topicName, message)`](#v1publish)\n- [`receiveMessage(credentials, maxNumberOfMessages, visibilityTimeout, queueName)`](#v1receiveMessage)\n- [`deleteMessage(credentials, queueName, receiptHandle)`](#v1deleteMessage)\n- [`subscribeQueueTopicsByTheirPrefix(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5]`](#v1subscribeQueueTopicsByTheirPrefix)\n- [`subscribeQueuesToTopics(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5])`](#v1subscribeQueuesToTopics)\n\n### `v1.registerQueues`\n\nCreate multiple queues on SQS.\n\n- `credentials`: [Credentials](#credentials)\n- `queueNames`: list of queues to create\n\n```typescript\nimport { registerQueues } from 'aws-sdk'\n\nconst queueNames = [\n  'logs',\n  'errors',\n  'actions',\n]\n\nawait registerQueues(credentials, queueNames)\n```\n\n### `v1.registerTopics`\n\nCreate multiple topics on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to create\n\n```typescript\nimport { registerTopics } from 'aws-sdk'\n\nconst topicNames = [\n  'create-account',\n  'read-account',\n  'update-account',\n  'destroy-account',\n]\n\nawait registerTopics(credentials, topicNames)\n```\n\n### `v1.deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nawait deleteQueue(credentials, queueName)\n```\n\n### `v1.deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nconst topicName = 'my-topic-name'\n\nawait deleteTopic(credentials, topicName)\n```\n\n### `v1.publish`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\nThe message will be serialized using `JSON.stringify`.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic\n- `message`: message payload to send\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicName = 'create'\nconst message = {\n  userId: 123,\n  email: 'john.smith@example.co.nz'\n}\n\nawait publish(credentials, topicName, message)\n```\n\n### `v1.receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `maxNumberOfMessages`: Maximum number of messages to retrieve\n- `visibilityTimeout`: The duration (in seconds) that the received messages are\n  hidden from subsequent retrieve requests\n- `queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst maxNumberOfMessages = 5\nconst visibilityTimeout = 15\nconst queueName = 'actions'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages,\n  visibilityTimeout,\n  queueName\n)\n```\n\n### `v1.deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete the message from\n- `receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, 1, 10, queueName)\nif (messages.length > 0) {\n  const receiptHandle = messages[0].ReceiptHandle\n  await deleteMessage(credentials, queueName, receiptHandle)\n}\n```\n\n### `v1.subscribeQueuesToTopics`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueuesToTopics(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `v1.subscribeQueueTopicsByTheirPrefix`\n\nIf you have a large number of topics to create, you may start hitting the\nAWS limit on how large the queue policy can be.\n\nInstead you can define the queue to accept any topic that matches a wildcard.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueueTopicsByTheirPrefix(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n## Credentials\n\nThe `credentials` object is passed through to the `SNS`/`SQS` constructor.\n\n- [SQS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#constructor-property)\n- [SNS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#constructor-property)\n\nIf you are using IAM roles or a shared credentials file, you can just leave\nthis empty.\n\n[Reference: Setting AWS Credentials in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html)\n\nIf you want to load credentials from environment variables, then you can do\nsomething like this:\n\n```typescript\nconst credentials = {\n  region: process.env.AWS_REGION,\n  accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n}\n```\n","readmeFilename":"README.md","gitHead":"98fbe23c3bb7c55a2bf30dd99a76ec02220df800","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@2.0.0-rc.2","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-L+KFLaQbcveLjapXUypNs+xwt4JObfWlrb7Ws/o6748heuHnSkK+bq28tcC9W2jQxG8prOjQsJt8jCWpa4/X7w==","shasum":"df96ce7d55daf3ea5df77bdfb1b3ae12721d219a","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-2.0.0-rc.2.tgz","fileCount":145,"unpackedSize":829768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZCv2CRA9TVsSAnZWagAAxmQP+wb+Pe4m93PGuT15xLMM\nBYXVxEkt1y/bHRFkk/q3qi6HKwu8WALKP0vgfPCg1kerUWVoqvvNWn4DkY6o\nwnCMLDCQblGr61aH7kmUI+LWCM3T1ohS1lCtIMNF1h7SF40/iI7/XNAMyQ5I\nJWwWPbiRddfRG40hJtOTpjJ0Apno5iL57fRVZq81URf8lSppPo9goULZnkJX\nwgnQixvcRJZihj0wmuSbtS0nRMnyfLr3AAqNueRfwjI2yT8BgS3FXpBa5rOV\ncjRK2PR+3N3wr7sxwUT+O0qgHjx8NpUBo9HCji5VHp06zxTZhhZ+2SfVem4y\niOWjHsbR5ek6ZfYBcwyUvWMmBR8x6bObB9SPm4EYMKm9RPi2aejh36htcCzC\nwqzarEEBmtXd7kTyCZL+JitVwpH6lFdYXLkz11wL0biyV+RwZR/by/DJJCbw\n2M+MLrtStxlTGwrqeoBZbsZ8nEZF8BJx/+jSRpatjtkjthXJg04QTAfr/7eM\n3RFwxNZSywKTa+taUYzas0MzEaefbbu19XwN7trAqiUACO9odBQJ/wljI2Ww\nM3Aehy1BgtUBKIsZGChVXNl5RVouaVZNJuiNpxYpAz224AK+mzLpxt5B7j7Q\nkOUZPvfJwbwHHBdxGmPtHmuzMaTXRKz/63uistsIpnsLlh3JngDiu1OfqjhT\nkVzm\r\n=AlJD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCng/9Sy91bsHNIbWXQtfZ7U2Of4HtTTa1Snp5VkKXEFwIhAJg27oai8yDxhYm0KiVR7hrizpfseJS53C+kssVU7wqc"}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"bejal@mish.guru","name":"bejal"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"paveltarno@gmail.com","name":"paveltarno"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"}],"_npmUser":{"name":"stayradiated","email":"george@czabania.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_2.0.0-rc.2_1566845942164_0.4730192134731088"},"_hasShrinkwrap":false},"2.0.0":{"name":"aws-fanout","version":"2.0.0","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"precommit":"pkg-precommit","test":"pkg-test","build":"pkg-build","lint":"pkg-lint","tidy":"pkg-tidy"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^7.7.0","sinon":"^7.4.1","timekeeper":"2.2.0"},"dependencies":{"aws-sdk":"^2.517.0","bottleneck":"^2.19.5","common-prefix":"^1.1.0","mem":"^5.1.1","stu":"3.1.0"},"gitHead":"eb97e45a272d763f9d653aeb14188b039c9541a7","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@2.0.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HoYDro8Q3wYDQSb4vRIj297kRc0FcdgDFS1+BhQvnZ47cYHyJm4dTXtHioo4vT4L26VpK56ChzHRUuE+bKjCJA==","shasum":"b7030b9a7e3c7a35014dbf9ec55c2c88e2e9e416","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-2.0.0.tgz","fileCount":145,"unpackedSize":829767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZk7sCRA9TVsSAnZWagAA0eAP/jyjfvDNA17lexAg7XYN\nzJqTX4j+YOD+panUp5hPrJMUQ+eTCIGhHq7d7jd8IoP5lqfv0mgcBT/dqsE6\n8hmEvSgePuyoI134qhle2n7c1ufwjfVWVIOXiAOt/GHlBRfbJsxhc3+TNkHe\n449qVZaN1XDWES8ioA2Q+fCEEGSBSPJrb47fWXT82ZvlDrgnbvOpGJgiiZB9\nFihyrdRDHKQXIRlQ8Xfq3IAVpro00+5jcWrDQwQKG7utd8G+gQPrZjIDoGqc\nTWiX+0XeXpgOoOUzfw4aMzHN1w714HNav0PQPbbnwnJ3qctL5PY9bDHkk7mS\ngAHbJvfOWieVB5J5F9yqQamMDGxin+ir7v8vA76iju7hrEJhb4f2EjK3qxaF\nOdZEMlW41XkVdANbGkfM0sbkD8unusq/AAApaeGzdxVwB/+h0VatWvC44bol\n9IficXP+I98+Hb/du9FnBlniExqozUZ4PX+EQpj25r7iJHHJUzI2CjIMt+Bs\ngZecnuvcUmoYI9ZMY+dmDbU1ekJBgfUljEshvg2uRVTu/g2QEpEBBLcItLr3\neSSesYmR9OKbwvxi0/qgeTH3uKzzeVpGXWHfSWDysWrWYn2vkhKj7EKpj/iz\nNWw8HkGKJc+xDizenudh9kDbLmpntYjWWhq8RZve0888MzOTIkduoCuHAOka\nemys\r\n=sM0h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbRjuLgB3zsRcJmlrtarqeYpvJXwh0KQe1ijKfHPgZ1AIhAKiXIm+AwBFoM9jI7FQvMjURXzTEwn3w1rXCoNzRWIYX"}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"bejal@mish.guru","name":"bejal"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"paveltarno@gmail.com","name":"paveltarno"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"}],"_npmUser":{"name":"stayradiated","email":"george@czabania.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_2.0.0_1566985963259_0.5316248577313492"},"_hasShrinkwrap":false},"2.1.0":{"name":"aws-fanout","version":"2.1.0","license":"MIT","description":"A library wrapping SNS and SQS to allow for human readable names when using a fanout technique","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"precommit":"pkg-precommit","test":"pkg-test","build":"pkg-build","lint":"pkg-lint","tidy":"pkg-tidy"},"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"devDependencies":{"@mishguru/package":"^7.7.0","sinon":"^7.4.1","timekeeper":"2.2.0"},"dependencies":{"aws-sdk":"^2.517.0","bottleneck":"^2.19.5","common-prefix":"^1.1.0","mem":"^5.1.1","stu":"3.1.0"},"engines":{"node":">= 11.15.0"},"gitHead":"7bb5ffed0e9fed6a0e8f321763c13ee9d74e1141","homepage":"https://github.com/mishguruorg/aws-fanout#readme","_id":"aws-fanout@2.1.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-aLgew/e/pd4MuVMf224J9Yl3v5hWjsNMSie4E/4x17MyJW78QJKIxY4kZQA+OV1Nx73Z4u0RST6h04KZSDxm4Q==","shasum":"3d8532c4181fa8b70e9ea592e972cc2631bf9b21","tarball":"https://registry.npmjs.org/aws-fanout/-/aws-fanout-2.1.0.tgz","fileCount":145,"unpackedSize":829812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2kIYCRA9TVsSAnZWagAAKp4QAJ+ZJbOAleNt/kZRg1an\nnufEhqLCe5Jd4JZVv6V0cwjxhhvVYQT4CTkp27Oq5/4aRvTSDi0Gr97/Tbl2\n4wfNfha4BEHBgo30WHGEQK0JsoLfHik4pfLZuYcitLv/TEVjrkuaqmMgmJmU\nJ4tFvyNYc8Jmag0TOap0M/+7chUmG//dTWsTfDzw0VZlQMO49Z0A61IR5/DE\nv+1MjJqaX+8g+Amk3E1/hm7twdjaBvAb9ACFItBDK1CqCqrYs8xP/rvhRqlF\nAI9slgsaADE5qpDo/uh/ulUh/fNxzngJJ6G2r7PvmTQ1vfS4OdBdJ/D/xi84\nSeig0Rf1Y+HjWDxK4vOuuiZTjZT3KmAvVs2aqune2JeDJJCOWTm7NiOFWGRN\nz8FD/VnfErisKx7rfnS4L+wlB9z5taB+pc1Ddhd3wilY4sPTJqxvgM5RzG1a\nFVlA5bfkNX99pnZSGsQvG47fXOqEMbRpSDtqnjEWSl70zYsEOPAi56AmPaNh\nUCJXMTM/YgKdXf8R6jj5dS2M/HMbpALUoTcZuyq64ArDdktVDh/tbpnl/Tud\nShT2rd7gvu9iG25I7G60gcmyAZ6oH3aJ9lJ2F3/drqmlzYSnrEY3CfLfigdm\nCMR3GMfpmOAdCoGw0Xjvnl9sp7ZedJ4FGv35zNgwRL6kgksmFJbXg9Pbwxx8\n2yIM\r\n=+sK5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDGg+mayfmajsU9vwo1MYW8hhelJFanoF9s/FuAH+BcAiEA2Sr3DVRujtcT7kJbrGA/if+3bLStrHt32gCVvLoAwPo="}]},"maintainers":[{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"bejal@mish.guru","name":"bejal"},{"email":"brendon@mish.guru","name":"brendonjohn"},{"email":"cojj.dev@gmail.com","name":"cojj"},{"email":"stephanie@mish.guru","name":"eclecsis"},{"email":"ivan@mish.guru","name":"ignatov"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"},{"email":"lucy-jane@mish.guru","name":"ljewalsh"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"paveltarno@gmail.com","name":"paveltarno"},{"email":"heesterman.peter@gmail.com","name":"peter.heesterman"},{"email":"george@czabania.com","name":"stayradiated"}],"_npmUser":{"name":"stayradiated","email":"george@czabania.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-fanout_2.1.0_1567058603549_0.3332884041483297"},"_hasShrinkwrap":false}},"readme":"# AWS-Fanout\n\nA library wrapping SNS and SQS to allow for human readable names when using a\nfanout technique. Now you use the fanout pattern without needing to hard code\nARNS throughout your application!\n\n## Installation\n\nThis module is installed via npm:\n\n```bash\n$ npm install aws-fanout\n```\n\n## Example Usage\n\n```typescript\nimport { subscribeQueuesToTopics, publish } from 'aws-fanout'\n\nconst queueName = 'post-office'\nconst topicNames = ['send-email']\n\nawait subscribeQueuesToTopics(credentials, topicNames, queueName)\n\nawait publish(credentials, 'send-email', {\n  address: 'john.smith@example.co.nz',\n  subject: 'Good Morning John',\n})\n```\n\n## Environment Variables\n\n### `AWS_FANOUT_RATE_LIMIT_MS`\n\n**Default value: `10`**\n\nThe API calls to SQS/SNS are rate limited.\n\nBy default there is a maximum of one request made per 10ms. This results in a\nmaximum of 100 requests per second.\n\n## API v2 Documentation\n\n- [`createQueue(credentials, { queueName })`](#v2createQueue)\n- [`createTopic(credentials, { topicName })`](#v2createTopic)\n- [`deleteQueue(credentials, { queueName })`](#v2deleteQueue)\n- [`deleteTopic(credentials, { topicName })`](#v2deleteTopic)\n- [`publishMessage(credentials, { topicName, message })`](#v2publishMessage)\n- [`receiveMessage(credentials, { queueName, maxNumberOfMessages, visibilityTimeout })`](#v2receiveMessage)\n- [`deleteMessage(credentials, { queueName, receiptHandle })`](#v2deleteMessage)\n- [`setQueuePolicy(credentials, { queueName, topicNames, ignoreExistingPolicy })`](#v2setQueuePolicy)\n- [`setQueueRedrivePolicy(credentials, { queueName, deadLetterQueueName, maxReceiveCount })`](#v2setQueueRedrivePolicy)\n- [`subscribeQueueToTopic(credentials, { queueName, topicName })`](#v2subscribeQueueToTopic)\n\n### `v2.createQueue`\n\nCreate a single queue on SQS.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to create\n\n```typescript\nimport { createQueue } from 'aws-sdk'\n\nawait createQueue(credentials, {\n  queueName: 'logger'\n})\n```\n\n### `v2.createTopic`\n\nCreate a single topic on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic to create\n\n```typescript\nimport { createTopic } from 'aws-sdk'\n\nawait createTopic(credentials, {\n  topicName: 'create-account'\n})\n```\n\n### `v2.deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nawait deleteQueue(credentials, {\n  queueName: 'my-queue-name'\n})\n```\n\n### `v2.deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nawait deleteTopic(credentials, {\n  topicName: 'my-topic-name'\n})\n```\n\n### `v2.publishMessage`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\n- `credentials`: [Credentials](#credentials)\n- `options.topicName`: name of the topic\n- `options.message`: message payload to send, must be a string\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nawait publish(credentials,\n  topicName: 'create',\n  message: JSON.stringify({\n    userId: 123,\n    email: 'john.smith@example.co.nz'\n  })\n)\n```\n\n### `v2.receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.maxNumberOfMessages`: Maximum number of messages to retrieve\n- `options.visibilityTimeout`: The duration (in seconds) that the received\n  messages are hidden from subsequent retrieve requests\n- `options.queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages: 5,\n  visibilityTimeout: 15,\n  queueName: 'actions'\n)\n```\n\n### `v2.deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue to delete the message from\n- `options.receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, {\n  maxNumberOfMessages: 1,\n  visibilityTimeout: 10,\n  queueName\n})\n\nif (messages.length > 0) {\n  await deleteMessage(credentials, {\n    queueName,\n    receiptHandle: messages[0].ReceiptHandle\n  })\n}\n```\n\n### `v2.setQueuePolicy`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: queue to forward topics to\n- `options.topicNames`: list of topics to subscribe to\n- `options.ignoreExistingPolicy`: whether to preserve any existing topics that\n  have previously been allowed to post to this queue.\n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nawait subscribeQueuesToTopics(credentials, {\n  queueName: 'actions',\n  topicNames: ['create', 'read', 'update', 'destroy'],\n  ignoreExistingPolicy: false\n})\n```\n\nIf you have a large number of topics to create, you may start hitting the AWS\nlimit on how large the queue policy can be.  Instead you can define the queue\nto accept any topic that matches a wildcard pattern.\n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nawait subscribeQueuesToTopics(credentials, {\n  queueName: 'logger',\n  topicNames: ['*'],\n  ignoreExistingPolicy: false\n})\n```\n\n### `v2.setQueueRedrivePolicy`\n\n- `credentials`: [Credentials](#credentials)\n- `options.deadLetterQueueName`: (optional) The name of dead-letter queue to\n  which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `options.maxReceiveCount`: (optional, default = 5) The number of times a\n  message is delivered to the source queue before being moved to the\n  dead-letter queue. When the ReceiveCount for a message exceeds the\n  maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { setQueueRedrivePolicy } from 'aws-sdk'\n\nawait setQueueRedrivePolicy(credentials, {\n  queueName: 'actions',\n  deadLetterQueueName: 'deadLetter',\n  maxReceiveCount: 5\n})\n```\n\n### `v2.subscribeQueueToTopic`\n\nSubscribe a queue to a topic.\n\nWhen the topic is published, a copy of it will be sent to the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `options.queueName`: name of the queue\n- `options.topicName`: name of the topic\n\n```typescript\nimport { subscribeQueueToTopic } from 'aws-sdk'\n\nawait subscribeQueueToTopic(credentials, {\n  queueName: 'actions',\n  topicName: 'create'\n})\n```\n\n## API v1 Documentation\n\n- [`registerQueues(credentials, queueNames)`](#v1registerQueues)\n- [`registerTopics(credentials, topicNames)`](#v1registerTopics)\n- [`deleteQueue(credentials, queueName)`](#v1deleteQueue)\n- [`deleteTopic(credentials, topicName)`](#v1deleteTopic)\n- [`publish(credentials, topicName, message)`](#v1publish)\n- [`receiveMessage(credentials, maxNumberOfMessages, visibilityTimeout, queueName)`](#v1receiveMessage)\n- [`deleteMessage(credentials, queueName, receiptHandle)`](#v1deleteMessage)\n- [`subscribeQueueTopicsByTheirPrefix(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5]`](#v1subscribeQueueTopicsByTheirPrefix)\n- [`subscribeQueuesToTopics(credentials, topicNames, queueName, [deadLetterQueueName], [maxReceiveCount=5])`](#v1subscribeQueuesToTopics)\n\n### `v1.registerQueues`\n\nCreate multiple queues on SQS.\n\n- `credentials`: [Credentials](#credentials)\n- `queueNames`: list of queues to create\n\n```typescript\nimport { registerQueues } from 'aws-sdk'\n\nconst queueNames = [\n  'logs',\n  'errors',\n  'actions',\n]\n\nawait registerQueues(credentials, queueNames)\n```\n\n### `v1.registerTopics`\n\nCreate multiple topics on SNS.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to create\n\n```typescript\nimport { registerTopics } from 'aws-sdk'\n\nconst topicNames = [\n  'create-account',\n  'read-account',\n  'update-account',\n  'destroy-account',\n]\n\nawait registerTopics(credentials, topicNames)\n```\n\n### `v1.deleteQueue`\n\nDelete a queue.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete\n\n```typescript\nimport { deleteQueue } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nawait deleteQueue(credentials, queueName)\n```\n\n### `v1.deleteTopic`\n\nDelete a topic.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic to delete\n\n```typescript\nimport { deleteTopic } from 'aws-sdk'\n\nconst topicName = 'my-topic-name'\n\nawait deleteTopic(credentials, topicName)\n```\n\n### `v1.publish`\n\nPublish a message with a particular topic. Any queues that are subscribed to\nthe topic will receive a copy of it.\n\nThe message will be serialized using `JSON.stringify`.\n\n- `credentials`: [Credentials](#credentials)\n- `topicName`: name of the topic\n- `message`: message payload to send\n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicName = 'create'\nconst message = {\n  userId: 123,\n  email: 'john.smith@example.co.nz'\n}\n\nawait publish(credentials, topicName, message)\n```\n\n### `v1.receiveMessage`\n\nListen for messages on the queue.\n\n- `credentials`: [Credentials](#credentials)\n- `maxNumberOfMessages`: Maximum number of messages to retrieve\n- `visibilityTimeout`: The duration (in seconds) that the received messages are\n  hidden from subsequent retrieve requests\n- `queueName`: Name of the queue to receive messages from\n\n```typescript\nimport { receiveMessage } from 'aws-sdk'\n\nconst maxNumberOfMessages = 5\nconst visibilityTimeout = 15\nconst queueName = 'actions'\n\nconst messages = await receiveMessage(\n  credentials,\n  maxNumberOfMessages,\n  visibilityTimeout,\n  queueName\n)\n```\n\n### `v1.deleteMessage`\n\nRemove a message from a queue.\n\nAfter you have finished receiving a message from the queue, you should remove\nit so that it does not get sent again.\n\n- `credentials`: [Credentials](#credentials)\n- `queueName`: name of the queue to delete the message from\n- `receiptHandle`: the receipt handle of the mesage to delete\n\n```typescript\nimport { receiveMessage, deleteMessage } from 'aws-sdk'\n\nconst queueName = 'my-queue-name'\n\nconst messages = await receiveMessage(credentials, 1, 10, queueName)\nif (messages.length > 0) {\n  const receiptHandle = messages[0].ReceiptHandle\n  await deleteMessage(credentials, queueName, receiptHandle)\n}\n```\n\n### `v1.subscribeQueuesToTopics`\n\nSubscribes a queue to a list of topics.\n\nIf the queue or topics do not exist, they will be created.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueuesToTopics } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueuesToTopics(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n### `v1.subscribeQueueTopicsByTheirPrefix`\n\nIf you have a large number of topics to create, you may start hitting the\nAWS limit on how large the queue policy can be.\n\nInstead you can define the queue to accept any topic that matches a wildcard.\n\n- `credentials`: [Credentials](#credentials)\n- `topicNames`: list of topics to subscribe to\n- `queueName`: queue to forward topics to\n- `deadLetterQueueName`: (optional) The name of dead-letter queue to which SQS moves messages after the value of \"maxReceiveCount\" is exceeded. \n- `maxReceiveCount`: (optional, default = 5) The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the ReceiveCount for a message exceeds the maxReceiveCount for a queue, SQS moves the message to the dead-letter-queue. \n\n```typescript\nimport { subscribeQueueTopicsByTheirPrefix } from 'aws-sdk'\n\nconst topicNames = ['create', 'read', 'update', 'destroy']\nconst queueName = 'actions'\nconst deadLetterQueueName = 'dead-letter'\nconst maxReceiveCount = 5\n\nawait subscribeQueueTopicsByTheirPrefix(\n  credentials,\n  topicNames,\n  queueName,\n  deadLetterQueueName,\n  maxReceiveCount\n)\n```\n\n## Credentials\n\nThe `credentials` object is passed through to the `SNS`/`SQS` constructor.\n\n- [SQS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#constructor-property)\n- [SNS Constructor API Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#constructor-property)\n\nIf you are using IAM roles or a shared credentials file, you can just leave\nthis empty.\n\n[Reference: Setting AWS Credentials in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html)\n\nIf you want to load credentials from environment variables, then you can do\nsomething like this:\n\n```typescript\nconst credentials = {\n  region: process.env.AWS_REGION,\n  accessKeyId: process.env.AWS_ACCESS_KEY_ID,\n  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n}\n```\n","maintainers":[{"email":"alex@mish.guru","name":"alexp643"},{"email":"dev@mish.guru","name":"mishbuild"},{"email":"jladuval@gmail.com","name":"jladuval"},{"email":"ashok.fernandez@gmail.com","name":"ashokfernandez"},{"email":"george@czabania.com","name":"stayradiated"},{"email":"kmmontzka@gmail.com","name":"kmmontzka"}],"time":{"modified":"2022-06-13T03:54:30.238Z","created":"2015-10-05T22:44:48.976Z","1.0.0":"2015-10-05T22:44:48.976Z","1.0.1":"2015-10-05T23:29:31.685Z","1.0.2":"2015-10-08T05:21:55.593Z","1.0.3":"2015-10-08T19:57:52.629Z","1.0.4":"2015-10-08T22:40:42.469Z","1.1.0":"2015-10-14T04:15:42.788Z","1.1.1":"2015-10-15T03:46:54.505Z","1.1.2":"2015-10-15T03:55:50.566Z","1.1.3":"2015-10-15T04:36:17.449Z","1.1.4":"2015-10-15T20:23:32.357Z","1.1.5":"2015-10-28T04:17:54.338Z","1.1.6":"2015-10-28T04:31:27.694Z","1.1.7":"2016-02-03T03:01:49.142Z","1.1.8":"2016-02-03T04:08:59.238Z","1.1.9":"2016-02-08T23:17:29.553Z","1.2.2":"2016-02-16T04:31:21.695Z","1.2.3-0":"2017-08-17T22:37:43.771Z","1.2.3":"2017-08-18T06:22:28.498Z","1.2.4":"2017-08-18T06:37:10.197Z","1.3.2":"2018-07-17T03:04:45.204Z","2.0.0-rc.0":"2019-08-25T08:39:08.953Z","2.0.0-rc.1":"2019-08-25T11:42:19.578Z","2.0.0-rc.2":"2019-08-26T18:59:02.269Z","2.0.0":"2019-08-28T09:52:43.464Z","2.1.0":"2019-08-29T06:03:23.763Z"},"homepage":"https://github.com/mishguruorg/aws-fanout#readme","keywords":["AWS","SQS","SNS","event","receive","publish","subscribe"],"repository":{"type":"git","url":"git+https://github.com/mishguruorg/aws-fanout.git"},"author":{"name":"Mish Guru","email":"dev@mish.guru"},"bugs":{"url":"https://github.com/mishguruorg/aws-fanout/issues"},"readmeFilename":"README.md","license":"MIT"}