@message-queue-toolkit/sns 14.0.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,6 @@ export type SNSMessageOptions = {
9
9
  export type SNSPublisherOptions<MessagePayloadType extends object> = QueuePublisherOptions<SNSCreationConfig, SNSQueueLocatorType, MessagePayloadType>;
10
10
  export declare abstract class AbstractSnsPublisher<MessagePayloadType extends object> extends AbstractSnsService<MessagePayloadType, MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SNSMessageOptions> {
11
11
  private readonly messageSchemaContainer;
12
- private isInitted;
13
12
  private initPromise?;
14
13
  constructor(dependencies: SNSDependencies, options: SNSPublisherOptions<MessagePayloadType>);
15
14
  publish(message: MessagePayloadType, options?: SNSMessageOptions): Promise<void>;
@@ -7,7 +7,6 @@ const core_1 = require("@message-queue-toolkit/core");
7
7
  const AbstractSnsService_1 = require("./AbstractSnsService");
8
8
  class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
9
9
  messageSchemaContainer;
10
- isInitted;
11
10
  initPromise;
12
11
  constructor(dependencies, options) {
13
12
  super(dependencies, options);
@@ -16,7 +15,6 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
16
15
  messageSchemas,
17
16
  messageTypeField: options.messageTypeField,
18
17
  });
19
- this.isInitted = false;
20
18
  }
21
19
  async publish(message, options = {}) {
22
20
  const messageSchemaResult = this.resolveSchema(message);
@@ -30,9 +28,19 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
30
28
  this.initPromise = this.init();
31
29
  }
32
30
  await this.initPromise;
31
+ this.initPromise = undefined;
33
32
  }
34
33
  try {
35
34
  messageSchemaResult.result.parse(message);
35
+ /**
36
+ * If the message doesn't have a timestamp field -> add it
37
+ * will be used on the consumer to prevent infinite retries on the same message
38
+ */
39
+ if (!this.tryToExtractTimestamp(message)) {
40
+ // @ts-ignore
41
+ message[this.messageTimestampField] = new Date().toISOString();
42
+ this.logger.warn(`${this.messageTimestampField} not defined, adding it automatically`);
43
+ }
36
44
  if (this.logMessages) {
37
45
  // @ts-ignore
38
46
  const resolvedLogMessage = this.resolveMessageLog(message, message[this.messageTypeField]);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSnsPublisher.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsPublisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractSnsPublisher.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsPublisher.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,10 @@ class AbstractSnsService extends core_1.AbstractQueueService {
17
17
  }
18
18
  const initResult = await (0, snsInitter_1.initSns)(this.snsClient, this.locatorConfig, this.creationConfig);
19
19
  this.topicArn = initResult.topicArn;
20
+ this.isInitted = true;
20
21
  }
21
22
  close() {
23
+ this.isInitted = false;
22
24
  return Promise.resolve();
23
25
  }
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSnsService.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsService.ts"],"names":[],"mappings":";;;AAEA,sDAAkE;AAGlE,oDAAwD;AAsCxD,MAAsB,kBAKpB,SAAQ,2BAOT;IACoB,SAAS,CAAW;IACvC,aAAa;IACH,QAAQ,CAAQ;IAE1B,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,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,IAAA,sBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAO,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QACzF,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IACrC,CAAC;IAEe,KAAK;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAnCD,gDAmCC"}
1
+ {"version":3,"file":"AbstractSnsService.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsService.ts"],"names":[],"mappings":";;;AAEA,sDAAkE;AAGlE,oDAAwD;AAsCxD,MAAsB,kBAKpB,SAAQ,2BAOT;IACoB,SAAS,CAAW;IACvC,aAAa;IACH,QAAQ,CAAQ;IAE1B,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,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,IAAA,sBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAO,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QACzF,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;AArCD,gDAqCC"}
@@ -33,7 +33,12 @@ class AbstractSnsSqsConsumer extends sqs_1.AbstractSqsConsumer {
33
33
  await this.initDeadLetterQueue();
34
34
  }
35
35
  resolveMessage(message) {
36
- return (0, snsMessageReader_1.readSnsMessage)(message, this.errorResolver);
36
+ const result = (0, snsMessageReader_1.readSnsMessage)(message, this.errorResolver);
37
+ if (result.result) {
38
+ return result;
39
+ }
40
+ // if it not an SNS message, then it is a SQS message
41
+ return super.resolveMessage(message);
37
42
  }
38
43
  resolveSchema(messagePayload) {
39
44
  return this.messageSchemaContainer.resolveSchema(messagePayload);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSnsSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumer.ts"],"names":[],"mappings":";;;AAQA,oDAA2E;AAE3E,oDAA8D;AAC9D,gEAA0D;AA8B1D,MAAsB,sBAIpB,SAAQ,yBAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IAErC,aAAa;IACH,QAAQ,CAAQ;IAC1B,aAAa;IACH,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;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1E,MAAM,IAAA,yBAAY,EAChB,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,CACxB,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM,IAAA,eAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAU,EACvC,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,OAAO,IAAA,iCAAc,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACpD,CAAC;IAEkB,aAAa,CAAC,cAAqC;QACpE,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAClE,CAAC;CACF;AA1ED,wDA0EC"}
1
+ {"version":3,"file":"AbstractSnsSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumer.ts"],"names":[],"mappings":";;;AAQA,oDAA2E;AAE3E,oDAA8D;AAC9D,gEAA0D;AA8B1D,MAAsB,sBAIpB,SAAQ,yBAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IAErC,aAAa;IACH,QAAQ,CAAQ;IAC1B,aAAa;IACH,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;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1E,MAAM,IAAA,yBAAY,EAChB,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,CACxB,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM,IAAA,eAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAU,EACvC,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,IAAA,iCAAc,EAAC,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,sBAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAClE,CAAC;CACF;AAhFD,wDAgFC"}
@@ -1,12 +1,12 @@
1
- import type { BaseEventType } from '@message-queue-toolkit/core';
1
+ import type { PublisherBaseEventType } from '@message-queue-toolkit/core';
2
2
  import type { SNSPublisherOptions } from './AbstractSnsPublisher';
3
3
  import { AbstractSnsPublisher } from './AbstractSnsPublisher';
4
4
  import type { SNSDependencies } from './AbstractSnsService';
5
- export type SnsPublisherFactory<T extends AbstractSnsPublisher<M>, M extends BaseEventType> = {
5
+ export type SnsPublisherFactory<T extends AbstractSnsPublisher<M>, M extends PublisherBaseEventType> = {
6
6
  buildPublisher(dependencies: SNSDependencies, options: SNSPublisherOptions<M>): T;
7
7
  };
8
- export declare class CommonSnsPublisher<M extends BaseEventType = BaseEventType> extends AbstractSnsPublisher<M> {
8
+ export declare class CommonSnsPublisher<M extends PublisherBaseEventType = PublisherBaseEventType> extends AbstractSnsPublisher<M> {
9
9
  }
10
- export declare class CommonSnsPublisherFactory<M extends BaseEventType = BaseEventType> implements SnsPublisherFactory<CommonSnsPublisher<M>, M> {
10
+ export declare class CommonSnsPublisherFactory<M extends PublisherBaseEventType = PublisherBaseEventType> implements SnsPublisherFactory<CommonSnsPublisher<M>, M> {
11
11
  buildPublisher(dependencies: SNSDependencies, options: SNSPublisherOptions<M>): CommonSnsPublisher<M>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommonSnsPublisherFactory.js","sourceRoot":"","sources":["../../../lib/sns/CommonSnsPublisherFactory.ts"],"names":[],"mappings":";;;AAGA,iEAA6D;AAO7D,MAAa,kBAEX,SAAQ,2CAAuB;CAAG;AAFpC,gDAEoC;AAEpC,MAAa,yBAAyB;IAGpC,cAAc,CACZ,YAA6B,EAC7B,OAA+B;QAE/B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;CACF;AATD,8DASC"}
1
+ {"version":3,"file":"CommonSnsPublisherFactory.js","sourceRoot":"","sources":["../../../lib/sns/CommonSnsPublisherFactory.ts"],"names":[],"mappings":";;;AAGA,iEAA6D;AAU7D,MAAa,kBAEX,SAAQ,2CAAuB;CAAG;AAFpC,gDAEoC;AAEpC,MAAa,yBAAyB;IAGpC,cAAc,CACZ,YAA6B,EAC7B,OAA+B;QAE/B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;CACF;AATD,8DASC"}
@@ -1,9 +1,9 @@
1
- import type { BaseEventType, CommonEventDefinition, EventRegistry, MetadataFiller } from '@message-queue-toolkit/core';
1
+ import type { CommonEventDefinition, EventRegistry, MessagePublishType, MessageSchemaType, MetadataFiller, PublisherBaseEventType } from '@message-queue-toolkit/core';
2
+ import { AbstractPublisherManager } from '@message-queue-toolkit/core';
2
3
  import type { MessageMetadataType } from '@message-queue-toolkit/core/lib/messages/baseMessageSchemas';
3
- import type { SNSDependencies } from '@message-queue-toolkit/sns';
4
4
  import type z from 'zod';
5
- import type { AbstractSnsPublisher, SNSPublisherOptions } from './AbstractSnsPublisher';
6
- import type { SNSCreationConfig } from './AbstractSnsService';
5
+ import type { AbstractSnsPublisher, SNSMessageOptions, SNSPublisherOptions } from './AbstractSnsPublisher';
6
+ import type { SNSCreationConfig, SNSDependencies, SNSQueueLocatorType } from './AbstractSnsService';
7
7
  import type { SnsPublisherFactory } from './CommonSnsPublisherFactory';
8
8
  export type SnsAwareEventDefinition = {
9
9
  schemaVersion?: string;
@@ -12,7 +12,7 @@ export type SnsAwareEventDefinition = {
12
12
  export type SnsPublisherManagerDependencies<SupportedEvents extends SnsAwareEventDefinition[]> = {
13
13
  eventRegistry: EventRegistry<SupportedEvents>;
14
14
  } & SNSDependencies;
15
- export type SnsPublisherManagerOptions<T extends AbstractSnsPublisher<EventType>, EventType extends BaseEventType, MetadataType> = {
15
+ export type SnsPublisherManagerOptions<T extends AbstractSnsPublisher<EventType>, EventType extends PublisherBaseEventType, MetadataType> = {
16
16
  metadataField?: string;
17
17
  publisherFactory: SnsPublisherFactory<T, EventType>;
18
18
  metadataFiller: MetadataFiller<EventType, MetadataType>;
@@ -20,25 +20,10 @@ export type SnsPublisherManagerOptions<T extends AbstractSnsPublisher<EventType>
20
20
  creationConfig?: Omit<SNSCreationConfig, 'topic'>;
21
21
  };
22
22
  };
23
- export type SnsMessageSchemaType<T extends SnsAwareEventDefinition> = z.infer<T['schema']>;
24
- export type SnsMessagePublishType<T extends SnsAwareEventDefinition> = Pick<z.infer<T['schema']>, 'type' | 'payload'> & {
25
- id?: string;
26
- };
27
- export declare class SnsPublisherManager<T extends AbstractSnsPublisher<z.infer<SupportedEventDefinitions[number]['schema']>>, SupportedEventDefinitions extends SnsAwareEventDefinition[], MetadataType = MessageMetadataType> {
28
- private readonly publisherFactory;
29
- private readonly snsClient;
30
- private readonly logger;
31
- private readonly errorReporter;
32
- private readonly topicToEventMap;
33
- private topicToPublisherMap;
34
- private readonly newPublisherOptions;
35
- private readonly metadataFiller;
36
- private readonly metadataField;
37
- constructor(dependencies: SnsPublisherManagerDependencies<SupportedEventDefinitions>, options: SnsPublisherManagerOptions<T, z.infer<SupportedEventDefinitions[number]['schema']>, MetadataType>);
38
- private registerEvents;
39
- private registerPublishers;
40
- injectPublisher(snsTopic: string, publisher: T): void;
41
- injectEventDefinition(eventDefinition: SnsAwareEventDefinition): void;
42
- publish(snsTopic: string, message: SnsMessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: MetadataType): Promise<SnsMessageSchemaType<SupportedEventDefinitions[number]>>;
43
- handlerSpy(snsTopic: string): import("@message-queue-toolkit/core").PublicHandlerSpy<z.TypeOf<SupportedEventDefinitions[number]["schema"]>>;
23
+ export type SnsMessageSchemaType<T extends SnsAwareEventDefinition> = z.infer<T['publisherSchema']>;
24
+ export declare class SnsPublisherManager<T extends AbstractSnsPublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, SupportedEventDefinitions extends SnsAwareEventDefinition[], MetadataType = MessageMetadataType> extends AbstractPublisherManager<SnsAwareEventDefinition, NonNullable<SupportedEventDefinitions[number]['snsTopic']>, AbstractSnsPublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, SNSDependencies, SNSCreationConfig, SNSQueueLocatorType, SnsMessageSchemaType<SnsAwareEventDefinition>, Omit<SNSPublisherOptions<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>, SupportedEventDefinitions, MetadataType, SNSMessageOptions> {
25
+ constructor(dependencies: SnsPublisherManagerDependencies<SupportedEventDefinitions>, options: SnsPublisherManagerOptions<T, z.infer<SupportedEventDefinitions[number]['publisherSchema']>, MetadataType>);
26
+ publish(topic: NonNullable<SupportedEventDefinitions[number]['snsTopic']>, message: MessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: MetadataType, messageOptions?: SNSMessageOptions): Promise<MessageSchemaType<SupportedEventDefinitions[number]>>;
27
+ protected resolveCreationConfig(eventTarget: NonNullable<SupportedEventDefinitions[number]['snsTopic']>): SNSCreationConfig;
28
+ protected resolveEventTarget(event: SnsAwareEventDefinition): NonNullable<SupportedEventDefinitions[number]['snsTopic']> | undefined;
44
29
  }
@@ -1,106 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SnsPublisherManager = void 0;
4
+ const core_1 = require("@message-queue-toolkit/core");
4
5
  const CommonSnsPublisherFactory_1 = require("./CommonSnsPublisherFactory");
5
- class SnsPublisherManager {
6
- publisherFactory;
7
- snsClient;
8
- logger;
9
- errorReporter;
10
- topicToEventMap = {};
11
- topicToPublisherMap = {};
12
- newPublisherOptions;
13
- metadataFiller;
14
- metadataField;
6
+ class SnsPublisherManager extends core_1.AbstractPublisherManager {
15
7
  constructor(dependencies, options) {
16
- this.snsClient = dependencies.snsClient;
17
- this.errorReporter = dependencies.errorReporter;
18
- this.logger = dependencies.logger;
19
- this.publisherFactory = options.publisherFactory ?? new CommonSnsPublisherFactory_1.CommonSnsPublisherFactory();
20
- this.newPublisherOptions = options.newPublisherOptions;
21
- this.metadataFiller = options.metadataFiller;
22
- this.metadataField = options.metadataField ?? 'metadata';
23
- this.registerEvents(dependencies.eventRegistry.supportedEvents);
24
- this.registerPublishers();
8
+ super({
9
+ isAsync: true,
10
+ eventRegistry: dependencies.eventRegistry,
11
+ metadataField: options.metadataField ?? 'metadata',
12
+ metadataFiller: options.metadataFiller,
13
+ newPublisherOptions: options.newPublisherOptions,
14
+ publisherDependencies: {
15
+ snsClient: dependencies.snsClient,
16
+ logger: dependencies.logger,
17
+ errorReporter: dependencies.errorReporter,
18
+ },
19
+ publisherFactory: options.publisherFactory ?? new CommonSnsPublisherFactory_1.CommonSnsPublisherFactory(),
20
+ });
25
21
  }
26
- registerEvents(events) {
27
- for (const supportedEvent of events) {
28
- if (!supportedEvent.snsTopic) {
29
- continue;
30
- }
31
- if (!this.topicToEventMap[supportedEvent.snsTopic]) {
32
- this.topicToEventMap[supportedEvent.snsTopic] = [];
33
- }
34
- this.topicToEventMap[supportedEvent.snsTopic].push(supportedEvent);
35
- }
22
+ publish(topic, message, precedingEventMetadata, messageOptions) {
23
+ // Purpose of this override is to provide better name for the first argument
24
+ // For SNS it is going to be topic
25
+ return super.publish(topic, message, precedingEventMetadata, messageOptions);
36
26
  }
37
- registerPublishers() {
38
- const dependencies = {
39
- snsClient: this.snsClient,
40
- logger: this.logger,
41
- errorReporter: this.errorReporter,
27
+ resolveCreationConfig(eventTarget) {
28
+ return {
29
+ ...this.newPublisherOptions,
30
+ topic: {
31
+ Name: eventTarget,
32
+ },
42
33
  };
43
- for (const snsTopic in this.topicToEventMap) {
44
- if (this.topicToPublisherMap[snsTopic]) {
45
- continue;
46
- }
47
- const messageSchemas = this.topicToEventMap[snsTopic].map((entry) => {
48
- return entry.schema;
49
- });
50
- const creationConfig = {
51
- ...this.newPublisherOptions,
52
- topic: {
53
- Name: snsTopic,
54
- },
55
- };
56
- this.topicToPublisherMap[snsTopic] = this.publisherFactory.buildPublisher(dependencies, {
57
- ...this.newPublisherOptions,
58
- creationConfig,
59
- messageSchemas,
60
- });
61
- }
62
34
  }
63
- injectPublisher(snsTopic, publisher) {
64
- this.topicToPublisherMap[snsTopic] = publisher;
65
- }
66
- injectEventDefinition(eventDefinition) {
67
- if (!eventDefinition.snsTopic) {
68
- throw new Error('snsTopic is mandatory');
69
- }
70
- if (!this.topicToEventMap[eventDefinition.snsTopic]) {
71
- this.topicToEventMap[eventDefinition.snsTopic] = [];
72
- }
73
- this.topicToEventMap[eventDefinition.snsTopic].push(eventDefinition);
74
- }
75
- async publish(snsTopic, message, precedingEventMetadata) {
76
- const publisher = this.topicToPublisherMap[snsTopic];
77
- if (!publisher) {
78
- throw new Error(`No publisher for topic ${snsTopic}`);
79
- }
80
- // ToDo optimize the lookup
81
- const messageDefinition = this.topicToEventMap[snsTopic].find((entry) => entry.schema.shape.type.value === message.type);
82
- // @ts-ignore
83
- const resolvedMetadata = message[this.metadataField]
84
- ? // @ts-ignore
85
- message[this.metadataField]
86
- : // @ts-ignore
87
- this.metadataFiller.produceMetadata(message, messageDefinition, precedingEventMetadata);
88
- const resolvedMessage = {
89
- id: message.id ? message.id : this.metadataFiller.produceId(),
90
- timestamp: this.metadataFiller.produceTimestamp(),
91
- ...message,
92
- // @ts-ignore
93
- metadata: resolvedMetadata,
94
- };
95
- await publisher.publish(resolvedMessage);
96
- return resolvedMessage;
97
- }
98
- handlerSpy(snsTopic) {
99
- const publisher = this.topicToPublisherMap[snsTopic];
100
- if (!publisher) {
101
- throw new Error(`No publisher for topic ${snsTopic}`);
102
- }
103
- return publisher.handlerSpy;
35
+ resolveEventTarget(event) {
36
+ return event.snsTopic;
104
37
  }
105
38
  }
106
39
  exports.SnsPublisherManager = SnsPublisherManager;
@@ -1 +1 @@
1
- {"version":3,"file":"SnsPublisherManager.js","sourceRoot":"","sources":["../../../lib/sns/SnsPublisherManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SnsPublisherManager.js","sourceRoot":"","sources":["../../../lib/sns/SnsPublisherManager.ts"],"names":[],"mappings":";;;AAQA,sDAAsE;AAWtE,2EAAuE;AA6BvE,MAAa,mBAIX,SAAQ,+BAeT;IACC,YACE,YAAwE,EACxE,OAIC;QAED,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,UAAU;YAClD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,qBAAqB,EAAE;gBACrB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,aAAa,EAAE,YAAY,CAAC,aAAa;aAC1C;YACD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI,qDAAyB,EAAE;SAC9E,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CACL,KAAiE,EACjE,OAA8D,EAC9D,sBAAqC,EACrC,cAAkC;QAElC,4EAA4E;QAC5E,kCAAkC;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAA;IAC9E,CAAC;IAEkB,qBAAqB,CACtC,WAAuE;QAEvE,OAAO;YACL,GAAG,IAAI,CAAC,mBAAmB;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,WAAW;aAClB;SACF,CAAA;IACH,CAAC;IAEkB,kBAAkB,CACnC,KAA8B;QAE9B,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;CACF;AAtED,kDAsEC"}
@@ -1,5 +1,5 @@
1
1
  import type { Either, ErrorResolver } from '@lokalise/node-core';
2
- import type { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
2
+ import type { MessageInvalidFormatError, MessageValidationError, ParseMessageResult } from '@message-queue-toolkit/core';
3
3
  import type { SQSMessage } from '@message-queue-toolkit/sqs';
4
4
  import type { ZodType } from 'zod';
5
- export declare const deserializeSNSMessage: <T extends object>(message: SQSMessage, type: ZodType<T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, T>;
5
+ export declare const deserializeSNSMessage: <T extends object>(message: SQSMessage, type: ZodType<T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, ParseMessageResult<T>>;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deserializeSNSMessage = void 0;
4
+ const core_1 = require("@message-queue-toolkit/core");
4
5
  const MessageTypes_1 = require("../types/MessageTypes");
5
6
  const deserializeSNSMessage = (message, type, errorProcessor) => {
6
7
  try {
7
8
  const snsMessage = MessageTypes_1.SNS_MESSAGE_BODY_SCHEMA.parse(JSON.parse(message.Body));
8
- return {
9
- result: type.parse(JSON.parse(snsMessage.Message)),
10
- };
9
+ return (0, core_1.parseMessage)(JSON.parse(snsMessage.Message), type, errorProcessor);
11
10
  }
12
11
  catch (exception) {
13
12
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"snsMessageDeserializer.js","sourceRoot":"","sources":["../../../lib/utils/snsMessageDeserializer.ts"],"names":[],"mappings":";;;AAKA,wDAA+D;AAExD,MAAM,qBAAqB,GAAG,CACnC,OAAmB,EACnB,IAAgB,EAChB,cAA6B,EACkC,EAAE;IACjE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,sCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACnD,CAAA;IACH,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC;SAC9C,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAfY,QAAA,qBAAqB,yBAejC"}
1
+ {"version":3,"file":"snsMessageDeserializer.js","sourceRoot":"","sources":["../../../lib/utils/snsMessageDeserializer.ts"],"names":[],"mappings":";;;AAMA,sDAA0D;AAI1D,wDAA+D;AAExD,MAAM,qBAAqB,GAAG,CACnC,OAAmB,EACnB,IAAgB,EAChB,cAA6B,EACsD,EAAE;IACrF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,sCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAE1E,OAAO,IAAA,mBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;IAC3E,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC;SAC9C,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAdY,QAAA,qBAAqB,yBAcjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/sns",
3
- "version": "14.0.0",
3
+ "version": "15.0.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "SNS adapter for message-queue-toolkit",
@@ -18,7 +18,7 @@
18
18
  "test": "vitest",
19
19
  "test:coverage": "npm test -- --coverage",
20
20
  "test:ci": "npm run docker:start:dev && npm run test:coverage && npm run docker:stop:dev",
21
- "lint": "eslint . --ext .ts",
21
+ "lint": "eslint . --ext .ts && tsc --noEmit",
22
22
  "lint:fix": "prettier --write . && eslint . --ext .ts --fix",
23
23
  "docker:start:dev": "docker compose up -d",
24
24
  "docker:stop:dev": "docker compose down",
@@ -27,13 +27,13 @@
27
27
  "dependencies": {
28
28
  "@lokalise/node-core": "^9.17.0",
29
29
  "sqs-consumer": "^10.2.0",
30
- "zod": "^3.23.6"
30
+ "zod": "^3.23.8"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@aws-sdk/client-sns": "^3.556.0",
34
34
  "@aws-sdk/client-sqs": "^3.556.0",
35
- "@message-queue-toolkit/core": "^12.0.0",
36
- "@message-queue-toolkit/sqs": "^14.0.0"
35
+ "@message-queue-toolkit/core": "^13.0.0",
36
+ "@message-queue-toolkit/sqs": "^15.0.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@aws-sdk/client-sns": "^3.569.0",