@message-queue-toolkit/sqs 1.1.0 → 2.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
@@ -1,9 +1,9 @@
1
- export type { SQSQueueAWSConfig, SQSQueueConfig, SQSConsumerDependencies, } from './lib/sqs/AbstractSqsService';
2
- export { AbstractSqsConsumer } from './lib/sqs/AbstractSqsConsumer';
3
- export type { SQSConsumerOptions } from './lib/sqs/AbstractSqsConsumer';
1
+ export type { SQSQueueAWSConfig, SQSQueueConfig, SQSConsumerDependencies, SQSQueueLocatorType, } from './lib/sqs/AbstractSqsService';
2
+ export { AbstractSqsConsumer, SQSCreationConfig } from './lib/sqs/AbstractSqsConsumer';
3
+ export type { NewSQSConsumerOptions, ExistingSQSConsumerOptions, } from './lib/sqs/AbstractSqsConsumer';
4
4
  export { SqsConsumerErrorResolver } from './lib/errors/SqsConsumerErrorResolver';
5
5
  export { AbstractSqsPublisher } from './lib/sqs/AbstractSqsPublisher';
6
6
  export type { SQSMessageOptions } from './lib/sqs/AbstractSqsPublisher';
7
- export { assertQueue, deleteQueue, purgeQueue } from './lib/utils/SqsUtils';
7
+ export { assertQueue, deleteQueue, purgeQueue, getQueueAttributes } from './lib/utils/SqsUtils';
8
8
  export { deserializeSQSMessage } from './lib/sqs/sqsMessageDeserializer';
9
9
  export type { CommonMessage, SQSMessage } from './lib/types/MessageTypes';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeSQSMessage = exports.purgeQueue = exports.deleteQueue = exports.assertQueue = exports.AbstractSqsPublisher = exports.SqsConsumerErrorResolver = exports.AbstractSqsConsumer = void 0;
3
+ exports.deserializeSQSMessage = exports.getQueueAttributes = exports.purgeQueue = exports.deleteQueue = exports.assertQueue = exports.AbstractSqsPublisher = exports.SqsConsumerErrorResolver = exports.AbstractSqsConsumer = void 0;
4
4
  var AbstractSqsConsumer_1 = require("./lib/sqs/AbstractSqsConsumer");
5
5
  Object.defineProperty(exports, "AbstractSqsConsumer", { enumerable: true, get: function () { return AbstractSqsConsumer_1.AbstractSqsConsumer; } });
6
6
  var SqsConsumerErrorResolver_1 = require("./lib/errors/SqsConsumerErrorResolver");
@@ -11,6 +11,7 @@ var SqsUtils_1 = require("./lib/utils/SqsUtils");
11
11
  Object.defineProperty(exports, "assertQueue", { enumerable: true, get: function () { return SqsUtils_1.assertQueue; } });
12
12
  Object.defineProperty(exports, "deleteQueue", { enumerable: true, get: function () { return SqsUtils_1.deleteQueue; } });
13
13
  Object.defineProperty(exports, "purgeQueue", { enumerable: true, get: function () { return SqsUtils_1.purgeQueue; } });
14
+ Object.defineProperty(exports, "getQueueAttributes", { enumerable: true, get: function () { return SqsUtils_1.getQueueAttributes; } });
14
15
  var sqsMessageDeserializer_1 = require("./lib/sqs/sqsMessageDeserializer");
15
16
  Object.defineProperty(exports, "deserializeSQSMessage", { enumerable: true, get: function () { return sqsMessageDeserializer_1.deserializeSQSMessage; } });
16
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAMA,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,uEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAG7B,iDAA2E;AAAlE,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC7C,2EAAwE;AAA/D,+HAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,qEAAsF;AAA7E,0HAAA,mBAAmB,OAAA;AAK5B,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,uEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAG7B,iDAA+F;AAAtF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AACjE,2EAAwE;AAA/D,+HAAA,qBAAqB,OAAA"}
@@ -1,15 +1,22 @@
1
1
  import type { Either, ErrorResolver } from '@lokalise/node-core';
2
- import type { QueueConsumer as QueueConsumer, QueueOptions, Deserializer } from '@message-queue-toolkit/core';
2
+ import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions, Deserializer } 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';
6
- import type { SQSConsumerDependencies, SQSQueueAWSConfig } from './AbstractSqsService';
6
+ import type { SQSConsumerDependencies, SQSQueueAWSConfig, SQSQueueLocatorType } from './AbstractSqsService';
7
7
  import { AbstractSqsService } from './AbstractSqsService';
8
- export type SQSConsumerOptions<MessagePayloadType extends object> = QueueOptions<MessagePayloadType, SQSQueueAWSConfig> & {
8
+ export type SQSCreationConfig = {
9
+ queue: SQSQueueAWSConfig;
10
+ };
11
+ export type NewSQSConsumerOptions<MessagePayloadType extends object, CreationConfigType extends SQSCreationConfig> = NewQueueOptions<MessagePayloadType, CreationConfigType> & {
12
+ consumerOverrides?: Partial<ConsumerOptions>;
13
+ deserializer?: Deserializer<MessagePayloadType, SQSMessage>;
14
+ };
15
+ export type ExistingSQSConsumerOptions<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptions<MessagePayloadType, QueueLocatorType> & {
9
16
  consumerOverrides?: Partial<ConsumerOptions>;
10
17
  deserializer?: Deserializer<MessagePayloadType, SQSMessage>;
11
18
  };
12
- export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, ConsumerOptionsType extends SQSConsumerOptions<MessagePayloadType> = SQSConsumerOptions<MessagePayloadType>> extends AbstractSqsService<MessagePayloadType, ConsumerOptionsType, SQSConsumerDependencies> implements QueueConsumer {
19
+ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<MessagePayloadType, CreationConfigType> | ExistingSQSConsumerOptions<MessagePayloadType, QueueLocatorType> = NewSQSConsumerOptions<MessagePayloadType, CreationConfigType> | ExistingSQSConsumerOptions<MessagePayloadType, QueueLocatorType>> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies> implements QueueConsumer {
13
20
  private readonly transactionObservabilityManager?;
14
21
  protected readonly errorResolver: ErrorResolver;
15
22
  protected consumer: Consumer;
@@ -39,7 +39,7 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
39
39
  result: deserializationResult.result,
40
40
  };
41
41
  }
42
- async failProcessing(message) {
42
+ async failProcessing(_message) {
43
43
  // Not implemented yet - needs dead letter queue
44
44
  }
45
45
  async start() {
@@ -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,12 +1,13 @@
1
1
  import type { SQSClient } from '@aws-sdk/client-sqs';
2
2
  import type { CreateQueueRequest } from '@aws-sdk/client-sqs/dist-types/models/models_0';
3
- import type { QueueConsumerDependencies, QueueDependencies, QueueOptions } from '@message-queue-toolkit/core';
3
+ import type { QueueConsumerDependencies, QueueDependencies, NewQueueOptions, ExistingQueueOptions } from '@message-queue-toolkit/core';
4
4
  import { AbstractQueueService } from '@message-queue-toolkit/core';
5
+ import type { SQSCreationConfig } from './AbstractSqsConsumer';
5
6
  export type SQSDependencies = QueueDependencies & {
6
7
  sqsClient: SQSClient;
7
8
  };
8
9
  export type SQSConsumerDependencies = SQSDependencies & QueueConsumerDependencies;
9
- export type SQSQueueAWSConfig = Omit<CreateQueueRequest, 'QueueName'>;
10
+ export type SQSQueueAWSConfig = CreateQueueRequest;
10
11
  export type SQSQueueConfig = {
11
12
  tags?: Record<string, string>;
12
13
  Attributes?: {
@@ -20,9 +21,13 @@ export type SQSQueueConfig = {
20
21
  RedriveAllowPolicy?: string;
21
22
  };
22
23
  };
23
- export declare class AbstractSqsService<MessagePayloadType extends object, SQSOptionsType extends QueueOptions<MessagePayloadType, SQSQueueAWSConfig> = QueueOptions<MessagePayloadType, SQSQueueAWSConfig>, DependenciesType extends SQSDependencies = SQSDependencies> extends AbstractQueueService<MessagePayloadType, DependenciesType, SQSQueueAWSConfig, SQSOptionsType> {
24
+ export type SQSQueueLocatorType = {
25
+ queueUrl: string;
26
+ };
27
+ export declare class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<MessagePayloadType, CreationConfigType> | ExistingQueueOptions<MessagePayloadType, QueueLocatorType> = NewQueueOptions<MessagePayloadType, CreationConfigType> | ExistingQueueOptions<MessagePayloadType, QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies> extends AbstractQueueService<MessagePayloadType, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType> {
24
28
  protected readonly sqsClient: SQSClient;
25
29
  queueUrl: string;
30
+ queueName: string;
26
31
  constructor(dependencies: DependenciesType, options: SQSOptionsType);
27
32
  init(): Promise<void>;
28
33
  close(): Promise<void>;
@@ -7,15 +7,30 @@ class AbstractSqsService extends core_1.AbstractQueueService {
7
7
  sqsClient;
8
8
  // @ts-ignore
9
9
  queueUrl;
10
+ // @ts-ignore
11
+ queueName;
10
12
  constructor(dependencies, options) {
11
13
  super(dependencies, options);
12
14
  this.sqsClient = dependencies.sqsClient;
13
15
  }
14
16
  async init() {
15
- this.queueUrl = await (0, SqsUtils_1.assertQueue)(this.sqsClient, {
16
- QueueName: this.queueName,
17
- ...this.queueConfiguration,
18
- });
17
+ // reuse existing queue only
18
+ if (this.locatorConfig) {
19
+ const checkResult = await (0, SqsUtils_1.getQueueAttributes)(this.sqsClient, this.locatorConfig);
20
+ if (checkResult.error === 'not_found') {
21
+ throw new Error(`Queue with queueUrl ${this.locatorConfig.queueUrl} does not exist.`);
22
+ }
23
+ this.queueUrl = this.locatorConfig.queueUrl;
24
+ const splitUrl = this.queueUrl.split('/');
25
+ this.queueName = splitUrl[splitUrl.length - 1];
26
+ return;
27
+ }
28
+ // create new queue if does not exist
29
+ if (!this.creationConfig?.queue.QueueName) {
30
+ throw new Error('queueConfig.QueueName is mandatory when locator is not provided');
31
+ }
32
+ this.queueUrl = await (0, SqsUtils_1.assertQueue)(this.sqsClient, this.creationConfig.queue);
33
+ this.queueName = this.creationConfig.queue.QueueName;
19
34
  }
20
35
  // eslint-disable-next-line @typescript-eslint/require-await
21
36
  async close() { }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAOA,sDAAkE;AAElE,gDAA+C;AAwB/C,MAAa,kBAOX,SAAQ,2BAKT;IACoB,SAAS,CAAW;IACvC,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,CAAC,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,IAAI,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,IAAI,CAAC,kBAAkB;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAhCD,gDAgCC"}
1
+ {"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAQA,sDAAkE;AAElE,gDAAmE;AA8BnE,MAAa,kBAUX,SAAQ,2BAMT;IACoB,SAAS,CAAW;IACvC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,SAAS,CAAQ;IAExB,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,4BAA4B;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAkB,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAChF,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,aAAa,CAAC,QAAQ,kBAAkB,CAAC,CAAA;aACtF;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAA;YAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAM;SACP;QAED,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;SACnF;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAA;IACtD,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAvDD,gDAuDC"}
@@ -1,4 +1,11 @@
1
1
  import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
2
+ import type { Either } from '@lokalise/node-core';
3
+ import type { SQSQueueLocatorType } from '../sqs/AbstractSqsService';
4
+ type QueueAttributesResult = {
5
+ attributes?: Record<string, string>;
6
+ };
7
+ export declare function getQueueAttributes(sqsClient: SQSClient, queueLocator: SQSQueueLocatorType): Promise<Either<'not_found', QueueAttributesResult>>;
2
8
  export declare function assertQueue(sqsClient: SQSClient, queueConfig: CreateQueueCommandInput): Promise<string>;
3
9
  export declare function purgeQueue(client: SQSClient, queueName: string): Promise<void>;
4
10
  export declare function deleteQueue(client: SQSClient, queueName: string): Promise<void>;
11
+ export {};
@@ -1,7 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteQueue = exports.purgeQueue = exports.assertQueue = void 0;
3
+ exports.deleteQueue = exports.purgeQueue = exports.assertQueue = exports.getQueueAttributes = void 0;
4
4
  const client_sqs_1 = require("@aws-sdk/client-sqs");
5
+ async function getQueueAttributes(sqsClient, queueLocator) {
6
+ const command = new client_sqs_1.GetQueueAttributesCommand({
7
+ QueueUrl: queueLocator.queueUrl,
8
+ });
9
+ try {
10
+ const response = await sqsClient.send(command);
11
+ return {
12
+ result: {
13
+ attributes: response.Attributes,
14
+ },
15
+ };
16
+ }
17
+ catch (err) {
18
+ // @ts-ignore
19
+ if (err.Code === 'AWS.SimpleQueueService.NonExistentQueue') {
20
+ return {
21
+ // @ts-ignore
22
+ error: 'not_found',
23
+ };
24
+ }
25
+ throw err;
26
+ }
27
+ }
28
+ exports.getQueueAttributes = getQueueAttributes;
5
29
  async function assertQueue(sqsClient, queueConfig) {
6
30
  const command = new client_sqs_1.CreateQueueCommand(queueConfig);
7
31
  await sqsClient.send(command);
@@ -1 +1 @@
1
- {"version":3,"file":"SqsUtils.js","sourceRoot":"","sources":["../../../lib/utils/SqsUtils.ts"],"names":[],"mappings":";;;AACA,oDAK4B;AAErB,KAAK,UAAU,WAAW,CAAC,SAAoB,EAAE,WAAoC;IAC1F,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE7B,MAAM,aAAa,GAAG,IAAI,+BAAkB,CAAC;QAC3C,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAEpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,CAAC,SAAS,IAAI,EAAE,kBAAkB,CAAC,CAAA;KACxE;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAA;AAC1B,CAAC;AAdD,kCAcC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAiB,EAAE,SAAiB;IACnE,IAAI;QACF,MAAM,eAAe,GAAG,IAAI,+BAAkB,CAAC;YAC7C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnD,MAAM,YAAY,GAAG,IAAI,8BAAiB,CAAC;YACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAChC;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;KAC/C;AACH,CAAC;AAfD,gCAeC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAiB,EAAE,SAAiB;IACpE,IAAI;QACF,MAAM,eAAe,GAAG,IAAI,+BAAkB,CAAC;YAC7C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC;YACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;KAChD;AACH,CAAC;AAhBD,kCAgBC"}
1
+ {"version":3,"file":"SqsUtils.js","sourceRoot":"","sources":["../../../lib/utils/SqsUtils.ts"],"names":[],"mappings":";;;AACA,oDAM4B;AASrB,KAAK,UAAU,kBAAkB,CACtC,SAAoB,EACpB,YAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,sCAAyB,CAAC;QAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ;KAChC,CAAC,CAAA;IAEF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO;YACL,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC;SACF,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa;QACb,IAAI,GAAG,CAAC,IAAI,KAAK,yCAAyC,EAAE;YAC1D,OAAO;gBACL,aAAa;gBACb,KAAK,EAAE,WAAW;aACnB,CAAA;SACF;QACD,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AAzBD,gDAyBC;AAEM,KAAK,UAAU,WAAW,CAAC,SAAoB,EAAE,WAAoC;IAC1F,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE7B,MAAM,aAAa,GAAG,IAAI,+BAAkB,CAAC;QAC3C,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAEpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,CAAC,SAAS,IAAI,EAAE,kBAAkB,CAAC,CAAA;KACxE;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAA;AAC1B,CAAC;AAdD,kCAcC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAiB,EAAE,SAAiB;IACnE,IAAI;QACF,MAAM,eAAe,GAAG,IAAI,+BAAkB,CAAC;YAC7C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnD,MAAM,YAAY,GAAG,IAAI,8BAAiB,CAAC;YACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAChC;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;KAC/C;AACH,CAAC;AAfD,gCAeC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAiB,EAAE,SAAiB;IACpE,IAAI;QACF,MAAM,eAAe,GAAG,IAAI,+BAAkB,CAAC;YAC7C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC;YACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;KAChD;AACH,CAAC;AAhBD,kCAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/sqs",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "SQS adapter for message-queue-toolkit",
@@ -26,31 +26,31 @@
26
26
  "prepublishOnly": "npm run build:release"
27
27
  },
28
28
  "dependencies": {
29
- "@aws-sdk/client-sqs": "^3.359.0",
30
- "@lokalise/node-core": "^5.8.1",
31
- "sqs-consumer": "^7.2.0",
29
+ "@lokalise/node-core": "^5.12.0",
30
+ "sqs-consumer": "^7.2.2",
32
31
  "zod": "^3.21.4"
33
32
  },
34
33
  "peerDependencies": {
35
- "@message-queue-toolkit/core": "^1.1.0"
34
+ "@aws-sdk/client-sqs": "^3.369.0",
35
+ "@message-queue-toolkit/core": "^1.2.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@message-queue-toolkit/core": "*",
39
- "@types/node": "^20.3.1",
40
- "@typescript-eslint/eslint-plugin": "^5.60.0",
41
- "@typescript-eslint/parser": "^5.60.0",
42
- "@vitest/coverage-v8": "^0.32.2",
39
+ "@types/node": "^20.4.1",
40
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
41
+ "@typescript-eslint/parser": "^5.62.0",
42
+ "@vitest/coverage-v8": "^0.33.0",
43
43
  "awilix": "^8.0.1",
44
44
  "awilix-manager": "^2.0.0",
45
45
  "del-cli": "^5.0.0",
46
- "eslint": "^8.43.0",
46
+ "eslint": "^8.44.0",
47
47
  "eslint-config-prettier": "^8.8.0",
48
48
  "eslint-plugin-import": "^2.27.5",
49
- "eslint-plugin-prettier": "^4.2.1",
49
+ "eslint-plugin-prettier": "^5.0.0",
50
50
  "eslint-plugin-vitest": "^0.2.6",
51
- "prettier": "^2.8.8",
52
- "typescript": "^5.1.3",
53
- "vitest": "^0.32.2"
51
+ "prettier": "^3.0.0",
52
+ "typescript": "^5.1.6",
53
+ "vitest": "^0.33.0"
54
54
  },
55
55
  "homepage": "https://github.com/kibertoad/message-queue-toolkit",
56
56
  "repository": {