@message-queue-toolkit/sqs 2.0.3 → 3.1.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 +10 -5
- package/dist/index.js +16 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumer.d.ts +6 -8
- package/dist/lib/sqs/AbstractSqsConsumer.js +22 -7
- package/dist/lib/sqs/AbstractSqsConsumer.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.d.ts +14 -0
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js +20 -0
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js.map +1 -0
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.d.ts +20 -0
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js +31 -0
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js.map +1 -0
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.d.ts +19 -0
- package/dist/lib/sqs/{AbstractSqsPublisher.js → AbstractSqsPublisherMonoSchema.js} +19 -4
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.js.map +1 -0
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.d.ts +20 -0
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js +48 -0
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js.map +1 -0
- package/dist/lib/sqs/AbstractSqsService.d.ts +2 -1
- package/dist/lib/sqs/AbstractSqsService.js +6 -17
- package/dist/lib/sqs/AbstractSqsService.js.map +1 -1
- package/dist/lib/utils/sqsInitter.d.ts +9 -0
- package/dist/lib/utils/sqsInitter.js +46 -0
- package/dist/lib/utils/sqsInitter.js.map +1 -0
- package/dist/lib/utils/sqsMessageDeserializer.js.map +1 -0
- package/dist/lib/utils/sqsMessageReader.d.ts +4 -0
- package/dist/lib/utils/sqsMessageReader.js +17 -0
- package/dist/lib/utils/sqsMessageReader.js.map +1 -0
- package/dist/lib/utils/{SqsUtils.d.ts → sqsUtils.d.ts} +0 -1
- package/dist/lib/utils/{SqsUtils.js → sqsUtils.js} +2 -19
- package/dist/lib/utils/sqsUtils.js.map +1 -0
- package/package.json +8 -7
- package/dist/lib/sqs/AbstractSqsPublisher.d.ts +0 -9
- package/dist/lib/sqs/AbstractSqsPublisher.js.map +0 -1
- package/dist/lib/sqs/sqsMessageDeserializer.js.map +0 -1
- package/dist/lib/utils/SqsUtils.js.map +0 -1
- /package/dist/lib/{sqs → utils}/sqsMessageDeserializer.d.ts +0 -0
- /package/dist/lib/{sqs → utils}/sqsMessageDeserializer.js +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export type { SQSQueueAWSConfig, SQSQueueConfig, SQSConsumerDependencies, SQSQueueLocatorType, } from './lib/sqs/AbstractSqsService';
|
|
2
|
-
export { AbstractSqsConsumer
|
|
2
|
+
export { AbstractSqsConsumer } from './lib/sqs/AbstractSqsConsumer';
|
|
3
|
+
export type { SQSCreationConfig } from './lib/sqs/AbstractSqsConsumer';
|
|
4
|
+
export { AbstractSqsConsumerMultiSchema } from './lib/sqs/AbstractSqsConsumerMultiSchema';
|
|
5
|
+
export { AbstractSqsConsumerMonoSchema } from './lib/sqs/AbstractSqsConsumerMonoSchema';
|
|
3
6
|
export type { NewSQSConsumerOptions, ExistingSQSConsumerOptions, } from './lib/sqs/AbstractSqsConsumer';
|
|
4
7
|
export { SqsConsumerErrorResolver } from './lib/errors/SqsConsumerErrorResolver';
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
8
|
+
export { AbstractSqsPublisherMonoSchema } from './lib/sqs/AbstractSqsPublisherMonoSchema';
|
|
9
|
+
export { AbstractSqsPublisherMultiSchema } from './lib/sqs/AbstractSqsPublisherMultiSchema';
|
|
10
|
+
export type { SQSMessageOptions } from './lib/sqs/AbstractSqsPublisherMonoSchema';
|
|
11
|
+
export { assertQueue, deleteQueue, getQueueAttributes } from './lib/utils/sqsUtils';
|
|
12
|
+
export { deleteSqs } from './lib/utils/sqsInitter';
|
|
13
|
+
export { deserializeSQSMessage } from './lib/utils/sqsMessageDeserializer';
|
|
9
14
|
export type { CommonMessage, SQSMessage } from './lib/types/MessageTypes';
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deserializeSQSMessage = exports.
|
|
3
|
+
exports.deserializeSQSMessage = exports.deleteSqs = exports.getQueueAttributes = exports.deleteQueue = exports.assertQueue = exports.AbstractSqsPublisherMultiSchema = exports.AbstractSqsPublisherMonoSchema = exports.SqsConsumerErrorResolver = exports.AbstractSqsConsumerMonoSchema = exports.AbstractSqsConsumerMultiSchema = 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
|
+
var AbstractSqsConsumerMultiSchema_1 = require("./lib/sqs/AbstractSqsConsumerMultiSchema");
|
|
7
|
+
Object.defineProperty(exports, "AbstractSqsConsumerMultiSchema", { enumerable: true, get: function () { return AbstractSqsConsumerMultiSchema_1.AbstractSqsConsumerMultiSchema; } });
|
|
8
|
+
var AbstractSqsConsumerMonoSchema_1 = require("./lib/sqs/AbstractSqsConsumerMonoSchema");
|
|
9
|
+
Object.defineProperty(exports, "AbstractSqsConsumerMonoSchema", { enumerable: true, get: function () { return AbstractSqsConsumerMonoSchema_1.AbstractSqsConsumerMonoSchema; } });
|
|
6
10
|
var SqsConsumerErrorResolver_1 = require("./lib/errors/SqsConsumerErrorResolver");
|
|
7
11
|
Object.defineProperty(exports, "SqsConsumerErrorResolver", { enumerable: true, get: function () { return SqsConsumerErrorResolver_1.SqsConsumerErrorResolver; } });
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, "
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
|
|
12
|
+
var AbstractSqsPublisherMonoSchema_1 = require("./lib/sqs/AbstractSqsPublisherMonoSchema");
|
|
13
|
+
Object.defineProperty(exports, "AbstractSqsPublisherMonoSchema", { enumerable: true, get: function () { return AbstractSqsPublisherMonoSchema_1.AbstractSqsPublisherMonoSchema; } });
|
|
14
|
+
var AbstractSqsPublisherMultiSchema_1 = require("./lib/sqs/AbstractSqsPublisherMultiSchema");
|
|
15
|
+
Object.defineProperty(exports, "AbstractSqsPublisherMultiSchema", { enumerable: true, get: function () { return AbstractSqsPublisherMultiSchema_1.AbstractSqsPublisherMultiSchema; } });
|
|
16
|
+
var sqsUtils_1 = require("./lib/utils/sqsUtils");
|
|
17
|
+
Object.defineProperty(exports, "assertQueue", { enumerable: true, get: function () { return sqsUtils_1.assertQueue; } });
|
|
18
|
+
Object.defineProperty(exports, "deleteQueue", { enumerable: true, get: function () { return sqsUtils_1.deleteQueue; } });
|
|
19
|
+
Object.defineProperty(exports, "getQueueAttributes", { enumerable: true, get: function () { return sqsUtils_1.getQueueAttributes; } });
|
|
20
|
+
var sqsInitter_1 = require("./lib/utils/sqsInitter");
|
|
21
|
+
Object.defineProperty(exports, "deleteSqs", { enumerable: true, get: function () { return sqsInitter_1.deleteSqs; } });
|
|
22
|
+
var sqsMessageDeserializer_1 = require("./lib/utils/sqsMessageDeserializer");
|
|
16
23
|
Object.defineProperty(exports, "deserializeSQSMessage", { enumerable: true, get: function () { return sqsMessageDeserializer_1.deserializeSQSMessage; } });
|
|
17
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,
|
|
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,iDAAmF;AAA1E,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AACrD,qDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
2
|
-
import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions
|
|
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';
|
|
@@ -8,24 +8,22 @@ import { AbstractSqsService } from './AbstractSqsService';
|
|
|
8
8
|
export type SQSCreationConfig = {
|
|
9
9
|
queue: SQSQueueAWSConfig;
|
|
10
10
|
};
|
|
11
|
-
export type NewSQSConsumerOptions<
|
|
11
|
+
export type NewSQSConsumerOptions<CreationConfigType extends SQSCreationConfig> = NewQueueOptions<CreationConfigType> & {
|
|
12
12
|
consumerOverrides?: Partial<ConsumerOptions>;
|
|
13
|
-
deserializer?: Deserializer<MessagePayloadType, SQSMessage>;
|
|
14
13
|
};
|
|
15
|
-
export type ExistingSQSConsumerOptions<
|
|
14
|
+
export type ExistingSQSConsumerOptions<QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptions<QueueLocatorType> & {
|
|
16
15
|
consumerOverrides?: Partial<ConsumerOptions>;
|
|
17
|
-
deserializer?: Deserializer<MessagePayloadType, SQSMessage>;
|
|
18
16
|
};
|
|
19
|
-
export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<
|
|
17
|
+
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>> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies> implements QueueConsumer {
|
|
20
18
|
private readonly transactionObservabilityManager?;
|
|
21
19
|
protected readonly errorResolver: ErrorResolver;
|
|
22
20
|
protected consumer: Consumer;
|
|
23
21
|
private readonly consumerOptionsOverride;
|
|
24
|
-
private readonly deserializer;
|
|
25
22
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
26
|
-
abstract processMessage(
|
|
23
|
+
abstract processMessage(message: MessagePayloadType, messageType: string): Promise<Either<'retryLater', 'success'>>;
|
|
27
24
|
private deserializeMessage;
|
|
28
25
|
private failProcessing;
|
|
29
26
|
start(): Promise<void>;
|
|
27
|
+
protected resolveMessage(message: SQSMessage): Either<import("@message-queue-toolkit/core").MessageInvalidFormatError | import("@message-queue-toolkit/core").MessageValidationError, unknown>;
|
|
30
28
|
close(abort?: boolean): Promise<void>;
|
|
31
29
|
}
|
|
@@ -4,7 +4,7 @@ exports.AbstractSqsConsumer = void 0;
|
|
|
4
4
|
const core_1 = require("@message-queue-toolkit/core");
|
|
5
5
|
const sqs_consumer_1 = require("sqs-consumer");
|
|
6
6
|
const AbstractSqsService_1 = require("./AbstractSqsService");
|
|
7
|
-
const
|
|
7
|
+
const sqsMessageReader_1 = require("../utils/sqsMessageReader");
|
|
8
8
|
const ABORT_EARLY_EITHER = {
|
|
9
9
|
error: 'abort',
|
|
10
10
|
};
|
|
@@ -14,19 +14,31 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
14
14
|
// @ts-ignore
|
|
15
15
|
consumer;
|
|
16
16
|
consumerOptionsOverride;
|
|
17
|
-
deserializer;
|
|
18
17
|
constructor(dependencies, options) {
|
|
19
18
|
super(dependencies, options);
|
|
20
19
|
this.transactionObservabilityManager = dependencies.transactionObservabilityManager;
|
|
21
20
|
this.errorResolver = dependencies.consumerErrorResolver;
|
|
22
21
|
this.consumerOptionsOverride = options.consumerOverrides ?? {};
|
|
23
|
-
this.deserializer = options.deserializer ?? sqsMessageDeserializer_1.deserializeSQSMessage;
|
|
24
22
|
}
|
|
25
23
|
deserializeMessage(message) {
|
|
26
24
|
if (message === null) {
|
|
27
25
|
return ABORT_EARLY_EITHER;
|
|
28
26
|
}
|
|
29
|
-
const
|
|
27
|
+
const resolveMessageResult = this.resolveMessage(message);
|
|
28
|
+
if ((0, core_1.isMessageError)(resolveMessageResult.error)) {
|
|
29
|
+
this.handleError(resolveMessageResult.error);
|
|
30
|
+
return ABORT_EARLY_EITHER;
|
|
31
|
+
}
|
|
32
|
+
// Empty content for whatever reason
|
|
33
|
+
if (!resolveMessageResult.result) {
|
|
34
|
+
return ABORT_EARLY_EITHER;
|
|
35
|
+
}
|
|
36
|
+
const resolveSchemaResult = this.resolveSchema(resolveMessageResult.result);
|
|
37
|
+
if (resolveSchemaResult.error) {
|
|
38
|
+
this.handleError(resolveSchemaResult.error);
|
|
39
|
+
return ABORT_EARLY_EITHER;
|
|
40
|
+
}
|
|
41
|
+
const deserializationResult = (0, core_1.parseMessage)(resolveMessageResult.result, resolveSchemaResult.result, this.errorResolver);
|
|
30
42
|
if ((0, core_1.isMessageError)(deserializationResult.error)) {
|
|
31
43
|
this.handleError(deserializationResult.error);
|
|
32
44
|
return ABORT_EARLY_EITHER;
|
|
@@ -58,12 +70,12 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
58
70
|
await this.failProcessing(message);
|
|
59
71
|
return;
|
|
60
72
|
}
|
|
61
|
-
const transactionSpanId = `queue_${this.queueName}:${
|
|
62
73
|
// @ts-ignore
|
|
63
74
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
64
|
-
deserializedMessage.result[this.messageTypeField]
|
|
75
|
+
const messageType = deserializedMessage.result[this.messageTypeField];
|
|
76
|
+
const transactionSpanId = `queue_${this.queueName}:${messageType}`;
|
|
65
77
|
this.transactionObservabilityManager?.start(transactionSpanId);
|
|
66
|
-
const result = await this.processMessage(deserializedMessage.result)
|
|
78
|
+
const result = await this.processMessage(deserializedMessage.result, messageType)
|
|
67
79
|
.catch((err) => {
|
|
68
80
|
// ToDo we need sanity check to stop trying at some point, perhaps some kind of Redis counter
|
|
69
81
|
// If we fail due to unknown reason, let's retry
|
|
@@ -91,6 +103,9 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
91
103
|
});
|
|
92
104
|
this.consumer.start();
|
|
93
105
|
}
|
|
106
|
+
resolveMessage(message) {
|
|
107
|
+
return (0, sqsMessageReader_1.readSqsMessage)(message, this.errorResolver);
|
|
108
|
+
}
|
|
94
109
|
async close(abort) {
|
|
95
110
|
await super.close();
|
|
96
111
|
this.consumer?.stop({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Either } from '@lokalise/node-core';
|
|
2
|
+
import type { MonoSchemaQueueOptions, QueueConsumer as QueueConsumer } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { ZodSchema } from 'zod';
|
|
4
|
+
import type { ExistingSQSConsumerOptions, NewSQSConsumerOptions, SQSCreationConfig } from './AbstractSqsConsumer';
|
|
5
|
+
import { AbstractSqsConsumer } from './AbstractSqsConsumer';
|
|
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, 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> implements QueueConsumer {
|
|
10
|
+
private readonly messageSchema;
|
|
11
|
+
private readonly schemaEither;
|
|
12
|
+
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
13
|
+
protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractSqsConsumerMonoSchema = void 0;
|
|
4
|
+
const AbstractSqsConsumer_1 = require("./AbstractSqsConsumer");
|
|
5
|
+
class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsConsumer {
|
|
6
|
+
messageSchema;
|
|
7
|
+
schemaEither;
|
|
8
|
+
constructor(dependencies, options) {
|
|
9
|
+
super(dependencies, options);
|
|
10
|
+
this.messageSchema = options.messageSchema;
|
|
11
|
+
this.schemaEither = {
|
|
12
|
+
result: this.messageSchema,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
resolveSchema() {
|
|
16
|
+
return this.schemaEither;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AbstractSqsConsumerMonoSchema = AbstractSqsConsumerMonoSchema;
|
|
20
|
+
//# sourceMappingURL=AbstractSqsConsumerMonoSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AAYA,+DAA2D;AAa3D,MAAsB,6BAUpB,SAAQ,yCAKP;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;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AAjCD,sEAiCC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Either } from '@lokalise/node-core';
|
|
2
|
+
import type { ExistingQueueOptionsMultiSchema, NewQueueOptionsMultiSchema } from '@message-queue-toolkit/core';
|
|
3
|
+
import { HandlerContainer, MessageSchemaContainer } from '@message-queue-toolkit/core';
|
|
4
|
+
import type { ConsumerOptions } from 'sqs-consumer/src/types';
|
|
5
|
+
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
6
|
+
import { AbstractSqsConsumer } from './AbstractSqsConsumer';
|
|
7
|
+
import type { SQSConsumerDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
8
|
+
export type NewSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, CreationConfigType extends SQSCreationConfig> = NewQueueOptionsMultiSchema<MessagePayloadSchemas, CreationConfigType, ExecutionContext> & {
|
|
9
|
+
consumerOverrides?: Partial<ConsumerOptions>;
|
|
10
|
+
};
|
|
11
|
+
export type ExistingSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptionsMultiSchema<MessagePayloadSchemas, QueueLocatorType, ExecutionContext> & {
|
|
12
|
+
consumerOverrides?: Partial<ConsumerOptions>;
|
|
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> {
|
|
15
|
+
messageSchemaContainer: MessageSchemaContainer<MessagePayloadType>;
|
|
16
|
+
handlerContainer: HandlerContainer<MessagePayloadType, ExecutionContext>;
|
|
17
|
+
constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
18
|
+
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
19
|
+
processMessage(message: MessagePayloadType, messageType: string): Promise<Either<'retryLater', 'success'>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractSqsConsumerMultiSchema = void 0;
|
|
4
|
+
const core_1 = require("@message-queue-toolkit/core");
|
|
5
|
+
const AbstractSqsConsumer_1 = require("./AbstractSqsConsumer");
|
|
6
|
+
class AbstractSqsConsumerMultiSchema extends AbstractSqsConsumer_1.AbstractSqsConsumer {
|
|
7
|
+
messageSchemaContainer;
|
|
8
|
+
handlerContainer;
|
|
9
|
+
constructor(dependencies, options) {
|
|
10
|
+
super(dependencies, options);
|
|
11
|
+
const messageSchemas = options.handlers.map((entry) => entry.schema);
|
|
12
|
+
this.messageSchemaContainer = new core_1.MessageSchemaContainer({
|
|
13
|
+
messageSchemas,
|
|
14
|
+
messageTypeField: options.messageTypeField,
|
|
15
|
+
});
|
|
16
|
+
this.handlerContainer = new core_1.HandlerContainer({
|
|
17
|
+
messageTypeField: this.messageTypeField,
|
|
18
|
+
messageHandlers: options.handlers,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
resolveSchema(message) {
|
|
22
|
+
return this.messageSchemaContainer.resolveSchema(message);
|
|
23
|
+
}
|
|
24
|
+
async processMessage(message, messageType) {
|
|
25
|
+
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
return handler(message, this);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.AbstractSqsConsumerMultiSchema = AbstractSqsConsumerMultiSchema;
|
|
31
|
+
//# sourceMappingURL=AbstractSqsConsumerMultiSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AAKA,sDAAsF;AAItF,+DAA2D;AAmB3D,MAAsB,8BAcpB,SAAQ,yCAKT;IACC,sBAAsB,CAA4C;IAClE,gBAAgB,CAAwD;IAExE,YAAY,YAAqC,EAAE,OAA4B;QAC7E,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;IACJ,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;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACjE,aAAa;QACb,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAlDD,wEAkDC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Either } from '@lokalise/node-core';
|
|
2
|
+
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, MonoSchemaQueueOptions, NewQueueOptions } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { ZodSchema } from 'zod';
|
|
4
|
+
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
5
|
+
import type { SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
6
|
+
import { AbstractSqsService } from './AbstractSqsService';
|
|
7
|
+
export type SQSMessageOptions = {
|
|
8
|
+
MessageGroupId?: string;
|
|
9
|
+
MessageDeduplicationId?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare abstract class AbstractSqsPublisherMonoSchema<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
|
|
12
|
+
private readonly messageSchema;
|
|
13
|
+
constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MonoSchemaQueueOptions<MessagePayloadType>);
|
|
14
|
+
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
15
|
+
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
16
|
+
protected resolveSchema(): {
|
|
17
|
+
result: ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AbstractSqsPublisherMonoSchema = void 0;
|
|
4
4
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
5
|
const AbstractSqsService_1 = require("./AbstractSqsService");
|
|
6
|
-
class
|
|
6
|
+
class AbstractSqsPublisherMonoSchema extends AbstractSqsService_1.AbstractSqsService {
|
|
7
|
+
messageSchema;
|
|
8
|
+
constructor(dependencies, options) {
|
|
9
|
+
super(dependencies, options);
|
|
10
|
+
this.messageSchema = options.messageSchema;
|
|
11
|
+
}
|
|
7
12
|
async publish(message, options = {}) {
|
|
8
13
|
try {
|
|
14
|
+
this.messageSchema.parse(message);
|
|
9
15
|
const input = {
|
|
10
16
|
// SendMessageRequest
|
|
11
17
|
QueueUrl: this.queueUrl,
|
|
@@ -20,6 +26,15 @@ class AbstractSqsPublisher extends AbstractSqsService_1.AbstractSqsService {
|
|
|
20
26
|
throw error;
|
|
21
27
|
}
|
|
22
28
|
}
|
|
29
|
+
/* c8 ignore start */
|
|
30
|
+
resolveMessage() {
|
|
31
|
+
throw new Error('Not implemented for publisher');
|
|
32
|
+
}
|
|
33
|
+
resolveSchema() {
|
|
34
|
+
return {
|
|
35
|
+
result: this.messageSchema,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
23
38
|
}
|
|
24
|
-
exports.
|
|
25
|
-
//# sourceMappingURL=
|
|
39
|
+
exports.AbstractSqsPublisherMonoSchema = AbstractSqsPublisherMonoSchema;
|
|
40
|
+
//# sourceMappingURL=AbstractSqsPublisherMonoSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisherMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMonoSchema.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAcxD,6DAAyD;AAOzD,MAAsB,8BACpB,SAAQ,uCAAsC;IAG7B,aAAa,CAA+B;IAE7D,YACE,YAA6B,EAC7B,OAC4C;QAE5C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,IAAI;YACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,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;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAED,qBAAqB;IACX,cAAc;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,aAAa;QAC9B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;CAEF;AA3CD,wEA2CC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Either } from '@lokalise/node-core';
|
|
2
|
+
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, NewQueueOptions } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { ZodSchema } from 'zod';
|
|
4
|
+
import type { SQSMessage } from '../types/MessageTypes';
|
|
5
|
+
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
6
|
+
import { AbstractSqsService } from './AbstractSqsService';
|
|
7
|
+
import type { SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
8
|
+
export type SQSMessageOptions = {
|
|
9
|
+
MessageGroupId?: string;
|
|
10
|
+
MessageDeduplicationId?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare abstract class AbstractSqsPublisherMultiSchema<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
|
|
13
|
+
private readonly messageSchemaContainer;
|
|
14
|
+
constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & {
|
|
15
|
+
messageSchemas: readonly ZodSchema<MessagePayloadType>[];
|
|
16
|
+
});
|
|
17
|
+
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
18
|
+
protected resolveMessage(_message: SQSMessage): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
19
|
+
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractSqsPublisherMultiSchema = void 0;
|
|
4
|
+
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
|
+
const core_1 = require("@message-queue-toolkit/core");
|
|
6
|
+
const AbstractSqsService_1 = require("./AbstractSqsService");
|
|
7
|
+
class AbstractSqsPublisherMultiSchema extends AbstractSqsService_1.AbstractSqsService {
|
|
8
|
+
messageSchemaContainer;
|
|
9
|
+
constructor(dependencies, options) {
|
|
10
|
+
super(dependencies, options);
|
|
11
|
+
const messageSchemas = options.messageSchemas;
|
|
12
|
+
this.messageSchemaContainer = new core_1.MessageSchemaContainer({
|
|
13
|
+
messageSchemas,
|
|
14
|
+
messageTypeField: options.messageTypeField,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async publish(message, options = {}) {
|
|
18
|
+
try {
|
|
19
|
+
const resolveSchemaResult = this.resolveSchema(message);
|
|
20
|
+
if (resolveSchemaResult.error) {
|
|
21
|
+
throw resolveSchemaResult.error;
|
|
22
|
+
}
|
|
23
|
+
resolveSchemaResult.result.parse(message);
|
|
24
|
+
const input = {
|
|
25
|
+
// SendMessageRequest
|
|
26
|
+
QueueUrl: this.queueUrl,
|
|
27
|
+
MessageBody: JSON.stringify(message),
|
|
28
|
+
...options,
|
|
29
|
+
};
|
|
30
|
+
const command = new client_sqs_1.SendMessageCommand(input);
|
|
31
|
+
await this.sqsClient.send(command);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
this.handleError(error);
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/* c8 ignore start */
|
|
39
|
+
resolveMessage(_message) {
|
|
40
|
+
throw new Error('Not implemented for publisher');
|
|
41
|
+
}
|
|
42
|
+
/* c8 ignore stop */
|
|
43
|
+
resolveSchema(message) {
|
|
44
|
+
return this.messageSchemaContainer.resolveSchema(message);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.AbstractSqsPublisherMultiSchema = AbstractSqsPublisherMultiSchema;
|
|
48
|
+
//# sourceMappingURL=AbstractSqsPublisherMultiSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AASxD,sDAAoE;AAMpE,6DAAyD;AAQzD,MAAsB,+BACpB,SAAQ,uCAAsC;IAG7B,sBAAsB,CAA4C;IAEnF,YACE,YAA6B,EAC7B,OAEC;QAED,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,IAAI;YACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACvD,IAAI,mBAAmB,CAAC,KAAK,EAAE;gBAC7B,MAAM,mBAAmB,CAAC,KAAK,CAAA;aAChC;YACD,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAEzC,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;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;SACZ;IACH,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;AAxDD,0EAwDC"}
|
|
@@ -2,6 +2,7 @@ import type { SQSClient } from '@aws-sdk/client-sqs';
|
|
|
2
2
|
import type { CreateQueueRequest } from '@aws-sdk/client-sqs/dist-types/models/models_0';
|
|
3
3
|
import type { QueueConsumerDependencies, QueueDependencies, NewQueueOptions, ExistingQueueOptions } from '@message-queue-toolkit/core';
|
|
4
4
|
import { AbstractQueueService } from '@message-queue-toolkit/core';
|
|
5
|
+
import type { SQSMessage } from '../types/MessageTypes';
|
|
5
6
|
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
6
7
|
export type SQSDependencies = QueueDependencies & {
|
|
7
8
|
sqsClient: SQSClient;
|
|
@@ -24,7 +25,7 @@ export type SQSQueueConfig = {
|
|
|
24
25
|
export type SQSQueueLocatorType = {
|
|
25
26
|
queueUrl: string;
|
|
26
27
|
};
|
|
27
|
-
export declare class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<
|
|
28
|
+
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> {
|
|
28
29
|
protected readonly sqsClient: SQSClient;
|
|
29
30
|
queueUrl: string;
|
|
30
31
|
queueName: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractSqsService = void 0;
|
|
4
4
|
const core_1 = require("@message-queue-toolkit/core");
|
|
5
|
-
const
|
|
5
|
+
const sqsInitter_1 = require("../utils/sqsInitter");
|
|
6
6
|
class AbstractSqsService extends core_1.AbstractQueueService {
|
|
7
7
|
sqsClient;
|
|
8
8
|
// @ts-ignore
|
|
@@ -14,23 +14,12 @@ class AbstractSqsService extends core_1.AbstractQueueService {
|
|
|
14
14
|
this.sqsClient = dependencies.sqsClient;
|
|
15
15
|
}
|
|
16
16
|
async init() {
|
|
17
|
-
|
|
18
|
-
|
|
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;
|
|
17
|
+
if (this.deletionConfig && this.creationConfig) {
|
|
18
|
+
await (0, sqsInitter_1.deleteSqs)(this.sqsClient, this.deletionConfig, this.creationConfig);
|
|
27
19
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
this.queueUrl = await (0, SqsUtils_1.assertQueue)(this.sqsClient, this.creationConfig.queue);
|
|
33
|
-
this.queueName = this.creationConfig.queue.QueueName;
|
|
20
|
+
const { queueUrl, queueName } = await (0, sqsInitter_1.initSqs)(this.sqsClient, this.locatorConfig, this.creationConfig);
|
|
21
|
+
this.queueUrl = queueUrl;
|
|
22
|
+
this.queueName = queueName;
|
|
34
23
|
}
|
|
35
24
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
36
25
|
async close() { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAQA,sDAAkE;
|
|
1
|
+
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAQA,sDAAkE;AAKlE,oDAAwD;AA4BxD,MAAsB,kBAUpB,SAAQ,2BAOT;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,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9C,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;SAC1E;QACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,oBAAO,EAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AA9CD,gDA8CC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SQSClient } from '@aws-sdk/client-sqs';
|
|
2
|
+
import type { DeletionConfig } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { SQSCreationConfig } from '../sqs/AbstractSqsConsumer';
|
|
4
|
+
import type { SQSQueueLocatorType } from '../sqs/AbstractSqsService';
|
|
5
|
+
export declare function deleteSqs(sqsClient: SQSClient, deletionConfig: DeletionConfig, creationConfig: SQSCreationConfig): Promise<void>;
|
|
6
|
+
export declare function initSqs(sqsClient: SQSClient, locatorConfig?: SQSQueueLocatorType, creationConfig?: SQSCreationConfig): Promise<{
|
|
7
|
+
queueUrl: string;
|
|
8
|
+
queueName: string;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initSqs = exports.deleteSqs = void 0;
|
|
4
|
+
const core_1 = require("@message-queue-toolkit/core");
|
|
5
|
+
const sqsUtils_1 = require("./sqsUtils");
|
|
6
|
+
async function deleteSqs(sqsClient, deletionConfig, creationConfig) {
|
|
7
|
+
if (!deletionConfig.deleteIfExists) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if ((0, core_1.isProduction)() && !deletionConfig.forceDeleteInProduction) {
|
|
11
|
+
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');
|
|
12
|
+
}
|
|
13
|
+
if (!creationConfig.queue.QueueName) {
|
|
14
|
+
throw new Error('QueueName must be set for automatic deletion');
|
|
15
|
+
}
|
|
16
|
+
await (0, sqsUtils_1.deleteQueue)(sqsClient, creationConfig.queue.QueueName);
|
|
17
|
+
}
|
|
18
|
+
exports.deleteSqs = deleteSqs;
|
|
19
|
+
async function initSqs(sqsClient, locatorConfig, creationConfig) {
|
|
20
|
+
// reuse existing queue only
|
|
21
|
+
if (locatorConfig) {
|
|
22
|
+
const checkResult = await (0, sqsUtils_1.getQueueAttributes)(sqsClient, locatorConfig);
|
|
23
|
+
if (checkResult.error === 'not_found') {
|
|
24
|
+
throw new Error(`Queue with queueUrl ${locatorConfig.queueUrl} does not exist.`);
|
|
25
|
+
}
|
|
26
|
+
const queueUrl = locatorConfig.queueUrl;
|
|
27
|
+
const splitUrl = queueUrl.split('/');
|
|
28
|
+
const queueName = splitUrl[splitUrl.length - 1];
|
|
29
|
+
return {
|
|
30
|
+
queueUrl,
|
|
31
|
+
queueName,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// create new queue if does not exist
|
|
35
|
+
if (!creationConfig?.queue.QueueName) {
|
|
36
|
+
throw new Error('queueConfig.QueueName is mandatory when locator is not provided');
|
|
37
|
+
}
|
|
38
|
+
const queueUrl = await (0, sqsUtils_1.assertQueue)(sqsClient, creationConfig.queue);
|
|
39
|
+
const queueName = creationConfig.queue.QueueName;
|
|
40
|
+
return {
|
|
41
|
+
queueUrl,
|
|
42
|
+
queueName,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.initSqs = initSqs;
|
|
46
|
+
//# sourceMappingURL=sqsInitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqsInitter.js","sourceRoot":"","sources":["../../../lib/utils/sqsInitter.ts"],"names":[],"mappings":";;;AAEA,sDAA0D;AAE1D,yCAAyE;AAKlE,KAAK,UAAU,SAAS,CAC7B,SAAoB,EACpB,cAA8B,EAC9B,cAAiC;IAEjC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;QAClC,OAAM;KACP;IAED,IAAI,IAAA,mBAAY,GAAE,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE;QAC7D,MAAM,IAAI,KAAK,CACb,wMAAwM,CACzM,CAAA;KACF;IAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;KAChE;IAED,MAAM,IAAA,sBAAW,EAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAC9D,CAAC;AApBD,8BAoBC;AAEM,KAAK,UAAU,OAAO,CAC3B,SAAoB,EACpB,aAAmC,EACnC,cAAkC;IAElC,4BAA4B;IAC5B,IAAI,aAAa,EAAE;QACjB,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAkB,EAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACtE,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,aAAa,CAAC,QAAQ,kBAAkB,CAAC,CAAA;SACjF;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;QAEvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC/C,OAAO;YACL,QAAQ;YACR,SAAS;SACV,CAAA;KACF;IAED,qCAAqC;IACrC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;KACnF;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAA;IAEhD,OAAO;QACL,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC;AAlCD,0BAkCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqsMessageDeserializer.js","sourceRoot":"","sources":["../../../lib/utils/sqsMessageDeserializer.ts"],"names":[],"mappings":";;;AAMO,MAAM,qBAAqB,GAAG,CACnC,OAAmB,EACnB,IAAgB,EAChB,cAA6B,EACkC,EAAE;IACjE,IAAI;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7C,CAAA;KACF;IAAC,OAAO,SAAS,EAAE;QAClB,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC;SAC9C,CAAA;KACF;AACH,CAAC,CAAA;AAdY,QAAA,qBAAqB,yBAcjC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
2
|
+
import type { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { SQSMessage } from '../types/MessageTypes';
|
|
4
|
+
export declare function readSqsMessage(message: SQSMessage, errorProcessor: ErrorResolver): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readSqsMessage = void 0;
|
|
4
|
+
function readSqsMessage(message, errorProcessor) {
|
|
5
|
+
try {
|
|
6
|
+
return {
|
|
7
|
+
result: JSON.parse(message.Body),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
catch (exception) {
|
|
11
|
+
return {
|
|
12
|
+
error: errorProcessor.processError(exception),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.readSqsMessage = readSqsMessage;
|
|
17
|
+
//# sourceMappingURL=sqsMessageReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqsMessageReader.js","sourceRoot":"","sources":["../../../lib/utils/sqsMessageReader.ts"],"names":[],"mappings":";;;AAKA,SAAgB,cAAc,CAC5B,OAAmB,EACnB,cAA6B;IAE7B,IAAI;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SACjC,CAAA;KACF;IAAC,OAAO,SAAS,EAAE;QAClB,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC;SAC9C,CAAA;KACF;AACH,CAAC;AAbD,wCAaC"}
|
|
@@ -6,6 +6,5 @@ type QueueAttributesResult = {
|
|
|
6
6
|
};
|
|
7
7
|
export declare function getQueueAttributes(sqsClient: SQSClient, queueLocator: SQSQueueLocatorType): Promise<Either<'not_found', QueueAttributesResult>>;
|
|
8
8
|
export declare function assertQueue(sqsClient: SQSClient, queueConfig: CreateQueueCommandInput): Promise<string>;
|
|
9
|
-
export declare function purgeQueue(client: SQSClient, queueName: string): Promise<void>;
|
|
10
9
|
export declare function deleteQueue(client: SQSClient, queueName: string): Promise<void>;
|
|
11
10
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteQueue = exports.
|
|
3
|
+
exports.deleteQueue = exports.assertQueue = exports.getQueueAttributes = void 0;
|
|
4
4
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
5
|
async function getQueueAttributes(sqsClient, queueLocator) {
|
|
6
6
|
const command = new client_sqs_1.GetQueueAttributesCommand({
|
|
@@ -39,23 +39,6 @@ async function assertQueue(sqsClient, queueConfig) {
|
|
|
39
39
|
return response.QueueUrl;
|
|
40
40
|
}
|
|
41
41
|
exports.assertQueue = assertQueue;
|
|
42
|
-
async function purgeQueue(client, queueName) {
|
|
43
|
-
try {
|
|
44
|
-
const queueUrlCommand = new client_sqs_1.GetQueueUrlCommand({
|
|
45
|
-
QueueName: queueName,
|
|
46
|
-
});
|
|
47
|
-
const response = await client.send(queueUrlCommand);
|
|
48
|
-
const purgeCommand = new client_sqs_1.PurgeQueueCommand({
|
|
49
|
-
QueueUrl: response.QueueUrl,
|
|
50
|
-
});
|
|
51
|
-
await client.send(purgeCommand);
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
// @ts-ignore
|
|
55
|
-
console.log(`Failed to purge: ${err.message}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.purgeQueue = purgeQueue;
|
|
59
42
|
async function deleteQueue(client, queueName) {
|
|
60
43
|
try {
|
|
61
44
|
const queueUrlCommand = new client_sqs_1.GetQueueUrlCommand({
|
|
@@ -73,4 +56,4 @@ async function deleteQueue(client, queueName) {
|
|
|
73
56
|
}
|
|
74
57
|
}
|
|
75
58
|
exports.deleteQueue = deleteQueue;
|
|
76
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=sqsUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqsUtils.js","sourceRoot":"","sources":["../../../lib/utils/sqsUtils.ts"],"names":[],"mappings":";;;AACA,oDAK4B;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,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": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SQS adapter for message-queue-toolkit",
|
|
@@ -31,15 +31,16 @@
|
|
|
31
31
|
"zod": "^3.21.4"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@aws-sdk/client-sqs": "^3.
|
|
35
|
-
"@message-queue-toolkit/core": "^
|
|
34
|
+
"@aws-sdk/client-sqs": "^3.382.0",
|
|
35
|
+
"@message-queue-toolkit/core": "^3.1.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
+
"@aws-sdk/client-sqs": "^3.382.0",
|
|
38
39
|
"@message-queue-toolkit/core": "*",
|
|
39
40
|
"@types/node": "^20.4.1",
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
41
|
-
"@typescript-eslint/parser": "^
|
|
42
|
-
"@vitest/coverage-v8": "^0.
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^6.2.1",
|
|
42
|
+
"@typescript-eslint/parser": "^6.2.1",
|
|
43
|
+
"@vitest/coverage-v8": "^0.34.1",
|
|
43
44
|
"awilix": "^8.0.1",
|
|
44
45
|
"awilix-manager": "^2.0.0",
|
|
45
46
|
"del-cli": "^5.0.0",
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
"eslint-plugin-vitest": "^0.2.6",
|
|
51
52
|
"prettier": "^3.0.0",
|
|
52
53
|
"typescript": "^5.1.6",
|
|
53
|
-
"vitest": "^0.
|
|
54
|
+
"vitest": "^0.34.1"
|
|
54
55
|
},
|
|
55
56
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
56
57
|
"repository": {
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { AsyncPublisher } from '@message-queue-toolkit/core';
|
|
2
|
-
import { AbstractSqsService } from './AbstractSqsService';
|
|
3
|
-
export type SQSMessageOptions = {
|
|
4
|
-
MessageGroupId?: string;
|
|
5
|
-
MessageDeduplicationId?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare abstract class AbstractSqsPublisher<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
|
|
8
|
-
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsPublisher.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisher.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAGxD,6DAAyD;AAOzD,MAAsB,oBACpB,SAAQ,uCAAsC;IAG9C,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,IAAI;YACF,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;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF;AAnBD,oDAmBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqsMessageDeserializer.js","sourceRoot":"","sources":["../../../lib/sqs/sqsMessageDeserializer.ts"],"names":[],"mappings":";;;AAMO,MAAM,qBAAqB,GAAG,CACnC,OAAmB,EACnB,IAAgB,EAChB,cAA6B,EACkC,EAAE;IACjE,IAAI;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7C,CAAA;KACF;IAAC,OAAO,SAAS,EAAE;QAClB,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC;SAC9C,CAAA;KACF;AACH,CAAC,CAAA;AAdY,QAAA,qBAAqB,yBAcjC"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
File without changes
|
|
File without changes
|