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.
- package/CHANGELOG.md +29 -0
- package/index.js +38 -20
- 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 =
|
|
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 >
|
|
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,
|
|
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
|
-
|
|
450
|
-
|
|
451
|
-
|
|
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(
|
|
459
|
+
Body: Buffer.from(messageBody, 'utf-8')
|
|
458
460
|
}
|
|
459
461
|
const command = new PutObjectCommand(input)
|
|
460
462
|
await this.s3.send(command)
|
|
461
|
-
|
|
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((
|
|
468
|
-
const
|
|
472
|
+
|
|
473
|
+
const entries = processedMessages.map((item, index) => {
|
|
474
|
+
const { processedBody, originalMessage } = item
|
|
475
|
+
|
|
476
|
+
const entry = {
|
|
469
477
|
Id: String(index),
|
|
470
|
-
MessageBody:
|
|
478
|
+
MessageBody: processedBody
|
|
471
479
|
}
|
|
472
|
-
|
|
473
|
-
if (
|
|
474
|
-
|
|
475
|
-
|
|
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.
|
|
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": "
|
|
6
|
+
"version": "4.0.0",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@aws-sdk/client-s3": "^3.
|
|
9
|
-
"@aws-sdk/client-sqs": "^3.
|
|
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.
|
|
17
|
-
"mocha": "^11.7.
|
|
16
|
+
"eslint": "^9.37.0",
|
|
17
|
+
"mocha": "^11.7.4"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
20
|
"test": "mocha --reporter spec"
|