@message-queue-toolkit/sqs 3.4.0 → 3.6.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/lib/sqs/AbstractSqsConsumer.d.ts +2 -0
- package/dist/lib/sqs/AbstractSqsConsumer.js +13 -7
- package/dist/lib/sqs/AbstractSqsConsumer.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.d.ts +4 -0
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js +6 -0
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.d.ts +2 -0
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js +9 -1
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.d.ts +2 -3
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.js +10 -3
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js +5 -0
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsService.d.ts +1 -0
- package/dist/lib/sqs/AbstractSqsService.js +4 -1
- package/dist/lib/sqs/AbstractSqsService.js.map +1 -1
- package/dist/lib/utils/sqsAttributeUtils.d.ts +1 -1
- package/dist/lib/utils/sqsAttributeUtils.js +2 -2
- package/dist/lib/utils/sqsInitter.d.ts +1 -0
- package/dist/lib/utils/sqsInitter.js +8 -2
- package/dist/lib/utils/sqsInitter.js.map +1 -1
- package/dist/lib/utils/sqsUtils.d.ts +4 -1
- package/dist/lib/utils/sqsUtils.js +14 -2
- package/dist/lib/utils/sqsUtils.js.map +1 -1
- package/package.json +6 -6
|
@@ -23,6 +23,8 @@ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends obj
|
|
|
23
23
|
protected consumer: Consumer;
|
|
24
24
|
private readonly consumerOptionsOverride;
|
|
25
25
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
26
|
+
private internalProcessMessage;
|
|
27
|
+
protected abstract preHandlerBarrier(message: MessagePayloadType, messageType: string): Promise<boolean>;
|
|
26
28
|
abstract processMessage(message: MessagePayloadType, messageType: string): Promise<Either<'retryLater', 'success'>>;
|
|
27
29
|
private deserializeMessage;
|
|
28
30
|
private failProcessing;
|
|
@@ -20,6 +20,13 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
20
20
|
this.errorResolver = dependencies.consumerErrorResolver;
|
|
21
21
|
this.consumerOptionsOverride = options.consumerOverrides ?? {};
|
|
22
22
|
}
|
|
23
|
+
async internalProcessMessage(message, messageType) {
|
|
24
|
+
const barrierPassed = await this.preHandlerBarrier(message, messageType);
|
|
25
|
+
if (barrierPassed) {
|
|
26
|
+
return this.processMessage(message, messageType);
|
|
27
|
+
}
|
|
28
|
+
return { error: 'retryLater' };
|
|
29
|
+
}
|
|
23
30
|
deserializeMessage(message) {
|
|
24
31
|
if (message === null) {
|
|
25
32
|
return ABORT_EARLY_EITHER;
|
|
@@ -75,7 +82,11 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
75
82
|
const messageType = deserializedMessage.result[this.messageTypeField];
|
|
76
83
|
const transactionSpanId = `queue_${this.queueName}:${messageType}`;
|
|
77
84
|
this.transactionObservabilityManager?.start(transactionSpanId);
|
|
78
|
-
|
|
85
|
+
if (this.logMessages) {
|
|
86
|
+
const resolvedLogMessage = this.resolveMessageLog(deserializedMessage.result, messageType);
|
|
87
|
+
this.logMessage(resolvedLogMessage);
|
|
88
|
+
}
|
|
89
|
+
const result = await this.internalProcessMessage(deserializedMessage.result, messageType)
|
|
79
90
|
.catch((err) => {
|
|
80
91
|
// ToDo we need sanity check to stop trying at some point, perhaps some kind of Redis counter
|
|
81
92
|
// If we fail due to unknown reason, let's retry
|
|
@@ -88,12 +99,7 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
88
99
|
.finally(() => {
|
|
89
100
|
this.transactionObservabilityManager?.stop(transactionSpanId);
|
|
90
101
|
});
|
|
91
|
-
|
|
92
|
-
return message;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return Promise.reject(result);
|
|
96
|
-
}
|
|
102
|
+
return result.result ? message : Promise.reject(result);
|
|
97
103
|
},
|
|
98
104
|
sqs: this.sqsClient,
|
|
99
105
|
...this.consumerOptionsOverride,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":";;;AAOA,sDAA0E;AAC1E,+CAAuC;AAIvC,gEAA0D;AAO1D,6DAAyD;AAEzD,MAAM,kBAAkB,GAA2B;IACjD,KAAK,EAAE,OAAO;CACf,CAAA;AAqBD,MAAsB,mBAUpB,SAAQ,uCAMP;IAGgB,+BAA+B,CAAkC;IAC/D,aAAa,CAAe;IAC/C,aAAa;IACH,QAAQ,CAAU;IACX,uBAAuB,CAA0B;IAElE,YAAsB,YAAqC,EAAE,OAA4B;QACvF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,+BAA+B,GAAG,YAAY,CAAC,+BAA+B,CAAA;QACnF,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,qBAAqB,CAAA;QAEvD,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAA;IAChE,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,9 @@ export declare abstract class AbstractSqsConsumerMonoSchema<MessagePayloadType e
|
|
|
10
10
|
private readonly messageSchema;
|
|
11
11
|
private readonly schemaEither;
|
|
12
12
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
13
|
+
/**
|
|
14
|
+
* Override to implement barrier pattern
|
|
15
|
+
*/
|
|
16
|
+
protected preHandlerBarrier(_message: MessagePayloadType, _messageType: string): Promise<boolean>;
|
|
13
17
|
protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
14
18
|
}
|
|
@@ -12,6 +12,12 @@ class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsCon
|
|
|
12
12
|
result: this.messageSchema,
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Override to implement barrier pattern
|
|
17
|
+
*/
|
|
18
|
+
preHandlerBarrier(_message, _messageType) {
|
|
19
|
+
return Promise.resolve(true);
|
|
20
|
+
}
|
|
15
21
|
resolveSchema() {
|
|
16
22
|
return this.schemaEither;
|
|
17
23
|
}
|
|
@@ -1 +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;
|
|
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;IAED;;OAEG;IACgB,iBAAiB,CAClC,QAA4B,EAC5B,YAAoB;QAEpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AA3CD,sEA2CC"}
|
|
@@ -17,4 +17,6 @@ export declare abstract class AbstractSqsConsumerMultiSchema<MessagePayloadType
|
|
|
17
17
|
constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
18
18
|
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
19
19
|
processMessage(message: MessagePayloadType, messageType: string): Promise<Either<'retryLater', 'success'>>;
|
|
20
|
+
protected resolveMessageLog(message: MessagePayloadType, messageType: string): unknown;
|
|
21
|
+
protected preHandlerBarrier(message: MessagePayloadType, messageType: string): Promise<boolean>;
|
|
20
22
|
}
|
|
@@ -24,7 +24,15 @@ class AbstractSqsConsumerMultiSchema extends AbstractSqsConsumer_1.AbstractSqsCo
|
|
|
24
24
|
async processMessage(message, messageType) {
|
|
25
25
|
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
26
26
|
// @ts-ignore
|
|
27
|
-
return handler(message, this);
|
|
27
|
+
return handler.handler(message, this);
|
|
28
|
+
}
|
|
29
|
+
resolveMessageLog(message, messageType) {
|
|
30
|
+
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
31
|
+
return handler.messageLogFormatter(message);
|
|
32
|
+
}
|
|
33
|
+
async preHandlerBarrier(message, messageType) {
|
|
34
|
+
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
35
|
+
return handler.preHandlerBarrier ? await handler.preHandlerBarrier(message) : true;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
exports.AbstractSqsConsumerMultiSchema = AbstractSqsConsumerMultiSchema;
|
|
@@ -1 +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;
|
|
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,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACvC,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,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpF,CAAC;CACF;AA/DD,wEA+DC"}
|
|
@@ -10,10 +10,9 @@ export type SQSMessageOptions = {
|
|
|
10
10
|
};
|
|
11
11
|
export declare abstract class AbstractSqsPublisherMonoSchema<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
|
|
12
12
|
private readonly messageSchema;
|
|
13
|
+
private readonly schemaEither;
|
|
13
14
|
constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MonoSchemaQueueOptions<MessagePayloadType>);
|
|
14
15
|
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
15
16
|
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
16
|
-
protected resolveSchema():
|
|
17
|
-
result: ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>;
|
|
18
|
-
};
|
|
17
|
+
protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
19
18
|
}
|
|
@@ -5,13 +5,22 @@ const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
|
5
5
|
const AbstractSqsService_1 = require("./AbstractSqsService");
|
|
6
6
|
class AbstractSqsPublisherMonoSchema extends AbstractSqsService_1.AbstractSqsService {
|
|
7
7
|
messageSchema;
|
|
8
|
+
schemaEither;
|
|
8
9
|
constructor(dependencies, options) {
|
|
9
10
|
super(dependencies, options);
|
|
10
11
|
this.messageSchema = options.messageSchema;
|
|
12
|
+
this.schemaEither = {
|
|
13
|
+
result: this.messageSchema,
|
|
14
|
+
};
|
|
11
15
|
}
|
|
12
16
|
async publish(message, options = {}) {
|
|
13
17
|
try {
|
|
14
18
|
this.messageSchema.parse(message);
|
|
19
|
+
if (this.logMessages) {
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
const resolvedLogMessage = this.resolveMessageLog(message, message[this.messageTypeField]);
|
|
22
|
+
this.logMessage(resolvedLogMessage);
|
|
23
|
+
}
|
|
15
24
|
const input = {
|
|
16
25
|
// SendMessageRequest
|
|
17
26
|
QueueUrl: this.queueUrl,
|
|
@@ -31,9 +40,7 @@ class AbstractSqsPublisherMonoSchema extends AbstractSqsService_1.AbstractSqsSer
|
|
|
31
40
|
throw new Error('Not implemented for publisher');
|
|
32
41
|
}
|
|
33
42
|
resolveSchema() {
|
|
34
|
-
return
|
|
35
|
-
result: this.messageSchema,
|
|
36
|
-
};
|
|
43
|
+
return this.schemaEither;
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
exports.AbstractSqsPublisherMonoSchema = AbstractSqsPublisherMonoSchema;
|
|
@@ -1 +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;
|
|
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;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,IAAI;YACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAEjC,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,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;aACpC;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;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,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CAEF;AArDD,wEAqDC"}
|
|
@@ -21,6 +21,11 @@ class AbstractSqsPublisherMultiSchema extends AbstractSqsService_1.AbstractSqsSe
|
|
|
21
21
|
throw resolveSchemaResult.error;
|
|
22
22
|
}
|
|
23
23
|
resolveSchemaResult.result.parse(message);
|
|
24
|
+
if (this.logMessages) {
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
const resolvedLogMessage = this.resolveMessageLog(message, message[this.messageTypeField]);
|
|
27
|
+
this.logMessage(resolvedLogMessage);
|
|
28
|
+
}
|
|
24
29
|
const input = {
|
|
25
30
|
// SendMessageRequest
|
|
26
31
|
QueueUrl: this.queueUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAUxD,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,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;
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAUxD,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,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,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,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;aACpC;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;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;AA7DD,0EA6DC"}
|
|
@@ -29,6 +29,7 @@ export declare abstract class AbstractSqsService<MessagePayloadType extends obje
|
|
|
29
29
|
protected readonly sqsClient: SQSClient;
|
|
30
30
|
queueUrl: string;
|
|
31
31
|
queueName: string;
|
|
32
|
+
queueArn: string;
|
|
32
33
|
constructor(dependencies: DependenciesType, options: SQSOptionsType);
|
|
33
34
|
init(): Promise<void>;
|
|
34
35
|
close(): Promise<void>;
|
|
@@ -9,6 +9,8 @@ class AbstractSqsService extends core_1.AbstractQueueService {
|
|
|
9
9
|
queueUrl;
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
queueName;
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
queueArn;
|
|
12
14
|
constructor(dependencies, options) {
|
|
13
15
|
super(dependencies, options);
|
|
14
16
|
this.sqsClient = dependencies.sqsClient;
|
|
@@ -17,7 +19,8 @@ class AbstractSqsService extends core_1.AbstractQueueService {
|
|
|
17
19
|
if (this.deletionConfig && this.creationConfig) {
|
|
18
20
|
await (0, sqsInitter_1.deleteSqs)(this.sqsClient, this.deletionConfig, this.creationConfig);
|
|
19
21
|
}
|
|
20
|
-
const { queueUrl, queueName } = await (0, sqsInitter_1.initSqs)(this.sqsClient, this.locatorConfig, this.creationConfig);
|
|
22
|
+
const { queueUrl, queueName, queueArn } = await (0, sqsInitter_1.initSqs)(this.sqsClient, this.locatorConfig, this.creationConfig);
|
|
23
|
+
this.queueArn = queueArn;
|
|
21
24
|
this.queueUrl = queueUrl;
|
|
22
25
|
this.queueName = queueName;
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAQA,sDAAkE;AAGlE,oDAAwD;AA8BxD,MAAsB,kBAUpB,SAAQ,2BAOT;IACoB,SAAS,CAAW;IACvC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,SAAS,CAAQ;
|
|
1
|
+
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AAQA,sDAAkE;AAGlE,oDAAwD;AA8BxD,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;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,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;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAjDD,gDAiDC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function generateQueuePublishForTopicPolicy(
|
|
1
|
+
export declare function generateQueuePublishForTopicPolicy(queueArn: string, supportedSnsTopicArnPrefix: string): string;
|
|
2
2
|
export declare function generateWildcardSqsArn(sqsQueueArnPrefix: string): string;
|
|
3
3
|
export declare function generateWildcardSnsArn(snsTopicArnPrefix: string): string;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateWildcardSnsArn = exports.generateWildcardSqsArn = exports.generateQueuePublishForTopicPolicy = void 0;
|
|
4
4
|
// See https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html
|
|
5
5
|
const POLICY_VERSION = '2012-10-17';
|
|
6
|
-
function generateQueuePublishForTopicPolicy(
|
|
7
|
-
return `{"Version":"${POLICY_VERSION}","Id":"__default_policy_ID","Statement":[{"Sid":"AllowSNSPublish","Effect":"Allow","Principal":{"AWS":"*"},"Action":"sqs:SendMessage","Resource":"${
|
|
6
|
+
function generateQueuePublishForTopicPolicy(queueArn, supportedSnsTopicArnPrefix) {
|
|
7
|
+
return `{"Version":"${POLICY_VERSION}","Id":"__default_policy_ID","Statement":[{"Sid":"AllowSNSPublish","Effect":"Allow","Principal":{"AWS":"*"},"Action":"sqs:SendMessage","Resource":"${queueArn}","Condition":{"ArnLike":{"aws:SourceArn":"${supportedSnsTopicArnPrefix}"}}}]}`;
|
|
8
8
|
}
|
|
9
9
|
exports.generateQueuePublishForTopicPolicy = generateQueuePublishForTopicPolicy;
|
|
10
10
|
function generateWildcardSqsArn(sqsQueueArnPrefix) {
|
|
@@ -4,6 +4,7 @@ import type { SQSCreationConfig } from '../sqs/AbstractSqsConsumer';
|
|
|
4
4
|
import type { SQSQueueLocatorType } from '../sqs/AbstractSqsService';
|
|
5
5
|
export declare function deleteSqs(sqsClient: SQSClient, deletionConfig: DeletionConfig, creationConfig: SQSCreationConfig): Promise<void>;
|
|
6
6
|
export declare function initSqs(sqsClient: SQSClient, locatorConfig?: SQSQueueLocatorType, creationConfig?: SQSCreationConfig): Promise<{
|
|
7
|
+
queueArn: string;
|
|
7
8
|
queueUrl: string;
|
|
8
9
|
queueName: string;
|
|
9
10
|
}>;
|
|
@@ -19,14 +19,19 @@ exports.deleteSqs = deleteSqs;
|
|
|
19
19
|
async function initSqs(sqsClient, locatorConfig, creationConfig) {
|
|
20
20
|
// reuse existing queue only
|
|
21
21
|
if (locatorConfig) {
|
|
22
|
-
const checkResult = await (0, sqsUtils_1.getQueueAttributes)(sqsClient, locatorConfig);
|
|
22
|
+
const checkResult = await (0, sqsUtils_1.getQueueAttributes)(sqsClient, locatorConfig, ['QueueArn']);
|
|
23
23
|
if (checkResult.error === 'not_found') {
|
|
24
24
|
throw new Error(`Queue with queueUrl ${locatorConfig.queueUrl} does not exist.`);
|
|
25
25
|
}
|
|
26
|
+
const queueArn = checkResult.result?.attributes?.QueueArn;
|
|
27
|
+
if (!queueArn) {
|
|
28
|
+
throw new Error('Queue ARN was not set');
|
|
29
|
+
}
|
|
26
30
|
const queueUrl = locatorConfig.queueUrl;
|
|
27
31
|
const splitUrl = queueUrl.split('/');
|
|
28
32
|
const queueName = splitUrl[splitUrl.length - 1];
|
|
29
33
|
return {
|
|
34
|
+
queueArn,
|
|
30
35
|
queueUrl,
|
|
31
36
|
queueName,
|
|
32
37
|
};
|
|
@@ -35,12 +40,13 @@ async function initSqs(sqsClient, locatorConfig, creationConfig) {
|
|
|
35
40
|
if (!creationConfig?.queue.QueueName) {
|
|
36
41
|
throw new Error('queueConfig.QueueName is mandatory when locator is not provided');
|
|
37
42
|
}
|
|
38
|
-
const queueUrl = await (0, sqsUtils_1.assertQueue)(sqsClient, creationConfig.queue, {
|
|
43
|
+
const { queueUrl, queueArn } = await (0, sqsUtils_1.assertQueue)(sqsClient, creationConfig.queue, {
|
|
39
44
|
topicArnsWithPublishPermissionsPrefix: creationConfig.topicArnsWithPublishPermissionsPrefix,
|
|
40
45
|
});
|
|
41
46
|
const queueName = creationConfig.queue.QueueName;
|
|
42
47
|
return {
|
|
43
48
|
queueUrl,
|
|
49
|
+
queueArn,
|
|
44
50
|
queueName,
|
|
45
51
|
};
|
|
46
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqsInitter.js","sourceRoot":"","sources":["../../../lib/utils/sqsInitter.ts"],"names":[],"mappings":";;;AAEA,sDAA0D;AAK1D,yCAAyE;AAElE,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;
|
|
1
|
+
{"version":3,"file":"sqsInitter.js","sourceRoot":"","sources":["../../../lib/utils/sqsInitter.ts"],"names":[],"mappings":";;;AAEA,sDAA0D;AAK1D,yCAAyE;AAElE,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,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;QACpF,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,aAAa,CAAC,QAAQ,kBAAkB,CAAC,CAAA;SACjF;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAA;QACzD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;SACzC;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,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,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,sBAAW,EAAC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE;QAChF,qCAAqC,EAAE,cAAc,CAAC,qCAAqC;KAC5F,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAA;IAEhD,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC;AA3CD,0BA2CC"}
|
|
@@ -7,6 +7,9 @@ type QueueAttributesResult = {
|
|
|
7
7
|
attributes?: Record<string, string>;
|
|
8
8
|
};
|
|
9
9
|
export declare function getQueueAttributes(sqsClient: SQSClient, queueLocator: SQSQueueLocatorType, attributeNames?: QueueAttributeName[]): Promise<Either<'not_found', QueueAttributesResult>>;
|
|
10
|
-
export declare function assertQueue(sqsClient: SQSClient, queueConfig: CreateQueueCommandInput, extraParams?: ExtraSQSCreationParams): Promise<
|
|
10
|
+
export declare function assertQueue(sqsClient: SQSClient, queueConfig: CreateQueueCommandInput, extraParams?: ExtraSQSCreationParams): Promise<{
|
|
11
|
+
queueArn: string;
|
|
12
|
+
queueUrl: string;
|
|
13
|
+
}>;
|
|
11
14
|
export declare function deleteQueue(client: SQSClient, queueName: string): Promise<void>;
|
|
12
15
|
export {};
|
|
@@ -38,16 +38,28 @@ async function assertQueue(sqsClient, queueConfig, extraParams) {
|
|
|
38
38
|
if (!response.QueueUrl) {
|
|
39
39
|
throw new Error(`Queue ${queueConfig.QueueName ?? ''} was not created`);
|
|
40
40
|
}
|
|
41
|
+
const getQueueAttributesCommand = new client_sqs_1.GetQueueAttributesCommand({
|
|
42
|
+
QueueUrl: response.QueueUrl,
|
|
43
|
+
AttributeNames: ['QueueArn'],
|
|
44
|
+
});
|
|
45
|
+
const queueAttributesResponse = await sqsClient.send(getQueueAttributesCommand);
|
|
46
|
+
const queueArn = queueAttributesResponse.Attributes?.QueueArn;
|
|
47
|
+
if (!queueArn) {
|
|
48
|
+
throw new Error('Queue ARN was not set');
|
|
49
|
+
}
|
|
41
50
|
if (extraParams?.topicArnsWithPublishPermissionsPrefix) {
|
|
42
51
|
const setTopicAttributesCommand = new client_sqs_1.SetQueueAttributesCommand({
|
|
43
52
|
QueueUrl: response.QueueUrl,
|
|
44
53
|
Attributes: {
|
|
45
|
-
Policy: (0, sqsAttributeUtils_1.generateQueuePublishForTopicPolicy)(
|
|
54
|
+
Policy: (0, sqsAttributeUtils_1.generateQueuePublishForTopicPolicy)(queueArn, extraParams.topicArnsWithPublishPermissionsPrefix),
|
|
46
55
|
},
|
|
47
56
|
});
|
|
48
57
|
await sqsClient.send(setTopicAttributesCommand);
|
|
49
58
|
}
|
|
50
|
-
return
|
|
59
|
+
return {
|
|
60
|
+
queueArn,
|
|
61
|
+
queueUrl: response.QueueUrl,
|
|
62
|
+
};
|
|
51
63
|
}
|
|
52
64
|
exports.assertQueue = assertQueue;
|
|
53
65
|
async function deleteQueue(client, queueName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqsUtils.js","sourceRoot":"","sources":["../../../lib/utils/sqsUtils.ts"],"names":[],"mappings":";;;AACA,oDAM4B;AAO5B,2DAAwE;AAMjE,KAAK,UAAU,kBAAkB,CACtC,SAAoB,EACpB,YAAiC,EACjC,cAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,sCAAyB,CAAC;QAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,cAAc,EAAE,cAAc;KAC/B,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;AA3BD,gDA2BC;AAEM,KAAK,UAAU,WAAW,CAC/B,SAAoB,EACpB,WAAoC,EACpC,WAAoC;IAEpC,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,IAAI,WAAW,EAAE,qCAAqC,EAAE;QACtD,MAAM,yBAAyB,GAAG,IAAI,sCAAyB,CAAC;YAC9D,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE;gBACV,MAAM,EAAE,IAAA,sDAAkC,EACxC,QAAQ,
|
|
1
|
+
{"version":3,"file":"sqsUtils.js","sourceRoot":"","sources":["../../../lib/utils/sqsUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sqs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SQS adapter for message-queue-toolkit",
|
|
@@ -32,19 +32,19 @@
|
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@aws-sdk/client-sqs": "^3.385.0",
|
|
35
|
-
"@message-queue-toolkit/core": "^3.
|
|
35
|
+
"@message-queue-toolkit/core": "^3.5.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@aws-sdk/client-sqs": "^3.385.0",
|
|
39
39
|
"@message-queue-toolkit/core": "*",
|
|
40
|
-
"@types/node": "^20.
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
42
|
-
"@typescript-eslint/parser": "^6.
|
|
40
|
+
"@types/node": "^20.5.0",
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
|
42
|
+
"@typescript-eslint/parser": "^6.4.0",
|
|
43
43
|
"@vitest/coverage-v8": "^0.34.1",
|
|
44
44
|
"awilix": "^8.0.1",
|
|
45
45
|
"awilix-manager": "^2.0.0",
|
|
46
46
|
"del-cli": "^5.0.0",
|
|
47
|
-
"eslint": "^8.
|
|
47
|
+
"eslint": "^8.47.0",
|
|
48
48
|
"eslint-config-prettier": "^8.8.0",
|
|
49
49
|
"eslint-plugin-import": "^2.27.5",
|
|
50
50
|
"eslint-plugin-prettier": "^5.0.0",
|