@message-queue-toolkit/sns 23.1.0 → 23.1.3
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/dist/index.d.ts +11 -12
- package/dist/index.js +9 -10
- package/dist/index.js.map +1 -1
- package/dist/sns/AbstractSnsPublisher.d.ts +1 -1
- package/dist/sns/AbstractSnsPublisher.js +2 -2
- package/dist/sns/AbstractSnsPublisher.js.map +1 -1
- package/dist/sns/AbstractSnsService.d.ts +1 -1
- package/dist/sns/AbstractSnsService.js +1 -1
- package/dist/sns/AbstractSnsService.js.map +1 -1
- package/dist/sns/AbstractSnsSqsConsumer.d.ts +3 -3
- package/dist/sns/AbstractSnsSqsConsumer.js +2 -2
- package/dist/sns/AbstractSnsSqsConsumer.js.map +1 -1
- package/dist/utils/snsAttributeUtils.js +4 -4
- package/dist/utils/snsAttributeUtils.js.map +1 -1
- package/dist/utils/snsInitter.d.ts +1 -1
- package/dist/utils/snsInitter.js +16 -17
- package/dist/utils/snsInitter.js.map +1 -1
- package/dist/utils/snsSubscriber.d.ts +1 -1
- package/dist/utils/snsSubscriber.js +13 -8
- package/dist/utils/snsSubscriber.js.map +1 -1
- package/dist/utils/snsUtils.d.ts +1 -2
- package/dist/utils/snsUtils.js +3 -21
- package/dist/utils/snsUtils.js.map +1 -1
- package/dist/utils/stsUtils.js +1 -1
- package/dist/utils/stsUtils.js.map +1 -1
- package/package.json +10 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
export type { SNSTopicAWSConfig, SNSTopicConfig, SNSTopicLocatorType, SNSCreationConfig, SNSDependencies, } from './sns/AbstractSnsService.ts';
|
|
2
|
-
export { SNS_MESSAGE_MAX_SIZE } from './sns/AbstractSnsService.ts';
|
|
3
|
-
export { AbstractSnsService } from './sns/AbstractSnsService.ts';
|
|
4
1
|
export { SnsConsumerErrorResolver } from './errors/SnsConsumerErrorResolver.ts';
|
|
5
2
|
export type { SNSMessageOptions, SNSPublisherOptions } from './sns/AbstractSnsPublisher.ts';
|
|
6
3
|
export { AbstractSnsPublisher } from './sns/AbstractSnsPublisher.ts';
|
|
7
|
-
export type {
|
|
4
|
+
export type { SNSCreationConfig, SNSDependencies, SNSTopicAWSConfig, SNSTopicConfig, SNSTopicLocatorType, } from './sns/AbstractSnsService.ts';
|
|
5
|
+
export { AbstractSnsService, SNS_MESSAGE_MAX_SIZE } from './sns/AbstractSnsService.ts';
|
|
6
|
+
export type { SNSSQSConsumerDependencies, SNSSQSConsumerOptions, SNSSQSCreationConfig, SNSSQSQueueLocatorType, } from './sns/AbstractSnsSqsConsumer.ts';
|
|
8
7
|
export { AbstractSnsSqsConsumer } from './sns/AbstractSnsSqsConsumer.ts';
|
|
8
|
+
export * from './sns/CommonSnsPublisherFactory.ts';
|
|
9
|
+
export { FakeConsumer } from './sns/fakes/FakeConsumer.ts';
|
|
10
|
+
export * from './sns/SnsPublisherManager.ts';
|
|
9
11
|
export type { CommonMessage } from './types/MessageTypes.ts';
|
|
10
|
-
export {
|
|
11
|
-
export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from './utils/snsUtils.ts';
|
|
12
|
-
export { clearCachedCallerIdentity } from './utils/stsUtils.ts';
|
|
13
|
-
export { subscribeToTopic } from './utils/snsSubscriber.ts';
|
|
12
|
+
export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from './utils/snsAttributeUtils.ts';
|
|
14
13
|
export { initSns, initSnsSqs } from './utils/snsInitter.ts';
|
|
14
|
+
export { deserializeSNSMessage } from './utils/snsMessageDeserializer.ts';
|
|
15
15
|
export { readSnsMessage } from './utils/snsMessageReader.ts';
|
|
16
|
-
export {
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export { FakeConsumer } from './sns/fakes/FakeConsumer.ts';
|
|
16
|
+
export { subscribeToTopic } from './utils/snsSubscriber.ts';
|
|
17
|
+
export { assertTopic, deleteSubscription, deleteTopic, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, getTopicAttributes, } from './utils/snsUtils.ts';
|
|
18
|
+
export { clearCachedCallerIdentity } from './utils/stsUtils.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
export { SNS_MESSAGE_MAX_SIZE } from "./sns/AbstractSnsService.js";
|
|
2
|
-
export { AbstractSnsService } from "./sns/AbstractSnsService.js";
|
|
3
1
|
export { SnsConsumerErrorResolver } from "./errors/SnsConsumerErrorResolver.js";
|
|
4
2
|
export { AbstractSnsPublisher } from "./sns/AbstractSnsPublisher.js";
|
|
3
|
+
export { AbstractSnsService, SNS_MESSAGE_MAX_SIZE } from "./sns/AbstractSnsService.js";
|
|
5
4
|
export { AbstractSnsSqsConsumer } from "./sns/AbstractSnsSqsConsumer.js";
|
|
6
|
-
export { deserializeSNSMessage } from "./utils/snsMessageDeserializer.js";
|
|
7
|
-
export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from "./utils/snsUtils.js";
|
|
8
|
-
export { clearCachedCallerIdentity } from "./utils/stsUtils.js";
|
|
9
|
-
export { subscribeToTopic } from "./utils/snsSubscriber.js";
|
|
10
|
-
export { initSns, initSnsSqs } from "./utils/snsInitter.js";
|
|
11
|
-
export { readSnsMessage } from "./utils/snsMessageReader.js";
|
|
12
|
-
export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from "./utils/snsAttributeUtils.js";
|
|
13
5
|
export * from "./sns/CommonSnsPublisherFactory.js";
|
|
14
|
-
export * from "./sns/SnsPublisherManager.js";
|
|
15
6
|
export { FakeConsumer } from "./sns/fakes/FakeConsumer.js";
|
|
7
|
+
export * from "./sns/SnsPublisherManager.js";
|
|
8
|
+
export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from "./utils/snsAttributeUtils.js";
|
|
9
|
+
export { initSns, initSnsSqs } from "./utils/snsInitter.js";
|
|
10
|
+
export { deserializeSNSMessage } from "./utils/snsMessageDeserializer.js";
|
|
11
|
+
export { readSnsMessage } from "./utils/snsMessageReader.js";
|
|
12
|
+
export { subscribeToTopic } from "./utils/snsSubscriber.js";
|
|
13
|
+
export { assertTopic, deleteSubscription, deleteTopic, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, getTopicAttributes, } from "./utils/snsUtils.js";
|
|
14
|
+
export { clearCachedCallerIdentity } from "./utils/stsUtils.js";
|
|
16
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"
|
|
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,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC3D,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,kBAAkB,EAClB,WAAW,EACX,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -14,7 +14,7 @@ export declare abstract class AbstractSnsPublisher<MessagePayloadType extends ob
|
|
|
14
14
|
constructor(dependencies: SNSDependencies, options: SNSPublisherOptions<MessagePayloadType>);
|
|
15
15
|
publish(message: MessagePayloadType, options?: SNSMessageOptions): Promise<void>;
|
|
16
16
|
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, ResolvedMessage>;
|
|
17
|
-
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadType, unknown>>>;
|
|
17
|
+
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod/v4").ZodType<MessagePayloadType, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadType, unknown>>>;
|
|
18
18
|
protected resolveNextFunction(): () => void;
|
|
19
19
|
protected processPrehandlers(): Promise<undefined>;
|
|
20
20
|
protected preHandlerBarrier<BarrierOutput>(): Promise<BarrierResult<BarrierOutput>>;
|
|
@@ -32,7 +32,7 @@ export class AbstractSnsPublisher extends AbstractSnsService {
|
|
|
32
32
|
const parsedMessage = messageSchemaResult.result.parse(message);
|
|
33
33
|
const topicName = this.locatorConfig?.topicName ?? this.creationConfig?.topic?.Name ?? 'unknown';
|
|
34
34
|
if (this.logMessages) {
|
|
35
|
-
// @ts-
|
|
35
|
+
// @ts-expect-error
|
|
36
36
|
const resolvedLogMessage = this.resolveMessageLog(message, message[this.messageTypeField]);
|
|
37
37
|
this.logMessage(resolvedLogMessage);
|
|
38
38
|
}
|
|
@@ -66,7 +66,7 @@ export class AbstractSnsPublisher extends AbstractSnsService {
|
|
|
66
66
|
details: {
|
|
67
67
|
publisher: this.constructor.name,
|
|
68
68
|
topic: this.topicArn,
|
|
69
|
-
// @ts-
|
|
69
|
+
// @ts-expect-error
|
|
70
70
|
messageType: message[this.messageTypeField] ?? 'unknown',
|
|
71
71
|
},
|
|
72
72
|
cause: err,
|
|
@@ -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,MAAM,sBAAsB,CAAA;AAOnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAa5D,MAAM,OAAgB,oBACpB,SAAQ,kBAA0D;IAGjD,sBAAsB,CAA4C;IAClE,sBAAsB,CAAS;IAExC,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;IACtE,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":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient, Tag } from '@aws-sdk/client-sns';
|
|
2
|
+
import type { STSClient } from '@aws-sdk/client-sts';
|
|
2
3
|
import type { QueueDependencies, QueueOptions } from '@message-queue-toolkit/core';
|
|
3
4
|
import { AbstractQueueService } from '@message-queue-toolkit/core';
|
|
4
|
-
import type { STSClient } from '@aws-sdk/client-sts';
|
|
5
5
|
import type { SNS_MESSAGE_BODY_TYPE } from '../types/MessageTypes.ts';
|
|
6
6
|
export declare const SNS_MESSAGE_MAX_SIZE: number;
|
|
7
7
|
export type SNSDependencies = QueueDependencies & {
|
|
@@ -5,7 +5,7 @@ export const SNS_MESSAGE_MAX_SIZE = 256 * 1024; // 256KB
|
|
|
5
5
|
export class AbstractSnsService extends AbstractQueueService {
|
|
6
6
|
snsClient;
|
|
7
7
|
stsClient;
|
|
8
|
-
// @ts-
|
|
8
|
+
// @ts-expect-error
|
|
9
9
|
topicArn;
|
|
10
10
|
constructor(dependencies, options) {
|
|
11
11
|
super(dependencies, options);
|
|
@@ -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":"AAGA,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,CACpB,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,14 +1,14 @@
|
|
|
1
1
|
import type { SNSClient } from '@aws-sdk/client-sns';
|
|
2
|
+
import type { STSClient } from '@aws-sdk/client-sts';
|
|
2
3
|
import type { SQSConsumerDependencies, SQSConsumerOptions, SQSCreationConfig, SQSMessage, SQSQueueLocatorType } from '@message-queue-toolkit/sqs';
|
|
3
4
|
import { AbstractSqsConsumer } from '@message-queue-toolkit/sqs';
|
|
4
5
|
import type { SNSSubscriptionOptions } from '../utils/snsSubscriber.ts';
|
|
5
|
-
import type { STSClient } from '@aws-sdk/client-sts';
|
|
6
6
|
import type { SNSCreationConfig, SNSOptions, SNSTopicLocatorType } from './AbstractSnsService.ts';
|
|
7
7
|
export type SNSSQSConsumerDependencies = SQSConsumerDependencies & {
|
|
8
8
|
snsClient: SNSClient;
|
|
9
9
|
stsClient: STSClient;
|
|
10
10
|
};
|
|
11
|
-
export type SNSSQSCreationConfig = SQSCreationConfig & SNSCreationConfig;
|
|
11
|
+
export type SNSSQSCreationConfig = Omit<SQSCreationConfig, 'policyConfig'> & SNSCreationConfig;
|
|
12
12
|
export type SNSSQSQueueLocatorType = Partial<SQSQueueLocatorType> & SNSTopicLocatorType & {
|
|
13
13
|
subscriptionArn?: string;
|
|
14
14
|
};
|
|
@@ -24,5 +24,5 @@ export declare abstract class AbstractSnsSqsConsumer<MessagePayloadSchemas exten
|
|
|
24
24
|
protected constructor(dependencies: SNSSQSConsumerDependencies, options: SNSSQSConsumerOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>, executionContext: ExecutionContext);
|
|
25
25
|
init(): Promise<void>;
|
|
26
26
|
protected resolveMessage(message: SQSMessage): import("@lokalise/node-core").Either<import("@message-queue-toolkit/core").MessageInvalidFormatError | import("@message-queue-toolkit/core").MessageValidationError, import("@message-queue-toolkit/core").ResolvedMessage>;
|
|
27
|
-
protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either<Error, import("zod").ZodType<MessagePayloadSchemas, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadSchemas, unknown>>>;
|
|
27
|
+
protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either<Error, import("zod/v4").ZodType<MessagePayloadSchemas, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadSchemas, unknown>>>;
|
|
28
28
|
}
|
|
@@ -5,9 +5,9 @@ export class AbstractSnsSqsConsumer extends AbstractSqsConsumer {
|
|
|
5
5
|
subscriptionConfig;
|
|
6
6
|
snsClient;
|
|
7
7
|
stsClient;
|
|
8
|
-
// @ts-
|
|
8
|
+
// @ts-expect-error
|
|
9
9
|
topicArn;
|
|
10
|
-
// @ts-
|
|
10
|
+
// @ts-expect-error
|
|
11
11
|
subscriptionArn;
|
|
12
12
|
constructor(dependencies, options, executionContext) {
|
|
13
13
|
super(dependencies, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnsSqsConsumer.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsSqsConsumer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSnsSqsConsumer.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsSqsConsumer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AA8B7D,MAAM,OAAgB,sBAIpB,SAAQ,mBAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IACpB,SAAS,CAAW;IAErC,mBAAmB;IACT,QAAQ,CAAQ;IAC1B,mBAAmB;IACT,eAAe,CAAQ;IAEjC,YACE,YAAwC,EACxC,OAAyF,EACzF,gBAAkC;QAElC,KAAK,CACH,YAAY,EACZ;YACE,GAAG,OAAO;SACX,EACD,gBAAgB,CACjB,CAAA;QAED,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1E,MAAM,YAAY,CAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,kBAAkB,EACvB,SAAS,EACT,IAAI,CAAC,aAAa,CACnB,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,UAAU,CACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,EACvB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAA;QAEvD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAClC,CAAC;IAEkB,cAAc,CAAC,OAAmB;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,qDAAqD;QACrD,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAEkB,aAAa,CAAC,cAAqC;QACpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACnE,CAAC;CACF"}
|
|
@@ -18,13 +18,13 @@ export function generateTopicSubscriptionPolicy(params) {
|
|
|
18
18
|
],
|
|
19
19
|
};
|
|
20
20
|
if (params.allowedSourceOwner) {
|
|
21
|
-
// @ts-
|
|
21
|
+
// @ts-expect-error
|
|
22
22
|
policyObject.Statement[0].Condition.StringEquals = {
|
|
23
23
|
'AWS:SourceOwner': params.allowedSourceOwner,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
if (params.allowedSqsQueueUrlPrefix?.length && params.allowedSqsQueueUrlPrefix.length > 0) {
|
|
27
|
-
// @ts-
|
|
27
|
+
// @ts-expect-error
|
|
28
28
|
policyObject.Statement[0].Condition.StringLike = {
|
|
29
29
|
'sns:Endpoint': params.allowedSqsQueueUrlPrefix,
|
|
30
30
|
};
|
|
@@ -32,10 +32,10 @@ export function generateTopicSubscriptionPolicy(params) {
|
|
|
32
32
|
return JSON.stringify(policyObject);
|
|
33
33
|
}
|
|
34
34
|
export function generateFilterAttributes(
|
|
35
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
35
|
+
// biome-ignore lint/suspicious/noExplicitAny: Expected
|
|
36
36
|
messageSchemas, messageTypeField) {
|
|
37
37
|
const messageTypes = messageSchemas.map((schema) => {
|
|
38
|
-
// @ts-
|
|
38
|
+
// @ts-expect-error
|
|
39
39
|
return schema.shape[messageTypeField].value;
|
|
40
40
|
});
|
|
41
41
|
return {
|
|
@@ -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,
|
|
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,gBAAwB;IAExB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,mBAAmB;QACnB,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAe,CAAA;IACvD,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,10 +1,10 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
3
|
+
import type { STSClient } from '@aws-sdk/client-sts';
|
|
3
4
|
import type { DeletionConfig, ExtraParams } from '@message-queue-toolkit/core';
|
|
4
5
|
import { type SQSCreationConfig } from '@message-queue-toolkit/sqs';
|
|
5
6
|
import type { SNSCreationConfig, SNSTopicLocatorType } from '../sns/AbstractSnsService.ts';
|
|
6
7
|
import type { SNSSQSQueueLocatorType } from '../sns/AbstractSnsSqsConsumer.ts';
|
|
7
|
-
import type { STSClient } from '@aws-sdk/client-sts';
|
|
8
8
|
import type { SNSSubscriptionOptions } from './snsSubscriber.ts';
|
|
9
9
|
export declare function initSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, stsClient: STSClient, locatorConfig?: SNSSQSQueueLocatorType, creationConfig?: SNSCreationConfig & SQSCreationConfig, subscriptionConfig?: SNSSubscriptionOptions, extraParams?: ExtraParams): Promise<{
|
|
10
10
|
subscriptionArn: string;
|
package/dist/utils/snsInitter.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isProduction } from '@message-queue-toolkit/core';
|
|
2
|
-
import { resolveQueueUrlFromLocatorConfig, } from '@message-queue-toolkit/sqs';
|
|
3
|
-
import { deleteQueue, getQueueAttributes } from '@message-queue-toolkit/sqs';
|
|
2
|
+
import { deleteQueue, getQueueAttributes, resolveQueueUrlFromLocatorConfig, } from '@message-queue-toolkit/sqs';
|
|
4
3
|
import { isCreateTopicCommand } from "../types/TopicTypes.js";
|
|
5
4
|
import { subscribeToTopic } from "./snsSubscriber.js";
|
|
6
|
-
import { assertTopic, deleteSubscription, deleteTopic,
|
|
7
|
-
|
|
5
|
+
import { assertTopic, deleteSubscription, deleteTopic, getTopicAttributes } from "./snsUtils.js";
|
|
6
|
+
import { buildTopicArn } from './stsUtils.js';
|
|
7
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: fixme
|
|
8
8
|
export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig, creationConfig, subscriptionConfig, extraParams) {
|
|
9
9
|
if (!locatorConfig?.subscriptionArn) {
|
|
10
10
|
if (!creationConfig?.topic && !locatorConfig?.topicArn && !locatorConfig?.topicName) {
|
|
@@ -44,7 +44,7 @@ export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig,
|
|
|
44
44
|
const queueUrl = await resolveQueueUrlFromLocatorConfig(sqsClient, locatorConfig);
|
|
45
45
|
const checkPromises = [];
|
|
46
46
|
// Check for existing resources, using the locators
|
|
47
|
-
const subscriptionTopicArn = locatorConfig.topicArn ?? (await
|
|
47
|
+
const subscriptionTopicArn = locatorConfig.topicArn ?? (await buildTopicArn(stsClient, locatorConfig.topicName ?? ''));
|
|
48
48
|
const topicPromise = getTopicAttributes(snsClient, subscriptionTopicArn);
|
|
49
49
|
checkPromises.push(topicPromise);
|
|
50
50
|
const queuePromise = getQueueAttributes(sqsClient, queueUrl);
|
|
@@ -59,11 +59,11 @@ export async function initSnsSqs(sqsClient, snsClient, stsClient, locatorConfig,
|
|
|
59
59
|
let queueName;
|
|
60
60
|
if (queueUrl) {
|
|
61
61
|
const splitUrl = queueUrl.split('/');
|
|
62
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
62
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
63
63
|
queueName = splitUrl[splitUrl.length - 1];
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
66
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
67
67
|
queueName = creationConfig.queue.QueueName;
|
|
68
68
|
}
|
|
69
69
|
return {
|
|
@@ -81,13 +81,13 @@ export async function deleteSnsSqs(sqsClient, snsClient, stsClient, deletionConf
|
|
|
81
81
|
throw new Error('You are running autodeletion in production. This can and probably will cause a loss of data. If you are absolutely sure you want to do this, please set deletionConfig.forceDeleteInProduction to true');
|
|
82
82
|
}
|
|
83
83
|
const { subscriptionArn } = await subscribeToTopic(sqsClient, snsClient, stsClient, queueConfiguration,
|
|
84
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
84
|
+
// biome-ignore lint/style/noNonNullAssertion: Checked by type
|
|
85
85
|
topicConfiguration ?? topicLocator, subscriptionConfiguration, extraParams);
|
|
86
86
|
if (!subscriptionArn) {
|
|
87
87
|
throw new Error('subscriptionArn must be set for automatic deletion');
|
|
88
88
|
}
|
|
89
89
|
await deleteQueue(sqsClient,
|
|
90
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
90
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
91
91
|
queueConfiguration.QueueName, deletionConfig.waitForConfirmation !== false);
|
|
92
92
|
if (topicConfiguration) {
|
|
93
93
|
const topicName = isCreateTopicCommand(topicConfiguration)
|
|
@@ -114,27 +114,26 @@ export async function deleteSns(snsClient, stsClient, deletionConfig, creationCo
|
|
|
114
114
|
}
|
|
115
115
|
export async function initSns(snsClient, stsClient, locatorConfig, creationConfig) {
|
|
116
116
|
if (locatorConfig) {
|
|
117
|
-
|
|
117
|
+
if (!locatorConfig.topicArn && !locatorConfig.topicName) {
|
|
118
|
+
throw new Error('When locatorConfig for the topic is specified, either topicArn or topicName must be specified');
|
|
119
|
+
}
|
|
120
|
+
const topicArn = locatorConfig.topicArn ?? (await buildTopicArn(stsClient, locatorConfig.topicName ?? ''));
|
|
118
121
|
const checkResult = await getTopicAttributes(snsClient, topicArn);
|
|
119
122
|
if (checkResult.error === 'not_found') {
|
|
120
123
|
throw new Error(`Topic with topicArn ${locatorConfig.topicArn} does not exist.`);
|
|
121
124
|
}
|
|
122
|
-
return {
|
|
123
|
-
topicArn,
|
|
124
|
-
};
|
|
125
|
+
return { topicArn };
|
|
125
126
|
}
|
|
126
127
|
// create new topic if it does not exist
|
|
127
128
|
if (!creationConfig) {
|
|
128
129
|
throw new Error('When locatorConfig for the topic is not specified, creationConfig of the topic is mandatory');
|
|
129
130
|
}
|
|
130
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
131
|
+
// biome-ignore lint/style/noNonNullAssertion: it's ok
|
|
131
132
|
const topicArn = await assertTopic(snsClient, stsClient, creationConfig.topic, {
|
|
132
133
|
queueUrlsWithSubscribePermissionsPrefix: creationConfig.queueUrlsWithSubscribePermissionsPrefix,
|
|
133
134
|
allowedSourceOwner: creationConfig.allowedSourceOwner,
|
|
134
135
|
forceTagUpdate: creationConfig.forceTagUpdate,
|
|
135
136
|
});
|
|
136
|
-
return {
|
|
137
|
-
topicArn,
|
|
138
|
-
};
|
|
137
|
+
return { topicArn };
|
|
139
138
|
}
|
|
140
139
|
//# sourceMappingURL=snsInitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../lib/utils/snsInitter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../lib/utils/snsInitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { SNSClient, SubscribeCommandInput } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
3
|
+
import type { STSClient } from '@aws-sdk/client-sts';
|
|
3
4
|
import type { ExtraParams } from '@message-queue-toolkit/core';
|
|
4
5
|
import type { ExtraSQSCreationParams } from '@message-queue-toolkit/sqs';
|
|
5
6
|
import type { ExtraSNSCreationParams } from '../sns/AbstractSnsService.ts';
|
|
6
|
-
import type { STSClient } from '@aws-sdk/client-sts';
|
|
7
7
|
import { type TopicResolutionOptions } from '../types/TopicTypes.ts';
|
|
8
8
|
export type SNSSubscriptionOptions = Omit<SubscribeCommandInput, 'TopicArn' | 'Endpoint' | 'Protocol' | 'ReturnSubscriptionArn'> & {
|
|
9
9
|
updateAttributesIfExists: boolean;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { SetSubscriptionAttributesCommand, SubscribeCommand } from '@aws-sdk/client-sns';
|
|
2
|
+
import { InternalError, stringValueSerializer } from '@lokalise/node-core';
|
|
2
3
|
import { assertQueue } from '@message-queue-toolkit/sqs';
|
|
3
4
|
import { isCreateTopicCommand, isSNSTopicLocatorType, } from "../types/TopicTypes.js";
|
|
4
|
-
import { assertTopic, findSubscriptionByTopicAndQueue
|
|
5
|
+
import { assertTopic, findSubscriptionByTopicAndQueue } from "./snsUtils.js";
|
|
6
|
+
import { buildTopicArn } from './stsUtils.js';
|
|
5
7
|
async function resolveTopicArnToSubscribeTo(snsClient, stsClient, topicConfiguration, extraParams) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
if (isSNSTopicLocatorType(topicConfiguration)) {
|
|
9
|
+
if (topicConfiguration.topicArn)
|
|
10
|
+
return topicConfiguration.topicArn;
|
|
11
|
+
if (topicConfiguration.topicName)
|
|
12
|
+
return buildTopicArn(stsClient, topicConfiguration.topicName);
|
|
9
13
|
}
|
|
10
|
-
//If input configuration is capable of creating a topic, let's create it and return its ARN.
|
|
11
14
|
if (isCreateTopicCommand(topicConfiguration)) {
|
|
12
15
|
return await assertTopic(snsClient, stsClient, topicConfiguration, {
|
|
13
16
|
queueUrlsWithSubscribePermissionsPrefix: extraParams?.queueUrlsWithSubscribePermissionsPrefix,
|
|
@@ -15,8 +18,11 @@ async function resolveTopicArnToSubscribeTo(snsClient, stsClient, topicConfigura
|
|
|
15
18
|
forceTagUpdate: extraParams?.forceTagUpdate,
|
|
16
19
|
});
|
|
17
20
|
}
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
throw new InternalError({
|
|
22
|
+
errorCode: 'invalid_topic_configuration',
|
|
23
|
+
message: 'Invalid topic configuration provided, cannot resolve topic ARN',
|
|
24
|
+
details: { topicConfiguration: stringValueSerializer(topicConfiguration) },
|
|
25
|
+
});
|
|
20
26
|
}
|
|
21
27
|
export async function subscribeToTopic(sqsClient, snsClient, stsClient, queueConfiguration, topicConfiguration, subscriptionConfiguration, extraParams) {
|
|
22
28
|
const topicArn = await resolveTopicArnToSubscribeTo(snsClient, stsClient, topicConfiguration, extraParams);
|
|
@@ -43,7 +49,6 @@ export async function subscribeToTopic(sqsClient, snsClient, stsClient, queueCon
|
|
|
43
49
|
}
|
|
44
50
|
catch (err) {
|
|
45
51
|
const logger = extraParams?.logger ?? console;
|
|
46
|
-
// @ts-ignore
|
|
47
52
|
logger.error(`Error while creating subscription for queue "${queueConfiguration.QueueName}", topic "${isCreateTopicCommand(topicConfiguration)
|
|
48
53
|
? topicConfiguration.Name
|
|
49
54
|
: topicConfiguration.topicName}": ${err.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsSubscriber.js","sourceRoot":"","sources":["../../lib/utils/snsSubscriber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"snsSubscriber.js","sourceRoot":"","sources":["../../lib/utils/snsSubscriber.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/snsUtils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CreateTopicCommandInput, type SNSClient } from '@aws-sdk/client-sns';
|
|
2
|
+
import type { STSClient } from '@aws-sdk/client-sts';
|
|
2
3
|
import { type Either } from '@lokalise/node-core';
|
|
3
4
|
import type { ExtraSNSCreationParams } from '../sns/AbstractSnsService.ts';
|
|
4
|
-
import type { STSClient } from '@aws-sdk/client-sts';
|
|
5
5
|
type AttributesResult = {
|
|
6
6
|
attributes?: Record<string, string>;
|
|
7
7
|
};
|
|
@@ -11,7 +11,6 @@ export declare function assertTopic(snsClient: SNSClient, stsClient: STSClient,
|
|
|
11
11
|
export declare function deleteTopic(snsClient: SNSClient, stsClient: STSClient, topicName: string): Promise<void>;
|
|
12
12
|
export declare function deleteSubscription(client: SNSClient, subscriptionArn: string): Promise<void>;
|
|
13
13
|
export declare function findSubscriptionByTopicAndQueue(snsClient: SNSClient, topicArn: string, queueArn: string): Promise<import("@aws-sdk/client-sns").Subscription | undefined>;
|
|
14
|
-
export declare function getTopicArnByName(snsClient: SNSClient, topicName?: string): Promise<string>;
|
|
15
14
|
/**
|
|
16
15
|
* Calculates the size of an outgoing SNS message.
|
|
17
16
|
*
|
package/dist/utils/snsUtils.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ListTagsForResourceCommand, TagResourceCommand,
|
|
2
|
-
import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, ListSubscriptionsByTopicCommand, SetTopicAttributesCommand, UnsubscribeCommand, } from '@aws-sdk/client-sns';
|
|
1
|
+
import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, ListSubscriptionsByTopicCommand, ListTagsForResourceCommand, SetTopicAttributesCommand, TagResourceCommand, UnsubscribeCommand, } from '@aws-sdk/client-sns';
|
|
3
2
|
import { InternalError, isError } from '@lokalise/node-core';
|
|
4
3
|
import { calculateOutgoingMessageSize as sqsCalculateOutgoingMessageSize } from '@message-queue-toolkit/sqs';
|
|
5
4
|
import { generateTopicSubscriptionPolicy } from "./snsAttributeUtils.js";
|
|
@@ -17,10 +16,9 @@ export async function getTopicAttributes(snsClient, topicArn) {
|
|
|
17
16
|
};
|
|
18
17
|
}
|
|
19
18
|
catch (err) {
|
|
20
|
-
// @ts-
|
|
19
|
+
// @ts-expect-error
|
|
21
20
|
if (err.Code === 'AWS.SimpleQueueService.NonExistentQueue') {
|
|
22
21
|
return {
|
|
23
|
-
// @ts-ignore
|
|
24
22
|
error: 'not_found',
|
|
25
23
|
};
|
|
26
24
|
}
|
|
@@ -40,10 +38,9 @@ export async function getSubscriptionAttributes(snsClient, subscriptionArn) {
|
|
|
40
38
|
};
|
|
41
39
|
}
|
|
42
40
|
catch (err) {
|
|
43
|
-
// @ts-
|
|
41
|
+
// @ts-expect-error
|
|
44
42
|
if (err.Code === 'AWS.SimpleQueueService.NonExistentQueue') {
|
|
45
43
|
return {
|
|
46
|
-
// @ts-ignore
|
|
47
44
|
error: 'not_found',
|
|
48
45
|
};
|
|
49
46
|
}
|
|
@@ -140,21 +137,6 @@ export async function findSubscriptionByTopicAndQueue(snsClient, topicArn, queue
|
|
|
140
137
|
return entry.Endpoint === queueArn;
|
|
141
138
|
});
|
|
142
139
|
}
|
|
143
|
-
export async function getTopicArnByName(snsClient, topicName) {
|
|
144
|
-
if (!topicName) {
|
|
145
|
-
throw new Error('topicName is not provided');
|
|
146
|
-
}
|
|
147
|
-
// Use paginator to automatically handle NextToken
|
|
148
|
-
const paginator = paginateListTopics({ client: snsClient }, {});
|
|
149
|
-
for await (const page of paginator) {
|
|
150
|
-
for (const topic of page.Topics || []) {
|
|
151
|
-
if (topic.TopicArn?.includes(topicName)) {
|
|
152
|
-
return topic.TopicArn;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
throw new Error(`Failed to resolve topic by name ${topicName}`);
|
|
157
|
-
}
|
|
158
140
|
/**
|
|
159
141
|
* Calculates the size of an outgoing SNS message.
|
|
160
142
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../lib/utils/snsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../lib/utils/snsUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/stsUtils.js
CHANGED
|
@@ -25,7 +25,7 @@ const getAndCacheCallerIdentity = async (client) => {
|
|
|
25
25
|
await callerIdentityPromise;
|
|
26
26
|
callerIdentityPromise = undefined;
|
|
27
27
|
}
|
|
28
|
-
// biome-ignore lint/style/noNonNullAssertion:
|
|
28
|
+
// biome-ignore lint/style/noNonNullAssertion: It's ok
|
|
29
29
|
return callerIdentityCached;
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=stsUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stsUtils.js","sourceRoot":"","sources":["../../lib/utils/stsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAGzB,MAAM,qBAAqB,CAAA;AAE5B,IAAI,qBAAgD,CAAA;AACpD,IAAI,oBAAgE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,MAAiB,EAAE,SAAiB,EAAE,EAAE;IAC1E,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChE,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IAEhG,OAAO,eAAe,MAAM,IAAI,gBAAgB,CAAC,OAAO,IAAI,SAAS,EAAE,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,qBAAqB,GAAG,SAAS,CAAA;IACjC,oBAAoB,GAAG,SAAS,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAiB,EACwB,EAAE;IAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACtF,oBAAoB,GAAG,QAAQ,CAAA;YACjC,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAA;QAC3B,qBAAqB,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"stsUtils.js","sourceRoot":"","sources":["../../lib/utils/stsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAGzB,MAAM,qBAAqB,CAAA;AAE5B,IAAI,qBAAgD,CAAA;AACpD,IAAI,oBAAgE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,MAAiB,EAAE,SAAiB,EAAE,EAAE;IAC1E,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChE,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IAEhG,OAAO,eAAe,MAAM,IAAI,gBAAgB,CAAC,OAAO,IAAI,SAAS,EAAE,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,qBAAqB,GAAG,SAAS,CAAA;IACjC,oBAAoB,GAAG,SAAS,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAiB,EACwB,EAAE;IAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACtF,oBAAoB,GAAG,QAAQ,CAAA;YACjC,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAA;QAC3B,qBAAqB,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,sDAAsD;IACtD,OAAO,oBAAqB,CAAA;AAC9B,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sns",
|
|
3
|
-
"version": "23.1.
|
|
3
|
+
"version": "23.1.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SNS adapter for message-queue-toolkit",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@lokalise/node-core": "^14.2.0",
|
|
32
|
-
"sqs-consumer": "^
|
|
32
|
+
"sqs-consumer": "^14.0.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@aws-sdk/client-sns": "^3.632.0",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"@aws-sdk/client-s3": "^3.812.0",
|
|
45
45
|
"@aws-sdk/client-sns": "^3.812.0",
|
|
46
46
|
"@aws-sdk/client-sqs": "^3.812.0",
|
|
47
|
-
"@biomejs/biome": "^
|
|
48
|
-
"@lokalise/biome-config": "^
|
|
49
|
-
"@lokalise/tsconfig": "^
|
|
47
|
+
"@biomejs/biome": "^2.2.0",
|
|
48
|
+
"@lokalise/biome-config": "^3.1.0",
|
|
49
|
+
"@lokalise/tsconfig": "^3.0.0",
|
|
50
50
|
"@message-queue-toolkit/core": "*",
|
|
51
51
|
"@message-queue-toolkit/redis-message-deduplication-store": "*",
|
|
52
52
|
"@message-queue-toolkit/s3-payload-store": "*",
|
|
@@ -76,5 +76,9 @@
|
|
|
76
76
|
"notification",
|
|
77
77
|
"sns"
|
|
78
78
|
],
|
|
79
|
-
"files": [
|
|
79
|
+
"files": [
|
|
80
|
+
"README.md",
|
|
81
|
+
"LICENSE",
|
|
82
|
+
"dist/*"
|
|
83
|
+
]
|
|
80
84
|
}
|