@message-queue-toolkit/sqs 10.0.1 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -3,11 +3,12 @@ export { AbstractSqsConsumer } from './lib/sqs/AbstractSqsConsumer';
3
3
  export type { SQSCreationConfig, ExtraSQSCreationParams } from './lib/sqs/AbstractSqsConsumer';
4
4
  export { AbstractSqsConsumerMultiSchema } from './lib/sqs/AbstractSqsConsumerMultiSchema';
5
5
  export { AbstractSqsConsumerMonoSchema } from './lib/sqs/AbstractSqsConsumerMonoSchema';
6
+ export type { CommonSQSConsumerOptionsMono } from './lib/sqs/AbstractSqsConsumerMonoSchema';
6
7
  export type { NewSQSConsumerOptions, ExistingSQSConsumerOptions, } from './lib/sqs/AbstractSqsConsumer';
7
8
  export { SqsConsumerErrorResolver } from './lib/errors/SqsConsumerErrorResolver';
8
9
  export { AbstractSqsPublisherMonoSchema } from './lib/sqs/AbstractSqsPublisherMonoSchema';
9
10
  export { AbstractSqsPublisherMultiSchema } from './lib/sqs/AbstractSqsPublisherMultiSchema';
10
- export type { SQSMessageOptions } from './lib/sqs/AbstractSqsPublisherMonoSchema';
11
+ export type { SQSMessageOptions } from './lib/sqs/AbstractSqsPublisherMultiSchema';
11
12
  export { assertQueue, deleteQueue, getQueueAttributes, getQueueUrl } from './lib/utils/sqsUtils';
12
13
  export { deleteSqs, updateQueueAttributes } from './lib/utils/sqsInitter';
13
14
  export { deserializeSQSMessage } from './lib/utils/sqsMessageDeserializer';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,yFAAuF;AAA9E,8IAAA,6BAA6B,OAAA;AAMtC,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,6FAA2F;AAAlF,kJAAA,+BAA+B,OAAA;AAGxC,iDAAgG;AAAvF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAClE,qDAAyE;AAAhE,uGAAA,SAAS,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AACzC,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA;AAC9B,mEAIsC;AAHpC,uIAAA,kCAAkC,OAAA;AAClC,2HAAA,sBAAsB,OAAA;AACtB,2HAAA,sBAAsB,OAAA;AAIxB,mFAAiF;AAAxE,sIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,yFAAuF;AAA9E,8IAAA,6BAA6B,OAAA;AAOtC,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,6FAA2F;AAAlF,kJAAA,+BAA+B,OAAA;AAGxC,iDAAgG;AAAvF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAClE,qDAAyE;AAAhE,uGAAA,SAAS,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AACzC,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA;AAC9B,mEAIsC;AAHpC,uIAAA,kCAAkC,OAAA;AAClC,2HAAA,sBAAsB,OAAA;AACtB,2HAAA,sBAAsB,OAAA;AAIxB,mFAAiF;AAAxE,sIAAA,yBAAyB,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Either, ErrorResolver } from '@lokalise/node-core';
2
- import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions, BarrierResult } from '@message-queue-toolkit/core';
2
+ import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions } from '@message-queue-toolkit/core';
3
3
  import { Consumer } from 'sqs-consumer';
4
4
  import type { ConsumerOptions } from 'sqs-consumer/src/types';
5
5
  import type { SQSMessage } from '../types/MessageTypes';
@@ -19,15 +19,13 @@ export type NewSQSConsumerOptions<CreationConfigType extends SQSCreationConfig>
19
19
  export type ExistingSQSConsumerOptions<QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptions<QueueLocatorType> & {
20
20
  consumerOverrides?: Partial<ConsumerOptions>;
21
21
  };
22
- export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType> = NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType>, BarrierOutput = unknown> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies> implements QueueConsumer {
22
+ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType> = NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType>, ExecutionContext = unknown, PrehandlerOutput = unknown, BarrierOutput = unknown> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies, ExecutionContext, PrehandlerOutput, BarrierOutput> implements QueueConsumer {
23
23
  private readonly transactionObservabilityManager?;
24
24
  protected readonly errorResolver: ErrorResolver;
25
25
  protected consumer: Consumer;
26
26
  private readonly consumerOptionsOverride;
27
27
  protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
28
28
  private internalProcessMessage;
29
- protected abstract preHandlerBarrier(message: MessagePayloadType, messageType: string): Promise<BarrierResult<BarrierOutput>>;
30
- abstract processMessage(message: MessagePayloadType, messageType: string, barrierOutput: BarrierOutput): Promise<Either<'retryLater', 'success'>>;
31
29
  private tryToExtractId;
32
30
  private deserializeMessage;
33
31
  private failProcessing;
@@ -21,9 +21,13 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
21
21
  this.consumerOptionsOverride = options.consumerOverrides ?? {};
22
22
  }
23
23
  async internalProcessMessage(message, messageType) {
24
- const barrierResult = await this.preHandlerBarrier(message, messageType);
24
+ const prehandlerOutput = await this.processPrehandlers(message, messageType);
25
+ const barrierResult = await this.preHandlerBarrier(message, messageType, prehandlerOutput);
25
26
  if (barrierResult.isPassing) {
26
- return this.processMessage(message, messageType, barrierResult.output);
27
+ return this.processMessage(message, messageType, {
28
+ prehandlerOutput,
29
+ barrierOutput: barrierResult.output,
30
+ });
27
31
  }
28
32
  return { error: 'retryLater' };
29
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,25 @@
1
1
  import type { Either } from '@lokalise/node-core';
2
- import type { MonoSchemaQueueOptions, QueueConsumer as QueueConsumer, BarrierResult } from '@message-queue-toolkit/core';
2
+ import type { MonoSchemaQueueOptions, QueueConsumer as QueueConsumer, BarrierResult, Prehandler, PrehandlingOutputs } from '@message-queue-toolkit/core';
3
3
  import type { ZodSchema } from 'zod';
4
4
  import type { ExistingSQSConsumerOptions, NewSQSConsumerOptions, SQSCreationConfig } from './AbstractSqsConsumer';
5
5
  import { AbstractSqsConsumer } from './AbstractSqsConsumer';
6
6
  import type { SQSConsumerDependencies, SQSQueueLocatorType } from './AbstractSqsService';
7
- export type NewSQSConsumerOptionsMono<MessagePayloadType extends object, CreationConfigType extends SQSCreationConfig> = NewSQSConsumerOptions<CreationConfigType> & MonoSchemaQueueOptions<MessagePayloadType>;
8
- export type ExistingSQSConsumerOptionsMono<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingSQSConsumerOptions<QueueLocatorType> & MonoSchemaQueueOptions<MessagePayloadType>;
9
- export declare abstract class AbstractSqsConsumerMonoSchema<MessagePayloadType extends object, BarrierOutput = undefined, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMono<MessagePayloadType, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, QueueLocatorType> = NewSQSConsumerOptionsMono<MessagePayloadType, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, QueueLocatorType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, BarrierOutput> implements QueueConsumer {
7
+ export type CommonSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput> = {
8
+ prehandlers?: Prehandler<MessagePayloadType, ExecutionContext, PrehandlerOutput>[];
9
+ };
10
+ export type NewSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig> = NewSQSConsumerOptions<CreationConfigType> & MonoSchemaQueueOptions<MessagePayloadType> & CommonSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
11
+ export type ExistingSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingSQSConsumerOptions<QueueLocatorType> & MonoSchemaQueueOptions<MessagePayloadType> & CommonSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
12
+ export declare abstract class AbstractSqsConsumerMonoSchema<MessagePayloadType extends object, PrehandlerOutput = undefined, ExecutionContext = undefined, BarrierOutput = undefined, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, QueueLocatorType> = NewSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, QueueLocatorType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, ExecutionContext, PrehandlerOutput, BarrierOutput> implements QueueConsumer {
10
13
  private readonly messageSchema;
11
14
  private readonly schemaEither;
15
+ private readonly prehandlers?;
12
16
  protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
13
17
  /**
14
18
  * Override to implement barrier pattern
15
19
  */
16
20
  protected preHandlerBarrier(_message: MessagePayloadType, _messageType: string): Promise<BarrierResult<BarrierOutput>>;
17
- abstract processMessage(message: MessagePayloadType, messageType: string, barrierOutput: BarrierOutput): Promise<Either<'retryLater', 'success'>>;
21
+ abstract processMessage(message: MessagePayloadType, messageType: string, prehandlingOutputs: PrehandlingOutputs<PrehandlerOutput, BarrierOutput>): Promise<Either<'retryLater', 'success'>>;
22
+ protected processPrehandlers(message: MessagePayloadType, _messageType: string): Promise<PrehandlerOutput>;
23
+ protected resolveNextFunction(prehandlers: Prehandler<MessagePayloadType, ExecutionContext, PrehandlerOutput>[], message: MessagePayloadType, index: number, prehandlerOutput: PrehandlerOutput, resolve: (value: PrehandlerOutput | PromiseLike<PrehandlerOutput>) => void, reject: (err: Error) => void): (prehandlerResult: import("@message-queue-toolkit/core/dist/lib/queues/HandlerContainer").PrehandlerResult) => void;
18
24
  protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
19
25
  }
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractSqsConsumerMonoSchema = void 0;
4
+ const zod_1 = require("zod");
4
5
  const AbstractSqsConsumer_1 = require("./AbstractSqsConsumer");
5
6
  const DEFAULT_BARRIER_RESULT = {
6
7
  isPassing: true,
7
- output: undefined,
8
+ output: zod_1.undefined,
8
9
  };
9
10
  class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsConsumer {
10
11
  messageSchema;
11
12
  schemaEither;
13
+ prehandlers;
12
14
  constructor(dependencies, options) {
13
15
  super(dependencies, options);
16
+ this.prehandlers = options.prehandlers;
14
17
  this.messageSchema = options.messageSchema;
15
18
  this.schemaEither = {
16
19
  result: this.messageSchema,
@@ -24,6 +27,13 @@ class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsCon
24
27
  // @ts-ignore
25
28
  return Promise.resolve(DEFAULT_BARRIER_RESULT);
26
29
  }
30
+ processPrehandlers(message, _messageType) {
31
+ return this.processPrehandlersInternal(this.prehandlers, message);
32
+ }
33
+ // eslint-disable-next-line max-params
34
+ resolveNextFunction(prehandlers, message, index, prehandlerOutput, resolve, reject) {
35
+ return this.resolveNextPreHandlerFunctionInternal(prehandlers, this, message, index, prehandlerOutput, resolve, reject);
36
+ }
27
37
  resolveSchema() {
28
38
  return this.schemaEither;
29
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AAaA,+DAA2D;AAG3D,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,SAAS;CACT,CAAA;AAYV,MAAsB,6BAWpB,SAAQ,yCAMP;IAGgB,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAE3E,YAAsB,YAAqC,EAAE,OAA4B;QACvF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB;IACF,iBAAiB,CAAC,QAA4B,EAAE,YAAoB;QACrF,aAAa;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsD,CAAC,CAAA;IAChF,CAAC;IASS,aAAa;QACrB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AAnDD,sEAmDC"}
1
+ {"version":3,"file":"AbstractSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AASA,6BAA+B;AAO/B,+DAA2D;AAG3D,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,eAAS;CACT,CAAA;AA4BV,MAAsB,6BAiCpB,SAAQ,yCAQP;IAGgB,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAC1D,WAAW,CAIzB;IAEH,YAAsB,YAAqC,EAAE,OAA4B;QACvF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB;IACF,iBAAiB,CAAC,QAA4B,EAAE,YAAoB;QACrF,aAAa;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsD,CAAC,CAAA;IAChF,CAAC;IASkB,kBAAkB,CAAC,OAA2B,EAAE,YAAoB;QACrF,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,sCAAsC;IACnB,mBAAmB,CACpC,WAAiF,EACjF,OAA2B,EAC3B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,IAAI,CAAC,qCAAqC,CAC/C,WAAW,EACX,IAAmC,EACnC,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;IACH,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AAzGD,sEAyGC"}
@@ -1,23 +1,25 @@
1
1
  import type { Either } from '@lokalise/node-core';
2
2
  import { HandlerContainer, MessageSchemaContainer } from '@message-queue-toolkit/core';
3
- import type { ExistingQueueOptionsMultiSchema, NewQueueOptionsMultiSchema, BarrierResult } from '@message-queue-toolkit/core';
3
+ import type { ExistingQueueOptionsMultiSchema, NewQueueOptionsMultiSchema, BarrierResult, Prehandler, PrehandlingOutputs } from '@message-queue-toolkit/core';
4
4
  import type { ConsumerOptions } from 'sqs-consumer/src/types';
5
5
  import type { SQSCreationConfig } from './AbstractSqsConsumer';
6
6
  import { AbstractSqsConsumer } from './AbstractSqsConsumer';
7
7
  import type { SQSConsumerDependencies, SQSQueueLocatorType } from './AbstractSqsService';
8
- export type NewSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, CreationConfigType extends SQSCreationConfig> = NewQueueOptionsMultiSchema<MessagePayloadSchemas, CreationConfigType, ExecutionContext> & {
8
+ export type NewSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig> = NewQueueOptionsMultiSchema<MessagePayloadSchemas, CreationConfigType, ExecutionContext, PrehandlerOutput> & {
9
9
  consumerOverrides?: Partial<ConsumerOptions>;
10
10
  };
11
- export type ExistingSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptionsMultiSchema<MessagePayloadSchemas, QueueLocatorType, ExecutionContext> & {
11
+ export type ExistingSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptionsMultiSchema<MessagePayloadSchemas, QueueLocatorType, ExecutionContext, PrehandlerOutput> & {
12
12
  consumerOverrides?: Partial<ConsumerOptions>;
13
13
  };
14
- export declare abstract class AbstractSqsConsumerMultiSchema<MessagePayloadType extends object, ExecutionContext, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, CreationConfigType> | ExistingSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, QueueLocatorType> = NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, CreationConfigType> | ExistingSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, QueueLocatorType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType> {
14
+ export declare abstract class AbstractSqsConsumerMultiSchema<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> = NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, ExecutionContext, PrehandlerOutput> {
15
15
  messageSchemaContainer: MessageSchemaContainer<MessagePayloadType>;
16
- handlerContainer: HandlerContainer<MessagePayloadType, ExecutionContext>;
16
+ handlerContainer: HandlerContainer<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
17
17
  protected readonly executionContext: ExecutionContext;
18
18
  constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType, executionContext: ExecutionContext);
19
19
  protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
20
- processMessage(message: MessagePayloadType, messageType: string, barrierOutput: unknown): Promise<Either<'retryLater', 'success'>>;
20
+ processMessage(message: MessagePayloadType, messageType: string, prehandlingOutputs: PrehandlingOutputs<PrehandlerOutput, unknown>): Promise<Either<'retryLater', 'success'>>;
21
+ protected processPrehandlers(message: MessagePayloadType, messageType: string): Promise<PrehandlerOutput>;
22
+ protected resolveNextFunction(prehandlers: Prehandler<MessagePayloadType, ExecutionContext, unknown>[], message: MessagePayloadType, index: number, prehandlerOutput: PrehandlerOutput, resolve: (value: PrehandlerOutput | PromiseLike<PrehandlerOutput>) => void, reject: (err: Error) => void): (prehandlerResult: import("@message-queue-toolkit/core/dist/lib/queues/HandlerContainer").PrehandlerResult) => void;
21
23
  protected resolveMessageLog(message: MessagePayloadType, messageType: string): unknown;
22
- protected preHandlerBarrier<BarrierOutput>(message: MessagePayloadType, messageType: string): Promise<BarrierResult<BarrierOutput>>;
24
+ protected preHandlerBarrier<BarrierOutput>(message: MessagePayloadType, messageType: string, prehandlerOutput: PrehandlerOutput): Promise<BarrierResult<BarrierOutput>>;
23
25
  }
@@ -23,19 +23,28 @@ class AbstractSqsConsumerMultiSchema extends AbstractSqsConsumer_1.AbstractSqsCo
23
23
  resolveSchema(message) {
24
24
  return this.messageSchemaContainer.resolveSchema(message);
25
25
  }
26
- async processMessage(message, messageType, barrierOutput) {
26
+ async processMessage(message, messageType, prehandlingOutputs) {
27
27
  const handler = this.handlerContainer.resolveHandler(messageType);
28
- return handler.handler(message, this.executionContext, barrierOutput);
28
+ return handler.handler(message, this.executionContext, prehandlingOutputs);
29
+ }
30
+ processPrehandlers(message, messageType) {
31
+ const handlerConfig = this.handlerContainer.resolveHandler(messageType);
32
+ return this.processPrehandlersInternal(handlerConfig.prehandlers, message);
33
+ }
34
+ // eslint-disable-next-line max-params
35
+ resolveNextFunction(prehandlers, message, index, prehandlerOutput, resolve, reject) {
36
+ return this.resolveNextPreHandlerFunctionInternal(prehandlers, this.executionContext, message, index, prehandlerOutput, resolve, reject);
29
37
  }
30
38
  resolveMessageLog(message, messageType) {
31
39
  const handler = this.handlerContainer.resolveHandler(messageType);
32
40
  return handler.messageLogFormatter(message);
33
41
  }
34
- async preHandlerBarrier(message, messageType) {
42
+ async preHandlerBarrier(message, messageType, prehandlerOutput) {
35
43
  const handler = this.handlerContainer.resolveHandler(messageType);
36
44
  // @ts-ignore
37
45
  return handler.preHandlerBarrier
38
- ? await handler.preHandlerBarrier(message, this.executionContext)
46
+ ? // @ts-ignore
47
+ await handler.preHandlerBarrier(message, this.executionContext, prehandlerOutput)
39
48
  : {
40
49
  isPassing: true,
41
50
  output: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AACA,sDAAsF;AAStF,+DAA2D;AAmB3D,MAAsB,8BAcpB,SAAQ,yCAKT;IACC,sBAAsB,CAA4C;IAClE,gBAAgB,CAAwD;IACrD,gBAAgB,CAAkB;IAErD,YACE,YAAqC,EACrC,OAA4B,EAC5B,gBAAkC;QAElC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEpE,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAgB,CAAuC;YACjF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,OAAO,CAAC,QAAQ;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAEkB,aAAa,CAAC,OAA2B;QAC1D,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAEe,KAAK,CAAC,cAAc,CAClC,OAA2B,EAC3B,WAAmB,EACnB,aAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IACvE,CAAC;IAEkB,iBAAiB,CAAC,OAA2B,EAAE,WAAmB;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CACxC,OAA2B,EAC3B,WAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAgB,WAAW,CAAC,CAAA;QAChF,aAAa;QACb,OAAO,OAAO,CAAC,iBAAiB;YAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACjE,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;IACP,CAAC;CACF;AA3ED,wEA2EC"}
1
+ {"version":3,"file":"AbstractSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AACA,sDAAsF;AAWtF,+DAA2D;AA+B3D,MAAsB,8BAiBpB,SAAQ,yCAOT;IACC,sBAAsB,CAA4C;IAClE,gBAAgB,CAA0E;IACvE,gBAAgB,CAAkB;IAErD,YACE,YAAqC,EACrC,OAA4B,EAC5B,gBAAkC;QAElC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEpE,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAgB,CAI1C;YACA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,OAAO,CAAC,QAAQ;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAEkB,aAAa,CAAC,OAA2B;QAC1D,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAEe,KAAK,CAAC,cAAc,CAClC,OAA2B,EAC3B,WAAmB,EACnB,kBAAiE;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAEjE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAA;IAC5E,CAAC;IAEkB,kBAAkB,CAAC,OAA2B,EAAE,WAAmB;QACpF,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAEvE,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,sCAAsC;IACnB,mBAAmB,CACpC,WAAwE,EACxE,OAA2B,EAC3B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,IAAI,CAAC,qCAAqC,CAC/C,WAAW,EACX,IAAI,CAAC,gBAAgB,EACrB,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;IACH,CAAC;IAEkB,iBAAiB,CAAC,OAA2B,EAAE,WAAmB;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CACxC,OAA2B,EAC3B,WAAmB,EACnB,gBAAkC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAClD,WAAW,CACZ,CAAA;QACD,aAAa;QACb,OAAO,OAAO,CAAC,iBAAiB;YAC9B,CAAC,CAAC,aAAa;gBACb,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;YACnF,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;IACP,CAAC;CACF;AAnHD,wEAmHC"}
@@ -1,18 +1,19 @@
1
1
  import type { Either } from '@lokalise/node-core';
2
- import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, MonoSchemaQueueOptions, NewQueueOptions } from '@message-queue-toolkit/core';
2
+ import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, MonoSchemaQueueOptions, NewQueueOptions, BarrierResult } from '@message-queue-toolkit/core';
3
3
  import type { ZodSchema } from 'zod';
4
4
  import type { SQSCreationConfig } from './AbstractSqsConsumer';
5
+ import type { SQSMessageOptions } from './AbstractSqsPublisherMultiSchema';
5
6
  import type { SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService';
6
7
  import { AbstractSqsService } from './AbstractSqsService';
7
- export type SQSMessageOptions = {
8
- MessageGroupId?: string;
9
- MessageDeduplicationId?: string;
10
- };
11
8
  export declare abstract class AbstractSqsPublisherMonoSchema<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
12
9
  private readonly messageSchema;
13
10
  private readonly schemaEither;
14
11
  constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MonoSchemaQueueOptions<MessagePayloadType>);
15
12
  publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
13
+ protected resolveNextFunction(): () => void;
16
14
  protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
15
+ protected processPrehandlers(): Promise<unknown>;
16
+ protected preHandlerBarrier(): Promise<BarrierResult<unknown>>;
17
+ processMessage(): Promise<Either<'retryLater', 'success'>>;
17
18
  protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
18
19
  }
@@ -16,9 +16,21 @@ class AbstractSqsPublisherMonoSchema extends AbstractSqsService_1.AbstractSqsSer
16
16
  return this.internalPublish(message, this.messageSchema, options);
17
17
  }
18
18
  /* c8 ignore start */
19
+ resolveNextFunction() {
20
+ throw new Error('Not implemented for publisher');
21
+ }
19
22
  resolveMessage() {
20
23
  throw new Error('Not implemented for publisher');
21
24
  }
25
+ processPrehandlers() {
26
+ throw new Error('Not implemented for publisher');
27
+ }
28
+ preHandlerBarrier() {
29
+ throw new Error('Not implemented for publisher');
30
+ }
31
+ processMessage() {
32
+ throw new Error('Not implemented for publisher');
33
+ }
22
34
  resolveSchema() {
23
35
  return this.schemaEither;
24
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsPublisherMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMonoSchema.ts"],"names":[],"mappings":";;;AAaA,6DAAyD;AAOzD,MAAsB,8BACpB,SAAQ,uCAAsC;IAG7B,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAE3E,YACE,YAA6B,EAC7B,OAC4C;QAE5C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAE1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,qBAAqB;IACX,cAAc;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,aAAa;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CAEF;AAjCD,wEAiCC"}
1
+ {"version":3,"file":"AbstractSqsPublisherMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMonoSchema.ts"],"names":[],"mappings":";;;AAeA,6DAAyD;AAEzD,MAAsB,8BACpB,SAAQ,uCAAsC;IAG7B,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAE3E,YACE,YAA6B,EAC7B,OAC4C;QAE5C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAE1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,qBAAqB;IACF,mBAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,cAAc;QAI/B,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,aAAa;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CAEF;AApDD,wEAoDC"}
@@ -1,5 +1,5 @@
1
1
  import type { Either } from '@lokalise/node-core';
2
- import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, NewQueueOptions, MultiSchemaPublisherOptions } from '@message-queue-toolkit/core';
2
+ import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, NewQueueOptions, MultiSchemaPublisherOptions, BarrierResult } from '@message-queue-toolkit/core';
3
3
  import type { ZodSchema } from 'zod';
4
4
  import type { SQSMessage } from '../types/MessageTypes';
5
5
  import type { SQSCreationConfig } from './AbstractSqsConsumer';
@@ -13,6 +13,10 @@ export declare abstract class AbstractSqsPublisherMultiSchema<MessagePayloadType
13
13
  private readonly messageSchemaContainer;
14
14
  constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MultiSchemaPublisherOptions<MessagePayloadType>);
15
15
  publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
16
+ protected resolveNextFunction(): () => void;
16
17
  protected resolveMessage(_message: SQSMessage): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
18
+ protected processPrehandlers(): Promise<unknown>;
19
+ protected preHandlerBarrier(): Promise<BarrierResult<unknown>>;
20
+ processMessage(): Promise<Either<'retryLater', 'success'>>;
17
21
  protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
18
22
  }
@@ -21,9 +21,21 @@ class AbstractSqsPublisherMultiSchema extends AbstractSqsService_1.AbstractSqsSe
21
21
  return this.internalPublish(message, messageSchemaResult.result, options);
22
22
  }
23
23
  /* c8 ignore start */
24
+ resolveNextFunction() {
25
+ throw new Error('Not implemented for publisher');
26
+ }
24
27
  resolveMessage(_message) {
25
28
  throw new Error('Not implemented for publisher');
26
29
  }
30
+ processPrehandlers() {
31
+ throw new Error('Not implemented for publisher');
32
+ }
33
+ preHandlerBarrier() {
34
+ throw new Error('Not implemented for publisher');
35
+ }
36
+ processMessage() {
37
+ throw new Error('Not implemented for publisher');
38
+ }
27
39
  /* c8 ignore stop */
28
40
  resolveSchema(message) {
29
41
  return this.messageSchemaContainer.resolveSchema(message);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AASA,sDAAoE;AAMpE,6DAAyD;AAQzD,MAAsB,+BACpB,SAAQ,uCAAsC;IAG7B,sBAAsB,CAA4C;IAEnF,YACE,YAA6B,EAC7B,OACiD;QAEjD,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;IACJ,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,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,CAAC;IAED,qBAAqB;IACX,cAAc,CACtB,QAAoB;QAEpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,oBAAoB;IAED,aAAa,CAC9B,OAA2B;QAE3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF;AA1CD,0EA0CC"}
1
+ {"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AAUA,sDAAoE;AAMpE,6DAAyD;AAQzD,MAAsB,+BACpB,SAAQ,uCAAsC;IAG7B,sBAAsB,CAA4C;IAEnF,YACE,YAA6B,EAC7B,OACiD;QAEjD,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;IACJ,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,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,CAAC;IAED,qBAAqB;IACF,mBAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAES,cAAc,CACtB,QAAoB;QAEpB,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;IACD,oBAAoB;IAED,aAAa,CAC9B,OAA2B;QAE3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF;AA1DD,0EA0DC"}
@@ -4,7 +4,7 @@ import { AbstractQueueService } from '@message-queue-toolkit/core';
4
4
  import type { ZodSchema } from 'zod';
5
5
  import type { SQSMessage } from '../types/MessageTypes';
6
6
  import type { SQSCreationConfig } from './AbstractSqsConsumer';
7
- import type { SQSMessageOptions } from './AbstractSqsPublisherMonoSchema';
7
+ import type { SQSMessageOptions } from './AbstractSqsPublisherMultiSchema';
8
8
  export type SQSDependencies = QueueDependencies & {
9
9
  sqsClient: SQSClient;
10
10
  };
@@ -13,11 +13,13 @@ export type SQSQueueConfig = CreateQueueRequest;
13
13
  export type SQSQueueLocatorType = {
14
14
  queueUrl: string;
15
15
  };
16
- export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType> = NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType> {
16
+ export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType> = NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies, PrehandlerOutput = unknown, ExecutionContext = unknown, BarrierOutput = unknown> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType, PrehandlerOutput, ExecutionContext, BarrierOutput> {
17
17
  protected readonly sqsClient: SQSClient;
18
18
  queueUrl: string;
19
19
  queueName: string;
20
20
  queueArn: string;
21
+ private isInitted;
22
+ private initPromise?;
21
23
  constructor(dependencies: DependenciesType, options: SQSOptionsType);
22
24
  init(): Promise<void>;
23
25
  protected internalPublish(message: MessagePayloadType, messageSchema: ZodSchema<MessagePayloadType>, options?: SQSMessageOptions): Promise<void>;
@@ -12,8 +12,11 @@ class AbstractSqsService extends core_1.AbstractQueueService {
12
12
  queueName;
13
13
  // @ts-ignore
14
14
  queueArn;
15
+ isInitted;
16
+ initPromise;
15
17
  constructor(dependencies, options) {
16
18
  super(dependencies, options);
19
+ this.isInitted = false;
17
20
  this.sqsClient = dependencies.sqsClient;
18
21
  }
19
22
  async init() {
@@ -24,11 +27,16 @@ class AbstractSqsService extends core_1.AbstractQueueService {
24
27
  this.queueArn = queueArn;
25
28
  this.queueUrl = queueUrl;
26
29
  this.queueName = queueName;
30
+ this.isInitted = true;
27
31
  }
28
32
  async internalPublish(message, messageSchema, options = {}) {
29
- if (!this.queueArn) {
30
- // Lazy loading
31
- await this.init();
33
+ // If it's not initted yet, do the lazy init
34
+ if (!this.isInitted) {
35
+ // avoid multiple concurrent inits
36
+ if (!this.initPromise) {
37
+ this.initPromise = this.init();
38
+ }
39
+ await this.initPromise;
32
40
  }
33
41
  try {
34
42
  messageSchema.parse(message);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAOxD,sDAAkE;AAIlE,oDAAwD;AAiBxD,MAAsB,kBAUpB,SAAQ,2BAOT;IACoB,SAAS,CAAW;IACvC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,SAAS,CAAQ;IACxB,aAAa;IACN,QAAQ,CAAQ;IAEvB,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;QACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,oBAAO,EACrD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,OAA2B,EAC3B,aAA4C,EAC5C,UAA6B,EAAE;QAE/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,eAAe;YACf,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,IAAI,CAAC;YACH,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,aAAa;gBACb,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC1F,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,KAAK,GAAG;gBACZ,qBAAqB;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACpC,GAAG,OAAO;aACuB,CAAA;YACnC,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAnFD,gDAmFC"}
1
+ {"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAOxD,sDAAkE;AAIlE,oDAAwD;AAiBxD,MAAsB,kBAapB,SAAQ,2BAUT;IACoB,SAAS,CAAW;IACvC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,SAAS,CAAQ;IACxB,aAAa;IACN,QAAQ,CAAQ;IAEf,SAAS,CAAS;IAClB,WAAW,CAAgB;IAEnC,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,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;QACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,oBAAO,EACrD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,OAA2B,EAC3B,aAA4C,EAC5C,UAA6B,EAAE;QAE/B,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;QACxB,CAAC;QAED,IAAI,CAAC;YACH,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,aAAa;gBACb,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC1F,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,KAAK,GAAG;gBACZ,qBAAqB;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACpC,GAAG,OAAO;aACuB,CAAA;YACnC,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAlGD,gDAkGC"}
@@ -2,4 +2,4 @@ import type { Either, ErrorResolver } from '@lokalise/node-core';
2
2
  import type { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
3
3
  import type { ZodType } from 'zod';
4
4
  import type { SQSMessage } from '../types/MessageTypes';
5
- export declare const deserializeSQSMessage: <T extends object>(message: SQSMessage, type: ZodType<T, import("zod").ZodTypeDef, T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, T>;
5
+ export declare const deserializeSQSMessage: <T extends object>(message: SQSMessage, type: ZodType<T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/sqs",
3
- "version": "10.0.1",
3
+ "version": "11.0.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "SQS adapter for message-queue-toolkit",
@@ -25,31 +25,31 @@
25
25
  "prepublishOnly": "npm run build:release"
26
26
  },
27
27
  "dependencies": {
28
- "@lokalise/node-core": "^9.0.0",
29
- "sqs-consumer": "^8.1.3",
28
+ "@lokalise/node-core": "^9.10.1",
29
+ "sqs-consumer": "^8.2.0",
30
30
  "zod": "^3.22.4"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@aws-sdk/client-sqs": "^3.476.0",
34
- "@message-queue-toolkit/core": "^8.0.0"
34
+ "@message-queue-toolkit/core": "^9.0.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@aws-sdk/client-sqs": "^3.476.0",
37
+ "@aws-sdk/client-sqs": "^3.529.1",
38
38
  "@message-queue-toolkit/core": "*",
39
- "@types/node": "^20.11.16",
40
- "@typescript-eslint/eslint-plugin": "^7.0.2",
41
- "@typescript-eslint/parser": "^7.0.2",
39
+ "@types/node": "^20.11.25",
40
+ "@typescript-eslint/eslint-plugin": "^7.1.1",
41
+ "@typescript-eslint/parser": "^7.1.1",
42
42
  "@vitest/coverage-v8": "^1.3.1",
43
43
  "awilix": "^10.0.1",
44
- "awilix-manager": "^5.0.1",
44
+ "awilix-manager": "^5.1.0",
45
45
  "del-cli": "^5.1.0",
46
- "eslint": "^8.55.0",
46
+ "eslint": "^8.57.0",
47
47
  "eslint-config-prettier": "^9.1.0",
48
- "eslint-plugin-import": "^2.29.0",
49
- "eslint-plugin-prettier": "^5.0.1",
50
- "eslint-plugin-vitest": "^0.3.10",
51
- "prettier": "^3.1.0",
52
- "typescript": "^5.3.3",
48
+ "eslint-plugin-import": "^2.29.1",
49
+ "eslint-plugin-prettier": "^5.1.3",
50
+ "eslint-plugin-vitest": "^0.3.25",
51
+ "prettier": "^3.2.5",
52
+ "typescript": "^5.4.2",
53
53
  "vitest": "^1.3.1"
54
54
  },
55
55
  "homepage": "https://github.com/kibertoad/message-queue-toolkit",