@message-queue-toolkit/sns 24.0.0 → 24.3.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 +166 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sns/AbstractSnsPublisher.js +3 -4
- package/dist/sns/AbstractSnsPublisher.js.map +1 -1
- package/dist/sns/AbstractSnsService.d.ts +2 -2
- package/dist/sns/AbstractSnsService.js +1 -1
- package/dist/sns/AbstractSnsService.js.map +1 -1
- package/dist/sns/fakes/FakeConsumer.js +1 -1
- package/dist/sns/fakes/FakeConsumer.js.map +1 -1
- package/dist/utils/snsAttributeUtils.d.ts +1 -1
- package/dist/utils/snsAttributeUtils.js +2 -2
- package/dist/utils/snsAttributeUtils.js.map +1 -1
- package/dist/utils/snsInitter.d.ts +29 -3
- package/dist/utils/snsInitter.js +249 -29
- package/dist/utils/snsInitter.js.map +1 -1
- package/dist/utils/snsUtils.js +4 -2
- package/dist/utils/snsUtils.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -94,7 +94,7 @@ Publisher → SNS Topic → [Subscriptions] → SQS Queues → Consumers
|
|
|
94
94
|
### Message Schemas
|
|
95
95
|
|
|
96
96
|
Messages use the same schema requirements as SQS. Each message must have:
|
|
97
|
-
- A unique message type field (discriminator for routing) - configurable via `
|
|
97
|
+
- A unique message type field (discriminator for routing) - configurable via `messageTypeResolver` (required)
|
|
98
98
|
- A message ID field (for tracking and deduplication) - configurable via `messageIdField` (default: `'id'`)
|
|
99
99
|
- A timestamp field (added automatically if missing) - configurable via `messageTimestampField` (default: `'timestamp'`)
|
|
100
100
|
|
|
@@ -143,7 +143,7 @@ class UserEventsPublisher extends AbstractSnsPublisher<SupportedMessages> {
|
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
messageSchemas: [UserCreatedSchema, UserUpdatedSchema],
|
|
146
|
-
|
|
146
|
+
messageTypeResolver: { messageTypePath: 'messageType' },
|
|
147
147
|
creationConfig: {
|
|
148
148
|
topic: {
|
|
149
149
|
Name: 'user-events-topic',
|
|
@@ -160,8 +160,8 @@ class UserEventsPublisher extends AbstractSnsPublisher<SupportedMessages> {
|
|
|
160
160
|
// Use the publisher
|
|
161
161
|
const snsClient = new SNSClient({ region: 'us-east-1' })
|
|
162
162
|
const stsClient = new STSClient({ region: 'us-east-1' })
|
|
163
|
-
const publisher = new UserEventsPublisher(snsClient, stsClient)
|
|
164
163
|
|
|
164
|
+
const publisher = new UserEventsPublisher(snsClient, stsClient)
|
|
165
165
|
await publisher.init()
|
|
166
166
|
|
|
167
167
|
// Publish to the topic - all subscribers will receive this message
|
|
@@ -214,7 +214,7 @@ class UserEventsConsumer extends AbstractSnsSqsConsumer<
|
|
|
214
214
|
},
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
|
-
|
|
217
|
+
messageTypeResolver: { messageTypePath: 'messageType' },
|
|
218
218
|
handlers: new MessageHandlerConfigBuilder<SupportedMessages, ExecutionContext>()
|
|
219
219
|
.addConfig(
|
|
220
220
|
UserCreatedSchema,
|
|
@@ -287,7 +287,7 @@ class UserEventsFifoPublisher extends AbstractSnsPublisher<SupportedMessages> {
|
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
messageSchemas: [UserCreatedSchema, UserUpdatedSchema],
|
|
290
|
-
|
|
290
|
+
messageTypeResolver: { messageTypePath: 'messageType' },
|
|
291
291
|
fifoTopic: true, // Enable FIFO mode
|
|
292
292
|
|
|
293
293
|
// Option 1: Use a field from the message as MessageGroupId
|
|
@@ -374,7 +374,7 @@ class UserEventsFifoConsumer extends AbstractSnsSqsConsumer<
|
|
|
374
374
|
},
|
|
375
375
|
{
|
|
376
376
|
fifoQueue: true, // Enable FIFO mode for SQS queue
|
|
377
|
-
|
|
377
|
+
messageTypeResolver: { messageTypePath: 'messageType' },
|
|
378
378
|
handlers: new MessageHandlerConfigBuilder<SupportedMessages, ExecutionContext>()
|
|
379
379
|
.addConfig(UserCreatedSchema, handleUserCreated)
|
|
380
380
|
.addConfig(UserUpdatedSchema, handleUserUpdated)
|
|
@@ -489,13 +489,171 @@ When using `locatorConfig`, you connect to an existing topic without creating it
|
|
|
489
489
|
}
|
|
490
490
|
```
|
|
491
491
|
|
|
492
|
+
### Startup Resource Polling
|
|
493
|
+
|
|
494
|
+
When your SNS topic or SQS queue may not exist at startup (e.g., created by another service or infrastructure-as-code pipeline), you can enable polling to wait for resources to become available instead of failing immediately:
|
|
495
|
+
|
|
496
|
+
```typescript
|
|
497
|
+
{
|
|
498
|
+
locatorConfig: {
|
|
499
|
+
topicName: 'my-topic',
|
|
500
|
+
queueUrl: 'https://sqs.us-east-1.amazonaws.com/123456789012/my-queue',
|
|
501
|
+
subscriptionArn: 'arn:aws:sns:us-east-1:123456789012:my-topic:uuid',
|
|
502
|
+
|
|
503
|
+
// Enable startup resource polling
|
|
504
|
+
startupResourcePolling: {
|
|
505
|
+
enabled: true,
|
|
506
|
+
pollingIntervalMs: 5000, // Check every 5 seconds (default)
|
|
507
|
+
timeoutMs: 60000, // Timeout after 60 seconds
|
|
508
|
+
// timeoutMs: 'NO_TIMEOUT', // Or poll indefinitely
|
|
509
|
+
|
|
510
|
+
// Optional: Non-blocking mode
|
|
511
|
+
nonBlocking: false, // Default: false (blocking)
|
|
512
|
+
},
|
|
513
|
+
},
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
#### Blocking Mode (Default)
|
|
518
|
+
|
|
519
|
+
In blocking mode, `init()` or `start()` will wait until both the topic and queue are available:
|
|
520
|
+
|
|
521
|
+
```typescript
|
|
522
|
+
const consumer = new MyConsumer(deps, {
|
|
523
|
+
locatorConfig: {
|
|
524
|
+
topicName: 'my-topic',
|
|
525
|
+
queueUrl: 'https://sqs...',
|
|
526
|
+
subscriptionArn: 'arn:aws:sns:...',
|
|
527
|
+
startupResourcePolling: {
|
|
528
|
+
enabled: true,
|
|
529
|
+
pollingIntervalMs: 5000,
|
|
530
|
+
timeoutMs: 60000,
|
|
531
|
+
},
|
|
532
|
+
},
|
|
533
|
+
})
|
|
534
|
+
|
|
535
|
+
// This will block until topic and queue are available (or timeout)
|
|
536
|
+
await consumer.start()
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
If the timeout is reached before resources are available, a `StartupResourcePollingTimeoutError` is thrown.
|
|
540
|
+
|
|
541
|
+
#### Non-Blocking Mode
|
|
542
|
+
|
|
543
|
+
In non-blocking mode, `init()` returns immediately even if resources aren't available. Background polling continues and you're notified via callbacks:
|
|
544
|
+
|
|
545
|
+
```typescript
|
|
546
|
+
const consumer = new MyConsumer(deps, {
|
|
547
|
+
locatorConfig: {
|
|
548
|
+
topicName: 'my-topic',
|
|
549
|
+
queueUrl: 'https://sqs...',
|
|
550
|
+
subscriptionArn: 'arn:aws:sns:...',
|
|
551
|
+
startupResourcePolling: {
|
|
552
|
+
enabled: true,
|
|
553
|
+
pollingIntervalMs: 5000,
|
|
554
|
+
timeoutMs: 60000,
|
|
555
|
+
nonBlocking: true, // Return immediately
|
|
556
|
+
},
|
|
557
|
+
},
|
|
558
|
+
})
|
|
559
|
+
|
|
560
|
+
// Returns immediately, even if resources don't exist yet
|
|
561
|
+
await consumer.start()
|
|
562
|
+
|
|
563
|
+
// Check if resources are ready
|
|
564
|
+
if (!consumer.resourcesReady) {
|
|
565
|
+
console.log('Resources not yet available, waiting in background...')
|
|
566
|
+
}
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
#### Callbacks for Non-Blocking Mode
|
|
570
|
+
|
|
571
|
+
When using non-blocking mode, you can provide callbacks to be notified when resources become available or when polling fails:
|
|
572
|
+
|
|
573
|
+
```typescript
|
|
574
|
+
// Using initSnsSqs directly for more control
|
|
575
|
+
import { initSnsSqs } from '@message-queue-toolkit/sns'
|
|
576
|
+
|
|
577
|
+
const result = await initSnsSqs(
|
|
578
|
+
sqsClient,
|
|
579
|
+
snsClient,
|
|
580
|
+
stsClient,
|
|
581
|
+
{
|
|
582
|
+
topicName: 'my-topic',
|
|
583
|
+
queueUrl: 'https://sqs...',
|
|
584
|
+
startupResourcePolling: {
|
|
585
|
+
enabled: true,
|
|
586
|
+
pollingIntervalMs: 5000,
|
|
587
|
+
timeoutMs: 60000,
|
|
588
|
+
nonBlocking: true,
|
|
589
|
+
},
|
|
590
|
+
},
|
|
591
|
+
creationConfig,
|
|
592
|
+
subscriptionConfig,
|
|
593
|
+
{
|
|
594
|
+
// Called when all resources become available
|
|
595
|
+
onResourcesReady: ({ topicArn, queueUrl }) => {
|
|
596
|
+
console.log('Resources are now available!')
|
|
597
|
+
console.log('Topic ARN:', topicArn)
|
|
598
|
+
console.log('Queue URL:', queueUrl)
|
|
599
|
+
},
|
|
600
|
+
|
|
601
|
+
// Called if background polling fails (e.g., timeout or unexpected error)
|
|
602
|
+
onResourcesError: (error, context) => {
|
|
603
|
+
if (context.isFinal) {
|
|
604
|
+
// Polling has stopped and will not retry
|
|
605
|
+
console.error('Failed to wait for resources:', error.message)
|
|
606
|
+
// Handle error - maybe alert, retry, or graceful degradation
|
|
607
|
+
} else {
|
|
608
|
+
// Transient error, polling will continue
|
|
609
|
+
console.warn('Transient error while polling:', error.message)
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
},
|
|
613
|
+
)
|
|
614
|
+
|
|
615
|
+
if (result.resourcesReady) {
|
|
616
|
+
console.log('Resources were immediately available')
|
|
617
|
+
} else {
|
|
618
|
+
console.log('Waiting for resources in background...')
|
|
619
|
+
}
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
#### Subscription Creation Mode
|
|
623
|
+
|
|
624
|
+
When you want to **create** a subscription (no existing `subscriptionArn`), startup resource polling will wait for the topic to exist before attempting to subscribe:
|
|
625
|
+
|
|
626
|
+
```typescript
|
|
627
|
+
const consumer = new MyConsumer(deps, {
|
|
628
|
+
locatorConfig: {
|
|
629
|
+
topicName: 'my-topic', // Topic created by another service
|
|
630
|
+
// No subscriptionArn - we'll create the subscription
|
|
631
|
+
startupResourcePolling: {
|
|
632
|
+
enabled: true,
|
|
633
|
+
pollingIntervalMs: 5000,
|
|
634
|
+
timeoutMs: 60000,
|
|
635
|
+
},
|
|
636
|
+
},
|
|
637
|
+
creationConfig: {
|
|
638
|
+
queue: { QueueName: 'my-consumer-queue' }, // Queue will be created
|
|
639
|
+
},
|
|
640
|
+
})
|
|
641
|
+
|
|
642
|
+
// This will:
|
|
643
|
+
// 1. Poll until the topic exists
|
|
644
|
+
// 2. Create the SQS queue
|
|
645
|
+
// 3. Subscribe the queue to the topic
|
|
646
|
+
// 4. Start consuming
|
|
647
|
+
await consumer.start()
|
|
648
|
+
```
|
|
649
|
+
|
|
492
650
|
### Publisher Options
|
|
493
651
|
|
|
494
652
|
```typescript
|
|
495
653
|
{
|
|
496
654
|
// Required - Message Schema Configuration
|
|
497
655
|
messageSchemas: [Schema1, Schema2], // Array of Zod schemas
|
|
498
|
-
|
|
656
|
+
messageTypeResolver: { messageTypePath: 'messageType' }, // Field containing message type discriminator
|
|
499
657
|
|
|
500
658
|
// Topic Configuration (one of these required)
|
|
501
659
|
creationConfig: { /* ... */ }, // Create topic if doesn't exist
|
|
@@ -541,7 +699,7 @@ SNS consumers use the same options as SQS consumers, plus SNS-specific subscript
|
|
|
541
699
|
|
|
542
700
|
// Required - Message Handling Configuration
|
|
543
701
|
handlers: MessageHandlerConfigBuilder.build(),
|
|
544
|
-
|
|
702
|
+
messageTypeResolver: { messageTypePath: 'messageType' },
|
|
545
703
|
|
|
546
704
|
// Topic & Queue Configuration
|
|
547
705
|
creationConfig: {
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { FakeConsumer } from './sns/fakes/FakeConsumer.ts';
|
|
|
10
10
|
export * from './sns/SnsPublisherManager.ts';
|
|
11
11
|
export type { CommonMessage } from './types/MessageTypes.ts';
|
|
12
12
|
export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from './utils/snsAttributeUtils.ts';
|
|
13
|
-
export { initSns, initSnsSqs } from './utils/snsInitter.ts';
|
|
13
|
+
export { type InitSnsExtraParams, type InitSnsSqsExtraParams, initSns, initSnsSqs, } from './utils/snsInitter.ts';
|
|
14
14
|
export { deserializeSNSMessage } from './utils/snsMessageDeserializer.ts';
|
|
15
15
|
export { readSnsMessage } from './utils/snsMessageReader.ts';
|
|
16
16
|
export { subscribeToTopic } from './utils/snsSubscriber.ts';
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export * from "./sns/CommonSnsPublisherFactory.js";
|
|
|
6
6
|
export { FakeConsumer } from "./sns/fakes/FakeConsumer.js";
|
|
7
7
|
export * from "./sns/SnsPublisherManager.js";
|
|
8
8
|
export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from "./utils/snsAttributeUtils.js";
|
|
9
|
-
export { initSns, initSnsSqs } from "./utils/snsInitter.js";
|
|
9
|
+
export { initSns, initSnsSqs, } from "./utils/snsInitter.js";
|
|
10
10
|
export { deserializeSNSMessage } from "./utils/snsMessageDeserializer.js";
|
|
11
11
|
export { readSnsMessage } from "./utils/snsMessageReader.js";
|
|
12
12
|
export { subscribeToTopic } from "./utils/snsSubscriber.js";
|
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;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAQpE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAQtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,cAAc,oCAAoC,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAQpE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAQtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,cAAc,oCAAoC,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,OAAO,EACP,UAAU,GACX,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EACL,WAAW,EACX,4BAA4B,EAC5B,kBAAkB,EAClB,WAAW,EACX,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -48,8 +48,8 @@ export class AbstractSnsPublisher extends AbstractSnsService {
|
|
|
48
48
|
const parsedMessage = messageSchemaResult.result.parse(message);
|
|
49
49
|
const topicName = this.locatorConfig?.topicName ?? this.creationConfig?.topic?.Name ?? 'unknown';
|
|
50
50
|
if (this.logMessages) {
|
|
51
|
-
|
|
52
|
-
const resolvedLogMessage = this.resolveMessageLog(message,
|
|
51
|
+
const messageType = this.resolveMessageTypeFromMessage(message) ?? 'unknown';
|
|
52
|
+
const resolvedLogMessage = this.resolveMessageLog(message, messageType);
|
|
53
53
|
this.logMessage(resolvedLogMessage);
|
|
54
54
|
}
|
|
55
55
|
const updatedMessage = this.updateInternalProperties(message);
|
|
@@ -85,8 +85,7 @@ export class AbstractSnsPublisher extends AbstractSnsService {
|
|
|
85
85
|
details: {
|
|
86
86
|
publisher: this.constructor.name,
|
|
87
87
|
topic: this.topicArn,
|
|
88
|
-
|
|
89
|
-
messageType: message[this.messageTypeField] ?? 'unknown',
|
|
88
|
+
messageType: this.resolveMessageTypeFromMessage(message) ?? 'unknown',
|
|
90
89
|
},
|
|
91
90
|
cause: err,
|
|
92
91
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnsPublisher.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsPublisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAGL,0BAA0B,GAO3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAO1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AA+C5D,MAAM,OAAgB,oBACpB,SAAQ,kBAA0D;IAGjD,sBAAsB,CAA4C;IAClE,sBAAsB,CAAS;IAC/B,WAAW,CAAS;IACpB,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IAEvC,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,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;QAC7C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC5D,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,yCAAyC;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAA;YACnF,IAAI,SAAS,EAAE,CAAC;gBACd,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,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;YAC/D,MAAM,SAAS,GACb,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;YAEhF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,
|
|
1
|
+
{"version":3,"file":"AbstractSnsPublisher.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsPublisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAGL,0BAA0B,GAO3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAO1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AA+C5D,MAAM,OAAgB,oBACpB,SAAQ,kBAA0D;IAGjD,sBAAsB,CAA4C;IAClE,sBAAsB,CAAS;IAC/B,WAAW,CAAS;IACpB,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IAEvC,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,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;QAC7C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC5D,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,yCAAyC;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAA;YACnF,IAAI,SAAS,EAAE,CAAC;gBACd,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,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;YAC/D,MAAM,SAAS,GACb,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;YAEhF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,IAAI,SAAS,CAAA;gBAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBACvE,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAE7D,+DAA+D;YAC/D,4EAA4E;YAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;YAExE,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAC3E,cAAc,EACd,GAAG,EAAE,CAAC,4BAA4B,CAAC,cAAc,CAAC,CACnD,CAAA;YAED,IACE,IAAI,CAAC,gCAAgC,CAAC,aAAa,CAAC;gBACpD,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;qBACjF,YAAY,EACf,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,OAAO,EAAE,aAAa;oBACtB,gBAAgB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE;oBACnE,+BAA+B;oBAC/B,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAA;YAErE,IAAI,CAAC,sBAAsB,CAAC;gBAC1B,OAAO,EAAE,aAAa;gBACtB,gBAAgB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;gBACzC,+BAA+B;gBAC/B,SAAS,EAAE,SAAS;aACrB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAA;YAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACrB,MAAM,IAAI,aAAa,CAAC;gBACtB,OAAO,EAAE,kCAAkC,GAAG,CAAC,OAAO,EAAE;gBACxD,SAAS,EAAE,mBAAmB;gBAC9B,OAAO,EAAE;oBACP,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;oBAChC,KAAK,EAAE,IAAI,CAAC,QAAQ;oBACpB,WAAW,EAAE,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,IAAI,SAAS;iBACtE;gBACD,KAAK,EAAE,GAAG;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEkB,cAAc;QAI/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,aAAa,CAAC,OAA2B;QAC1D,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,qBAAqB;IACF,mBAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,kBAAkB;QACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,iBAAiB;QAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEQ,cAAc;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,gCAAgC,CAAC,OAA2B;QAC7E,OAAO,IAAI,CAAC,sBAAsB,IAAI,KAAK,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAA;IACvF,CAAC;IAES,KAAK,CAAC,WAAW,CACzB,OAA4D,EAC5D,OAA0B;QAE1B,MAAM,UAAU,GAAG,gCAAgC,CAAwB,OAAO,CAAC,CAAA;QACnF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,iBAAiB,EAAE,UAAU;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,OAAO;SACX,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CACxB,OAA2B,EAC3B,OAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;QAEtC,yCAAyC;QACzC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAI,OAAmC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;gBACrF,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;oBACvC,eAAe,CAAC,cAAc,GAAG,cAAc,CAAA;gBACjD,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAClE,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAA;YAC7D,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,IAAI,aAAa,CAAC;gBACtB,OAAO,EACL,yIAAyI;gBAC3I,SAAS,EAAE,gCAAgC;gBAC3C,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;CAEF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient, Tag } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { STSClient } from '@aws-sdk/client-sts';
|
|
3
|
-
import type { QueueDependencies, QueueOptions } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { BaseQueueLocatorType, QueueDependencies, QueueOptions } from '@message-queue-toolkit/core';
|
|
4
4
|
import { AbstractQueueService } from '@message-queue-toolkit/core';
|
|
5
5
|
import type { SNS_MESSAGE_BODY_TYPE } from '../types/MessageTypes.ts';
|
|
6
6
|
export declare const SNS_MESSAGE_MAX_SIZE: number;
|
|
@@ -31,7 +31,7 @@ export type SNSCreationConfig = {
|
|
|
31
31
|
topic?: SNSTopicAWSConfig;
|
|
32
32
|
updateAttributesIfExists?: boolean;
|
|
33
33
|
} & ExtraSNSCreationParams;
|
|
34
|
-
export type SNSTopicLocatorType = {
|
|
34
|
+
export type SNSTopicLocatorType = BaseQueueLocatorType & {
|
|
35
35
|
topicArn?: string;
|
|
36
36
|
topicName?: string;
|
|
37
37
|
};
|
|
@@ -16,7 +16,7 @@ export class AbstractSnsService extends AbstractQueueService {
|
|
|
16
16
|
if (this.deletionConfig && this.creationConfig) {
|
|
17
17
|
await deleteSns(this.snsClient, this.stsClient, this.deletionConfig, this.creationConfig);
|
|
18
18
|
}
|
|
19
|
-
const initResult = await initSns(this.snsClient, this.stsClient, this.locatorConfig, this.creationConfig);
|
|
19
|
+
const initResult = await initSns(this.snsClient, this.stsClient, this.locatorConfig, this.creationConfig, { logger: this.logger });
|
|
20
20
|
this.topicArn = initResult.topicArn;
|
|
21
21
|
this.isInitted = true;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnsService.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSnsService.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsService.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAE3D,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAA,CAAC,QAAQ;AAyCvD,MAAM,OAAgB,kBAKpB,SAAQ,oBAOT;IACoB,SAAS,CAAW;IACpB,SAAS,CAAW;IACvC,mBAAmB;IACT,QAAQ,CAAQ;IAE1B,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,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,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3F,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAEe,KAAK;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeConsumer.js","sourceRoot":"","sources":["../../../lib/sns/fakes/FakeConsumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAIzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,OAAO,YAAiD,SAAQ,sBAGrE;IACC,YACE,YAAwC,EACxC,KAAa,EACb,KAAa,EACb,aAA2B;QAE3B,KAAK,CACH,YAAY,EACZ;YACE,QAAQ,EAAE,IAAI,2BAA2B,EAAc;iBACpD,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,CAC7B,OAAO,CAAC,OAAO,CAAC;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC,CACH;iBACA,KAAK,EAAE;YACV,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;iBACZ;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK;iBACjB;aACF;YACD,kBAAkB,EAAE;gBAClB,wBAAwB,EAAE,IAAI;aAC/B;YACD,
|
|
1
|
+
{"version":3,"file":"FakeConsumer.js","sourceRoot":"","sources":["../../../lib/sns/fakes/FakeConsumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAIzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,OAAO,YAAiD,SAAQ,sBAGrE;IACC,YACE,YAAwC,EACxC,KAAa,EACb,KAAa,EACb,aAA2B;QAE3B,KAAK,CACH,YAAY,EACZ;YACE,QAAQ,EAAE,IAAI,2BAA2B,EAAc;iBACpD,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,CAC7B,OAAO,CAAC,OAAO,CAAC;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC,CACH;iBACA,KAAK,EAAE;YACV,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;iBACZ;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK;iBACjB;aACF;YACD,kBAAkB,EAAE;gBAClB,wBAAwB,EAAE,IAAI;aAC/B;YACD,mBAAmB,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE;YAChD,UAAU,EAAE,IAAI;SACjB,EACD,YAAY,CACb,CAAA;IACH,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@ export type TopicSubscriptionPolicyParams = {
|
|
|
5
5
|
allowedSourceOwner?: string;
|
|
6
6
|
};
|
|
7
7
|
export declare function generateTopicSubscriptionPolicy(params: TopicSubscriptionPolicyParams): string;
|
|
8
|
-
export declare function generateFilterAttributes(messageSchemas: ZodSchema<any>[],
|
|
8
|
+
export declare function generateFilterAttributes(messageSchemas: ZodSchema<any>[], messageTypePath: string): {
|
|
9
9
|
FilterPolicy: string;
|
|
10
10
|
FilterPolicyScope: string;
|
|
11
11
|
};
|
|
@@ -33,10 +33,10 @@ export function generateTopicSubscriptionPolicy(params) {
|
|
|
33
33
|
}
|
|
34
34
|
export function generateFilterAttributes(
|
|
35
35
|
// biome-ignore lint/suspicious/noExplicitAny: Expected
|
|
36
|
-
messageSchemas,
|
|
36
|
+
messageSchemas, messageTypePath) {
|
|
37
37
|
const messageTypes = messageSchemas.map((schema) => {
|
|
38
38
|
// @ts-expect-error
|
|
39
|
-
return schema.shape[
|
|
39
|
+
return schema.shape[messageTypePath].value;
|
|
40
40
|
});
|
|
41
41
|
return {
|
|
42
42
|
FilterPolicy: JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsAttributeUtils.js","sourceRoot":"","sources":["../../lib/utils/snsAttributeUtils.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,MAAM,cAAc,GAAG,YAAY,CAAA;AAQnC,MAAM,UAAU,+BAA+B,CAAC,MAAqC;IACnF,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,cAAc;QACvB,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,sBAAsB;gBAC3B,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE;oBACT,GAAG,EAAE,GAAG;iBACT;gBACD,MAAM,EAAE,CAAC,eAAe,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,EAAE;aACd;SACF;KACF,CAAA;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,mBAAmB;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG;YACjD,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;SAC7C,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,wBAAwB,EAAE,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,mBAAmB;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG;YAC/C,cAAc,EAAE,MAAM,CAAC,wBAAwB;SAChD,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,wBAAwB;AACtC,uDAAuD;AACvD,cAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"snsAttributeUtils.js","sourceRoot":"","sources":["../../lib/utils/snsAttributeUtils.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,MAAM,cAAc,GAAG,YAAY,CAAA;AAQnC,MAAM,UAAU,+BAA+B,CAAC,MAAqC;IACnF,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,cAAc;QACvB,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,sBAAsB;gBAC3B,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE;oBACT,GAAG,EAAE,GAAG;iBACT;gBACD,MAAM,EAAE,CAAC,eAAe,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,EAAE;aACd;SACF;KACF,CAAA;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,mBAAmB;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG;YACjD,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;SAC7C,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,wBAAwB,EAAE,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,mBAAmB;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG;YAC/C,cAAc,EAAE,MAAM,CAAC,wBAAwB;SAChD,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,wBAAwB;AACtC,uDAAuD;AACvD,cAAgC,EAChC,eAAuB;IAEvB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,mBAAmB;QACnB,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAe,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,iBAAiB,EAAE,aAAa;KACjC,CAAA;AACH,CAAC"}
|
|
@@ -1,19 +1,45 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
3
3
|
import type { STSClient } from '@aws-sdk/client-sts';
|
|
4
|
-
import type { DeletionConfig, ExtraParams } from '@message-queue-toolkit/core';
|
|
4
|
+
import type { DeletionConfig, ExtraParams, PollingErrorCallback } from '@message-queue-toolkit/core';
|
|
5
5
|
import { type SQSCreationConfig } from '@message-queue-toolkit/sqs';
|
|
6
6
|
import type { SNSCreationConfig, SNSTopicLocatorType } from '../sns/AbstractSnsService.ts';
|
|
7
7
|
import type { SNSSQSQueueLocatorType } from '../sns/AbstractSnsSqsConsumer.ts';
|
|
8
8
|
import type { SNSSubscriptionOptions } from './snsSubscriber.ts';
|
|
9
|
-
export
|
|
9
|
+
export type InitSnsSqsExtraParams = ExtraParams & {
|
|
10
|
+
/**
|
|
11
|
+
* Callback invoked when resources become available in non-blocking mode.
|
|
12
|
+
* Only called when startupResourcePolling.nonBlocking is true and resources were not immediately available.
|
|
13
|
+
*/
|
|
14
|
+
onResourcesReady?: (result: {
|
|
15
|
+
topicArn: string;
|
|
16
|
+
queueUrl: string;
|
|
17
|
+
}) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Callback invoked when background resource polling or subscription creation fails in non-blocking mode.
|
|
20
|
+
* This can happen due to polling timeout or subscription creation failure.
|
|
21
|
+
*/
|
|
22
|
+
onResourcesError?: PollingErrorCallback;
|
|
23
|
+
};
|
|
24
|
+
export type InitSnsExtraParams = ExtraParams & {
|
|
25
|
+
/**
|
|
26
|
+
* Callback invoked when topic becomes available in non-blocking mode.
|
|
27
|
+
* Only called when startupResourcePolling.nonBlocking is true and topic was not immediately available.
|
|
28
|
+
*/
|
|
29
|
+
onTopicReady?: (result: {
|
|
30
|
+
topicArn: string;
|
|
31
|
+
}) => void;
|
|
32
|
+
};
|
|
33
|
+
export declare function initSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, stsClient: STSClient, locatorConfig?: SNSSQSQueueLocatorType, creationConfig?: SNSCreationConfig & SQSCreationConfig, subscriptionConfig?: SNSSubscriptionOptions, extraParams?: InitSnsSqsExtraParams): Promise<{
|
|
10
34
|
subscriptionArn: string;
|
|
11
35
|
topicArn: string;
|
|
12
36
|
queueUrl: string;
|
|
13
37
|
queueName: string;
|
|
38
|
+
resourcesReady: boolean;
|
|
14
39
|
}>;
|
|
15
40
|
export declare function deleteSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, stsClient: STSClient, deletionConfig: DeletionConfig, queueConfiguration: CreateQueueCommandInput, topicConfiguration: CreateTopicCommandInput | undefined, subscriptionConfiguration: SNSSubscriptionOptions, extraParams?: ExtraParams, topicLocator?: SNSTopicLocatorType): Promise<void>;
|
|
16
41
|
export declare function deleteSns(snsClient: SNSClient, stsClient: STSClient, deletionConfig: DeletionConfig, creationConfig: SNSCreationConfig): Promise<void>;
|
|
17
|
-
export declare function initSns(snsClient: SNSClient, stsClient: STSClient, locatorConfig?: SNSTopicLocatorType, creationConfig?: SNSCreationConfig): Promise<{
|
|
42
|
+
export declare function initSns(snsClient: SNSClient, stsClient: STSClient, locatorConfig?: SNSTopicLocatorType, creationConfig?: SNSCreationConfig, extraParams?: InitSnsExtraParams): Promise<{
|
|
18
43
|
topicArn: string;
|
|
44
|
+
resourcesReady: boolean;
|
|
19
45
|
}>;
|
package/dist/utils/snsInitter.js
CHANGED
|
@@ -1,9 +1,106 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isError } from '@lokalise/node-core';
|
|
2
|
+
import { isProduction, isStartupResourcePollingEnabled, waitForResource, } from '@message-queue-toolkit/core';
|
|
2
3
|
import { deleteQueue, getQueueAttributes, resolveQueueUrlFromLocatorConfig, } from '@message-queue-toolkit/sqs';
|
|
3
4
|
import { isCreateTopicCommand } from "../types/TopicTypes.js";
|
|
4
5
|
import { subscribeToTopic } from "./snsSubscriber.js";
|
|
5
6
|
import { assertTopic, deleteSubscription, deleteTopic, getTopicAttributes } from "./snsUtils.js";
|
|
6
7
|
import { buildTopicArn } from "./stsUtils.js";
|
|
8
|
+
// Helper function to poll for SNS topic availability
|
|
9
|
+
async function pollForTopic(snsClient, topicArn, startupResourcePolling, extraParams, onResourceAvailable, onError) {
|
|
10
|
+
const topicResult = await waitForResource({
|
|
11
|
+
config: startupResourcePolling,
|
|
12
|
+
resourceName: `SNS topic ${topicArn}`,
|
|
13
|
+
logger: extraParams?.logger,
|
|
14
|
+
errorReporter: extraParams?.errorReporter,
|
|
15
|
+
onResourceAvailable,
|
|
16
|
+
onError,
|
|
17
|
+
checkFn: async () => {
|
|
18
|
+
const result = await getTopicAttributes(snsClient, topicArn);
|
|
19
|
+
if (result.error === 'not_found') {
|
|
20
|
+
return { isAvailable: false };
|
|
21
|
+
}
|
|
22
|
+
return { isAvailable: true, result: result.result };
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
return { topicResult, topicArn };
|
|
26
|
+
}
|
|
27
|
+
// Helper function to create subscription
|
|
28
|
+
async function createSubscription(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, extraParams) {
|
|
29
|
+
const { subscriptionArn, topicArn, queueUrl } = await subscribeToTopic(sqsClient, snsClient, stsClient, creationConfig.queue, topicResolutionOptions, subscriptionConfig, {
|
|
30
|
+
updateAttributesIfExists: creationConfig.updateAttributesIfExists,
|
|
31
|
+
queueUrlsWithSubscribePermissionsPrefix: creationConfig.queueUrlsWithSubscribePermissionsPrefix,
|
|
32
|
+
allowedSourceOwner: creationConfig.allowedSourceOwner,
|
|
33
|
+
topicArnsWithPublishPermissionsPrefix: creationConfig.topicArnsWithPublishPermissionsPrefix,
|
|
34
|
+
logger: extraParams?.logger,
|
|
35
|
+
forceTagUpdate: creationConfig.forceTagUpdate,
|
|
36
|
+
});
|
|
37
|
+
if (!subscriptionArn) {
|
|
38
|
+
throw new Error('Failed to subscribe');
|
|
39
|
+
}
|
|
40
|
+
return { subscriptionArn, topicArn, queueUrl };
|
|
41
|
+
}
|
|
42
|
+
// Helper to handle subscription creation with optional topic polling (blocking and non-blocking)
|
|
43
|
+
async function createSubscriptionWithPolling(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, topicArn, startupResourcePolling, extraParams) {
|
|
44
|
+
const nonBlocking = startupResourcePolling.nonBlocking === true;
|
|
45
|
+
const queueName = creationConfig.queue.QueueName;
|
|
46
|
+
const onTopicReady = async () => {
|
|
47
|
+
try {
|
|
48
|
+
const result = await createSubscription(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, extraParams);
|
|
49
|
+
extraParams?.onResourcesReady?.({
|
|
50
|
+
topicArn: result.topicArn,
|
|
51
|
+
queueUrl: result.queueUrl,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const error = isError(err) ? err : new Error(String(err));
|
|
56
|
+
extraParams?.logger?.error({
|
|
57
|
+
message: 'Background subscription creation failed',
|
|
58
|
+
topicArn,
|
|
59
|
+
error,
|
|
60
|
+
});
|
|
61
|
+
// Subscription creation failure is final - we don't retry
|
|
62
|
+
extraParams?.onResourcesError?.(error, { isFinal: true });
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const { topicResult } = await pollForTopic(snsClient, topicArn, startupResourcePolling, extraParams, nonBlocking ? onTopicReady : undefined, nonBlocking ? extraParams?.onResourcesError : undefined);
|
|
66
|
+
// Non-blocking: return early if topic wasn't immediately available
|
|
67
|
+
if (nonBlocking && topicResult === undefined) {
|
|
68
|
+
return {
|
|
69
|
+
subscriptionArn: '',
|
|
70
|
+
topicArn,
|
|
71
|
+
queueName,
|
|
72
|
+
queueUrl: '',
|
|
73
|
+
resourcesReady: false,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Blocking: topic is now available, create subscription
|
|
77
|
+
const result = await createSubscription(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, extraParams);
|
|
78
|
+
return {
|
|
79
|
+
subscriptionArn: result.subscriptionArn,
|
|
80
|
+
topicArn: result.topicArn,
|
|
81
|
+
queueName,
|
|
82
|
+
queueUrl: result.queueUrl,
|
|
83
|
+
resourcesReady: true,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// Helper function to poll for SQS queue availability
|
|
87
|
+
async function pollForQueue(sqsClient, queueUrl, startupResourcePolling, extraParams, onResourceAvailable, onError) {
|
|
88
|
+
return await waitForResource({
|
|
89
|
+
config: startupResourcePolling,
|
|
90
|
+
resourceName: `SQS queue ${queueUrl}`,
|
|
91
|
+
logger: extraParams?.logger,
|
|
92
|
+
errorReporter: extraParams?.errorReporter,
|
|
93
|
+
onResourceAvailable,
|
|
94
|
+
onError,
|
|
95
|
+
checkFn: async () => {
|
|
96
|
+
const result = await getQueueAttributes(sqsClient, queueUrl);
|
|
97
|
+
if (result.error === 'not_found') {
|
|
98
|
+
return { isAvailable: false };
|
|
99
|
+
}
|
|
100
|
+
return { isAvailable: true, result: result.result };
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
7
104
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: fixme
|
|
8
105
|
export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig, creationConfig, subscriptionConfig, extraParams) {
|
|
9
106
|
if (!locatorConfig?.subscriptionArn) {
|
|
@@ -23,38 +120,127 @@ export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig,
|
|
|
23
120
|
...locatorConfig,
|
|
24
121
|
...creationConfig.topic,
|
|
25
122
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (!subscriptionArn) {
|
|
35
|
-
throw new Error('Failed to subscribe');
|
|
123
|
+
// If startup resource polling is enabled and we're not creating the topic (just locating it),
|
|
124
|
+
// we should poll for the topic to exist before attempting to subscribe
|
|
125
|
+
const startupResourcePolling = locatorConfig?.startupResourcePolling;
|
|
126
|
+
if (isStartupResourcePollingEnabled(startupResourcePolling) &&
|
|
127
|
+
!isCreateTopicCommand(topicResolutionOptions)) {
|
|
128
|
+
const topicArnToWaitFor = topicResolutionOptions.topicArn ??
|
|
129
|
+
(await buildTopicArn(stsClient, topicResolutionOptions.topicName ?? ''));
|
|
130
|
+
return await createSubscriptionWithPolling(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, topicArnToWaitFor, startupResourcePolling, extraParams);
|
|
36
131
|
}
|
|
132
|
+
// No polling needed - create subscription immediately
|
|
133
|
+
const { subscriptionArn, topicArn, queueUrl } = await createSubscription(sqsClient, snsClient, stsClient, creationConfig, topicResolutionOptions, subscriptionConfig, extraParams);
|
|
37
134
|
return {
|
|
38
135
|
subscriptionArn,
|
|
39
136
|
topicArn,
|
|
40
137
|
queueName: creationConfig.queue.QueueName,
|
|
41
138
|
queueUrl,
|
|
139
|
+
resourcesReady: true,
|
|
42
140
|
};
|
|
43
141
|
}
|
|
44
142
|
const queueUrl = await resolveQueueUrlFromLocatorConfig(sqsClient, locatorConfig);
|
|
45
|
-
const checkPromises = [];
|
|
46
143
|
// Check for existing resources, using the locators
|
|
47
144
|
const subscriptionTopicArn = locatorConfig.topicArn ?? (await buildTopicArn(stsClient, locatorConfig.topicName ?? ''));
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
145
|
+
const startupResourcePolling = locatorConfig.startupResourcePolling;
|
|
146
|
+
// If startup resource polling is enabled, poll for resources to become available
|
|
147
|
+
if (isStartupResourcePollingEnabled(startupResourcePolling)) {
|
|
148
|
+
const nonBlocking = startupResourcePolling.nonBlocking === true;
|
|
149
|
+
// Track availability for non-blocking mode coordination
|
|
150
|
+
let topicAvailable = false;
|
|
151
|
+
let queueAvailable = false;
|
|
152
|
+
const notifyIfBothReady = () => {
|
|
153
|
+
if (nonBlocking && topicAvailable && queueAvailable) {
|
|
154
|
+
extraParams?.onResourcesReady?.({ topicArn: subscriptionTopicArn, queueUrl });
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
// Wait for topic to become available
|
|
158
|
+
const { topicResult } = await pollForTopic(snsClient, subscriptionTopicArn, startupResourcePolling, extraParams, () => {
|
|
159
|
+
topicAvailable = true;
|
|
160
|
+
notifyIfBothReady();
|
|
161
|
+
}, (error, context) => {
|
|
162
|
+
extraParams?.onResourcesError?.(error, context);
|
|
163
|
+
});
|
|
164
|
+
// If topic was immediately available, mark it
|
|
165
|
+
if (topicResult !== undefined) {
|
|
166
|
+
topicAvailable = true;
|
|
167
|
+
}
|
|
168
|
+
// If non-blocking and topic wasn't immediately available, return early
|
|
169
|
+
// Background polling will continue and call notifyIfBothReady when topic is available
|
|
170
|
+
if (nonBlocking && topicResult === undefined) {
|
|
171
|
+
const splitUrl = queueUrl.split('/');
|
|
172
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
173
|
+
const queueName = splitUrl[splitUrl.length - 1];
|
|
174
|
+
// Also start polling for queue in background so we can notify when both are ready
|
|
175
|
+
pollForQueue(sqsClient, queueUrl, startupResourcePolling, extraParams, () => {
|
|
176
|
+
queueAvailable = true;
|
|
177
|
+
notifyIfBothReady();
|
|
178
|
+
}, (error, context) => {
|
|
179
|
+
extraParams?.onResourcesError?.(error, context);
|
|
180
|
+
})
|
|
181
|
+
.then((result) => {
|
|
182
|
+
// If queue was immediately available, pollForQueue returns the result
|
|
183
|
+
// but doesn't call onResourceAvailable, so we handle it here
|
|
184
|
+
if (result !== undefined) {
|
|
185
|
+
queueAvailable = true;
|
|
186
|
+
notifyIfBothReady();
|
|
187
|
+
}
|
|
188
|
+
})
|
|
189
|
+
.catch((err) => {
|
|
190
|
+
// Handle unexpected errors during background polling
|
|
191
|
+
const error = isError(err) ? err : new Error(String(err));
|
|
192
|
+
extraParams?.logger?.error({
|
|
193
|
+
message: 'Background queue polling failed unexpectedly',
|
|
194
|
+
queueUrl,
|
|
195
|
+
error,
|
|
196
|
+
});
|
|
197
|
+
extraParams?.onResourcesError?.(error, { isFinal: true });
|
|
198
|
+
});
|
|
199
|
+
return {
|
|
200
|
+
subscriptionArn: locatorConfig.subscriptionArn,
|
|
201
|
+
topicArn: subscriptionTopicArn,
|
|
202
|
+
queueUrl,
|
|
203
|
+
queueName,
|
|
204
|
+
resourcesReady: false,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// Wait for queue to become available
|
|
208
|
+
const queueResult = await pollForQueue(sqsClient, queueUrl, startupResourcePolling, extraParams, () => {
|
|
209
|
+
queueAvailable = true;
|
|
210
|
+
notifyIfBothReady();
|
|
211
|
+
});
|
|
212
|
+
// If queue was immediately available, mark it
|
|
213
|
+
if (queueResult !== undefined) {
|
|
214
|
+
queueAvailable = true;
|
|
215
|
+
}
|
|
216
|
+
// If non-blocking and queue wasn't immediately available, return early
|
|
217
|
+
if (nonBlocking && queueResult === undefined) {
|
|
218
|
+
const splitUrl = queueUrl.split('/');
|
|
219
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
220
|
+
const queueName = splitUrl[splitUrl.length - 1];
|
|
221
|
+
return {
|
|
222
|
+
subscriptionArn: locatorConfig.subscriptionArn,
|
|
223
|
+
topicArn: subscriptionTopicArn,
|
|
224
|
+
queueUrl,
|
|
225
|
+
queueName,
|
|
226
|
+
resourcesReady: false,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
55
229
|
}
|
|
56
|
-
|
|
57
|
-
|
|
230
|
+
else {
|
|
231
|
+
// Original behavior: check resources once and fail immediately if not found
|
|
232
|
+
const checkPromises = [];
|
|
233
|
+
const topicPromise = getTopicAttributes(snsClient, subscriptionTopicArn);
|
|
234
|
+
checkPromises.push(topicPromise);
|
|
235
|
+
const queuePromise = getQueueAttributes(sqsClient, queueUrl);
|
|
236
|
+
checkPromises.push(queuePromise);
|
|
237
|
+
const [topicCheckResult, queueCheckResult] = await Promise.all(checkPromises);
|
|
238
|
+
if (queueCheckResult?.error === 'not_found') {
|
|
239
|
+
throw new Error(`Queue with queueUrl ${queueUrl} does not exist.`);
|
|
240
|
+
}
|
|
241
|
+
if (topicCheckResult?.error === 'not_found') {
|
|
242
|
+
throw new Error(`Topic with topicArn ${subscriptionTopicArn} does not exist.`);
|
|
243
|
+
}
|
|
58
244
|
}
|
|
59
245
|
let queueName;
|
|
60
246
|
if (queueUrl) {
|
|
@@ -71,6 +257,7 @@ export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig,
|
|
|
71
257
|
topicArn: subscriptionTopicArn,
|
|
72
258
|
queueUrl,
|
|
73
259
|
queueName,
|
|
260
|
+
resourcesReady: true,
|
|
74
261
|
};
|
|
75
262
|
}
|
|
76
263
|
export async function deleteSnsSqs(sqsClient, snsClient, stsClient, deletionConfig, queueConfiguration, topicConfiguration, subscriptionConfiguration, extraParams, topicLocator) {
|
|
@@ -112,17 +299,50 @@ export async function deleteSns(snsClient, stsClient, deletionConfig, creationCo
|
|
|
112
299
|
}
|
|
113
300
|
await deleteTopic(snsClient, stsClient, creationConfig.topic.Name);
|
|
114
301
|
}
|
|
115
|
-
|
|
116
|
-
if (locatorConfig) {
|
|
117
|
-
|
|
118
|
-
|
|
302
|
+
async function initSnsWithLocator(snsClient, stsClient, locatorConfig, extraParams) {
|
|
303
|
+
if (!locatorConfig.topicArn && !locatorConfig.topicName) {
|
|
304
|
+
throw new Error('When locatorConfig for the topic is specified, either topicArn or topicName must be specified');
|
|
305
|
+
}
|
|
306
|
+
const topicArn = locatorConfig.topicArn ?? (await buildTopicArn(stsClient, locatorConfig.topicName ?? ''));
|
|
307
|
+
const startupResourcePolling = locatorConfig.startupResourcePolling;
|
|
308
|
+
// If startup resource polling is enabled, poll for topic to become available
|
|
309
|
+
if (isStartupResourcePollingEnabled(startupResourcePolling)) {
|
|
310
|
+
const nonBlocking = startupResourcePolling.nonBlocking === true;
|
|
311
|
+
const topicResult = await waitForResource({
|
|
312
|
+
config: startupResourcePolling,
|
|
313
|
+
resourceName: `SNS topic ${topicArn}`,
|
|
314
|
+
logger: extraParams?.logger,
|
|
315
|
+
errorReporter: extraParams?.errorReporter,
|
|
316
|
+
onResourceAvailable: () => {
|
|
317
|
+
if (nonBlocking) {
|
|
318
|
+
extraParams?.onTopicReady?.({ topicArn });
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
checkFn: async () => {
|
|
322
|
+
const result = await getTopicAttributes(snsClient, topicArn);
|
|
323
|
+
if (result.error === 'not_found') {
|
|
324
|
+
return { isAvailable: false };
|
|
325
|
+
}
|
|
326
|
+
return { isAvailable: true, result: result.result };
|
|
327
|
+
},
|
|
328
|
+
});
|
|
329
|
+
// In non-blocking mode, return early if topic wasn't immediately available
|
|
330
|
+
if (nonBlocking && topicResult === undefined) {
|
|
331
|
+
return { topicArn, resourcesReady: false };
|
|
119
332
|
}
|
|
120
|
-
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
// Original behavior: check once and fail immediately if not found
|
|
121
336
|
const checkResult = await getTopicAttributes(snsClient, topicArn);
|
|
122
337
|
if (checkResult.error === 'not_found') {
|
|
123
|
-
throw new Error(`Topic with topicArn ${
|
|
338
|
+
throw new Error(`Topic with topicArn ${topicArn} does not exist.`);
|
|
124
339
|
}
|
|
125
|
-
|
|
340
|
+
}
|
|
341
|
+
return { topicArn, resourcesReady: true };
|
|
342
|
+
}
|
|
343
|
+
export async function initSns(snsClient, stsClient, locatorConfig, creationConfig, extraParams) {
|
|
344
|
+
if (locatorConfig) {
|
|
345
|
+
return initSnsWithLocator(snsClient, stsClient, locatorConfig, extraParams);
|
|
126
346
|
}
|
|
127
347
|
// create new topic if it does not exist
|
|
128
348
|
if (!creationConfig) {
|
|
@@ -134,6 +354,6 @@ export async function initSns(snsClient, stsClient, locatorConfig, creationConfi
|
|
|
134
354
|
allowedSourceOwner: creationConfig.allowedSourceOwner,
|
|
135
355
|
forceTagUpdate: creationConfig.forceTagUpdate,
|
|
136
356
|
});
|
|
137
|
-
return { topicArn };
|
|
357
|
+
return { topicArn, resourcesReady: true };
|
|
138
358
|
}
|
|
139
359
|
//# sourceMappingURL=snsInitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../lib/utils/snsInitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../lib/utils/snsInitter.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/snsUtils.js
CHANGED
|
@@ -16,8 +16,9 @@ export async function getTopicAttributes(snsClient, topicArn) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
catch (err) {
|
|
19
|
+
// SNS returns NotFoundException for non-existent topics
|
|
19
20
|
// @ts-expect-error
|
|
20
|
-
if (err.
|
|
21
|
+
if (err.name === 'NotFoundException' || err.name === 'NotFound') {
|
|
21
22
|
return {
|
|
22
23
|
error: 'not_found',
|
|
23
24
|
};
|
|
@@ -38,8 +39,9 @@ export async function getSubscriptionAttributes(snsClient, subscriptionArn) {
|
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
catch (err) {
|
|
42
|
+
// SNS returns NotFoundException for non-existent subscriptions
|
|
41
43
|
// @ts-expect-error
|
|
42
|
-
if (err.
|
|
44
|
+
if (err.name === 'NotFoundException' || err.name === 'NotFound') {
|
|
43
45
|
return {
|
|
44
46
|
error: 'not_found',
|
|
45
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../lib/utils/snsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EAClB,gCAAgC,EAChC,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EAEzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAe,aAAa,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,4BAA4B,IAAI,+BAA+B,EAAE,MAAM,4BAA4B,CAAA;AAE5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAM7C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAoB,EACpB,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC;QAC5C,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO;YACL,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC;SACF,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB;QACnB,IAAI,GAAG,CAAC,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../lib/utils/snsUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sns",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SNS adapter for message-queue-toolkit",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@message-queue-toolkit/redis-message-deduplication-store": "*",
|
|
52
52
|
"@message-queue-toolkit/s3-payload-store": "*",
|
|
53
53
|
"@message-queue-toolkit/sqs": "*",
|
|
54
|
-
"@types/node": "^
|
|
54
|
+
"@types/node": "^25.0.2",
|
|
55
55
|
"@vitest/coverage-v8": "^3.2.4",
|
|
56
56
|
"awilix": "^12.0.5",
|
|
57
57
|
"awilix-manager": "^6.1.0",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"rimraf": "^6.0.1",
|
|
60
60
|
"typescript": "^5.9.3",
|
|
61
61
|
"vitest": "^3.2.4",
|
|
62
|
-
"zod": "^4.1.
|
|
62
|
+
"zod": "^4.1.13"
|
|
63
63
|
},
|
|
64
64
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
65
65
|
"repository": {
|