{"_id":"@rxfork/sqs-consumer","_rev":"3-fb4510956966d460d505c5b02d27d7dd","name":"@rxfork/sqs-consumer","dist-tags":{"latest":"6.0.0"},"versions":{"6.0.0-beta.1":{"name":"@rxfork/sqs-consumer","version":"6.0.0-beta.1","description":"Build SQS-based Node applications without the boilerplate","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"postversion":"git push --follow-tags","build":"npm run clean && tsc","watch":"tsc --watch","clean":"rm -fr dist/*","prepublish":"npm run build","pretest":"npm run build","test":"mocha --recursive --full-trace --exit","lint":"eslint . --ext .ts","lint:fix":"eslint . --fix","coverage":"nyc mocha && nyc report --reporter=html && nyc report --reporter=json-summary","lcov":"nyc mocha && nyc report --reporter=lcov","posttest":"npm run lint"},"repository":{"type":"git","url":"git+https://github.com/BBC/sqs-consumer.git"},"bugs":{"url":"https://github.com/BBC/sqs-consumer/issues"},"homepage":"https://github.com/BBC/sqs-consumer","keywords":["sqs","queue","consumer"],"license":"Apache-2.0","devDependencies":{"@aws-sdk/client-sqs":"^3.5.0","@aws-sdk/smithy-client":"^3.5.0","@types/chai":"^4.2.11","@types/debug":"^4.1.5","@types/mocha":"^7.0.2","@types/node":"^14.0.13","@types/sinon":"^9.0.4","@types/typescript":"^2.0.0","chai":"^4.2.0","codeclimate-test-reporter":"^0.5.1","eslint":"^7.2.0","eslint-config-iplayer-ts":"^2.0.0","mocha":"^8.0.1","nyc":"^15.1.0","p-event":"^4.2.0","sinon":"^9.0.2","ts-node":"^8.10.2","tslint-config-airbnb":"^5.11.2","tslint-microsoft-contrib":"^6.2.0","typescript":"^3.9.5"},"dependencies":{"debug":"^4.1.1"},"peerDependencies":{"@aws-sdk/client-sqs":"^3.5.0"},"nyc":{"include":["src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"sourceMap":true,"instrument":true},"eslintConfig":{"extends":"iplayer-ts","parserOptions":{"ecmaVersion":2017,"sourceType":"module"}},"mocha":{"spec":"test/**/**/*.ts","require":"ts-node/register"},"gitHead":"7f04370570b04c58949742050405b0489326b225","_id":"@rxfork/sqs-consumer@6.0.0-beta.1","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-hIk5yNzNWQ5mkUxA2gkd6h4Grpg5T4W0Ymsn3tkg8zRo9clJVSzRnCSk2QD73ZQ4gtIKY2/HasmnGK2HNhtYFQ==","shasum":"956171f7c897bb6f00543800e7b36ffd00ce20ed","tarball":"https://registry.npmjs.org/@rxfork/sqs-consumer/-/sqs-consumer-6.0.0-beta.1.tgz","fileCount":28,"unpackedSize":72781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDBHuCRA9TVsSAnZWagAAnBUP/A0AIPm3b7I/BiFz+7fA\nnhnbT3MLvhSkfFwtqL5H7RGMD1+0u3WVbnGDzptX2trZ6O+y1OPUJSPYbYbq\nPPAiwyW48D0uBYcRgIv2SGMmwWPxNrzpF6kqSQbmil2KIpVP6f498W6TGnvS\n7FNZ4y25zsj9HXtp+vGXQIfdbpI1r6jUpcMBK20QHsJEu75LSAWIuPTao02E\nLEIHgAMvuHrV2U4O5agDRfpPyVqFSlCzPg6zsFgmEyULMQGG3fY6eXdyT/iO\nzbxFptM7nThBeLNPOZEx2HWLC590FRm+yMAmc3YTNjGqeeFeiaBv74Ed04lJ\nxQYQSQR4hxLgiWjBUs1xdHBPWfx+ico1GDIBo150t0gT/VxmdoZczl6JPh3l\nAjSWXcQh+2gl9qcJEYcg60/ccIlPLOPdxpdm1P6ZVVtYYjYl/7gO/lzjSSnP\nwuPdcG1Tdj43WpAevtSSPFxiHIDu9WC+6WHiZlJA9lsQkyxuGYYvYlgAlAWV\nzV+N1Wuo4Q06xPocqSBlcMEFqigULJjAKWgEwnxAcozAZDtxNawCH4QuNUSX\n2NJX2KSxgQNxNqVZVS33eB/wU+Jd4hipQZzFR3p0TOL72RtIJZxy4PXpkPFE\ncnURs9iZ216DrcqP2Wexg+Kz5eZkoUXr9vJrkiiqsPFcwlqU8ufYU1ag2Nde\n1mSb\r\n=gx6c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEtz7djqrk5C4KQEJPMAdfAfDpN1a/xxt0carrn5fEkAiAKIaHbx0C2FcgjpzjS4zzsBiLljCxg3qQWyEAYdXpv0A=="}]},"_npmUser":{"name":"razorx","email":"razorx@evansosenko.com"},"directories":{},"maintainers":[{"name":"razorx","email":"razorx@evansosenko.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sqs-consumer_6.0.0-beta.1_1644958190832_0.9501815630722423"},"_hasShrinkwrap":false},"6.0.0-beta.2":{"name":"@rxfork/sqs-consumer","version":"6.0.0-beta.2","description":"Build SQS-based Node applications without the boilerplate","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"postversion":"git push --follow-tags","build":"npm run clean && tsc","watch":"tsc --watch","clean":"rm -fr dist/*","prepublish":"npm run build","pretest":"npm run build","test":"mocha --recursive --full-trace --exit","lint":"eslint . --ext .ts","lint:fix":"eslint . --fix","coverage":"nyc mocha && nyc report --reporter=html && nyc report --reporter=json-summary","lcov":"nyc mocha && nyc report --reporter=lcov","posttest":"npm run lint"},"repository":{"type":"git","url":"git+https://github.com/rxfork/sqs-consumer.git"},"bugs":{"url":"https://github.com/rxfork/sqs-consumer/issues"},"homepage":"https://github.com/rxfork/sqs-consumer","keywords":["sqs","queue","consumer"],"license":"Apache-2.0","devDependencies":{"@aws-sdk/client-sqs":"^3.5.0","@aws-sdk/smithy-client":"^3.5.0","@types/chai":"^4.2.11","@types/debug":"^4.1.5","@types/mocha":"^7.0.2","@types/node":"^14.0.13","@types/sinon":"^9.0.4","@types/typescript":"^2.0.0","chai":"^4.2.0","codeclimate-test-reporter":"^0.5.1","eslint":"^7.2.0","eslint-config-iplayer-ts":"^2.0.0","mocha":"^8.0.1","nyc":"^15.1.0","p-event":"^4.2.0","sinon":"^9.0.2","ts-node":"^8.10.2","tslint-config-airbnb":"^5.11.2","tslint-microsoft-contrib":"^6.2.0","typescript":"^3.9.5"},"dependencies":{"debug":"^4.1.1"},"peerDependencies":{"@aws-sdk/client-sqs":"^3.5.0"},"nyc":{"include":["src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"sourceMap":true,"instrument":true},"eslintConfig":{"extends":"iplayer-ts","parserOptions":{"ecmaVersion":2017,"sourceType":"module"}},"mocha":{"spec":"test/**/**/*.ts","require":"ts-node/register"},"gitHead":"83401dc2619cd032833f53d0e7b75a96b2a13362","_id":"@rxfork/sqs-consumer@6.0.0-beta.2","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-dGV/P9f0sQpbWyS7qvitCSTQuW0MRF28Fve7DANqhJxnOQpnvI5KQKirL+D0p9tq0AVw/niS9EZ6qTxgR1OUEA==","shasum":"9d80795aff8f710b2f455b4a042e839db08901bf","tarball":"https://registry.npmjs.org/@rxfork/sqs-consumer/-/sqs-consumer-6.0.0-beta.2.tgz","fileCount":28,"unpackedSize":72453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDCm1CRA9TVsSAnZWagAAXgEQAIN8puPKmp4cohplPilO\n3vfTss9bmP02sA+1+MmVMrsB+I/q5xOn7MRa92teZlZFR/C1TWPw2t6WD6Na\n9JXgdsfD5lEVwu8C0jbqgC2fx3kF6r+GDKL4axXRl4neO959GA2YYR32pjr6\nUJNbZnXid+BnxOe+psMPccAb7lWOOQVDmt4KF8fMcVxw9rViX6VaE0Yqp1/Q\nqfC0Nod0Ed9sutClf5lIgNmtvIp6yPEmqtZxCcE39/DFGfoz4Kz6JYJsO4sR\nztcmKUlxizGTjy0XUtzreyZ0t3oV9KTHjRgvKFmM0PzlZtFksREsUm5z8zoP\nVoTFCM4ake+EoeLi7D4L8M7xLNL0uwtjpWqm3Z8O0oyT7ti/loMQAV4iIO+Z\n16Bvs3OmeS6ffkwjOHcqUVKot9DNPHlB+KIz7PEQ710ybzFv6Qp4iv5bue9C\npsU6zbRY6xw7uPQrJcdvtDpzsDXvTzF2SIrRRVoHJU/tyhxxlo5CVkco3swj\nSqMqxm/tH9V4ltjyRKlKnkNkqsZTrIjVlYC/uZRpZuUn+fxvdJ5UIch2kwdF\nId8WTR0+lMdK+DWawbYxJOxor+N+xHnsTMVK8fqp+yLsdOBUA3ZzgPoEx0h2\nbaYnSt3PLhlmaHy7Pf8WUe/ugGc/v/YpPCXxUKFHrg8ktEUp1iY/m68RYz5S\nFzbG\r\n=W+dR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjAYQzs/+zV3tKfoFZpdYEhbgZbNvyEtTyXxdSqBu2FAIgJqJqeEd9Efl0u9H4+8U8sx2WQxrS5IfphHcVxxF0b1A="}]},"_npmUser":{"name":"razorx","email":"razorx@evansosenko.com"},"directories":{},"maintainers":[{"name":"razorx","email":"razorx@evansosenko.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sqs-consumer_6.0.0-beta.2_1644964276912_0.2837306996282587"},"_hasShrinkwrap":false},"6.0.0":{"name":"@rxfork/sqs-consumer","version":"6.0.0","description":"Build SQS-based Node applications without the boilerplate","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"postversion":"git push --follow-tags","build":"npm run clean && tsc","watch":"tsc --watch","clean":"rm -fr dist/*","prepublish":"npm run build","pretest":"npm run build","test":"mocha --recursive --full-trace --exit","lint":"eslint . --ext .ts","lint:fix":"eslint . --fix","coverage":"nyc mocha && nyc report --reporter=html && nyc report --reporter=json-summary","lcov":"nyc mocha && nyc report --reporter=lcov","posttest":"npm run lint"},"repository":{"type":"git","url":"git+https://github.com/rxfork/sqs-consumer.git"},"bugs":{"url":"https://github.com/rxfork/sqs-consumer/issues"},"homepage":"https://github.com/rxfork/sqs-consumer","keywords":["sqs","queue","consumer"],"license":"Apache-2.0","devDependencies":{"@aws-sdk/client-sqs":"^3.5.0","@aws-sdk/smithy-client":"^3.5.0","@types/chai":"^4.2.11","@types/debug":"^4.1.5","@types/mocha":"^7.0.2","@types/node":"^14.0.13","@types/sinon":"^9.0.4","@types/typescript":"^2.0.0","chai":"^4.2.0","codeclimate-test-reporter":"^0.5.1","eslint":"^7.2.0","eslint-config-iplayer-ts":"^2.0.0","mocha":"^8.0.1","nyc":"^15.1.0","p-event":"^4.2.0","sinon":"^9.0.2","ts-node":"^8.10.2","tslint-config-airbnb":"^5.11.2","tslint-microsoft-contrib":"^6.2.0","typescript":"^3.9.5"},"dependencies":{"debug":"^4.1.1"},"peerDependencies":{"@aws-sdk/client-sqs":"^3.5.0"},"nyc":{"include":["src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"sourceMap":true,"instrument":true},"eslintConfig":{"extends":"iplayer-ts","parserOptions":{"ecmaVersion":2017,"sourceType":"module"}},"mocha":{"spec":"test/**/**/*.ts","require":"ts-node/register"},"gitHead":"ea3c117e57c6576b409f430301df541c01ca42a8","_id":"@rxfork/sqs-consumer@6.0.0","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-PdxLrHUSbvsHsN1OG6g8V1Ooq9OurnhET+DNNGYiMKZ6oQ94CWZIA9dAgVp/+OS1YMcSKYtqlqi3LtTSZIOiLg==","shasum":"4fafa7896c4e8cc102ecb65afbf8fc1be5bf3017","tarball":"https://registry.npmjs.org/@rxfork/sqs-consumer/-/sqs-consumer-6.0.0.tgz","fileCount":28,"unpackedSize":72446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDCrkCRA9TVsSAnZWagAAlWcP/1tr0Q3FC/P46R+bhwVd\n3gGqf6vbuV4ed5OPu+AqNgarNNHa5WxSs4M9XEl2w3OZsa1MBAvs/XndohOt\nbvC73SgJK74Q3aw6OKeeuK72Z0Nqt0uU1Bb6gp/+hNlV7CrB7tSllav1KYgO\n2ys5RPoU6SN6+gtq7LqKmBItGC6RuSYA7WLpZX447KNUBiFwETBXYs3Y5T9J\nFLRFf0tmj6TUzWPb06PVnDW2tI1jbxGU7/+2BTnUNem+kxl1GgeyqiKnbwEz\nKD3HIE0BtSNXLcLftX4UU/w93YE9PAvXdiUKJc2PLIyPVIhpSDP9uT21DIQU\nKDlNvtZKjnPrT5PaSCmNdrTLc7dHura+cvTVGrRyjLDnUj65fw0jTnsWKqsU\nXdNMWFYYPFmXtdhln2/NI8bzWyqsvLCzvfZmPswJcGpwnnuwVZ8CzXQtRBcu\nHTHOoFW+sNvHuYhB7ZWTOM2VJZeT3ITU+uYxBdnMjrQBk3UGiCgRFE81s2Xk\nck0WFjdBHmDRHVUKnnVO3tHr4x6iDQLW/r0D0ZvI3AEeG31uv65nwW9Xc/BU\nSyrE5MohvpFiaPSzh2Vd2BAN4qwoP0GjMw20Sv7GzF/5MQ1kJztZpmZD03q2\nqSKtuVuIG2Ynf/ymUzKUoXYzb9oTS7GqB0F4g9fsXwlteviIhqYHNfZxDYFA\n2hHA\r\n=886V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC96ozk4qWvmT1Xqh+ioUXu323DPajYBt/VKDjwR60QXgIhAMsAAo4g8Nm/2CNCxfCP6F89rt30GcRf+QAnd403SPvj"}]},"_npmUser":{"name":"razorx","email":"razorx@evansosenko.com"},"directories":{},"maintainers":[{"name":"razorx","email":"razorx@evansosenko.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sqs-consumer_6.0.0_1644964580524_0.711247472414706"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-15T20:49:50.767Z","6.0.0-beta.1":"2022-02-15T20:49:50.981Z","modified":"2022-04-06T21:08:06.389Z","6.0.0-beta.2":"2022-02-15T22:31:17.049Z","6.0.0":"2022-02-15T22:36:20.702Z"},"maintainers":[{"name":"razorx","email":"razorx@evansosenko.com"}],"description":"Build SQS-based Node applications without the boilerplate","homepage":"https://github.com/rxfork/sqs-consumer","keywords":["sqs","queue","consumer"],"repository":{"type":"git","url":"git+https://github.com/rxfork/sqs-consumer.git"},"bugs":{"url":"https://github.com/rxfork/sqs-consumer/issues"},"license":"Apache-2.0","readme":"# sqs-consumer\n\n[![NPM downloads](https://img.shields.io/npm/dm/sqs-consumer.svg?style=flat)](https://npmjs.org/package/sqs-consumer)\n[![Build Status](https://travis-ci.org/bbc/sqs-consumer.svg)](https://travis-ci.org/bbc/sqs-consumer) \n[![Code Climate](https://codeclimate.com/github/BBC/sqs-consumer/badges/gpa.svg)](https://codeclimate.com/github/BBC/sqs-consumer) \n[![Test Coverage](https://codeclimate.com/github/BBC/sqs-consumer/badges/coverage.svg)](https://codeclimate.com/github/BBC/sqs-consumer)\n\nBuild SQS-based applications without the boilerplate. Just define an async function that handles the SQS message processing.\n\n## Installation\n\n```bash\nnpm add sqs-consumer\n```\n\nNote: This library assumes you are using [AWS SDK v3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sqs/index.html). If you are using v2, please install v5.5.0:\n\n```bash\nnpm add sqs-consumer@5.5.0\n```\n\n## Usage\n\n```js\nimport { Consumer } from 'sqs-consumer';\n\nconst app = Consumer.create({\n  queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',\n  handleMessage: async (message) => {\n    // do some work with `message`\n  }\n});\n\napp.on('error', (err) => {\n  console.error(err.message);\n});\n\napp.on('processing_error', (err) => {\n  console.error(err.message);\n});\n\napp.start();\n```\n\n* The queue is polled continuously for messages using [long polling](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html).\n* Messages are deleted from the queue once the handler function has completed successfully.\n* Throwing an error (or returning a rejected promise) from the handler function will cause the message to be left on the queue. An [SQS redrive policy](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html) can be used to move messages that cannot be processed to a dead letter queue.\n* By default messages are processed one at a time – a new message won't be received until the first one has been processed. To process messages in parallel, use the `batchSize` option [detailed below](#options).\n* If you need to add specific configuration options to the SQS client, you may pass an instantiated client to the Consumer constructor:\n```js\nimport { Consumer } from 'sqs-consumer';\nimport { SQSClient } from '@aws-sdk/client-sqs';\n\nconst app = Consumer.create({\n  queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',\n  handleMessage: async (message) => {\n    // do some work with `message`\n  },\n  sqs: new SQSClient({\n    region: 'my-region',\n    requestHandler: MyCustomHttpHandler\n  })\n});\n\napp.on('error', (err) => {\n  console.error(err.message);\n});\n\napp.on('processing_error', (err) => {\n  console.error(err.message);\n});\n\napp.start();\n```\n\n### Credentials\n\nBy default the consumer will look for AWS credentials in the places [specified by the AWS SDK](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html#Setting_AWS_Credentials). The simplest option is to export your credentials as environment variables:\n\n```bash\nexport AWS_SECRET_ACCESS_KEY=...\nexport AWS_ACCESS_KEY_ID=...\n```\n\nIf you need to specify your credentials manually, you can use a pre-configured instance of the [SQS Client](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sqs/classes/sqsclient.html) client and chose from [a valid credentials provider](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)\n\n\n```js\nimport { Consumer } from 'sqs-consumer';\nimport { SQSClient } from '@aws-sdk/client-sqs';\nimport { fromIni } from '@aws-sdk/credential-provider-ini';\n\nconst credentials = fromIni({\n  profile: 'my-profile'\n});\n\nconst region = 'my-region';\n\nconst app = Consumer.create({\n  queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',\n  handleMessage: async (message) => {\n    // ...\n  },\n  sqs: new SQSClient({ region, credentials })\n});\n\napp.on('error', (err) => {\n  console.error(err.message);\n});\n\napp.on('processing_error', (err) => {\n  console.error(err.message);\n});\n\napp.on('timeout_error', (err) => {\n console.error(err.message);\n});\n\napp.start();\n```\n\n## API\n\n### `Consumer.create(options)`\n\nCreates a new SQS consumer.\n\n#### Options\n\n* `queueUrl` - _String_ - The SQS queue URL\n* `region` - _String_ - The AWS region (default `eu-west-1`)\n* `handleMessage` - _Function_ - An `async` function (or function that returns a `Promise`) to be called whenever a message is received. Receives an SQS message object as it's first argument.\n* `handleMessageBatch` - _Function_ - An `async` function (or function that returns a `Promise`) to be called whenever a batch of messages is received. Similar to `handleMessage` but will receive the list of messages, not each message individually. **If both are set, `handleMessageBatch` overrides `handleMessage`**.\n* `handleMessageTimeout` - _Number_ - Time in ms to wait for `handleMessage` to process a message before timing out. Emits `timeout_error` on timeout. By default, if `handleMessage` times out, the unprocessed message returns to the end of the queue.\n* `attributeNames` - _Array_ - List of queue attributes to retrieve (i.e. `['All', 'ApproximateFirstReceiveTimestamp', 'ApproximateReceiveCount']`).\n* `messageAttributeNames` - _Array_ - List of message attributes to retrieve (i.e. `['name', 'address']`).\n* `batchSize` - _Number_ - The number of messages to request from SQS when polling (default `1`). This cannot be higher than the AWS limit of 10.\n* `visibilityTimeout` - _Number_ - The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request.\n* `heartbeatInterval` - _Number_ - The interval (in seconds) between requests to extend the message visibility timeout. On each heartbeat the visibility is extended by adding `visibilityTimeout` to the number of seconds since the start of the handler function. This value must less than `visibilityTimeout`.\n* `terminateVisibilityTimeout` - _Boolean_ - If true, sets the message visibility timeout to 0 after a `processing_error` (defaults to `false`).\n* `waitTimeSeconds` - _Number_ - The duration (in seconds) for which the call will wait for a message to arrive in the queue before returning.\n* `authenticationErrorTimeout` - _Number_ - The duration (in milliseconds) to wait before retrying after an authentication error (defaults to `10000`).\n* `pollingWaitTimeMs` - _Number_ - The duration (in milliseconds) to wait before repolling the queue (defaults to `0`).\n* `sqs` - _Object_ - An optional [SQS Client](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sqs/classes/sqsclient.html) object to use if you need to configure the client manually\n\n### `consumer.start()`\n\nStart polling the queue for messages.\n\n### `consumer.stop()`\n\nStop polling the queue for messages.\n\n### `consumer.isRunning`  \n\nReturns the current polling state of the consumer: `true` if it is actively polling, `false` if it is not.\n\n### Events\n\nEach consumer is an [`EventEmitter`](http://nodejs.org/api/events.html) and emits the following events:\n\n|Event|Params|Description|\n|-----|------|-----------|\n|`error`|`err`, `[message]`|Fired when an error occurs interacting with the queue. If the error correlates to a message, that error is included in Params|\n|`processing_error`|`err`, `message`|Fired when an error occurs processing the message.|\n|`timeout_error`|`err`, `message`|Fired when `handleMessageTimeout` is supplied as an option and if `handleMessage` times out.|\n|`message_received`|`message`|Fired when a message is received.|\n|`message_processed`|`message`|Fired when a message is successfully processed and removed from the queue.|\n|`response_processed`|None|Fired after one batch of items (up to `batchSize`) has been successfully processed.|\n|`stopped`|None|Fired when the consumer finally stops its work.|\n|`empty`|None|Fired when the queue is empty (All messages have been consumed).|\n\n### AWS IAM Permissions\n\nConsumer will receive and delete messages from the SQS queue. Ensure `sqs:ReceiveMessage` and `sqs:DeleteMessage` access is granted on the queue being consumed.\n\n\n### Contributing \nSee contributing [guidelines](https://github.com/bbc/sqs-consumer/blob/master/.github/CONTRIBUTING.md).\n","readmeFilename":"README.md"}