ac-sqs 3.3.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/index.js +38 -20
  3. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+
2
+ # [4.0.0](https://github.com/admiralcloud/ac-sqs/compare/v3.3.3..v4.0.0) (2025-10-15 12:25:07)
3
+
4
+
5
+ ### Bug Fix
6
+
7
+ * **App:** Improved sendSQSMessageBatch | MP | [2bc532d24f11ad0e85c9e8bc85d3be8730a3d55c](https://github.com/admiralcloud/ac-sqs/commit/2bc532d24f11ad0e85c9e8bc85d3be8730a3d55c)
8
+ sendSQSMessageBatch now allows per-message messageGroupId and messageDeduplicationId
9
+ ### Chores
10
+
11
+ * **App:** Updated packages | MP | [7fc6cdcf195a370c714632bd6e6438c39eceab76](https://github.com/admiralcloud/ac-sqs/commit/7fc6cdcf195a370c714632bd6e6438c39eceab76)
12
+ Updated packages
13
+ Related issues: [admiralcloud/ac-sqs#1](https://github.com/admiralcloud/ac-sqs/issues/1) [admiralcloud/ac-api-server#340](https://github.com/admiralcloud/ac-api-server/issues/340)
14
+ ## BREAKING CHANGES
15
+ * **App:** messageGroupId, messageDeduplicationId and delay are no longer function parameters for sendSQSMessageBatch
16
+
17
+ ## [3.3.3](https://github.com/admiralcloud/ac-sqs/compare/v3.3.2..v3.3.3) (2025-10-01 13:47:25)
18
+
19
+
20
+ ### Bug Fix
21
+
22
+ * **App:** Fixed log level | MP | [185f1f3ca8f89044488c304b229c19131e784282](https://github.com/admiralcloud/ac-sqs/commit/185f1f3ca8f89044488c304b229c19131e784282)
23
+ Log debug message as debug not as error
24
+ Related issues:
25
+ ### Chores
26
+
27
+ * **Misc:** Updated packages | MP | [afb3944237b3924fddb8eae2b5784b3c56a9ed75](https://github.com/admiralcloud/ac-sqs/commit/afb3944237b3924fddb8eae2b5784b3c56a9ed75)
28
+ Updated packages
29
+ Related issues:
1
30
 
2
31
  ## [3.3.2](https://github.com/admiralcloud/ac-sqs/compare/v3.3.1..v3.3.2) (2025-09-26 20:15:26)
3
32
 
package/index.js CHANGED
@@ -6,7 +6,7 @@ const { SQSClient, SendMessageCommand, SendMessageBatchCommand, ReceiveMessageCo
6
6
  const { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectsCommand } = require("@aws-sdk/client-s3")
7
7
 
8
8
  class ACSQS {
9
- constructor({ region = 'eu-central-1', account, availableLists, useS3 = { enabled: true, bucket: undefined }, messageThreshold = 250e3, debug, logger = console, throwError = false, maxConcurrentMessages = 3000 }) {
9
+ constructor({ region = 'eu-central-1', account, availableLists, useS3 = { enabled: true, bucket: undefined }, messageThreshold = 1000e3, debug, logger = console, throwError = false, maxConcurrentMessages = 3000 }) {
10
10
  this.region = region
11
11
  this.account = account
12
12
  this.availableLists = availableLists
@@ -401,8 +401,9 @@ class ACSQS {
401
401
  this.logger.error('AWS | sendSQSMessage | configurationMissing | %s', name)
402
402
  throw new Error('configurationForListMissing')
403
403
  }
404
+ const messageThreshold = _.get(config, 'messageThreshold', this.messageThreshold)
404
405
 
405
- if (this.useS3 && message.length > this.messageThreshold) {
406
+ if (this.useS3 && message.length > messageThreshold) {
406
407
  // store message in S3
407
408
  const key = uuidV4()
408
409
  const input = {
@@ -437,50 +438,67 @@ class ACSQS {
437
438
  }
438
439
  }
439
440
 
440
- async sendSQSMessageBatch({ name, messages, messageGroupId, deDuplicationId, delay, throwError, debug }) {
441
+ async sendSQSMessageBatch({ name, messages, throwError, debug }) {
441
442
  const config = _.find(this.availableLists, { name })
442
443
  if (!config) {
443
444
  this.logger.error('AWS | sendSQSMessageBatch | configurationMissing | %s', name)
444
445
  throw new Error('configurationForListMissing')
445
446
  }
446
-
447
+
447
448
  const processedMessages = await Promise.all(
448
449
  messages.map(async (message) => {
449
- let messageBody = message
450
- if (this.useS3 && message.length > this.messageThreshold) {
451
- // store message in S3
450
+ const messageBody = _.get(message, 'messageBody')
451
+
452
+ let processedBody = messageBody
453
+ if (this.useS3 && messageBody.length > this.messageThreshold) {
452
454
  const key = uuidV4()
453
455
  const input = {
454
456
  Bucket: this.bucket,
455
457
  Key: key,
456
458
  ContentType: 'text/plain',
457
- Body: Buffer.from(message, 'utf-8')
459
+ Body: Buffer.from(messageBody, 'utf-8')
458
460
  }
459
461
  const command = new PutObjectCommand(input)
460
462
  await this.s3.send(command)
461
- messageBody = `s3:${key}`
463
+ processedBody = `s3:${key}`
464
+ }
465
+
466
+ return {
467
+ processedBody,
468
+ originalMessage: message
462
469
  }
463
- return messageBody
464
470
  })
465
471
  )
466
-
467
- const entries = processedMessages.map((messageBody, index) => {
468
- const item = {
472
+
473
+ const entries = processedMessages.map((item, index) => {
474
+ const { processedBody, originalMessage } = item
475
+
476
+ const entry = {
469
477
  Id: String(index),
470
- MessageBody: messageBody
478
+ MessageBody: processedBody
471
479
  }
472
- if (messageGroupId) item.MessageGroupId = messageGroupId
473
- if (deDuplicationId) item.MessageDeduplicationId = `${deDuplicationId}-${index}`
474
- if (delay) item.DelaySeconds = delay
475
- return item
480
+
481
+ if (_.get(originalMessage, 'messageGroupId')) {
482
+ entry.MessageGroupId = _.get(originalMessage, 'messageGroupId')
483
+ }
484
+
485
+ if (_.get(originalMessage, 'messageDeduplicationId')) {
486
+ entry.MessageDeduplicationId = _.get(originalMessage, 'messageDeduplicationId')
487
+ }
488
+
489
+ if (_.get(originalMessage, 'delaySeconds')) {
490
+ entry.DelaySeconds = _.get(originalMessage, 'delaySeconds')
491
+ }
492
+
493
+ return entry
476
494
  })
477
-
495
+
478
496
  const { queueUrl } = this.getQueueUrl(config)
479
497
  const sqsParams = {
480
498
  QueueUrl: queueUrl,
481
499
  Entries: entries
482
500
  }
483
- if (debug || config.debug) this.logger.error('ACSQS | sendSQSMessageBatch | Payload %j', sqsParams)
501
+ if (debug || config.debug) this.logger.debug('ACSQS | sendSQSMessageBatch | Payload %j', sqsParams)
484
502
 
485
503
  const command = new SendMessageBatchCommand(sqsParams)
486
504
  try {
package/package.json CHANGED
@@ -3,18 +3,18 @@
3
3
  "author": "Mark Poepping (https://www.admiralcloud.com)",
4
4
  "license": "MIT",
5
5
  "repository": "admiralcloud/ac-sqs",
6
- "version": "3.3.2",
6
+ "version": "4.0.0",
7
7
  "dependencies": {
8
- "@aws-sdk/client-s3": "^3.896.0",
9
- "@aws-sdk/client-sqs": "^3.896.0",
8
+ "@aws-sdk/client-s3": "^3.910.0",
9
+ "@aws-sdk/client-sqs": "^3.910.0",
10
10
  "lodash": "^4.17.21",
11
11
  "uuid": "^11.1.0"
12
12
  },
13
13
  "devDependencies": {
14
14
  "ac-semantic-release": "^0.4.8",
15
15
  "chai": "^4.5.0",
16
- "eslint": "^9.36.0",
17
- "mocha": "^11.7.2"
16
+ "eslint": "^9.37.0",
17
+ "mocha": "^11.7.4"
18
18
  },
19
19
  "scripts": {
20
20
  "test": "mocha --reporter spec"