@message-queue-toolkit/sns 3.7.0 → 4.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 +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/sns/AbstractSnsSqsConsumerMonoSchema.d.ts +3 -3
- package/dist/lib/sns/AbstractSnsSqsConsumerMonoSchema.js +12 -3
- package/dist/lib/sns/AbstractSnsSqsConsumerMonoSchema.js.map +1 -1
- package/dist/lib/sns/AbstractSnsSqsConsumerMultiSchema.js +3 -1
- package/dist/lib/sns/AbstractSnsSqsConsumerMultiSchema.js.map +1 -1
- package/dist/lib/utils/snsInitter.d.ts +3 -3
- package/dist/lib/utils/snsInitter.js +4 -3
- package/dist/lib/utils/snsInitter.js.map +1 -1
- package/dist/lib/utils/snsSubscriber.d.ts +5 -2
- package/dist/lib/utils/snsSubscriber.js +46 -7
- package/dist/lib/utils/snsSubscriber.js.map +1 -1
- package/dist/lib/utils/snsUtils.d.ts +4 -2
- package/dist/lib/utils/snsUtils.js +35 -1
- package/dist/lib/utils/snsUtils.js.map +1 -1
- package/package.json +15 -15
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type { NewSnsSqsConsumerOptionsMulti, ExistingSnsSqsConsumerOptionsMulti,
|
|
|
10
10
|
export type { SNSMessageOptions } from './lib/sns/AbstractSnsPublisherMonoSchema';
|
|
11
11
|
export type { CommonMessage } from './lib/types/MessageTypes';
|
|
12
12
|
export { deserializeSNSMessage } from './lib/utils/snsMessageDeserializer';
|
|
13
|
-
export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, } from './lib/utils/snsUtils';
|
|
13
|
+
export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from './lib/utils/snsUtils';
|
|
14
14
|
export { subscribeToTopic } from './lib/utils/snsSubscriber';
|
|
15
15
|
export { initSns, initSnsSqs } from './lib/utils/snsInitter';
|
|
16
16
|
export { readSnsMessage } from './lib/utils/snsMessageReader';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateTopicSubscriptionPolicy = exports.generateFilterAttributes = exports.readSnsMessage = exports.initSnsSqs = exports.initSns = exports.subscribeToTopic = exports.deleteSubscription = exports.getTopicAttributes = exports.deleteTopic = exports.assertTopic = exports.deserializeSNSMessage = exports.AbstractSnsSqsConsumerMultiSchema = exports.AbstractSnsSqsConsumerMonoSchema = exports.AbstractSnsPublisherMultiSchema = exports.AbstractSnsPublisherMonoSchema = exports.SnsConsumerErrorResolver = exports.AbstractSnsService = void 0;
|
|
3
|
+
exports.generateTopicSubscriptionPolicy = exports.generateFilterAttributes = exports.readSnsMessage = exports.initSnsSqs = exports.initSns = exports.subscribeToTopic = exports.getSubscriptionAttributes = exports.findSubscriptionByTopicAndQueue = exports.deleteSubscription = exports.getTopicAttributes = exports.deleteTopic = exports.assertTopic = exports.deserializeSNSMessage = exports.AbstractSnsSqsConsumerMultiSchema = exports.AbstractSnsSqsConsumerMonoSchema = exports.AbstractSnsPublisherMultiSchema = exports.AbstractSnsPublisherMonoSchema = exports.SnsConsumerErrorResolver = exports.AbstractSnsService = void 0;
|
|
4
4
|
var AbstractSnsService_1 = require("./lib/sns/AbstractSnsService");
|
|
5
5
|
Object.defineProperty(exports, "AbstractSnsService", { enumerable: true, get: function () { return AbstractSnsService_1.AbstractSnsService; } });
|
|
6
6
|
var SnsConsumerErrorResolver_1 = require("./lib/errors/SnsConsumerErrorResolver");
|
|
@@ -20,6 +20,8 @@ Object.defineProperty(exports, "assertTopic", { enumerable: true, get: function
|
|
|
20
20
|
Object.defineProperty(exports, "deleteTopic", { enumerable: true, get: function () { return snsUtils_1.deleteTopic; } });
|
|
21
21
|
Object.defineProperty(exports, "getTopicAttributes", { enumerable: true, get: function () { return snsUtils_1.getTopicAttributes; } });
|
|
22
22
|
Object.defineProperty(exports, "deleteSubscription", { enumerable: true, get: function () { return snsUtils_1.deleteSubscription; } });
|
|
23
|
+
Object.defineProperty(exports, "findSubscriptionByTopicAndQueue", { enumerable: true, get: function () { return snsUtils_1.findSubscriptionByTopicAndQueue; } });
|
|
24
|
+
Object.defineProperty(exports, "getSubscriptionAttributes", { enumerable: true, get: function () { return snsUtils_1.getSubscriptionAttributes; } });
|
|
23
25
|
var snsSubscriber_1 = require("./lib/utils/snsSubscriber");
|
|
24
26
|
Object.defineProperty(exports, "subscribeToTopic", { enumerable: true, get: function () { return snsSubscriber_1.subscribeToTopic; } });
|
|
25
27
|
var snsInitter_1 = require("./lib/utils/snsInitter");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAaA,mEAAiE;AAAxD,wHAAA,kBAAkB,OAAA;AAE3B,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,6FAA2F;AAAlF,kJAAA,+BAA+B,OAAA;AAExC,+FAA6F;AAApF,oJAAA,gCAAgC,OAAA;AACzC,iGAA+F;AAAtF,sJAAA,iCAAiC,OAAA;AAkB1C,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA;AAE9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAaA,mEAAiE;AAAxD,wHAAA,kBAAkB,OAAA;AAE3B,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,6FAA2F;AAAlF,kJAAA,+BAA+B,OAAA;AAExC,+FAA6F;AAApF,oJAAA,gCAAgC,OAAA;AACzC,iGAA+F;AAAtF,sJAAA,iCAAiC,OAAA;AAkB1C,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA;AAE9B,iDAO6B;AAN3B,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,8GAAA,kBAAkB,OAAA;AAClB,8GAAA,kBAAkB,OAAA;AAClB,2HAAA,+BAA+B,OAAA;AAC/B,qHAAA,yBAAyB,OAAA;AAG3B,2DAA4D;AAAnD,iHAAA,gBAAgB,OAAA;AACzB,qDAA4D;AAAnD,qGAAA,OAAO,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC5B,iEAA6D;AAApD,kHAAA,cAAc,OAAA;AACvB,mEAGsC;AAFpC,6HAAA,wBAAwB,OAAA;AACxB,oIAAA,+BAA+B,OAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { Either } from '@lokalise/node-core';
|
|
3
|
-
import type { MonoSchemaQueueOptions } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { MonoSchemaQueueOptions, BarrierResult } from '@message-queue-toolkit/core';
|
|
4
4
|
import type { SQSConsumerDependencies, NewSQSConsumerOptions, ExistingSQSConsumerOptions, SQSQueueLocatorType, SQSCreationConfig, SQSMessage } from '@message-queue-toolkit/sqs';
|
|
5
5
|
import { AbstractSqsConsumer } from '@message-queue-toolkit/sqs';
|
|
6
6
|
import type { ZodSchema } from 'zod';
|
|
@@ -20,7 +20,7 @@ export type SNSSQSConsumerDependencies = SQSConsumerDependencies & {
|
|
|
20
20
|
export type SNSSQSQueueLocatorType = SQSQueueLocatorType & SNSQueueLocatorType & {
|
|
21
21
|
subscriptionArn?: string;
|
|
22
22
|
};
|
|
23
|
-
export declare abstract class AbstractSnsSqsConsumerMonoSchema<MessagePayloadType extends object> extends AbstractSqsConsumer<MessagePayloadType, SNSSQSQueueLocatorType, SNSCreationConfig & SQSCreationConfig, NewSnsSqsConsumerOptions | ExistingSnsSqsConsumerOptionsMono<MessagePayloadType
|
|
23
|
+
export declare abstract class AbstractSnsSqsConsumerMonoSchema<MessagePayloadType extends object, BarrierOutput = undefined> extends AbstractSqsConsumer<MessagePayloadType, SNSSQSQueueLocatorType, SNSCreationConfig & SQSCreationConfig, NewSnsSqsConsumerOptions | ExistingSnsSqsConsumerOptionsMono<MessagePayloadType>, BarrierOutput> {
|
|
24
24
|
private readonly subscriptionConfig?;
|
|
25
25
|
private readonly snsClient;
|
|
26
26
|
private readonly messageSchema;
|
|
@@ -33,6 +33,6 @@ export declare abstract class AbstractSnsSqsConsumerMonoSchema<MessagePayloadTyp
|
|
|
33
33
|
/**
|
|
34
34
|
* Override to implement barrier pattern
|
|
35
35
|
*/
|
|
36
|
-
protected preHandlerBarrier(_message: MessagePayloadType, _messageType: string): Promise<
|
|
36
|
+
protected preHandlerBarrier(_message: MessagePayloadType, _messageType: string): Promise<BarrierResult<BarrierOutput>>;
|
|
37
37
|
init(): Promise<void>;
|
|
38
38
|
}
|
|
@@ -4,6 +4,10 @@ exports.AbstractSnsSqsConsumerMonoSchema = void 0;
|
|
|
4
4
|
const sqs_1 = require("@message-queue-toolkit/sqs");
|
|
5
5
|
const snsInitter_1 = require("../utils/snsInitter");
|
|
6
6
|
const snsMessageReader_1 = require("../utils/snsMessageReader");
|
|
7
|
+
const DEFAULT_BARRIER_RESULT = {
|
|
8
|
+
isPassing: true,
|
|
9
|
+
output: undefined,
|
|
10
|
+
};
|
|
7
11
|
class AbstractSnsSqsConsumerMonoSchema extends sqs_1.AbstractSqsConsumer {
|
|
8
12
|
subscriptionConfig;
|
|
9
13
|
snsClient;
|
|
@@ -34,16 +38,21 @@ class AbstractSnsSqsConsumerMonoSchema extends sqs_1.AbstractSqsConsumer {
|
|
|
34
38
|
* Override to implement barrier pattern
|
|
35
39
|
*/
|
|
36
40
|
preHandlerBarrier(_message, _messageType) {
|
|
37
|
-
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
return Promise.resolve(DEFAULT_BARRIER_RESULT);
|
|
38
43
|
}
|
|
39
44
|
async init() {
|
|
40
45
|
if (this.deletionConfig && this.creationConfig && this.subscriptionConfig) {
|
|
41
|
-
await (0, snsInitter_1.deleteSnsSqs)(this.sqsClient, this.snsClient, this.deletionConfig, this.creationConfig.queue, this.creationConfig.topic, this.subscriptionConfig
|
|
46
|
+
await (0, snsInitter_1.deleteSnsSqs)(this.sqsClient, this.snsClient, this.deletionConfig, this.creationConfig.queue, this.creationConfig.topic, this.subscriptionConfig, {
|
|
47
|
+
logger: this.logger,
|
|
48
|
+
});
|
|
42
49
|
}
|
|
43
50
|
else if (this.deletionConfig && this.creationConfig) {
|
|
44
51
|
await (0, sqs_1.deleteSqs)(this.sqsClient, this.deletionConfig, this.creationConfig);
|
|
45
52
|
}
|
|
46
|
-
const initSnsSqsResult = await (0, snsInitter_1.initSnsSqs)(this.sqsClient, this.snsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig
|
|
53
|
+
const initSnsSqsResult = await (0, snsInitter_1.initSnsSqs)(this.sqsClient, this.snsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig, {
|
|
54
|
+
logger: this.logger,
|
|
55
|
+
});
|
|
47
56
|
this.queueUrl = initSnsSqsResult.queueUrl;
|
|
48
57
|
this.topicArn = initSnsSqsResult.topicArn;
|
|
49
58
|
this.subscriptionArn = initSnsSqsResult.subscriptionArn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnsSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AAWA,oDAA2E;AAG3E,oDAA8D;AAC9D,gEAA0D;AAqC1D,MAAsB,
|
|
1
|
+
{"version":3,"file":"AbstractSnsSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AAWA,oDAA2E;AAG3E,oDAA8D;AAC9D,gEAA0D;AAqC1D,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,SAAS;CACT,CAAA;AAEV,MAAsB,gCAGpB,SAAQ,yBAMT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IACpB,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAC3E,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,eAAe,CAAQ;IAE9B,YACE,YAAwC,EACxC,OAEyD;QAEzD,KAAK,CAAC,YAAY,EAAE;YAClB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAEkB,aAAa;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAEkB,cAAc,CAAC,OAAmB;QACnD,OAAO,IAAA,iCAAc,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACpD,CAAC;IAED;;OAEG;IACO,iBAAiB,CACzB,QAA4B,EAC5B,YAAoB;QAEpB,aAAa;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzE,MAAM,IAAA,yBAAY,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,kBAAkB,EACvB;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CACF,CAAA;SACF;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;YACrD,MAAM,IAAA,eAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;SAC1E;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAU,EACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,EACvB;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAA;IACzD,CAAC;CACF;AAvFD,4EAuFC"}
|
|
@@ -25,7 +25,9 @@ class AbstractSnsSqsConsumerMultiSchema extends sqs_1.AbstractSqsConsumerMultiSc
|
|
|
25
25
|
else if (this.deletionConfig && this.creationConfig) {
|
|
26
26
|
await (0, sqs_1.deleteSqs)(this.sqsClient, this.deletionConfig, this.creationConfig);
|
|
27
27
|
}
|
|
28
|
-
const initSnsSqsResult = await (0, snsInitter_1.initSnsSqs)(this.sqsClient, this.snsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig
|
|
28
|
+
const initSnsSqsResult = await (0, snsInitter_1.initSnsSqs)(this.sqsClient, this.snsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig, {
|
|
29
|
+
logger: this.logger,
|
|
30
|
+
});
|
|
29
31
|
this.queueUrl = initSnsSqsResult.queueUrl;
|
|
30
32
|
this.topicArn = initSnsSqsResult.topicArn;
|
|
31
33
|
this.subscriptionArn = initSnsSqsResult.subscriptionArn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnsSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AAGA,oDAAsF;AAEtF,oDAA8D;AAC9D,gEAA0D;AAqB1D,MAAsB,iCAGpB,SAAQ,oCAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IACrC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,eAAe,CAAQ;IAE9B,YACE,YAAwC,EACxC,OAE+E;QAE/E,KAAK,CAAC,YAAY,EAAE;YAClB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzE,MAAM,IAAA,yBAAY,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,kBAAkB,CACxB,CAAA;SACF;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;YACrD,MAAM,IAAA,eAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;SAC1E;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAU,EACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AbstractSnsSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sns/AbstractSnsSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AAGA,oDAAsF;AAEtF,oDAA8D;AAC9D,gEAA0D;AAqB1D,MAAsB,iCAGpB,SAAQ,oCAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IACrC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,eAAe,CAAQ;IAE9B,YACE,YAAwC,EACxC,OAE+E;QAE/E,KAAK,CAAC,YAAY,EAAE;YAClB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzE,MAAM,IAAA,yBAAY,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,kBAAkB,CACxB,CAAA;SACF;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;YACrD,MAAM,IAAA,eAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;SAC1E;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAU,EACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,EACvB;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAA;IACzD,CAAC;IAEkB,cAAc,CAAC,OAAmB;QACnD,OAAO,IAAA,iCAAc,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACpD,CAAC;IAEkB,aAAa,CAAC,cAAqC;QACpE,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAClE,CAAC;CACF;AApED,8EAoEC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { SNSClient, CreateTopicCommandInput } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { SQSClient, CreateQueueCommandInput } from '@aws-sdk/client-sqs';
|
|
3
|
-
import type { DeletionConfig } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { DeletionConfig, ExtraParams } from '@message-queue-toolkit/core';
|
|
4
4
|
import type { SQSCreationConfig } from '@message-queue-toolkit/sqs';
|
|
5
5
|
import type { SNSCreationConfig, SNSQueueLocatorType } from '../sns/AbstractSnsService';
|
|
6
6
|
import type { SNSSQSQueueLocatorType } from '../sns/AbstractSnsSqsConsumerMonoSchema';
|
|
7
7
|
import type { SNSSubscriptionOptions } from './snsSubscriber';
|
|
8
|
-
export declare function initSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, locatorConfig?: SNSSQSQueueLocatorType, creationConfig?: SNSCreationConfig & SQSCreationConfig, subscriptionConfig?: SNSSubscriptionOptions): Promise<{
|
|
8
|
+
export declare function initSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, locatorConfig?: SNSSQSQueueLocatorType, creationConfig?: SNSCreationConfig & SQSCreationConfig, subscriptionConfig?: SNSSubscriptionOptions, extraParams?: ExtraParams): Promise<{
|
|
9
9
|
subscriptionArn: string;
|
|
10
10
|
topicArn: string;
|
|
11
11
|
queueUrl: string;
|
|
12
12
|
}>;
|
|
13
|
-
export declare function deleteSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, deletionConfig: DeletionConfig, queueConfiguration: CreateQueueCommandInput, topicConfiguration: CreateTopicCommandInput, subscriptionConfiguration: SNSSubscriptionOptions): Promise<void>;
|
|
13
|
+
export declare function deleteSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, deletionConfig: DeletionConfig, queueConfiguration: CreateQueueCommandInput, topicConfiguration: CreateTopicCommandInput, subscriptionConfiguration: SNSSubscriptionOptions, extraParams?: ExtraParams): Promise<void>;
|
|
14
14
|
export declare function deleteSns(snsClient: SNSClient, deletionConfig: DeletionConfig, creationConfig: SNSCreationConfig): Promise<void>;
|
|
15
15
|
export declare function initSns(snsClient: SNSClient, locatorConfig?: SNSQueueLocatorType, creationConfig?: SNSCreationConfig): Promise<{
|
|
16
16
|
topicArn: string;
|
|
@@ -5,7 +5,7 @@ const core_1 = require("@message-queue-toolkit/core");
|
|
|
5
5
|
const sqs_1 = require("@message-queue-toolkit/sqs");
|
|
6
6
|
const snsSubscriber_1 = require("./snsSubscriber");
|
|
7
7
|
const snsUtils_1 = require("./snsUtils");
|
|
8
|
-
async function initSnsSqs(sqsClient, snsClient, locatorConfig, creationConfig, subscriptionConfig) {
|
|
8
|
+
async function initSnsSqs(sqsClient, snsClient, locatorConfig, creationConfig, subscriptionConfig, extraParams) {
|
|
9
9
|
if (!locatorConfig?.subscriptionArn) {
|
|
10
10
|
if (!creationConfig?.topic) {
|
|
11
11
|
throw new Error('If locatorConfig.subscriptionArn is not specified, creationConfig.topic parameter is mandatory, as there will be an attempt to create the missing topic');
|
|
@@ -19,6 +19,7 @@ async function initSnsSqs(sqsClient, snsClient, locatorConfig, creationConfig, s
|
|
|
19
19
|
const { subscriptionArn, topicArn, queueUrl } = await (0, snsSubscriber_1.subscribeToTopic)(sqsClient, snsClient, creationConfig.queue, creationConfig.topic, subscriptionConfig, {
|
|
20
20
|
queueUrlsWithSubscribePermissionsPrefix: creationConfig.queueUrlsWithSubscribePermissionsPrefix,
|
|
21
21
|
topicArnsWithPublishPermissionsPrefix: creationConfig.topicArnsWithPublishPermissionsPrefix,
|
|
22
|
+
logger: extraParams?.logger,
|
|
22
23
|
});
|
|
23
24
|
if (!subscriptionArn) {
|
|
24
25
|
throw new Error('Failed to subscribe');
|
|
@@ -46,14 +47,14 @@ async function initSnsSqs(sqsClient, snsClient, locatorConfig, creationConfig, s
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
exports.initSnsSqs = initSnsSqs;
|
|
49
|
-
async function deleteSnsSqs(sqsClient, snsClient, deletionConfig, queueConfiguration, topicConfiguration, subscriptionConfiguration) {
|
|
50
|
+
async function deleteSnsSqs(sqsClient, snsClient, deletionConfig, queueConfiguration, topicConfiguration, subscriptionConfiguration, extraParams) {
|
|
50
51
|
if (!deletionConfig.deleteIfExists) {
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
54
|
if ((0, core_1.isProduction)() && !deletionConfig.forceDeleteInProduction) {
|
|
54
55
|
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');
|
|
55
56
|
}
|
|
56
|
-
const { subscriptionArn } = await (0, snsSubscriber_1.subscribeToTopic)(sqsClient, snsClient, queueConfiguration, topicConfiguration, subscriptionConfiguration);
|
|
57
|
+
const { subscriptionArn } = await (0, snsSubscriber_1.subscribeToTopic)(sqsClient, snsClient, queueConfiguration, topicConfiguration, subscriptionConfiguration, extraParams);
|
|
57
58
|
if (!subscriptionArn) {
|
|
58
59
|
throw new Error('subscriptionArn must be set for automatic deletion');
|
|
59
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../../lib/utils/snsInitter.ts"],"names":[],"mappings":";;;AAGA,sDAA0D;AAE1D,oDAA4E;AAM5E,mDAAkD;AAClD,yCAA6F;AAEtF,KAAK,UAAU,UAAU,CAC9B,SAAoB,EACpB,SAAoB,EACpB,aAAsC,EACtC,cAAsD,EACtD,kBAA2C;
|
|
1
|
+
{"version":3,"file":"snsInitter.js","sourceRoot":"","sources":["../../../lib/utils/snsInitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { SubscribeCommandInput } from '@aws-sdk/client-sns/dist-types/commands/SubscribeCommand';
|
|
3
3
|
import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
4
|
+
import type { ExtraParams } from '@message-queue-toolkit/core';
|
|
4
5
|
import type { ExtraSQSCreationParams } from '@message-queue-toolkit/sqs';
|
|
5
6
|
import type { ExtraSNSCreationParams } from '../sns/AbstractSnsService';
|
|
6
|
-
export type SNSSubscriptionOptions = Omit<SubscribeCommandInput, 'TopicArn' | 'Endpoint' | 'Protocol' | 'ReturnSubscriptionArn'
|
|
7
|
-
|
|
7
|
+
export type SNSSubscriptionOptions = Omit<SubscribeCommandInput, 'TopicArn' | 'Endpoint' | 'Protocol' | 'ReturnSubscriptionArn'> & {
|
|
8
|
+
updateAttributesIfExists: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function subscribeToTopic(sqsClient: SQSClient, snsClient: SNSClient, queueConfiguration: CreateQueueCommandInput, topicConfiguration: CreateTopicCommandInput, subscriptionConfiguration: SNSSubscriptionOptions, extraParams?: ExtraSNSCreationParams & ExtraSQSCreationParams & ExtraParams): Promise<{
|
|
8
11
|
subscriptionArn: string | undefined;
|
|
9
12
|
topicArn: string;
|
|
10
13
|
queueUrl: string;
|
|
@@ -18,13 +18,52 @@ async function subscribeToTopic(sqsClient, snsClient, queueConfiguration, topicC
|
|
|
18
18
|
ReturnSubscriptionArn: true,
|
|
19
19
|
...subscriptionConfiguration,
|
|
20
20
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
try {
|
|
22
|
+
const subscriptionResult = await snsClient.send(subscribeCommand);
|
|
23
|
+
return {
|
|
24
|
+
subscriptionArn: subscriptionResult.SubscriptionArn,
|
|
25
|
+
topicArn,
|
|
26
|
+
queueUrl,
|
|
27
|
+
queueArn,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
const logger = extraParams?.logger ?? console;
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
logger.error(`Error while creating subscription for queue "${queueConfiguration.QueueName}", topic "${topicConfiguration.Name}": ${err.message}`);
|
|
34
|
+
if (subscriptionConfiguration.updateAttributesIfExists &&
|
|
35
|
+
err.message.indexOf('Subscription already exists with different attributes') !== -1) {
|
|
36
|
+
const result = await tryToUpdateSubscription(snsClient, topicArn, queueArn, subscriptionConfiguration);
|
|
37
|
+
if (!result) {
|
|
38
|
+
logger.error('Failed to update subscription');
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
subscriptionArn: result.SubscriptionArn,
|
|
43
|
+
topicArn,
|
|
44
|
+
queueUrl,
|
|
45
|
+
queueArn,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
28
50
|
}
|
|
29
51
|
exports.subscribeToTopic = subscribeToTopic;
|
|
52
|
+
async function tryToUpdateSubscription(snsClient, topicArn, queueArn, subscriptionConfiguration) {
|
|
53
|
+
const subscription = await (0, snsUtils_1.findSubscriptionByTopicAndQueue)(snsClient, topicArn, queueArn);
|
|
54
|
+
if (!subscription || !subscriptionConfiguration.Attributes) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const setSubscriptionAttributesCommands = Object.entries(subscriptionConfiguration.Attributes).map(([key, value]) => {
|
|
58
|
+
return new client_sns_1.SetSubscriptionAttributesCommand({
|
|
59
|
+
SubscriptionArn: subscription.SubscriptionArn,
|
|
60
|
+
AttributeName: key,
|
|
61
|
+
AttributeValue: value,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
for (let command of setSubscriptionAttributesCommands) {
|
|
65
|
+
await snsClient.send(command);
|
|
66
|
+
}
|
|
67
|
+
return subscription;
|
|
68
|
+
}
|
|
30
69
|
//# sourceMappingURL=snsSubscriber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsSubscriber.js","sourceRoot":"","sources":["../../../lib/utils/snsSubscriber.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"snsSubscriber.js","sourceRoot":"","sources":["../../../lib/utils/snsSubscriber.ts"],"names":[],"mappings":";;;AACA,oDAAwF;AAKxF,oDAAwD;AAIxD,yCAAyE;AAOlE,KAAK,UAAU,gBAAgB,CACpC,SAAoB,EACpB,SAAoB,EACpB,kBAA2C,EAC3C,kBAA2C,EAC3C,yBAAiD,EACjD,WAA2E;IAE3E,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,SAAS,EAAE,kBAAkB,EAAE;QAChE,uCAAuC,EAAE,WAAW,EAAE,uCAAuC;KAC9F,CAAC,CAAA;IACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,iBAAW,EAAC,SAAS,EAAE,kBAAkB,EAAE;QAC9E,qCAAqC,EAAE,WAAW,EAAE,qCAAqC;KAC1F,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,6BAAgB,CAAC;QAC5C,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,KAAK;QACf,qBAAqB,EAAE,IAAI;QAC3B,GAAG,yBAAyB;KAC7B,CAAC,CAAA;IAEF,IAAI;QACF,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACjE,OAAO;YACL,eAAe,EAAE,kBAAkB,CAAC,eAAe;YACnD,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,OAAO,CAAA;QAC7C,aAAa;QACb,MAAM,CAAC,KAAK,CACV,gDAAgD,kBAAkB,CAAC,SAAS,aAC1E,kBAAkB,CAAC,IACrB,MAAO,GAAa,CAAC,OAAO,EAAE,CAC/B,CAAA;QAED,IACE,yBAAyB,CAAC,wBAAwB;YACjD,GAAa,CAAC,OAAO,CAAC,OAAO,CAAC,uDAAuD,CAAC,KAAK,CAAC,CAAC,EAC9F;YACA,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,yBAAyB,CAC1B,CAAA;YACD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBAC7C,MAAM,GAAG,CAAA;aACV;YACD,OAAO;gBACL,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,QAAQ;gBACR,QAAQ;gBACR,QAAQ;aACT,CAAA;SACF;QAED,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AAhED,4CAgEC;AAED,KAAK,UAAU,uBAAuB,CACpC,SAAoB,EACpB,QAAgB,EAChB,QAAgB,EAChB,yBAAiD;IAEjD,MAAM,YAAY,GAAG,MAAM,IAAA,0CAA+B,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzF,IAAI,CAAC,YAAY,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE;QAC1D,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,iCAAiC,GAAG,MAAM,CAAC,OAAO,CACtD,yBAAyB,CAAC,UAAU,CACrC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrB,OAAO,IAAI,6CAAgC,CAAC;YAC1C,eAAe,EAAE,YAAY,CAAC,eAAe;YAC7C,aAAa,EAAE,GAAG;YAClB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,KAAK,IAAI,OAAO,IAAI,iCAAiC,EAAE;QACrD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAC9B;IAED,OAAO,YAAY,CAAA;AACrB,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { CreateTopicCommandInput, SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import type { Either } from '@lokalise/node-core';
|
|
3
3
|
import type { ExtraSNSCreationParams } from '../sns/AbstractSnsService';
|
|
4
|
-
type
|
|
4
|
+
type AttributesResult = {
|
|
5
5
|
attributes?: Record<string, string>;
|
|
6
6
|
};
|
|
7
|
-
export declare function getTopicAttributes(snsClient: SNSClient, topicArn: string): Promise<Either<'not_found',
|
|
7
|
+
export declare function getTopicAttributes(snsClient: SNSClient, topicArn: string): Promise<Either<'not_found', AttributesResult>>;
|
|
8
|
+
export declare function getSubscriptionAttributes(snsClient: SNSClient, subscriptionArn: string): Promise<Either<'not_found', AttributesResult>>;
|
|
8
9
|
export declare function assertTopic(snsClient: SNSClient, topicOptions: CreateTopicCommandInput, extraParams?: ExtraSNSCreationParams): Promise<string>;
|
|
9
10
|
export declare function deleteTopic(client: SNSClient, topicName: string): Promise<void>;
|
|
10
11
|
export declare function deleteSubscription(client: SNSClient, subscriptionArn: string): Promise<void>;
|
|
12
|
+
export declare function findSubscriptionByTopicAndQueue(snsClient: SNSClient, topicArn: string, queueArn: string): Promise<import("@aws-sdk/client-sns").Subscription | undefined>;
|
|
11
13
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteSubscription = exports.deleteTopic = exports.assertTopic = exports.getTopicAttributes = void 0;
|
|
3
|
+
exports.findSubscriptionByTopicAndQueue = exports.deleteSubscription = exports.deleteTopic = exports.assertTopic = exports.getSubscriptionAttributes = exports.getTopicAttributes = void 0;
|
|
4
4
|
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
5
5
|
const snsAttributeUtils_1 = require("./snsAttributeUtils");
|
|
6
6
|
async function getTopicAttributes(snsClient, topicArn) {
|
|
@@ -27,6 +27,30 @@ async function getTopicAttributes(snsClient, topicArn) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.getTopicAttributes = getTopicAttributes;
|
|
30
|
+
async function getSubscriptionAttributes(snsClient, subscriptionArn) {
|
|
31
|
+
const command = new client_sns_1.GetSubscriptionAttributesCommand({
|
|
32
|
+
SubscriptionArn: subscriptionArn,
|
|
33
|
+
});
|
|
34
|
+
try {
|
|
35
|
+
const response = await snsClient.send(command);
|
|
36
|
+
return {
|
|
37
|
+
result: {
|
|
38
|
+
attributes: response.Attributes,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
if (err.Code === 'AWS.SimpleQueueService.NonExistentQueue') {
|
|
45
|
+
return {
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
error: 'not_found',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.getSubscriptionAttributes = getSubscriptionAttributes;
|
|
30
54
|
async function assertTopic(snsClient, topicOptions, extraParams) {
|
|
31
55
|
const command = new client_sns_1.CreateTopicCommand(topicOptions);
|
|
32
56
|
const response = await snsClient.send(command);
|
|
@@ -72,4 +96,14 @@ async function deleteSubscription(client, subscriptionArn) {
|
|
|
72
96
|
}
|
|
73
97
|
}
|
|
74
98
|
exports.deleteSubscription = deleteSubscription;
|
|
99
|
+
async function findSubscriptionByTopicAndQueue(snsClient, topicArn, queueArn) {
|
|
100
|
+
const listSubscriptionsCommand = new client_sns_1.ListSubscriptionsByTopicCommand({
|
|
101
|
+
TopicArn: topicArn,
|
|
102
|
+
});
|
|
103
|
+
const listSubscriptionResult = await snsClient.send(listSubscriptionsCommand);
|
|
104
|
+
return listSubscriptionResult.Subscriptions?.find((entry) => {
|
|
105
|
+
return entry.Endpoint === queueArn;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
exports.findSubscriptionByTopicAndQueue = findSubscriptionByTopicAndQueue;
|
|
75
109
|
//# sourceMappingURL=snsUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../../lib/utils/snsUtils.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"snsUtils.js","sourceRoot":"","sources":["../../../lib/utils/snsUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sns",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SNS adapter for message-queue-toolkit",
|
|
@@ -26,36 +26,36 @@
|
|
|
26
26
|
"prepublishOnly": "npm run build:release"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@lokalise/node-core": "^6.
|
|
30
|
-
"sqs-consumer": "^7.
|
|
31
|
-
"zod": "^3.
|
|
29
|
+
"@lokalise/node-core": "^6.4.0",
|
|
30
|
+
"sqs-consumer": "^7.3.0",
|
|
31
|
+
"zod": "^3.22.4"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@aws-sdk/client-sns": "^3.385.0",
|
|
35
35
|
"@aws-sdk/client-sqs": "^3.385.0",
|
|
36
|
-
"@message-queue-toolkit/core": "^
|
|
37
|
-
"@message-queue-toolkit/sqs": "^
|
|
36
|
+
"@message-queue-toolkit/core": "^4.0.0",
|
|
37
|
+
"@message-queue-toolkit/sqs": "^4.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@aws-sdk/client-sns": "^3.385.0",
|
|
41
41
|
"@aws-sdk/client-sqs": "^3.385.0",
|
|
42
42
|
"@message-queue-toolkit/core": "*",
|
|
43
43
|
"@message-queue-toolkit/sqs": "*",
|
|
44
|
-
"@types/node": "^20.
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
46
|
-
"@typescript-eslint/parser": "^6.
|
|
47
|
-
"@vitest/coverage-v8": "^0.34.
|
|
44
|
+
"@types/node": "^20.7.0",
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
46
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
47
|
+
"@vitest/coverage-v8": "^0.34.5",
|
|
48
48
|
"awilix": "^8.0.1",
|
|
49
|
-
"awilix-manager": "^2.0
|
|
49
|
+
"awilix-manager": "^3.2.0",
|
|
50
50
|
"del-cli": "^5.0.0",
|
|
51
|
-
"eslint": "^8.
|
|
51
|
+
"eslint": "^8.50.0",
|
|
52
52
|
"eslint-config-prettier": "^9.0.0",
|
|
53
53
|
"eslint-plugin-import": "^2.27.5",
|
|
54
54
|
"eslint-plugin-prettier": "^5.0.0",
|
|
55
|
-
"eslint-plugin-vitest": "^0.
|
|
55
|
+
"eslint-plugin-vitest": "^0.3.1",
|
|
56
56
|
"prettier": "^3.0.0",
|
|
57
|
-
"typescript": "^5.
|
|
58
|
-
"vitest": "^0.34.
|
|
57
|
+
"typescript": "^5.2.2",
|
|
58
|
+
"vitest": "^0.34.5"
|
|
59
59
|
},
|
|
60
60
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
61
61
|
"repository": {
|