@message-queue-toolkit/sqs 24.3.0 → 26.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/README.md +76 -6
- package/dist/fakes/TestSqsPublisher.js +4 -4
- package/dist/fakes/TestSqsPublisher.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/sqs/AbstractSqsConsumer.d.ts +47 -2
- package/dist/sqs/AbstractSqsConsumer.js +104 -30
- package/dist/sqs/AbstractSqsConsumer.js.map +1 -1
- package/dist/sqs/AbstractSqsPublisher.d.ts +2 -1
- package/dist/sqs/AbstractSqsPublisher.js +37 -15
- package/dist/sqs/AbstractSqsPublisher.js.map +1 -1
- package/dist/sqs/AbstractSqsService.d.ts +14 -3
- package/dist/sqs/AbstractSqsService.js +24 -9
- package/dist/sqs/AbstractSqsService.js.map +1 -1
- package/dist/utils/sqsInitter.d.ts +2 -2
- package/dist/utils/sqsInitter.js +1 -1
- package/dist/utils/sqsInitter.js.map +1 -1
- package/dist/utils/sqsUtils.d.ts +1 -2
- package/package.json +8 -7
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@ for publishing and consuming messages from both standard and FIFO SQS queues.
|
|
|
24
24
|
- [Message Retry Logic](#message-retry-logic)
|
|
25
25
|
- [Message Deduplication](#message-deduplication)
|
|
26
26
|
- [Payload Offloading](#payload-offloading)
|
|
27
|
+
- [Message Compression](#message-compression)
|
|
27
28
|
- [Message Handlers](#message-handlers)
|
|
28
29
|
- [Pre-handlers and Barriers](#pre-handlers-and-barriers)
|
|
29
30
|
- [Handler Spies](#handler-spies)
|
|
@@ -62,6 +63,7 @@ npm install @message-queue-toolkit/sqs @message-queue-toolkit/core
|
|
|
62
63
|
- ✅ **Handler spies** for testing
|
|
63
64
|
- ✅ **Pre-handlers and barriers** for complex message processing
|
|
64
65
|
- ✅ **Automatic queue creation** with validation
|
|
66
|
+
- ✅ **Message compression** with zstd via Node.js built-in `zlib` (Node.js >=22.15.0 required)
|
|
65
67
|
|
|
66
68
|
## Core Concepts
|
|
67
69
|
|
|
@@ -460,6 +462,9 @@ When using `locatorConfig`, you connect to an existing queue without creating it
|
|
|
460
462
|
maxPayloadSize: 1024 * 1024, // 1 MiB
|
|
461
463
|
},
|
|
462
464
|
|
|
465
|
+
// Optional - Compression (Node.js >=22.15.0 required)
|
|
466
|
+
codec: MessageCodecEnum.ZSTD, // Compress every outgoing message with zstd
|
|
467
|
+
|
|
463
468
|
// Optional - Deletion
|
|
464
469
|
deletionConfig: {
|
|
465
470
|
deleteIfExists: false, // Delete queue on init
|
|
@@ -538,6 +543,9 @@ When using `locatorConfig`, you connect to an existing queue without creating it
|
|
|
538
543
|
payloadStore: s3Store,
|
|
539
544
|
},
|
|
540
545
|
|
|
546
|
+
// Note: consumers have no `codec` option — auto-detection handles built-in zstd.
|
|
547
|
+
// Use `codecs: [{ name: 'lz4', handler: new LZ4Handler() }]` only for custom codecs.
|
|
548
|
+
|
|
541
549
|
// Optional - Other
|
|
542
550
|
logMessages: false,
|
|
543
551
|
handlerSpy: true,
|
|
@@ -788,16 +796,78 @@ await publisher.publish({
|
|
|
788
796
|
})
|
|
789
797
|
```
|
|
790
798
|
|
|
791
|
-
**How it works:**
|
|
799
|
+
**How it works (without codec):**
|
|
792
800
|
1. Publisher checks message size before sending
|
|
793
|
-
2. If size exceeds `
|
|
794
|
-
3.
|
|
795
|
-
4.
|
|
796
|
-
5.
|
|
797
|
-
|
|
801
|
+
2. If size exceeds `messageSizeThreshold`, serializes and stores payload in S3
|
|
802
|
+
3. Sends a lightweight pointer message to SQS instead
|
|
803
|
+
4. Consumer detects the pointer, fetches payload from S3
|
|
804
|
+
5. Processes message with full payload
|
|
805
|
+
|
|
806
|
+
**How it works (with codec — compress + offload):**
|
|
807
|
+
1. Publisher compresses the serialized message with zstd **once**, up-front
|
|
808
|
+
2. If the **compressed** size exceeds `messageSizeThreshold`, stores the compressed bytes in S3 and sends a pointer
|
|
809
|
+
3. If the compressed size fits within the threshold, sends the message inline as a codec envelope
|
|
810
|
+
4. Consumer fetches the pointer payload as raw bytes, decompresses, then processes as normal
|
|
811
|
+
|
|
812
|
+
The codec embedded in `payloadRef.codec` tells the consumer which algorithm to use — no `codec` option is needed on the consumer.
|
|
798
813
|
|
|
799
814
|
**Note:** Payload cleanup is the responsibility of the store (e.g., S3 lifecycle policies).
|
|
800
815
|
|
|
816
|
+
### Message Compression
|
|
817
|
+
|
|
818
|
+
Compress message bodies with zstd using the Node.js built-in `zlib` module. Requires **Node.js >=22.15.0**.
|
|
819
|
+
|
|
820
|
+
The codec implementation ships inside `@message-queue-toolkit/core` — no extra package to install. Compression is opt-in: it is only active when you set the `codec` option on a publisher.
|
|
821
|
+
|
|
822
|
+
Compressed messages are **self-describing**: the codec is embedded in the message envelope (`{ __mqtCodec: 'zstd', __mqtData: '<base64>', ...preserved fields }`), so a consumer without `codec` set will still decompress automatically via envelope detection.
|
|
823
|
+
|
|
824
|
+
> **Roll out consumers before publishers.** Auto-detection only works on a consumer running a library version that supports the codec. Upgrade and deploy all consumers of a queue **first** (they keep handling plain messages unchanged), and only then enable `codec` on publishers. A publisher emitting compressed messages to a consumer on an older library version — or to a consumer missing a required custom codec — will fail to process those messages. Such a missing-codec failure is treated as a **retriable** error (a misconfiguration, not a poison message): the message stays on the queue and is retried until the codec is registered, rather than being dropped or sent to the DLQ. This holds for both inline and offloaded compressed messages.
|
|
825
|
+
|
|
826
|
+
#### Publisher
|
|
827
|
+
|
|
828
|
+
```typescript
|
|
829
|
+
import { MessageCodecEnum } from '@message-queue-toolkit/core'
|
|
830
|
+
|
|
831
|
+
class MyPublisher extends AbstractSqsPublisher<SupportedMessages> {
|
|
832
|
+
constructor(deps: SQSDependencies) {
|
|
833
|
+
super(deps, {
|
|
834
|
+
codec: MessageCodecEnum.ZSTD, // compress every outgoing message
|
|
835
|
+
creationConfig: { queue: { QueueName: 'my-queue' } },
|
|
836
|
+
// ...
|
|
837
|
+
})
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
#### Consumer
|
|
843
|
+
|
|
844
|
+
```typescript
|
|
845
|
+
class MyConsumer extends AbstractSqsConsumer<SupportedMessages, ExecutionContext> {
|
|
846
|
+
constructor(deps: SQSConsumerDependencies) {
|
|
847
|
+
super(deps, {
|
|
848
|
+
// No codec option needed for built-in zstd — auto-detection handles it.
|
|
849
|
+
// For a custom codec: codecs: [{ name: 'lz4', handler: new LZ4Handler() }]
|
|
850
|
+
creationConfig: { queue: { QueueName: 'my-queue' } },
|
|
851
|
+
handlers: new MessageHandlerConfigBuilder<SupportedMessages, ExecutionContext>()
|
|
852
|
+
.addConfig(MySchema, myHandler)
|
|
853
|
+
.build(),
|
|
854
|
+
}, executionContext)
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
#### Notes
|
|
860
|
+
|
|
861
|
+
- Compression is applied **after** schema validation and **before** the SQS `SendMessage` call.
|
|
862
|
+
- The message is compressed **exactly once**, regardless of whether payload offloading is also configured. When both features are active: the payload is compressed first, and the decision to offload is made against the **codec envelope wire size** (base64-encoded compressed bytes + JSON framing) rather than the raw or compressed byte count. This means smaller payloads after compression may stay inline and never touch S3.
|
|
863
|
+
- The compressed bytes are **never re-compressed** when sent inline — the codec envelope is built directly from the first (and only) compression pass.
|
|
864
|
+
- Compressed payloads are still subject to the SQS 256 KB message size limit. Without a payload store, an inline codec envelope that still exceeds 256 KB is rejected by AWS at send time — exactly as an oversized uncompressed message would be. For messages that remain oversized after compression, combine with [Payload Offloading](#payload-offloading). The compressed payload is then stored in S3 and the `payloadRef.codec` field records the algorithm so the consumer can decompress after retrieval without any extra configuration.
|
|
865
|
+
- On the consumer side, decompression is **buffer-based** (not streamed): an offloaded compressed payload is fetched in full and decompressed in memory before `JSON.parse`. The decompressed size is bounded by `ZstdCodecHandler`'s `maxDecompressedBytes` (default 100 MiB), which also guards against decompression-bomb inputs.
|
|
866
|
+
- Uses `MessageCodecEnum.ZSTD` (value `'zstd'`). You can use the string literal or the enum — both satisfy the `MessageCodec` type.
|
|
867
|
+
- **`skipCompressionBelow`** (default `512`): minimum UTF-8 byte size a message must reach before compression is applied. Messages strictly below this threshold are sent as plain JSON — small payloads often expand when compressed due to framing overhead. Set to `0` to compress every message regardless of size. Example: `{ codec: MessageCodecEnum.ZSTD, skipCompressionBelow: 1024 }`.
|
|
868
|
+
- **Routing/filtering fields are preserved.** The codec envelope carries the message's identity and routing fields (`id`, `timestamp`, `type`, and any deduplication fields) as plaintext siblings of `__mqtData` — the same fields an offloaded-payload pointer preserves. SNS subscription filter policies scoped to `MessageBody` therefore keep working on those fields. A filter policy that references **other** body fields will not match, because the rest of the payload is compressed inside `__mqtData`.
|
|
869
|
+
- A consumer that receives an envelope for a codec it has **not** registered (an unregistered custom codec) records it as an error rather than processing the partial envelope — register the codec via the `codecs` option.
|
|
870
|
+
|
|
801
871
|
### Message Handlers
|
|
802
872
|
|
|
803
873
|
Handlers process messages based on their type. Messages are routed to the appropriate handler using the discriminator field (configurable via `messageTypeResolver`):
|
|
@@ -106,8 +106,8 @@ export class TestSqsPublisher {
|
|
|
106
106
|
}
|
|
107
107
|
else if (options.consumer) {
|
|
108
108
|
// Extract queueUrl from consumer
|
|
109
|
-
// @ts-expect-error - Accessing
|
|
110
|
-
const consumerQueueUrl = options.consumer.
|
|
109
|
+
// @ts-expect-error - Accessing private property for testing purposes
|
|
110
|
+
const consumerQueueUrl = options.consumer._queue?.url;
|
|
111
111
|
if (!consumerQueueUrl) {
|
|
112
112
|
throw new Error('Consumer has not been initialized. Call consumer.init() before passing it to TestSqsPublisher.publish().');
|
|
113
113
|
}
|
|
@@ -115,8 +115,8 @@ export class TestSqsPublisher {
|
|
|
115
115
|
}
|
|
116
116
|
else if (options.publisher) {
|
|
117
117
|
// Extract queueUrl from publisher
|
|
118
|
-
// @ts-expect-error - Accessing
|
|
119
|
-
const publisherQueueUrl = options.publisher.
|
|
118
|
+
// @ts-expect-error - Accessing private property for testing purposes
|
|
119
|
+
const publisherQueueUrl = options.publisher._queue?.url;
|
|
120
120
|
if (!publisherQueueUrl) {
|
|
121
121
|
throw new Error('Publisher has not been initialized. Call publisher.init() or publisher.publish() before passing it to TestSqsPublisher.publish().');
|
|
122
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSqsPublisher.js","sourceRoot":"","sources":["../../lib/fakes/TestSqsPublisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAoDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,CAAW;IAErC;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,OAA8B;QAC5D,IAAI,QAAgB,CAAA;QAEpB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YACnE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,CAAA;YACpB,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1B,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,iCAAiC;YACjC,
|
|
1
|
+
{"version":3,"file":"TestSqsPublisher.js","sourceRoot":"","sources":["../../lib/fakes/TestSqsPublisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAoDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,CAAW;IAErC;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,OAA8B;QAC5D,IAAI,QAAgB,CAAA;QAEpB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YACnE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,CAAA;YACpB,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1B,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,iCAAiC;YACjC,qEAAqE;YACrE,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAyB,CAAA;YAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAA;YACH,CAAC;YACD,QAAQ,GAAG,gBAAgB,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,kCAAkC;YAClC,qEAAqE;YACrE,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAyB,CAAA;YAC7E,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,mIAAmI,CACpI,CAAA;YACH,CAAC;YACD,QAAQ,GAAG,iBAAiB,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC;YACrC,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACpC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;SACvD,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type { SQSConsumerDependencies, SQSConsumerOptions } from './sqs/Abstract
|
|
|
5
5
|
export { AbstractSqsConsumer } from './sqs/AbstractSqsConsumer.ts';
|
|
6
6
|
export type { SQSMessageOptions, SQSPublisherOptions } from './sqs/AbstractSqsPublisher.ts';
|
|
7
7
|
export { AbstractSqsPublisher, OFFLOADED_PAYLOAD_SIZE_ATTRIBUTE, } from './sqs/AbstractSqsPublisher.ts';
|
|
8
|
-
export { type ExtraSQSCreationParams, SQS_MESSAGE_MAX_SIZE, SQS_RESOURCE_ANY, SQS_RESOURCE_CURRENT_QUEUE, type SQSCreationConfig, type SQSDependencies, type SQSOptions, type SQSPolicyConfig, type SQSQueueConfig, type SQSQueueLocatorType, } from './sqs/AbstractSqsService.ts';
|
|
8
|
+
export { type ExtraSQSCreationParams, type QueueResource, SQS_MESSAGE_MAX_SIZE, SQS_RESOURCE_ANY, SQS_RESOURCE_CURRENT_QUEUE, type SQSCreationConfig, type SQSDependencies, type SQSOptions, type SQSPolicyConfig, type SQSQueueConfig, type SQSQueueLocatorType, } from './sqs/AbstractSqsService.ts';
|
|
9
9
|
export type { CommonMessage, SQSMessage } from './types/MessageTypes.ts';
|
|
10
10
|
export { createEventBridgeSchema, createEventBridgeSchemas, EVENT_BRIDGE_BASE_SCHEMA, type EventBridgeBaseSchema, type EventBridgeDetail, } from './utils/eventBridgeSchemaBuilder.ts';
|
|
11
11
|
export { resolveOutgoingMessageAttributes } from './utils/messageUtils.ts';
|
|
@@ -13,4 +13,4 @@ export { generateQueuePublishForTopicPolicy, generateWildcardSnsArn, generateWil
|
|
|
13
13
|
export { deleteSqs, type InitSqsExtraParams, initSqs, updateQueueAttributes, } from './utils/sqsInitter.ts';
|
|
14
14
|
export { deserializeSQSMessage } from './utils/sqsMessageDeserializer.ts';
|
|
15
15
|
export { createEventBridgeResolverWithMapping, EVENT_BRIDGE_DETAIL_TYPE_FIELD, EVENT_BRIDGE_TIMESTAMP_FIELD, EVENT_BRIDGE_TYPE_RESOLVER, } from './utils/sqsMessageTypeResolvers.ts';
|
|
16
|
-
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, detectFifoQueue, getQueueAttributes, getQueueUrl, isFifoQueueName, resolveQueueUrlFromLocatorConfig, validateFifoQueueConfiguration, validateFifoQueueName, } from './utils/sqsUtils.ts';
|
|
16
|
+
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, detectFifoQueue, getQueueAttributes, getQueueUrl, isFifoQueueName, type QueueAttributesResult, resolveQueueUrlFromLocatorConfig, validateFifoQueueConfiguration, validateFifoQueueName, } from './utils/sqsUtils.ts';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAA8B,MAAM,6BAA6B,CAAA;AAE1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,+BAA+B,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAA8B,MAAM,6BAA6B,CAAA;AAE1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAGL,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,GAO3B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GAGzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EACL,kCAAkC,EAClC,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,SAAS,EAET,OAAO,EACP,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EACL,oCAAoC,EACpC,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,WAAW,EACX,4BAA4B,EAC5B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,eAAe,EAEf,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,qBAAqB,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
2
2
|
import type { ProcessedMessageMetadata } from '@message-queue-toolkit/core';
|
|
3
|
-
import { type BarrierResult, type MessageSchemaContainer, type PreHandlingOutputs, type Prehandler, type QueueConsumer, type QueueConsumerDependencies, type QueueConsumerOptions } from '@message-queue-toolkit/core';
|
|
3
|
+
import { type BarrierResult, type MessageCodecRegistration, type MessageSchemaContainer, type PreHandlingOutputs, type Prehandler, type QueueConsumer, type QueueConsumerDependencies, type QueueConsumerOptions } from '@message-queue-toolkit/core';
|
|
4
4
|
import type { ConsumerOptions } from 'sqs-consumer';
|
|
5
5
|
import type { ZodSchema } from 'zod/v4';
|
|
6
6
|
import type { SQSMessage } from '../types/MessageTypes.ts';
|
|
@@ -11,8 +11,45 @@ type SQSDeadLetterQueueOptions = {
|
|
|
11
11
|
maxReceiveCount: number;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
+
type DeadLetterQueueResource = {
|
|
15
|
+
url: string;
|
|
16
|
+
arn: string;
|
|
17
|
+
};
|
|
14
18
|
export type SQSConsumerDependencies = SQSDependencies & QueueConsumerDependencies;
|
|
15
19
|
type SQSConsumerCommonOptions<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, QueueLocatorType extends object = SQSQueueLocatorType> = QueueConsumerOptions<CreationConfigType, QueueLocatorType, SQSDeadLetterQueueOptions, MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, SQSCreationConfig, SQSQueueLocatorType> & {
|
|
20
|
+
/**
|
|
21
|
+
* Additional codecs to register on this consumer.
|
|
22
|
+
* Built-in codecs (e.g. `MessageCodecEnum.ZSTD`) are always registered automatically.
|
|
23
|
+
* Any incoming message whose `__mqtCodec` name is not in the registry causes an error.
|
|
24
|
+
*
|
|
25
|
+
* Use this to support custom codecs published by a corresponding publisher:
|
|
26
|
+
* @example
|
|
27
|
+
* const codec = { name: 'lz4', handler: new MyLz4Handler() }
|
|
28
|
+
* new MyConsumer(deps, { codecs: [codec] })
|
|
29
|
+
*/
|
|
30
|
+
codecs?: MessageCodecRegistration[];
|
|
31
|
+
/**
|
|
32
|
+
* Disables automatic codec-envelope detection on this consumer.
|
|
33
|
+
*
|
|
34
|
+
* By default, consumers inspect every incoming message body with `hasCodecEnvelopeShape`.
|
|
35
|
+
* If the body carries a `__mqtCodec` name plus a base64 `__mqtData` field, it is treated
|
|
36
|
+
* as compressed and decompressed before schema validation. Extra sibling fields are
|
|
37
|
+
* allowed (publishers copy `id`/`type`/… alongside the codec fields for broker-side
|
|
38
|
+
* filtering), so detection is presence-based, not an exact-shape match.
|
|
39
|
+
*
|
|
40
|
+
* Set this to `true` only if your message schema legitimately contains `__mqtCodec` and
|
|
41
|
+
* `__mqtData` fields and you do not want auto-detection to intercept them.
|
|
42
|
+
*
|
|
43
|
+
* **Warning:** with auto-detection disabled, a genuinely compressed message reaching
|
|
44
|
+
* this consumer is *not* decompressed — its raw envelope is handed straight to schema
|
|
45
|
+
* validation. Because the envelope carries preserved `id`/`type` siblings, a lenient
|
|
46
|
+
* (non-`.strict()`) schema may accept it as a valid-but-incomplete message instead of
|
|
47
|
+
* failing loudly. Only enable this on queues you are certain never receive compressed
|
|
48
|
+
* messages.
|
|
49
|
+
*
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
disableCodecAutoDetection?: boolean;
|
|
16
53
|
/**
|
|
17
54
|
* Wait time in seconds the consumer passes to SQS ReceiveMessage (long-polling).
|
|
18
55
|
* AWS allows integer values 0–20; anything else throws a RangeError at
|
|
@@ -77,7 +114,14 @@ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends obj
|
|
|
77
114
|
private readonly barrierVisibilityExtensionIntervalInMsecs;
|
|
78
115
|
private readonly barrierVisibilityTimeoutInSeconds;
|
|
79
116
|
private readonly consumerPollingWaitTimeSeconds;
|
|
80
|
-
|
|
117
|
+
/** Registry of codec name → handler. Seeded from all built-in codecs + options.codecs. */
|
|
118
|
+
private readonly codecRegistry;
|
|
119
|
+
/**
|
|
120
|
+
* Resolved DLQ resource handle. Populated by {@link initDeadLetterQueue}.
|
|
121
|
+
* Kept private so url/arn can never get out of sync; subclasses read via
|
|
122
|
+
* the {@link deadLetterQueue} getter.
|
|
123
|
+
*/
|
|
124
|
+
private _deadLetterQueue?;
|
|
81
125
|
protected readonly errorResolver: ErrorResolver;
|
|
82
126
|
protected readonly executionContext: ExecutionContext;
|
|
83
127
|
readonly _messageSchemaContainer: MessageSchemaContainer<MessagePayloadType>;
|
|
@@ -89,6 +133,7 @@ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends obj
|
|
|
89
133
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType, executionContext: ExecutionContext);
|
|
90
134
|
init(): Promise<void>;
|
|
91
135
|
protected initDeadLetterQueue(): Promise<void>;
|
|
136
|
+
protected get deadLetterQueue(): Readonly<DeadLetterQueueResource> | undefined;
|
|
92
137
|
start(): Promise<void>;
|
|
93
138
|
/**
|
|
94
139
|
* Creates and starts the SQS consumers.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeMessageVisibilityCommand, SendMessageCommand, SetQueueAttributesCommand, } from '@aws-sdk/client-sqs';
|
|
2
|
-
import { DeduplicationRequesterEnum, HandlerContainer, isMessageError, noopReleasableLock, parseMessage, } from '@message-queue-toolkit/core';
|
|
2
|
+
import { DeduplicationRequesterEnum, getCodecName, HandlerContainer, hasCodecEnvelopeShape, isMessageError, KNOWN_CODECS, noopReleasableLock, parseMessage, resolveCodecHandler, } from '@message-queue-toolkit/core';
|
|
3
3
|
import { Consumer } from 'sqs-consumer';
|
|
4
4
|
import { hasOffloadedPayload } from "../utils/messageUtils.js";
|
|
5
5
|
import { deleteSqs, initSqs } from "../utils/sqsInitter.js";
|
|
@@ -38,7 +38,14 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
38
38
|
barrierVisibilityExtensionIntervalInMsecs;
|
|
39
39
|
barrierVisibilityTimeoutInSeconds;
|
|
40
40
|
consumerPollingWaitTimeSeconds;
|
|
41
|
-
|
|
41
|
+
/** Registry of codec name → handler. Seeded from all built-in codecs + options.codecs. */
|
|
42
|
+
codecRegistry;
|
|
43
|
+
/**
|
|
44
|
+
* Resolved DLQ resource handle. Populated by {@link initDeadLetterQueue}.
|
|
45
|
+
* Kept private so url/arn can never get out of sync; subclasses read via
|
|
46
|
+
* the {@link deadLetterQueue} getter.
|
|
47
|
+
*/
|
|
48
|
+
_deadLetterQueue;
|
|
42
49
|
errorResolver;
|
|
43
50
|
executionContext;
|
|
44
51
|
_messageSchemaContainer;
|
|
@@ -75,6 +82,15 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
75
82
|
messageHandlers: options.handlers,
|
|
76
83
|
});
|
|
77
84
|
this.isDeduplicationEnabled = !!options.enableConsumerDeduplication;
|
|
85
|
+
// Build codec registry: always seed with all built-in codecs, then add user-supplied ones.
|
|
86
|
+
const registry = new Map();
|
|
87
|
+
for (const builtInName of KNOWN_CODECS) {
|
|
88
|
+
registry.set(builtInName, resolveCodecHandler(builtInName));
|
|
89
|
+
}
|
|
90
|
+
for (const registration of options.codecs ?? []) {
|
|
91
|
+
registry.set(getCodecName(registration), resolveCodecHandler(registration));
|
|
92
|
+
}
|
|
93
|
+
this.codecRegistry = registry;
|
|
78
94
|
}
|
|
79
95
|
async init() {
|
|
80
96
|
await super.init();
|
|
@@ -89,8 +105,10 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
89
105
|
}
|
|
90
106
|
// DLQ should match the type of the source queue (FIFO DLQ for FIFO source queue)
|
|
91
107
|
const result = await initSqs(this.sqsClient, locatorConfig, creationConfig, this.isFifoQueue);
|
|
108
|
+
if (!result)
|
|
109
|
+
return;
|
|
92
110
|
await this.sqsClient.send(new SetQueueAttributesCommand({
|
|
93
|
-
QueueUrl: this.
|
|
111
|
+
QueueUrl: this.queue.url,
|
|
94
112
|
Attributes: {
|
|
95
113
|
RedrivePolicy: JSON.stringify({
|
|
96
114
|
deadLetterTargetArn: result.queueArn,
|
|
@@ -98,7 +116,10 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
98
116
|
}),
|
|
99
117
|
},
|
|
100
118
|
}));
|
|
101
|
-
this.
|
|
119
|
+
this._deadLetterQueue = { url: result.queueUrl, arn: result.queueArn };
|
|
120
|
+
}
|
|
121
|
+
get deadLetterQueue() {
|
|
122
|
+
return this._deadLetterQueue;
|
|
102
123
|
}
|
|
103
124
|
async start() {
|
|
104
125
|
await this.init();
|
|
@@ -115,7 +136,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
115
136
|
this.consumers = Array.from({ length: this.concurrentConsumersAmount }, () => this.createConsumer({ visibilityTimeout }));
|
|
116
137
|
for (const consumer of this.consumers) {
|
|
117
138
|
consumer.on('error', (err) => {
|
|
118
|
-
this.handleError(err, { queueName: this.
|
|
139
|
+
this.handleError(err, { queueName: this.queue.name });
|
|
119
140
|
});
|
|
120
141
|
consumer.start();
|
|
121
142
|
}
|
|
@@ -127,7 +148,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
127
148
|
createConsumer(options) {
|
|
128
149
|
return Consumer.create({
|
|
129
150
|
sqs: this.sqsClient,
|
|
130
|
-
queueUrl: this.
|
|
151
|
+
queueUrl: this.queue.url,
|
|
131
152
|
visibilityTimeout: options.visibilityTimeout,
|
|
132
153
|
messageAttributeNames: [`${PAYLOAD_OFFLOADING_ATTRIBUTE_PREFIX}*`],
|
|
133
154
|
// For FIFO queues, request system attributes needed for retry (MessageGroupId and MessageDeduplicationId)
|
|
@@ -144,7 +165,22 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
144
165
|
if (message === null)
|
|
145
166
|
return message;
|
|
146
167
|
const messageProcessingStartTimestamp = Date.now();
|
|
147
|
-
|
|
168
|
+
let deserializedMessage;
|
|
169
|
+
try {
|
|
170
|
+
deserializedMessage = await this.deserializeMessage(message);
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
// A throw out of deserialization — e.g. a message envelope (inline body or an
|
|
174
|
+
// offloaded-payload pointer) naming a codec this consumer has not registered —
|
|
175
|
+
// is terminal for this consumer. Treat it as an invalid message: the abort
|
|
176
|
+
// branch below routes it to the DLQ if one is configured. Retrying would be
|
|
177
|
+
// pointless — a missing-codec deployment misconfiguration is not fixed within
|
|
178
|
+
// the redelivery window, so the message would only burn its receive-count
|
|
179
|
+
// attempts (or, with no DLQ, spam the error reporter for the whole retention
|
|
180
|
+
// period) before ending up in the DLQ anyway.
|
|
181
|
+
this.handleError(err);
|
|
182
|
+
deserializedMessage = ABORT_EARLY_EITHER;
|
|
183
|
+
}
|
|
148
184
|
if (deserializedMessage.error === 'abort') {
|
|
149
185
|
await this.failProcessing(message);
|
|
150
186
|
const messageId = this.tryToExtractId(message);
|
|
@@ -152,7 +188,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
152
188
|
message: null,
|
|
153
189
|
processingResult: { status: 'error', errorReason: 'invalidMessage' },
|
|
154
190
|
messageProcessingStartTimestamp,
|
|
155
|
-
queueName: this.
|
|
191
|
+
queueName: this.queue.name,
|
|
156
192
|
messageId: messageId.result,
|
|
157
193
|
});
|
|
158
194
|
return message;
|
|
@@ -164,7 +200,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
164
200
|
message: parsedMessage,
|
|
165
201
|
processingResult: { status: 'consumed', skippedAsDuplicate: true },
|
|
166
202
|
messageProcessingStartTimestamp,
|
|
167
|
-
queueName: this.
|
|
203
|
+
queueName: this.queue.name,
|
|
168
204
|
messageId: this.tryToExtractId(message).result,
|
|
169
205
|
});
|
|
170
206
|
return message;
|
|
@@ -188,13 +224,13 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
188
224
|
message: parsedMessage,
|
|
189
225
|
processingResult: { status: 'consumed', skippedAsDuplicate: true },
|
|
190
226
|
messageProcessingStartTimestamp,
|
|
191
|
-
queueName: this.
|
|
227
|
+
queueName: this.queue.name,
|
|
192
228
|
messageId: this.tryToExtractId(message).result,
|
|
193
229
|
});
|
|
194
230
|
return message;
|
|
195
231
|
}
|
|
196
232
|
const messageType = this.resolveMessageTypeFromMessage(parsedMessage) ?? 'unknown';
|
|
197
|
-
const transactionSpanId = `queue_${this.
|
|
233
|
+
const transactionSpanId = `queue_${this.queue.name}:${messageType}`;
|
|
198
234
|
// @ts-expect-error
|
|
199
235
|
const uniqueTransactionKey = parsedMessage[this.messageIdField];
|
|
200
236
|
this.transactionObservabilityManager?.start(transactionSpanId, uniqueTransactionKey);
|
|
@@ -215,7 +251,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
215
251
|
message: originalMessage,
|
|
216
252
|
processingResult: { status: 'consumed' },
|
|
217
253
|
messageProcessingStartTimestamp,
|
|
218
|
-
queueName: this.
|
|
254
|
+
queueName: this.queue.name,
|
|
219
255
|
});
|
|
220
256
|
return message;
|
|
221
257
|
}
|
|
@@ -229,7 +265,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
229
265
|
message: parsedMessage,
|
|
230
266
|
processingResult: { status: 'error', errorReason: 'handlerError' },
|
|
231
267
|
messageProcessingStartTimestamp,
|
|
232
|
-
queueName: this.
|
|
268
|
+
queueName: this.queue.name,
|
|
233
269
|
});
|
|
234
270
|
return Promise.reject(result.error);
|
|
235
271
|
},
|
|
@@ -254,7 +290,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
254
290
|
message: parsedMessage,
|
|
255
291
|
processingResult: { status: 'retryLater' },
|
|
256
292
|
messageProcessingStartTimestamp,
|
|
257
|
-
queueName: this.
|
|
293
|
+
queueName: this.queue.name,
|
|
258
294
|
});
|
|
259
295
|
throw new Error('FIFO queue: Lock acquisition failed. Triggering AWS SQS retry to preserve message order.');
|
|
260
296
|
}
|
|
@@ -264,7 +300,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
264
300
|
message: parsedMessage,
|
|
265
301
|
processingResult: { status: 'error', errorReason: 'retryLaterExceeded' },
|
|
266
302
|
messageProcessingStartTimestamp,
|
|
267
|
-
queueName: this.
|
|
303
|
+
queueName: this.queue.name,
|
|
268
304
|
});
|
|
269
305
|
throw new Error('FIFO queue: Retry duration exceeded. Moving message to DLQ.');
|
|
270
306
|
}
|
|
@@ -276,7 +312,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
276
312
|
message: parsedMessage,
|
|
277
313
|
processingResult: { status: 'retryLater' },
|
|
278
314
|
messageProcessingStartTimestamp,
|
|
279
|
-
queueName: this.
|
|
315
|
+
queueName: this.queue.name,
|
|
280
316
|
});
|
|
281
317
|
}
|
|
282
318
|
else {
|
|
@@ -285,7 +321,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
285
321
|
message: parsedMessage,
|
|
286
322
|
processingResult: { status: 'error', errorReason: 'retryLaterExceeded' },
|
|
287
323
|
messageProcessingStartTimestamp,
|
|
288
|
-
queueName: this.
|
|
324
|
+
queueName: this.queue.name,
|
|
289
325
|
});
|
|
290
326
|
}
|
|
291
327
|
}
|
|
@@ -312,7 +348,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
312
348
|
message: originalMessage,
|
|
313
349
|
processingResult: { status: 'consumed' },
|
|
314
350
|
messageProcessingStartTimestamp,
|
|
315
|
-
queueName: this.
|
|
351
|
+
queueName: this.queue.name,
|
|
316
352
|
});
|
|
317
353
|
return;
|
|
318
354
|
}
|
|
@@ -322,7 +358,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
322
358
|
message: parsedMessage,
|
|
323
359
|
processingResult: { status: 'error', errorReason: 'handlerError' },
|
|
324
360
|
messageProcessingStartTimestamp,
|
|
325
|
-
queueName: this.
|
|
361
|
+
queueName: this.queue.name,
|
|
326
362
|
});
|
|
327
363
|
throw result.error;
|
|
328
364
|
}
|
|
@@ -334,7 +370,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
334
370
|
message: parsedMessage,
|
|
335
371
|
processingResult: { status: 'error', errorReason: 'retryLaterExceeded' },
|
|
336
372
|
messageProcessingStartTimestamp,
|
|
337
|
-
queueName: this.
|
|
373
|
+
queueName: this.queue.name,
|
|
338
374
|
});
|
|
339
375
|
throw new Error('FIFO queue: Retry duration exceeded. Moving message to DLQ.');
|
|
340
376
|
}
|
|
@@ -362,7 +398,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
362
398
|
if (shouldExplicitlyExtend) {
|
|
363
399
|
try {
|
|
364
400
|
await this.sqsClient.send(new ChangeMessageVisibilityCommand({
|
|
365
|
-
QueueUrl: this.
|
|
401
|
+
QueueUrl: this.queue.url,
|
|
366
402
|
ReceiptHandle: message.ReceiptHandle,
|
|
367
403
|
VisibilityTimeout: this.barrierVisibilityTimeoutInSeconds,
|
|
368
404
|
}));
|
|
@@ -405,7 +441,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
405
441
|
*/
|
|
406
442
|
buildRetryMessageParams(message, originalMessage) {
|
|
407
443
|
const params = {
|
|
408
|
-
QueueUrl: this.
|
|
444
|
+
QueueUrl: this.queue.url,
|
|
409
445
|
MessageBody: JSON.stringify(this.updateInternalProperties(originalMessage)),
|
|
410
446
|
};
|
|
411
447
|
if (this.isFifoQueue) {
|
|
@@ -446,7 +482,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
446
482
|
*/
|
|
447
483
|
async buildFifoRetryMessageParamsAsync(message, originalMessage) {
|
|
448
484
|
const params = {
|
|
449
|
-
QueueUrl: this.
|
|
485
|
+
QueueUrl: this.queue.url,
|
|
450
486
|
MessageBody: JSON.stringify(this.updateInternalProperties(originalMessage)),
|
|
451
487
|
};
|
|
452
488
|
const messageGroupId = message.Attributes?.MessageGroupId;
|
|
@@ -456,7 +492,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
456
492
|
// Fetch ContentBasedDeduplication attribute from SQS (cached after first fetch)
|
|
457
493
|
let isContentBasedDedup = this.cachedContentBasedDeduplication;
|
|
458
494
|
if (isContentBasedDedup === undefined) {
|
|
459
|
-
const queueAttributes = await getQueueAttributes(this.sqsClient, this.
|
|
495
|
+
const queueAttributes = await getQueueAttributes(this.sqsClient, this.queue.url, [
|
|
460
496
|
'ContentBasedDeduplication',
|
|
461
497
|
]);
|
|
462
498
|
isContentBasedDedup = queueAttributes.result?.attributes?.ContentBasedDeduplication === 'true';
|
|
@@ -534,17 +570,50 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
534
570
|
return ABORT_EARLY_EITHER;
|
|
535
571
|
}
|
|
536
572
|
// Empty content for whatever reason
|
|
537
|
-
if (!resolveMessageResult.result
|
|
573
|
+
if (!resolveMessageResult.result?.body) {
|
|
538
574
|
return ABORT_EARLY_EITHER;
|
|
539
575
|
}
|
|
540
576
|
if (hasOffloadedPayload(resolveMessageResult.result)) {
|
|
541
|
-
const retrieveOffloadedMessagePayloadResult = await this.retrieveOffloadedMessagePayload(resolveMessageResult.result.body)
|
|
577
|
+
const retrieveOffloadedMessagePayloadResult = await this.retrieveOffloadedMessagePayload(resolveMessageResult.result.body, (codecName) => {
|
|
578
|
+
const handler = this.codecRegistry.get(codecName);
|
|
579
|
+
if (!handler) {
|
|
580
|
+
// The pointer names a codec this consumer has not registered. Throwing here
|
|
581
|
+
// (outside retrieveOffloadedMessagePayload's catch) propagates to handleMessage,
|
|
582
|
+
// which treats it as an invalid message and routes it to the DLQ (if one is
|
|
583
|
+
// configured) so it can be redriven once the codec is deployed.
|
|
584
|
+
throw new Error(`No codec handler registered for "${codecName}". Register it via the consumer's \`codecs\` option.`);
|
|
585
|
+
}
|
|
586
|
+
return (data) => handler.decompress(data);
|
|
587
|
+
});
|
|
542
588
|
if (retrieveOffloadedMessagePayloadResult.error) {
|
|
543
589
|
this.handleError(retrieveOffloadedMessagePayloadResult.error);
|
|
544
590
|
return ABORT_EARLY_EITHER;
|
|
545
591
|
}
|
|
546
592
|
resolveMessageResult.result.body = retrieveOffloadedMessagePayloadResult.result;
|
|
547
593
|
}
|
|
594
|
+
else if (!this.disableCodecAutoDetection &&
|
|
595
|
+
hasCodecEnvelopeShape(resolveMessageResult.result.body)) {
|
|
596
|
+
const envelope = resolveMessageResult.result.body;
|
|
597
|
+
const handler = this.codecRegistry.get(envelope.__mqtCodec);
|
|
598
|
+
if (!handler) {
|
|
599
|
+
// Envelope-shaped body naming a codec this consumer has not registered. Throwing
|
|
600
|
+
// here propagates to handleMessage, which treats it as an invalid message and
|
|
601
|
+
// routes it to the DLQ (if one is configured) so it can be redriven once the codec
|
|
602
|
+
// is deployed. Throwing — rather than falling through — is essential: otherwise the
|
|
603
|
+
// envelope's preserved sibling fields (id, type, …) could satisfy a lenient schema
|
|
604
|
+
// and be processed as an incomplete message. Register the codec via the `codecs`
|
|
605
|
+
// option.
|
|
606
|
+
throw new Error(`Received a message compressed with codec "${envelope.__mqtCodec}", which is not registered on this consumer. Register it via the \`codecs\` option.`);
|
|
607
|
+
}
|
|
608
|
+
try {
|
|
609
|
+
const compressed = Buffer.from(envelope.__mqtData, 'base64');
|
|
610
|
+
resolveMessageResult.result.body = JSON.parse((await handler.decompress(compressed)).toString('utf8'));
|
|
611
|
+
}
|
|
612
|
+
catch (err) {
|
|
613
|
+
this.handleError(err);
|
|
614
|
+
return ABORT_EARLY_EITHER;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
548
617
|
return resolveMessageResult;
|
|
549
618
|
}
|
|
550
619
|
tryToExtractId(message) {
|
|
@@ -555,8 +624,13 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
555
624
|
}
|
|
556
625
|
const resolvedMessage = resolveMessageResult.result;
|
|
557
626
|
// Empty content for whatever reason
|
|
558
|
-
if (!resolvedMessage
|
|
627
|
+
if (!resolvedMessage?.body)
|
|
559
628
|
return ABORT_EARLY_EITHER;
|
|
629
|
+
// Best-effort id extraction for logging/metrics only — this runs on the raw (still
|
|
630
|
+
// possibly compressed) body. A codec envelope from a built-in publisher carries the
|
|
631
|
+
// id as a preserved plaintext sibling, so it is found here; a bare envelope (e.g. from
|
|
632
|
+
// the `compressMessageBody` helper) has no id and falls through to abort, which only
|
|
633
|
+
// means the id is absent from a log line — message processing is unaffected.
|
|
560
634
|
// @ts-expect-error
|
|
561
635
|
if (this.messageIdField in resolvedMessage.body) {
|
|
562
636
|
return {
|
|
@@ -597,10 +671,10 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
597
671
|
};
|
|
598
672
|
}
|
|
599
673
|
async failProcessing(message) {
|
|
600
|
-
if (!this.
|
|
674
|
+
if (!this._deadLetterQueue)
|
|
601
675
|
return;
|
|
602
676
|
const params = {
|
|
603
|
-
QueueUrl: this.
|
|
677
|
+
QueueUrl: this._deadLetterQueue.url,
|
|
604
678
|
MessageBody: message.Body,
|
|
605
679
|
};
|
|
606
680
|
// For FIFO queues, preserve MessageGroupId when sending to DLQ
|
|
@@ -624,7 +698,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
624
698
|
}
|
|
625
699
|
else {
|
|
626
700
|
// if user is using locatorConfig, we should look into queue config
|
|
627
|
-
const queueAttributes = await getQueueAttributes(this.sqsClient, this.
|
|
701
|
+
const queueAttributes = await getQueueAttributes(this.sqsClient, this.queue.url, [
|
|
628
702
|
'VisibilityTimeout',
|
|
629
703
|
]);
|
|
630
704
|
visibilityTimeoutString = queueAttributes.result?.attributes?.VisibilityTimeout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,8 @@ export declare abstract class AbstractSqsPublisher<MessagePayloadType extends ob
|
|
|
54
54
|
processMessage(): Promise<Either<'retryLater', 'success'>>;
|
|
55
55
|
protected isDeduplicationEnabledForMessage(message: MessagePayloadType): boolean;
|
|
56
56
|
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
|
|
57
|
-
protected
|
|
57
|
+
protected calculateOutgoingMessageSize(message: MessagePayloadType): number;
|
|
58
|
+
protected sendMessage(payload: MessagePayloadType | OffloadedPayloadPointerPayload, options: SQSMessageOptions, preBuiltBody?: string): Promise<void>;
|
|
58
59
|
/**
|
|
59
60
|
* Resolves FIFO-specific options (MessageGroupId, MessageDeduplicationId)
|
|
60
61
|
*/
|
|
@@ -36,28 +36,45 @@ export class AbstractSqsPublisher extends AbstractSqsService {
|
|
|
36
36
|
try {
|
|
37
37
|
const messageProcessingStartTimestamp = Date.now();
|
|
38
38
|
const parsedMessage = messageSchemaResult.result.parse(message);
|
|
39
|
+
// Fast read-only pre-check: skip compression/offload for messages already known to
|
|
40
|
+
// be duplicates. This does NOT persist a dedup key, so a transient failure in the
|
|
41
|
+
// expensive work below leaves no key behind and the publish stays safely retriable.
|
|
42
|
+
if (await this.isMessageDuplicated(parsedMessage, DeduplicationRequesterEnum.Publisher)) {
|
|
43
|
+
this.handleMessageProcessed({
|
|
44
|
+
message: parsedMessage,
|
|
45
|
+
processingResult: { status: 'published', skippedAsDuplicate: true },
|
|
46
|
+
messageProcessingStartTimestamp,
|
|
47
|
+
queueName: this.queue.name,
|
|
48
|
+
});
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
39
51
|
message = this.updateInternalProperties(message);
|
|
40
52
|
// Resolve FIFO options from original message BEFORE offloading
|
|
41
53
|
// (offloaded payload won't have user fields needed for messageGroupIdField)
|
|
42
54
|
const resolvedOptions = this.resolveFifoOptions(message, options);
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
const { payload, preBuiltBody } = await this.prepareOutgoingPayload(message);
|
|
56
|
+
// Persist the dedup key only now — immediately before send — so the window in which
|
|
57
|
+
// a stored key plus a failed send could drop the message on retry stays as small as
|
|
58
|
+
// possible and no longer spans compression/offload (a transient failure there leaves
|
|
59
|
+
// no key behind). The pre-check above already skipped the expensive work for the
|
|
60
|
+
// common duplicate case; this check additionally closes the race where a concurrent
|
|
61
|
+
// publish stored the key in the meantime.
|
|
62
|
+
if ((await this.deduplicateMessage(parsedMessage, DeduplicationRequesterEnum.Publisher))
|
|
63
|
+
.isDuplicated) {
|
|
47
64
|
this.handleMessageProcessed({
|
|
48
65
|
message: parsedMessage,
|
|
49
66
|
processingResult: { status: 'published', skippedAsDuplicate: true },
|
|
50
67
|
messageProcessingStartTimestamp,
|
|
51
|
-
queueName: this.
|
|
68
|
+
queueName: this.queue.name,
|
|
52
69
|
});
|
|
53
70
|
return;
|
|
54
71
|
}
|
|
55
|
-
await this.sendMessage(
|
|
72
|
+
await this.sendMessage(payload, resolvedOptions, preBuiltBody);
|
|
56
73
|
this.handleMessageProcessed({
|
|
57
74
|
message: parsedMessage,
|
|
58
75
|
processingResult: { status: 'published' },
|
|
59
76
|
messageProcessingStartTimestamp,
|
|
60
|
-
queueName: this.
|
|
77
|
+
queueName: this.queue.name,
|
|
61
78
|
});
|
|
62
79
|
}
|
|
63
80
|
catch (error) {
|
|
@@ -68,8 +85,8 @@ export class AbstractSqsPublisher extends AbstractSqsService {
|
|
|
68
85
|
errorCode: 'SQS_PUBLISH_ERROR',
|
|
69
86
|
details: {
|
|
70
87
|
publisher: this.constructor.name,
|
|
71
|
-
queueArn: this.
|
|
72
|
-
queueName: this.
|
|
88
|
+
queueArn: this.queue.arn,
|
|
89
|
+
queueName: this.queue.name,
|
|
73
90
|
messageType: this.resolveMessageTypeFromMessage(message) ?? 'unknown',
|
|
74
91
|
},
|
|
75
92
|
cause: err,
|
|
@@ -99,12 +116,17 @@ export class AbstractSqsPublisher extends AbstractSqsService {
|
|
|
99
116
|
resolveSchema(message) {
|
|
100
117
|
return this.messageSchemaContainer.resolveSchema(message);
|
|
101
118
|
}
|
|
102
|
-
|
|
119
|
+
calculateOutgoingMessageSize(message) {
|
|
120
|
+
return calculateOutgoingMessageSize(message);
|
|
121
|
+
}
|
|
122
|
+
async sendMessage(payload, options, preBuiltBody) {
|
|
103
123
|
const attributes = resolveOutgoingMessageAttributes(payload);
|
|
104
|
-
//
|
|
124
|
+
// preBuiltBody is set when codec is active and the payload was not offloaded —
|
|
125
|
+
// it contains the already-compressed codec envelope, so we skip re-serialization.
|
|
126
|
+
const body = preBuiltBody ?? JSON.stringify(payload);
|
|
105
127
|
const command = new SendMessageCommand({
|
|
106
|
-
QueueUrl: this.
|
|
107
|
-
MessageBody:
|
|
128
|
+
QueueUrl: this.queue.url,
|
|
129
|
+
MessageBody: body,
|
|
108
130
|
MessageAttributes: attributes,
|
|
109
131
|
...options,
|
|
110
132
|
});
|
|
@@ -137,8 +159,8 @@ export class AbstractSqsPublisher extends AbstractSqsService {
|
|
|
137
159
|
message: 'MessageGroupId is required for FIFO queues. Provide it in publish options, configure messageGroupIdField, or set defaultMessageGroupId.',
|
|
138
160
|
errorCode: 'FIFO_MESSAGE_GROUP_ID_REQUIRED',
|
|
139
161
|
details: {
|
|
140
|
-
queueName: this.
|
|
141
|
-
queueUrl: this.
|
|
162
|
+
queueName: this.queue.name,
|
|
163
|
+
queueUrl: this.queue.url,
|
|
142
164
|
isFifoQueue: this.isFifoQueue,
|
|
143
165
|
},
|
|
144
166
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsPublisher.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsPublisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAGL,0BAA0B,GAO3B,MAAM,6BAA6B,CAAA;AAIpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AAOnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAmD5D,MAAM,CAAC,MAAM,mCAAmC,GAAG,oBAAoB,CAAA;AACvE,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,mCAAmC,MAAM,CAAA;AAE5F,MAAM,OAAgB,oBACpB,SAAQ,kBAAsC;IAG7B,sBAAsB,CAA4C;IAClE,sBAAsB,CAAS;IAC/B,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IACvC,WAAW,CAAgB;IAEnC,YAAY,YAA6B,EAAE,OAAgD;QACzF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAA;QAClF,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAA;QACpE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,mBAAmB,CAAC,KAAK,CAAA;QACjC,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAChC,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAA;YACtB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,+BAA+B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAClD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE/D,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAEhD,+DAA+D;YAC/D,4EAA4E;YAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAEjE,MAAM,
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisher.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsPublisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,14 +47,25 @@ export type SQSQueueConfig = {
|
|
|
47
47
|
fifoQueue?: boolean;
|
|
48
48
|
};
|
|
49
49
|
export type SQSOptions<CreationConfigType extends SQSCreationConfig = SQSCreationConfig, QueueLocatorType extends object = SQSQueueLocatorType> = QueueOptions<CreationConfigType, QueueLocatorType> & SQSQueueConfig;
|
|
50
|
+
export type QueueResource = {
|
|
51
|
+
name: string;
|
|
52
|
+
url: string;
|
|
53
|
+
arn: string;
|
|
54
|
+
};
|
|
50
55
|
export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends object = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends QueueOptions<CreationConfigType, QueueLocatorType> = QueueOptions<CreationConfigType, QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies, PrehandlerOutput = unknown, ExecutionContext = unknown> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType, PrehandlerOutput, ExecutionContext> {
|
|
51
56
|
protected readonly sqsClient: SQSClient;
|
|
52
|
-
|
|
53
|
-
protected queueUrl: string;
|
|
54
|
-
protected queueArn: string | undefined;
|
|
57
|
+
private _queue?;
|
|
55
58
|
protected readonly isFifoQueue: boolean;
|
|
56
59
|
constructor(dependencies: DependenciesType, options: SQSOptionsType);
|
|
57
60
|
init(): Promise<void>;
|
|
61
|
+
protected get queue(): Readonly<QueueResource>;
|
|
62
|
+
/**
|
|
63
|
+
* Lets subclasses populate the queue resource when their init flow does not
|
|
64
|
+
* go through {@link init}. Used by `AbstractSnsSqsConsumer`, whose
|
|
65
|
+
* `initSnsSqs` orchestrates topic + queue + subscription together and
|
|
66
|
+
* therefore cannot delegate queue creation to `super.init()`.
|
|
67
|
+
*/
|
|
68
|
+
protected setQueueResource(resource: QueueResource): void;
|
|
58
69
|
close(): Promise<void>;
|
|
59
70
|
}
|
|
60
71
|
export {};
|
|
@@ -8,11 +8,7 @@ export const SQS_RESOURCE_ANY = Symbol('any');
|
|
|
8
8
|
export const SQS_RESOURCE_CURRENT_QUEUE = Symbol('current_queue');
|
|
9
9
|
export class AbstractSqsService extends AbstractQueueService {
|
|
10
10
|
sqsClient;
|
|
11
|
-
|
|
12
|
-
queueName;
|
|
13
|
-
// @ts-expect-error
|
|
14
|
-
queueUrl;
|
|
15
|
-
queueArn;
|
|
11
|
+
_queue;
|
|
16
12
|
isFifoQueue;
|
|
17
13
|
constructor(dependencies, options) {
|
|
18
14
|
super(dependencies, options);
|
|
@@ -23,13 +19,32 @@ export class AbstractSqsService extends AbstractQueueService {
|
|
|
23
19
|
if (this.deletionConfig && this.creationConfig) {
|
|
24
20
|
await deleteSqs(this.sqsClient, this.deletionConfig, this.creationConfig);
|
|
25
21
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.
|
|
22
|
+
const result = await initSqs(this.sqsClient, this.locatorConfig, this.creationConfig, this.isFifoQueue, { logger: this.logger });
|
|
23
|
+
if (!result)
|
|
24
|
+
return;
|
|
25
|
+
this.setQueueResource({
|
|
26
|
+
name: result.queueName,
|
|
27
|
+
url: result.queueUrl,
|
|
28
|
+
arn: result.queueArn,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
get queue() {
|
|
32
|
+
if (!this._queue)
|
|
33
|
+
throw new Error('Queue is not started yet');
|
|
34
|
+
return this._queue;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Lets subclasses populate the queue resource when their init flow does not
|
|
38
|
+
* go through {@link init}. Used by `AbstractSnsSqsConsumer`, whose
|
|
39
|
+
* `initSnsSqs` orchestrates topic + queue + subscription together and
|
|
40
|
+
* therefore cannot delegate queue creation to `super.init()`.
|
|
41
|
+
*/
|
|
42
|
+
setQueueResource(resource) {
|
|
43
|
+
this._queue = resource;
|
|
30
44
|
this.isInitted = true;
|
|
31
45
|
}
|
|
32
46
|
close() {
|
|
47
|
+
this._queue = undefined;
|
|
33
48
|
this.isInitted = false;
|
|
34
49
|
return Promise.resolve();
|
|
35
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAE3D,kGAAkG;AAClG,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,+DAA+D;AACjH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,4DAA4D;AAClH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,4BAA4B,CAAA,CAAC,4CAA4C;AACtI,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAE3D,kGAAkG;AAClG,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,+DAA+D;AACjH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,4DAA4D;AAClH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,4BAA4B,CAAA,CAAC,4CAA4C;AACtI,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AA+DjE,MAAM,OAAgB,kBAWpB,SAAQ,oBAST;IACoB,SAAS,CAAW;IAE/B,MAAM,CAAgB;IACX,WAAW,CAAS;IAEvC,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,WAAW,GAAI,OAA0B,CAAC,SAAS,IAAI,KAAK,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,WAAW,EAChB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAA;QACD,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,IAAI,CAAC,gBAAgB,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,GAAG,EAAE,MAAM,CAAC,QAAQ;YACpB,GAAG,EAAE,MAAM,CAAC,QAAQ;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,IAAc,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACO,gBAAgB,CAAC,QAAuB;QAChD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAEe,KAAK;QACnB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@ import type { CommonLogger, ErrorReporter } from '@lokalise/node-core';
|
|
|
3
3
|
import type { DeletionConfig } from '@message-queue-toolkit/core';
|
|
4
4
|
import type { SQSCreationConfig, SQSQueueLocatorType } from '../sqs/AbstractSqsService.ts';
|
|
5
5
|
export type InitSqsResult = {
|
|
6
|
-
queueArn: string
|
|
6
|
+
queueArn: string;
|
|
7
7
|
queueUrl: string;
|
|
8
8
|
queueName: string;
|
|
9
9
|
};
|
|
@@ -21,4 +21,4 @@ export type InitSqsExtraParams = {
|
|
|
21
21
|
export declare function deleteSqs(sqsClient: SQSClient, deletionConfig: DeletionConfig, creationConfig: SQSCreationConfig): Promise<void>;
|
|
22
22
|
export declare function updateQueueAttributes(sqsClient: SQSClient, queueUrl: string, attributes?: Partial<Record<QueueAttributeName, string>>): Promise<void>;
|
|
23
23
|
export declare function updateQueueTags(sqsClient: SQSClient, queueUrl: string, tags?: Record<string, string> | undefined): Promise<void>;
|
|
24
|
-
export declare function initSqs(sqsClient: SQSClient, locatorConfig?: Partial<SQSQueueLocatorType>, creationConfig?: SQSCreationConfig, isFifoQueue?: boolean, extraParams?: InitSqsExtraParams): Promise<InitSqsResult>;
|
|
24
|
+
export declare function initSqs(sqsClient: SQSClient, locatorConfig?: Partial<SQSQueueLocatorType>, creationConfig?: SQSCreationConfig, isFifoQueue?: boolean, extraParams?: InitSqsExtraParams): Promise<InitSqsResult | undefined>;
|
package/dist/utils/sqsInitter.js
CHANGED
|
@@ -74,7 +74,7 @@ export async function initSqs(sqsClient, locatorConfig, creationConfig, isFifoQu
|
|
|
74
74
|
if (isFifoQueue !== undefined) {
|
|
75
75
|
validateFifoQueueName(queueName, isFifoQueue);
|
|
76
76
|
}
|
|
77
|
-
return { queueArn, queueUrl, queueName };
|
|
77
|
+
return queueArn ? { queueArn, queueUrl, queueName } : undefined;
|
|
78
78
|
}
|
|
79
79
|
// create new queue if does not exist
|
|
80
80
|
if (!creationConfig?.queue.QueueName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqsInitter.js","sourceRoot":"","sources":["../../lib/utils/sqsInitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGhF,OAAO,EACL,YAAY,EACZ,+BAA+B,EAC/B,eAAe,GAChB,MAAM,6BAA6B,CAAA;AAIpC,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,eAAe,CAAA;AAkBtB,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAoB,EACpB,cAA8B,EAC9B,cAAiC;IAEjC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QACnC,OAAM;IACR,CAAC;IAED,IAAI,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,wMAAwM,CACzM,CAAA;IACH,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,WAAW,CACf,SAAS,EACT,cAAc,CAAC,KAAK,CAAC,SAAS,EAC9B,cAAc,CAAC,mBAAmB,KAAK,KAAK,CAC7C,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAoB,EACpB,QAAgB,EAChB,aAA0D,EAAE;IAE5D,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC;QAC5C,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,UAAU;KACvB,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAoB,EACpB,QAAgB,EAChB,OAA2C,EAAE;IAE7C,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;QAClC,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAoB,EACpB,aAA4C,EAC5C,cAAkC,EAClC,WAAqB,EACrB,WAAgC;IAEhC,4BAA4B;IAC5B,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjF,MAAM,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAA;QAEnE,IAAI,QAA4B,CAAA;QAEhC,6EAA6E;QAC7E,IAAI,+BAA+B,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,MAAM,EAAE,sBAAsB;gBAC9B,YAAY,EAAE,aAAa,QAAQ,EAAE;gBACrC,MAAM,EAAE,WAAW,EAAE,MAAM;gBAC3B,aAAa,EAAE,WAAW,EAAE,aAAa;gBACzC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC3B,IAAI,GAAG,EAAE,CAAC;wBACR,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;oBAChD,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;oBAC/E,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACtC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;oBAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"sqsInitter.js","sourceRoot":"","sources":["../../lib/utils/sqsInitter.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/sqsUtils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CreateQueueCommandInput, QueueAttributeName, SendMessageCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
2
2
|
import type { Either } from '@lokalise/node-core';
|
|
3
3
|
import type { ExtraSQSCreationParams, SQSQueueLocatorType } from '../sqs/AbstractSqsService.ts';
|
|
4
|
-
type QueueAttributesResult = {
|
|
4
|
+
export type QueueAttributesResult = {
|
|
5
5
|
attributes?: Partial<Record<QueueAttributeName, string>>;
|
|
6
6
|
};
|
|
7
7
|
export declare function getQueueUrl(sqsClient: SQSClient, queueName: string): Promise<Either<'not_found', string>>;
|
|
@@ -42,4 +42,3 @@ export declare function validateFifoQueueConfiguration(queueName: string, attrib
|
|
|
42
42
|
* Detects if a queue is FIFO based on its attributes
|
|
43
43
|
*/
|
|
44
44
|
export declare function detectFifoQueue(sqsClient: SQSClient, queueUrl: string, queueName?: string): Promise<boolean>;
|
|
45
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sqs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "26.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SQS adapter for message-queue-toolkit",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@aws-sdk/client-sqs": "^3.1034.0",
|
|
28
|
-
"@message-queue-toolkit/core": ">=
|
|
28
|
+
"@message-queue-toolkit/core": ">=26.0.0",
|
|
29
29
|
"zod": ">=3.25.76 <5.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
@@ -34,10 +34,6 @@
|
|
|
34
34
|
"@biomejs/biome": "^2.3.8",
|
|
35
35
|
"@lokalise/biome-config": "^3.1.0",
|
|
36
36
|
"@lokalise/tsconfig": "^3.0.0",
|
|
37
|
-
"@message-queue-toolkit/core": "*",
|
|
38
|
-
"@message-queue-toolkit/redis-message-deduplication-store": "*",
|
|
39
|
-
"@message-queue-toolkit/s3-payload-store": "*",
|
|
40
|
-
"@message-queue-toolkit/schemas": "*",
|
|
41
37
|
"@types/node": "^25.0.2",
|
|
42
38
|
"@vitest/coverage-v8": "^4.0.15",
|
|
43
39
|
"awilix": "^13.0.3",
|
|
@@ -47,7 +43,11 @@
|
|
|
47
43
|
"rimraf": "^6.0.1",
|
|
48
44
|
"typescript": "^5.9.3",
|
|
49
45
|
"vitest": "^4.0.15",
|
|
50
|
-
"zod": "^4.1.13"
|
|
46
|
+
"zod": "^4.1.13",
|
|
47
|
+
"@message-queue-toolkit/core": "26.0.0",
|
|
48
|
+
"@message-queue-toolkit/redis-message-deduplication-store": "2.2.0",
|
|
49
|
+
"@message-queue-toolkit/s3-payload-store": "3.1.0",
|
|
50
|
+
"@message-queue-toolkit/schemas": "7.1.0"
|
|
51
51
|
},
|
|
52
52
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
53
53
|
"repository": {
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "pnpm run clean && tsc --project tsconfig.build.json",
|
|
73
73
|
"clean": "rimraf dist",
|
|
74
|
+
"bench": "vitest run --config vitest.bench.config.ts --reporter=verbose",
|
|
74
75
|
"test": "vitest",
|
|
75
76
|
"test:coverage": "pnpm run test --coverage",
|
|
76
77
|
"lint": "biome check && tsc",
|