@message-queue-toolkit/sns 21.1.1 → 22.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.
Files changed (74) hide show
  1. package/dist/errors/SnsConsumerErrorResolver.js +32 -0
  2. package/dist/errors/SnsConsumerErrorResolver.js.map +1 -0
  3. package/dist/index.d.ts +19 -19
  4. package/dist/index.js +15 -39
  5. package/dist/index.js.map +1 -1
  6. package/dist/{lib/sns → sns}/AbstractSnsPublisher.d.ts +2 -2
  7. package/dist/{lib/sns → sns}/AbstractSnsPublisher.js +12 -16
  8. package/dist/sns/AbstractSnsPublisher.js.map +1 -0
  9. package/dist/{lib/sns → sns}/AbstractSnsService.d.ts +1 -1
  10. package/dist/sns/AbstractSnsService.js +28 -0
  11. package/dist/sns/AbstractSnsService.js.map +1 -0
  12. package/dist/{lib/sns → sns}/AbstractSnsSqsConsumer.d.ts +2 -2
  13. package/dist/{lib/sns → sns}/AbstractSnsSqsConsumer.js +8 -12
  14. package/dist/sns/AbstractSnsSqsConsumer.js.map +1 -0
  15. package/dist/{lib/sns → sns}/CommonSnsPublisherFactory.d.ts +3 -3
  16. package/dist/sns/CommonSnsPublisherFactory.js +9 -0
  17. package/dist/sns/CommonSnsPublisherFactory.js.map +1 -0
  18. package/dist/{lib/sns → sns}/SnsPublisherManager.d.ts +4 -5
  19. package/dist/{lib/sns → sns}/SnsPublisherManager.js +4 -8
  20. package/dist/sns/SnsPublisherManager.js.map +1 -0
  21. package/dist/{lib/sns → sns}/fakes/FakeConsumer.d.ts +2 -2
  22. package/dist/{lib/sns → sns}/fakes/FakeConsumer.js +4 -8
  23. package/dist/sns/fakes/FakeConsumer.js.map +1 -0
  24. package/dist/types/MessageTypes.js +19 -0
  25. package/dist/types/MessageTypes.js.map +1 -0
  26. package/dist/{lib/types → types}/TopicTypes.d.ts +1 -1
  27. package/dist/types/TopicTypes.js +8 -0
  28. package/dist/types/TopicTypes.js.map +1 -0
  29. package/dist/{lib/utils → utils}/snsAttributeUtils.js +2 -7
  30. package/dist/utils/snsAttributeUtils.js.map +1 -0
  31. package/dist/{lib/utils → utils}/snsInitter.d.ts +3 -3
  32. package/dist/{lib/utils → utils}/snsInitter.js +33 -34
  33. package/dist/utils/snsInitter.js.map +1 -0
  34. package/dist/utils/snsMessageDeserializer.js +14 -0
  35. package/dist/utils/snsMessageDeserializer.js.map +1 -0
  36. package/dist/{lib/utils → utils}/snsMessageReader.js +1 -4
  37. package/dist/utils/snsMessageReader.js.map +1 -0
  38. package/dist/{lib/utils → utils}/snsSubscriber.d.ts +3 -4
  39. package/dist/{lib/utils → utils}/snsSubscriber.js +14 -17
  40. package/dist/utils/snsSubscriber.js.map +1 -0
  41. package/dist/{lib/utils → utils}/snsUtils.d.ts +1 -1
  42. package/dist/{lib/utils → utils}/snsUtils.js +38 -42
  43. package/dist/utils/snsUtils.js.map +1 -0
  44. package/dist/{lib/utils → utils}/stsUtils.js +5 -9
  45. package/dist/utils/stsUtils.js.map +1 -0
  46. package/package.json +78 -64
  47. package/dist/lib/errors/SnsConsumerErrorResolver.js +0 -36
  48. package/dist/lib/errors/SnsConsumerErrorResolver.js.map +0 -1
  49. package/dist/lib/sns/AbstractSnsPublisher.js.map +0 -1
  50. package/dist/lib/sns/AbstractSnsService.js +0 -32
  51. package/dist/lib/sns/AbstractSnsService.js.map +0 -1
  52. package/dist/lib/sns/AbstractSnsSqsConsumer.js.map +0 -1
  53. package/dist/lib/sns/CommonSnsPublisherFactory.js +0 -14
  54. package/dist/lib/sns/CommonSnsPublisherFactory.js.map +0 -1
  55. package/dist/lib/sns/SnsPublisherManager.js.map +0 -1
  56. package/dist/lib/sns/fakes/FakeConsumer.js.map +0 -1
  57. package/dist/lib/types/MessageTypes.js +0 -23
  58. package/dist/lib/types/MessageTypes.js.map +0 -1
  59. package/dist/lib/types/TopicTypes.js +0 -12
  60. package/dist/lib/types/TopicTypes.js.map +0 -1
  61. package/dist/lib/utils/snsAttributeUtils.js.map +0 -1
  62. package/dist/lib/utils/snsInitter.js.map +0 -1
  63. package/dist/lib/utils/snsMessageDeserializer.js +0 -18
  64. package/dist/lib/utils/snsMessageDeserializer.js.map +0 -1
  65. package/dist/lib/utils/snsMessageReader.js.map +0 -1
  66. package/dist/lib/utils/snsSubscriber.js.map +0 -1
  67. package/dist/lib/utils/snsUtils.js.map +0 -1
  68. package/dist/lib/utils/stsUtils.js.map +0 -1
  69. /package/dist/{lib/errors → errors}/SnsConsumerErrorResolver.d.ts +0 -0
  70. /package/dist/{lib/types → types}/MessageTypes.d.ts +0 -0
  71. /package/dist/{lib/utils → utils}/snsAttributeUtils.d.ts +0 -0
  72. /package/dist/{lib/utils → utils}/snsMessageDeserializer.d.ts +0 -0
  73. /package/dist/{lib/utils → utils}/snsMessageReader.d.ts +0 -0
  74. /package/dist/{lib/utils → utils}/stsUtils.d.ts +0 -0
@@ -0,0 +1,32 @@
1
+ import { types } from 'node:util';
2
+ import { InternalError, isStandardizedError } from '@lokalise/node-core';
3
+ import { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
4
+ import { ZodError } from 'zod';
5
+ export class SnsConsumerErrorResolver {
6
+ processError(error) {
7
+ if (types.isNativeError(error) && error?.name === 'SyntaxError') {
8
+ return new MessageInvalidFormatError({
9
+ message: error.message,
10
+ });
11
+ }
12
+ if (error instanceof ZodError) {
13
+ return new MessageValidationError({
14
+ message: error.message,
15
+ details: {
16
+ error: error.issues,
17
+ },
18
+ });
19
+ }
20
+ if (isStandardizedError(error)) {
21
+ return new InternalError({
22
+ message: error.message,
23
+ errorCode: error.code,
24
+ });
25
+ }
26
+ return new InternalError({
27
+ message: 'Error processing message',
28
+ errorCode: 'INTERNAL_ERROR',
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=SnsConsumerErrorResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnsConsumerErrorResolver.js","sourceRoot":"","sources":["../../lib/errors/SnsConsumerErrorResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAGjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAE9B,MAAM,OAAO,wBAAwB;IAC5B,YAAY,CAAC,KAAc;QAChC,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;YAChE,OAAO,IAAI,yBAAyB,CAAC;gBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,sBAAsB,CAAC;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,MAAM;iBACpB;aACF,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,aAAa,CAAC;gBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAA;IACJ,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,19 @@
1
- export type { SNSTopicAWSConfig, SNSTopicConfig, SNSTopicLocatorType, SNSCreationConfig, SNSDependencies, } from './lib/sns/AbstractSnsService';
2
- export { SNS_MESSAGE_MAX_SIZE } from './lib/sns/AbstractSnsService';
3
- export { AbstractSnsService } from './lib/sns/AbstractSnsService';
4
- export { SnsConsumerErrorResolver } from './lib/errors/SnsConsumerErrorResolver';
5
- export type { SNSMessageOptions, SNSPublisherOptions } from './lib/sns/AbstractSnsPublisher';
6
- export { AbstractSnsPublisher } from './lib/sns/AbstractSnsPublisher';
7
- export type { SNSSQSConsumerOptions, SNSSQSConsumerDependencies, SNSSQSCreationConfig, SNSSQSQueueLocatorType, } from './lib/sns/AbstractSnsSqsConsumer';
8
- export { AbstractSnsSqsConsumer } from './lib/sns/AbstractSnsSqsConsumer';
9
- export type { CommonMessage } from './lib/types/MessageTypes';
10
- export { deserializeSNSMessage } from './lib/utils/snsMessageDeserializer';
11
- export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from './lib/utils/snsUtils';
12
- export { clearCachedCallerIdentity } from './lib/utils/stsUtils';
13
- export { subscribeToTopic } from './lib/utils/snsSubscriber';
14
- export { initSns, initSnsSqs } from './lib/utils/snsInitter';
15
- export { readSnsMessage } from './lib/utils/snsMessageReader';
16
- export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from './lib/utils/snsAttributeUtils';
17
- export * from './lib/sns/CommonSnsPublisherFactory';
18
- export * from './lib/sns/SnsPublisherManager';
19
- export { FakeConsumer } from './lib/sns/fakes/FakeConsumer';
1
+ export type { SNSTopicAWSConfig, SNSTopicConfig, SNSTopicLocatorType, SNSCreationConfig, SNSDependencies, } from './sns/AbstractSnsService.ts';
2
+ export { SNS_MESSAGE_MAX_SIZE } from './sns/AbstractSnsService.ts';
3
+ export { AbstractSnsService } from './sns/AbstractSnsService.ts';
4
+ export { SnsConsumerErrorResolver } from './errors/SnsConsumerErrorResolver.ts';
5
+ export type { SNSMessageOptions, SNSPublisherOptions } from './sns/AbstractSnsPublisher.ts';
6
+ export { AbstractSnsPublisher } from './sns/AbstractSnsPublisher.ts';
7
+ export type { SNSSQSConsumerOptions, SNSSQSConsumerDependencies, SNSSQSCreationConfig, SNSSQSQueueLocatorType, } from './sns/AbstractSnsSqsConsumer.ts';
8
+ export { AbstractSnsSqsConsumer } from './sns/AbstractSnsSqsConsumer.ts';
9
+ export type { CommonMessage } from './types/MessageTypes.ts';
10
+ export { deserializeSNSMessage } from './utils/snsMessageDeserializer.ts';
11
+ export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from './utils/snsUtils.ts';
12
+ export { clearCachedCallerIdentity } from './utils/stsUtils.ts';
13
+ export { subscribeToTopic } from './utils/snsSubscriber.ts';
14
+ export { initSns, initSnsSqs } from './utils/snsInitter.ts';
15
+ export { readSnsMessage } from './utils/snsMessageReader.ts';
16
+ export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from './utils/snsAttributeUtils.ts';
17
+ export * from './sns/CommonSnsPublisherFactory.ts';
18
+ export * from './sns/SnsPublisherManager.ts';
19
+ export { FakeConsumer } from './sns/fakes/FakeConsumer.ts';
package/dist/index.js CHANGED
@@ -1,40 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FakeConsumer = exports.generateTopicSubscriptionPolicy = exports.generateFilterAttributes = exports.readSnsMessage = exports.initSnsSqs = exports.initSns = exports.subscribeToTopic = exports.clearCachedCallerIdentity = exports.getSubscriptionAttributes = exports.findSubscriptionByTopicAndQueue = exports.deleteSubscription = exports.getTopicAttributes = exports.deleteTopic = exports.assertTopic = exports.deserializeSNSMessage = exports.AbstractSnsSqsConsumer = exports.AbstractSnsPublisher = exports.SnsConsumerErrorResolver = exports.AbstractSnsService = exports.SNS_MESSAGE_MAX_SIZE = void 0;
4
- const tslib_1 = require("tslib");
5
- var AbstractSnsService_1 = require("./lib/sns/AbstractSnsService");
6
- Object.defineProperty(exports, "SNS_MESSAGE_MAX_SIZE", { enumerable: true, get: function () { return AbstractSnsService_1.SNS_MESSAGE_MAX_SIZE; } });
7
- var AbstractSnsService_2 = require("./lib/sns/AbstractSnsService");
8
- Object.defineProperty(exports, "AbstractSnsService", { enumerable: true, get: function () { return AbstractSnsService_2.AbstractSnsService; } });
9
- var SnsConsumerErrorResolver_1 = require("./lib/errors/SnsConsumerErrorResolver");
10
- Object.defineProperty(exports, "SnsConsumerErrorResolver", { enumerable: true, get: function () { return SnsConsumerErrorResolver_1.SnsConsumerErrorResolver; } });
11
- var AbstractSnsPublisher_1 = require("./lib/sns/AbstractSnsPublisher");
12
- Object.defineProperty(exports, "AbstractSnsPublisher", { enumerable: true, get: function () { return AbstractSnsPublisher_1.AbstractSnsPublisher; } });
13
- var AbstractSnsSqsConsumer_1 = require("./lib/sns/AbstractSnsSqsConsumer");
14
- Object.defineProperty(exports, "AbstractSnsSqsConsumer", { enumerable: true, get: function () { return AbstractSnsSqsConsumer_1.AbstractSnsSqsConsumer; } });
15
- var snsMessageDeserializer_1 = require("./lib/utils/snsMessageDeserializer");
16
- Object.defineProperty(exports, "deserializeSNSMessage", { enumerable: true, get: function () { return snsMessageDeserializer_1.deserializeSNSMessage; } });
17
- var snsUtils_1 = require("./lib/utils/snsUtils");
18
- Object.defineProperty(exports, "assertTopic", { enumerable: true, get: function () { return snsUtils_1.assertTopic; } });
19
- Object.defineProperty(exports, "deleteTopic", { enumerable: true, get: function () { return snsUtils_1.deleteTopic; } });
20
- Object.defineProperty(exports, "getTopicAttributes", { enumerable: true, get: function () { return snsUtils_1.getTopicAttributes; } });
21
- Object.defineProperty(exports, "deleteSubscription", { enumerable: true, get: function () { return snsUtils_1.deleteSubscription; } });
22
- Object.defineProperty(exports, "findSubscriptionByTopicAndQueue", { enumerable: true, get: function () { return snsUtils_1.findSubscriptionByTopicAndQueue; } });
23
- Object.defineProperty(exports, "getSubscriptionAttributes", { enumerable: true, get: function () { return snsUtils_1.getSubscriptionAttributes; } });
24
- var stsUtils_1 = require("./lib/utils/stsUtils");
25
- Object.defineProperty(exports, "clearCachedCallerIdentity", { enumerable: true, get: function () { return stsUtils_1.clearCachedCallerIdentity; } });
26
- var snsSubscriber_1 = require("./lib/utils/snsSubscriber");
27
- Object.defineProperty(exports, "subscribeToTopic", { enumerable: true, get: function () { return snsSubscriber_1.subscribeToTopic; } });
28
- var snsInitter_1 = require("./lib/utils/snsInitter");
29
- Object.defineProperty(exports, "initSns", { enumerable: true, get: function () { return snsInitter_1.initSns; } });
30
- Object.defineProperty(exports, "initSnsSqs", { enumerable: true, get: function () { return snsInitter_1.initSnsSqs; } });
31
- var snsMessageReader_1 = require("./lib/utils/snsMessageReader");
32
- Object.defineProperty(exports, "readSnsMessage", { enumerable: true, get: function () { return snsMessageReader_1.readSnsMessage; } });
33
- var snsAttributeUtils_1 = require("./lib/utils/snsAttributeUtils");
34
- Object.defineProperty(exports, "generateFilterAttributes", { enumerable: true, get: function () { return snsAttributeUtils_1.generateFilterAttributes; } });
35
- Object.defineProperty(exports, "generateTopicSubscriptionPolicy", { enumerable: true, get: function () { return snsAttributeUtils_1.generateTopicSubscriptionPolicy; } });
36
- tslib_1.__exportStar(require("./lib/sns/CommonSnsPublisherFactory"), exports);
37
- tslib_1.__exportStar(require("./lib/sns/SnsPublisherManager"), exports);
38
- var FakeConsumer_1 = require("./lib/sns/fakes/FakeConsumer");
39
- Object.defineProperty(exports, "FakeConsumer", { enumerable: true, get: function () { return FakeConsumer_1.FakeConsumer; } });
1
+ export { SNS_MESSAGE_MAX_SIZE } from "./sns/AbstractSnsService.js";
2
+ export { AbstractSnsService } from "./sns/AbstractSnsService.js";
3
+ export { SnsConsumerErrorResolver } from "./errors/SnsConsumerErrorResolver.js";
4
+ export { AbstractSnsPublisher } from "./sns/AbstractSnsPublisher.js";
5
+ export { AbstractSnsSqsConsumer } from "./sns/AbstractSnsSqsConsumer.js";
6
+ export { deserializeSNSMessage } from "./utils/snsMessageDeserializer.js";
7
+ export { assertTopic, deleteTopic, getTopicAttributes, deleteSubscription, findSubscriptionByTopicAndQueue, getSubscriptionAttributes, } from "./utils/snsUtils.js";
8
+ export { clearCachedCallerIdentity } from "./utils/stsUtils.js";
9
+ export { subscribeToTopic } from "./utils/snsSubscriber.js";
10
+ export { initSns, initSnsSqs } from "./utils/snsInitter.js";
11
+ export { readSnsMessage } from "./utils/snsMessageReader.js";
12
+ export { generateFilterAttributes, generateTopicSubscriptionPolicy, } from "./utils/snsAttributeUtils.js";
13
+ export * from "./sns/CommonSnsPublisherFactory.js";
14
+ export * from "./sns/SnsPublisherManager.js";
15
+ export { FakeConsumer } from "./sns/fakes/FakeConsumer.js";
40
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAQA,mEAAmE;AAA1D,0HAAA,oBAAoB,OAAA;AAE7B,mEAAiE;AAAxD,wHAAA,kBAAkB,OAAA;AAE3B,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAGjC,uEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAQ7B,2EAAyE;AAAhE,gIAAA,sBAAsB,OAAA;AAI/B,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;AAE3B,iDAAgE;AAAvD,qHAAA,yBAAyB,OAAA;AAElC,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;AAGjC,8EAAmD;AACnD,wEAA6C;AAE7C,6DAA2D;AAAlD,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAQpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAIxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAEzE,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AAErC,cAAc,oCAAoC,CAAA;AAClD,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import type { Either } from '@lokalise/node-core';
2
2
  import { type AsyncPublisher, type BarrierResult, type MessageInvalidFormatError, type MessageValidationError, type OffloadedPayloadPointerPayload, type QueuePublisherOptions, type ResolvedMessage } from '@message-queue-toolkit/core';
3
- import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService';
4
- import { AbstractSnsService } from './AbstractSnsService';
3
+ import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService.ts';
4
+ import { AbstractSnsService } from './AbstractSnsService.ts';
5
5
  export type SNSMessageOptions = {
6
6
  MessageGroupId?: string;
7
7
  MessageDeduplicationId?: string;
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractSnsPublisher = void 0;
4
- const client_sns_1 = require("@aws-sdk/client-sns");
5
- const node_core_1 = require("@lokalise/node-core");
6
- const core_1 = require("@message-queue-toolkit/core");
7
- const sqs_1 = require("@message-queue-toolkit/sqs");
8
- const snsUtils_1 = require("../utils/snsUtils");
9
- const AbstractSnsService_1 = require("./AbstractSnsService");
10
- class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
1
+ import { PublishCommand } from '@aws-sdk/client-sns';
2
+ import { InternalError } from '@lokalise/node-core';
3
+ import { DeduplicationRequesterEnum, } from '@message-queue-toolkit/core';
4
+ import { resolveOutgoingMessageAttributes } from '@message-queue-toolkit/sqs';
5
+ import { calculateOutgoingMessageSize } from "../utils/snsUtils.js";
6
+ import { AbstractSnsService } from "./AbstractSnsService.js";
7
+ export class AbstractSnsPublisher extends AbstractSnsService {
11
8
  messageSchemaContainer;
12
9
  isDeduplicationEnabled;
13
10
  initPromise;
@@ -40,9 +37,9 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
40
37
  this.logMessage(resolvedLogMessage);
41
38
  }
42
39
  const updatedMessage = this.updateInternalProperties(message);
43
- const maybeOffloadedPayloadMessage = await this.offloadMessagePayloadIfNeeded(updatedMessage, () => (0, snsUtils_1.calculateOutgoingMessageSize)(updatedMessage));
40
+ const maybeOffloadedPayloadMessage = await this.offloadMessagePayloadIfNeeded(updatedMessage, () => calculateOutgoingMessageSize(updatedMessage));
44
41
  if (this.isDeduplicationEnabledForMessage(parsedMessage) &&
45
- (await this.deduplicateMessage(parsedMessage, core_1.DeduplicationRequester.Publisher))
42
+ (await this.deduplicateMessage(parsedMessage, DeduplicationRequesterEnum.Publisher))
46
43
  .isDuplicated) {
47
44
  this.handleMessageProcessed({
48
45
  message: parsedMessage,
@@ -63,7 +60,7 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
63
60
  catch (error) {
64
61
  const err = error;
65
62
  this.handleError(err);
66
- throw new node_core_1.InternalError({
63
+ throw new InternalError({
67
64
  message: `Error while publishing to SNS: ${err.message}`,
68
65
  errorCode: 'SNS_PUBLISH_ERROR',
69
66
  details: {
@@ -99,8 +96,8 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
99
96
  return this.isDeduplicationEnabled && super.isDeduplicationEnabledForMessage(message);
100
97
  }
101
98
  async sendMessage(payload, options) {
102
- const attributes = (0, sqs_1.resolveOutgoingMessageAttributes)(payload);
103
- const command = new client_sns_1.PublishCommand({
99
+ const attributes = resolveOutgoingMessageAttributes(payload);
100
+ const command = new PublishCommand({
104
101
  Message: JSON.stringify(payload),
105
102
  MessageAttributes: attributes,
106
103
  TopicArn: this.topicArn,
@@ -109,5 +106,4 @@ class AbstractSnsPublisher extends AbstractSnsService_1.AbstractSnsService {
109
106
  await this.snsClient.send(command);
110
107
  }
111
108
  }
112
- exports.AbstractSnsPublisher = AbstractSnsPublisher;
113
109
  //# sourceMappingURL=AbstractSnsPublisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSnsPublisher.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsPublisher.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { CreateTopicCommandInput, SNSClient, Tag } from '@aws-sdk/client-sn
2
2
  import type { QueueDependencies, QueueOptions } from '@message-queue-toolkit/core';
3
3
  import { AbstractQueueService } from '@message-queue-toolkit/core';
4
4
  import type { STSClient } from '@aws-sdk/client-sts';
5
- import type { SNS_MESSAGE_BODY_TYPE } from '../types/MessageTypes';
5
+ import type { SNS_MESSAGE_BODY_TYPE } from '../types/MessageTypes.ts';
6
6
  export declare const SNS_MESSAGE_MAX_SIZE: number;
7
7
  export type SNSDependencies = QueueDependencies & {
8
8
  snsClient: SNSClient;
@@ -0,0 +1,28 @@
1
+ import { AbstractQueueService } from '@message-queue-toolkit/core';
2
+ import { deleteSns, initSns } from "../utils/snsInitter.js";
3
+ // https://docs.aws.amazon.com/general/latest/gr/sns.html
4
+ export const SNS_MESSAGE_MAX_SIZE = 256 * 1024; // 256KB
5
+ export class AbstractSnsService extends AbstractQueueService {
6
+ snsClient;
7
+ stsClient;
8
+ // @ts-ignore
9
+ topicArn;
10
+ constructor(dependencies, options) {
11
+ super(dependencies, options);
12
+ this.snsClient = dependencies.snsClient;
13
+ this.stsClient = dependencies.stsClient;
14
+ }
15
+ async init() {
16
+ if (this.deletionConfig && this.creationConfig) {
17
+ await deleteSns(this.snsClient, this.stsClient, this.deletionConfig, this.creationConfig);
18
+ }
19
+ const initResult = await initSns(this.snsClient, this.stsClient, this.locatorConfig, this.creationConfig);
20
+ this.topicArn = initResult.topicArn;
21
+ this.isInitted = true;
22
+ }
23
+ close() {
24
+ this.isInitted = false;
25
+ return Promise.resolve();
26
+ }
27
+ }
28
+ //# sourceMappingURL=AbstractSnsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSnsService.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAIlE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAE3D,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAA,CAAC,QAAQ;AAyCvD,MAAM,OAAgB,kBAKpB,SAAQ,oBAOT;IACoB,SAAS,CAAW;IACpB,SAAS,CAAW;IACvC,aAAa;IACH,QAAQ,CAAQ;IAE1B,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3F,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAEe,KAAK;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { SNSClient } from '@aws-sdk/client-sns';
2
2
  import type { SQSConsumerDependencies, SQSConsumerOptions, SQSCreationConfig, SQSMessage, SQSQueueLocatorType } from '@message-queue-toolkit/sqs';
3
3
  import { AbstractSqsConsumer } from '@message-queue-toolkit/sqs';
4
- import type { SNSSubscriptionOptions } from '../utils/snsSubscriber';
4
+ import type { SNSSubscriptionOptions } from '../utils/snsSubscriber.ts';
5
5
  import type { STSClient } from '@aws-sdk/client-sts';
6
- import type { SNSCreationConfig, SNSOptions, SNSTopicLocatorType } from './AbstractSnsService';
6
+ import type { SNSCreationConfig, SNSOptions, SNSTopicLocatorType } from './AbstractSnsService.ts';
7
7
  export type SNSSQSConsumerDependencies = SQSConsumerDependencies & {
8
8
  snsClient: SNSClient;
9
9
  stsClient: STSClient;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractSnsSqsConsumer = void 0;
4
- const sqs_1 = require("@message-queue-toolkit/sqs");
5
- const snsInitter_1 = require("../utils/snsInitter");
6
- const snsMessageReader_1 = require("../utils/snsMessageReader");
7
- class AbstractSnsSqsConsumer extends sqs_1.AbstractSqsConsumer {
1
+ import { AbstractSqsConsumer, deleteSqs } from '@message-queue-toolkit/sqs';
2
+ import { deleteSnsSqs, initSnsSqs } from "../utils/snsInitter.js";
3
+ import { readSnsMessage } from "../utils/snsMessageReader.js";
4
+ export class AbstractSnsSqsConsumer extends AbstractSqsConsumer {
8
5
  subscriptionConfig;
9
6
  snsClient;
10
7
  stsClient;
@@ -22,12 +19,12 @@ class AbstractSnsSqsConsumer extends sqs_1.AbstractSqsConsumer {
22
19
  }
23
20
  async init() {
24
21
  if (this.deletionConfig && this.creationConfig && this.subscriptionConfig) {
25
- await (0, snsInitter_1.deleteSnsSqs)(this.sqsClient, this.snsClient, this.stsClient, this.deletionConfig, this.creationConfig.queue, this.creationConfig.topic, this.subscriptionConfig, undefined, this.locatorConfig);
22
+ await deleteSnsSqs(this.sqsClient, this.snsClient, this.stsClient, this.deletionConfig, this.creationConfig.queue, this.creationConfig.topic, this.subscriptionConfig, undefined, this.locatorConfig);
26
23
  }
27
24
  else if (this.deletionConfig && this.creationConfig) {
28
- await (0, sqs_1.deleteSqs)(this.sqsClient, this.deletionConfig, this.creationConfig);
25
+ await deleteSqs(this.sqsClient, this.deletionConfig, this.creationConfig);
29
26
  }
30
- const initSnsSqsResult = await (0, snsInitter_1.initSnsSqs)(this.sqsClient, this.snsClient, this.stsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig, { logger: this.logger });
27
+ const initSnsSqsResult = await initSnsSqs(this.sqsClient, this.snsClient, this.stsClient, this.locatorConfig, this.creationConfig, this.subscriptionConfig, { logger: this.logger });
31
28
  this.queueName = initSnsSqsResult.queueName;
32
29
  this.queueUrl = initSnsSqsResult.queueUrl;
33
30
  this.topicArn = initSnsSqsResult.topicArn;
@@ -35,7 +32,7 @@ class AbstractSnsSqsConsumer extends sqs_1.AbstractSqsConsumer {
35
32
  await this.initDeadLetterQueue();
36
33
  }
37
34
  resolveMessage(message) {
38
- const result = (0, snsMessageReader_1.readSnsMessage)(message, this.errorResolver);
35
+ const result = readSnsMessage(message, this.errorResolver);
39
36
  if (result.result) {
40
37
  return result;
41
38
  }
@@ -46,5 +43,4 @@ class AbstractSnsSqsConsumer extends sqs_1.AbstractSqsConsumer {
46
43
  return this._messageSchemaContainer.resolveSchema(messagePayload);
47
44
  }
48
45
  }
49
- exports.AbstractSnsSqsConsumer = AbstractSnsSqsConsumer;
50
46
  //# sourceMappingURL=AbstractSnsSqsConsumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSnsSqsConsumer.js","sourceRoot":"","sources":["../../lib/sns/AbstractSnsSqsConsumer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAgC7D,MAAM,OAAgB,sBAIpB,SAAQ,mBAOT;IACkB,kBAAkB,CAAyB;IAC3C,SAAS,CAAW;IACpB,SAAS,CAAW;IAErC,aAAa;IACH,QAAQ,CAAQ;IAC1B,aAAa;IACH,eAAe,CAAQ;IAEjC,YACE,YAAwC,EACxC,OAAyF,EACzF,gBAAkC;QAElC,KAAK,CACH,YAAY,EACZ;YACE,GAAG,OAAO;SACX,EACD,gBAAgB,CACjB,CAAA;QAED,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;QACvC,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,CAAC;YAC1E,MAAM,YAAY,CAChB,IAAI,CAAC,SAAS,EACd,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,SAAS,EACT,IAAI,CAAC,aAAa,CACnB,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,UAAU,CACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,EACvB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAA;QAC3C,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;QAEvD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAClC,CAAC;IAEkB,cAAc,CAAC,OAAmB;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,qDAAqD;QACrD,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAEkB,aAAa,CAAC,cAAqC;QACpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACnE,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { PublisherBaseEventType } from '@message-queue-toolkit/core';
2
- import type { SNSPublisherOptions } from './AbstractSnsPublisher';
3
- import { AbstractSnsPublisher } from './AbstractSnsPublisher';
4
- import type { SNSDependencies } from './AbstractSnsService';
2
+ import type { SNSPublisherOptions } from './AbstractSnsPublisher.ts';
3
+ import { AbstractSnsPublisher } from './AbstractSnsPublisher.ts';
4
+ import type { SNSDependencies } from './AbstractSnsService.ts';
5
5
  export type SnsPublisherFactory<T extends AbstractSnsPublisher<M>, M extends PublisherBaseEventType> = {
6
6
  buildPublisher(dependencies: SNSDependencies, options: SNSPublisherOptions<M>): T;
7
7
  };
@@ -0,0 +1,9 @@
1
+ import { AbstractSnsPublisher } from "./AbstractSnsPublisher.js";
2
+ export class CommonSnsPublisher extends AbstractSnsPublisher {
3
+ }
4
+ export class CommonSnsPublisherFactory {
5
+ buildPublisher(dependencies, options) {
6
+ return new CommonSnsPublisher(dependencies, options);
7
+ }
8
+ }
9
+ //# sourceMappingURL=CommonSnsPublisherFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonSnsPublisherFactory.js","sourceRoot":"","sources":["../../lib/sns/CommonSnsPublisherFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAUhE,MAAM,OAAO,kBAEX,SAAQ,oBAAuB;CAAG;AAEpC,MAAM,OAAO,yBAAyB;IAGpC,cAAc,CACZ,YAA6B,EAC7B,OAA+B;QAE/B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;CACF"}
@@ -1,11 +1,10 @@
1
- import type { EventRegistry, MessagePublishType, MessageSchemaType, MetadataFiller, PublisherBaseEventType } from '@message-queue-toolkit/core';
1
+ import type { EventRegistry, MessagePublishType, MessageSchemaType, MetadataFiller, PublisherBaseEventType, PublisherMessageMetadataType } from '@message-queue-toolkit/core';
2
2
  import { AbstractPublisherManager } from '@message-queue-toolkit/core';
3
- import type { PublisherMessageMetadataType } from '@message-queue-toolkit/core/lib/messages/baseMessageSchemas';
4
3
  import type { SnsAwareEventDefinition } from '@message-queue-toolkit/schemas';
5
4
  import type z from 'zod';
6
- import type { AbstractSnsPublisher, SNSMessageOptions, SNSPublisherOptions } from './AbstractSnsPublisher';
7
- import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService';
8
- import type { SnsPublisherFactory } from './CommonSnsPublisherFactory';
5
+ import type { AbstractSnsPublisher, SNSMessageOptions, SNSPublisherOptions } from './AbstractSnsPublisher.ts';
6
+ import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService.ts';
7
+ import type { SnsPublisherFactory } from './CommonSnsPublisherFactory.ts';
9
8
  export type { SnsAwareEventDefinition };
10
9
  export type SnsPublisherManagerDependencies<SupportedEvents extends SnsAwareEventDefinition[]> = {
11
10
  eventRegistry: EventRegistry<SupportedEvents>;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SnsPublisherManager = void 0;
4
- const core_1 = require("@message-queue-toolkit/core");
5
- const CommonSnsPublisherFactory_1 = require("./CommonSnsPublisherFactory");
6
- class SnsPublisherManager extends core_1.AbstractPublisherManager {
1
+ import { AbstractPublisherManager } from '@message-queue-toolkit/core';
2
+ import { CommonSnsPublisherFactory } from "./CommonSnsPublisherFactory.js";
3
+ export class SnsPublisherManager extends AbstractPublisherManager {
7
4
  constructor(dependencies, options) {
8
5
  super({
9
6
  isAsync: true,
@@ -17,7 +14,7 @@ class SnsPublisherManager extends core_1.AbstractPublisherManager {
17
14
  logger: dependencies.logger,
18
15
  errorReporter: dependencies.errorReporter,
19
16
  },
20
- publisherFactory: options.publisherFactory ?? new CommonSnsPublisherFactory_1.CommonSnsPublisherFactory(),
17
+ publisherFactory: options.publisherFactory ?? new CommonSnsPublisherFactory(),
21
18
  });
22
19
  }
23
20
  publish(topic, message, precedingEventMetadata, messageOptions) {
@@ -37,5 +34,4 @@ class SnsPublisherManager extends core_1.AbstractPublisherManager {
37
34
  return event.snsTopic;
38
35
  }
39
36
  }
40
- exports.SnsPublisherManager = SnsPublisherManager;
41
37
  //# sourceMappingURL=SnsPublisherManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnsPublisherManager.js","sourceRoot":"","sources":["../../lib/sns/SnsPublisherManager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAetE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AA0B1E,MAAM,OAAO,mBAIX,SAAQ,wBAeT;IACC,YACE,YAAwE,EACxE,OAIC;QAED,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,UAAU;YAClD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,qBAAqB,EAAE;gBACrB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,aAAa,EAAE,YAAY,CAAC,aAAa;aAC1C;YACD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI,yBAAyB,EAAE;SAC9E,CAAC,CAAA;IACJ,CAAC;IAEQ,OAAO,CACd,KAAiE,EACjE,OAA8D,EAC9D,sBAA8C,EAC9C,cAAkC;QAElC,4EAA4E;QAC5E,kCAAkC;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAA;IAC9E,CAAC;IAEkB,qBAAqB,CACtC,WAAuE;QAEvE,OAAO;YACL,GAAG,IAAI,CAAC,mBAAmB;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,WAAW;aAClB;SACF,CAAA;IACH,CAAC;IAEkB,kBAAkB,CACnC,KAA8B;QAE9B,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { PublisherBaseMessageType } from '@message-queue-toolkit/core';
2
2
  import type { ZodSchema } from 'zod';
3
- import type { SNSSQSConsumerDependencies } from '../AbstractSnsSqsConsumer';
4
- import { AbstractSnsSqsConsumer } from '../AbstractSnsSqsConsumer';
3
+ import type { SNSSQSConsumerDependencies } from '../AbstractSnsSqsConsumer.ts';
4
+ import { AbstractSnsSqsConsumer } from '../AbstractSnsSqsConsumer.ts';
5
5
  export declare class FakeConsumer<T extends PublisherBaseMessageType> extends AbstractSnsSqsConsumer<T, unknown> {
6
6
  constructor(dependencies: SNSSQSConsumerDependencies, queue: string, topic: string, messageSchema: ZodSchema<T>);
7
7
  }
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FakeConsumer = void 0;
4
- const core_1 = require("@message-queue-toolkit/core");
5
- const AbstractSnsSqsConsumer_1 = require("../AbstractSnsSqsConsumer");
6
- class FakeConsumer extends AbstractSnsSqsConsumer_1.AbstractSnsSqsConsumer {
1
+ import { MessageHandlerConfigBuilder } from '@message-queue-toolkit/core';
2
+ import { AbstractSnsSqsConsumer } from "../AbstractSnsSqsConsumer.js";
3
+ export class FakeConsumer extends AbstractSnsSqsConsumer {
7
4
  constructor(dependencies, queue, topic, messageSchema) {
8
5
  super(dependencies, {
9
- handlers: new core_1.MessageHandlerConfigBuilder()
6
+ handlers: new MessageHandlerConfigBuilder()
10
7
  .addConfig(messageSchema, () => Promise.resolve({
11
8
  result: 'success',
12
9
  }))
@@ -27,5 +24,4 @@ class FakeConsumer extends AbstractSnsSqsConsumer_1.AbstractSnsSqsConsumer {
27
24
  }, dependencies);
28
25
  }
29
26
  }
30
- exports.FakeConsumer = FakeConsumer;
31
27
  //# sourceMappingURL=FakeConsumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeConsumer.js","sourceRoot":"","sources":["../../../lib/sns/fakes/FakeConsumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAIzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,OAAO,YAAiD,SAAQ,sBAGrE;IACC,YACE,YAAwC,EACxC,KAAa,EACb,KAAa,EACb,aAA2B;QAE3B,KAAK,CACH,YAAY,EACZ;YACE,QAAQ,EAAE,IAAI,2BAA2B,EAAc;iBACpD,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,CAC7B,OAAO,CAAC,OAAO,CAAC;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC,CACH;iBACA,KAAK,EAAE;YACV,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;iBACZ;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK;iBACjB;aACF;YACD,kBAAkB,EAAE;gBAClB,wBAAwB,EAAE,IAAI;aAC/B;YACD,gBAAgB,EAAE,MAAM;YACxB,UAAU,EAAE,IAAI;SACjB,EACD,YAAY,CACb,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import z from 'zod';
2
+ export const SNS_MESSAGE_BODY_SCHEMA = z.object({
3
+ Type: z.string(),
4
+ MessageId: z.string(),
5
+ TopicArn: z.string(),
6
+ Message: z.string(),
7
+ MessageAttributes: z
8
+ .record(z.string(), z.object({
9
+ Type: z.string(),
10
+ Value: z.unknown(),
11
+ }))
12
+ .optional(),
13
+ Timestamp: z.string(),
14
+ SignatureVersion: z.string(),
15
+ Signature: z.string(),
16
+ SigningCertURL: z.string(),
17
+ UnsubscribeURL: z.string(),
18
+ });
19
+ //# sourceMappingURL=MessageTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageTypes.js","sourceRoot":"","sources":["../../lib/types/MessageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAMnB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iBAAiB,EAAE,CAAC;SACjB,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;KACnB,CAAC,CACH;SACA,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { CreateTopicCommandInput } from '@aws-sdk/client-sns';
2
- import type { SNSTopicLocatorType } from '../sns/AbstractSnsService';
2
+ import type { SNSTopicLocatorType } from '../sns/AbstractSnsService.ts';
3
3
  export type TopicResolutionOptions = CreateTopicCommandInput | SNSTopicLocatorType;
4
4
  export declare function isCreateTopicCommand(value: unknown): value is CreateTopicCommandInput;
5
5
  export declare function isSNSTopicLocatorType(value: unknown): value is SNSTopicLocatorType;
@@ -0,0 +1,8 @@
1
+ export function isCreateTopicCommand(value) {
2
+ return !!value && !!value.Name;
3
+ }
4
+ export function isSNSTopicLocatorType(value) {
5
+ return (!!value &&
6
+ (!!value.topicArn || !!value.topicName));
7
+ }
8
+ //# sourceMappingURL=TopicTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicTypes.js","sourceRoot":"","sources":["../../lib/types/TopicTypes.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAE,KAAiC,CAAC,IAAI,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,CACL,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAE,KAA6B,CAAC,QAAQ,IAAI,CAAC,CAAE,KAA6B,CAAC,SAAS,CAAC,CAC1F,CAAA;AACH,CAAC"}
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateTopicSubscriptionPolicy = generateTopicSubscriptionPolicy;
4
- exports.generateFilterAttributes = generateFilterAttributes;
5
1
  // See https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html
6
2
  const POLICY_VERSION = '2012-10-17';
7
- function generateTopicSubscriptionPolicy(params) {
3
+ export function generateTopicSubscriptionPolicy(params) {
8
4
  const policyObject = {
9
5
  Version: POLICY_VERSION,
10
6
  Id: '__default_policy_ID',
@@ -35,12 +31,11 @@ function generateTopicSubscriptionPolicy(params) {
35
31
  }
36
32
  return JSON.stringify(policyObject);
37
33
  }
38
- function generateFilterAttributes(
34
+ export function generateFilterAttributes(
39
35
  // biome-ignore lint/suspicious/noExplicitAny: <explanation>
40
36
  messageSchemas, messageTypeField) {
41
37
  const messageTypes = messageSchemas.map((schema) => {
42
38
  // @ts-ignore
43
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
44
39
  return schema.shape[messageTypeField].value;
45
40
  });
46
41
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snsAttributeUtils.js","sourceRoot":"","sources":["../../lib/utils/snsAttributeUtils.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,MAAM,cAAc,GAAG,YAAY,CAAA;AAQnC,MAAM,UAAU,+BAA+B,CAAC,MAAqC;IACnF,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,cAAc;QACvB,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,sBAAsB;gBAC3B,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE;oBACT,GAAG,EAAE,GAAG;iBACT;gBACD,MAAM,EAAE,CAAC,eAAe,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,EAAE;aACd;SACF;KACF,CAAA;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,aAAa;QACb,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG;YACjD,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;SAC7C,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,wBAAwB,EAAE,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,aAAa;QACb,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG;YAC/C,cAAc,EAAE,MAAM,CAAC,wBAAwB;SAChD,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,wBAAwB;AACtC,4DAA4D;AAC5D,cAAgC,EAChC,gBAAwB;IAExB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,aAAa;QACb,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAe,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,iBAAiB,EAAE,aAAa;KACjC,CAAA;AACH,CAAC"}
@@ -2,10 +2,10 @@ import type { CreateTopicCommandInput, SNSClient } from '@aws-sdk/client-sns';
2
2
  import type { CreateQueueCommandInput, SQSClient } from '@aws-sdk/client-sqs';
3
3
  import type { DeletionConfig, ExtraParams } from '@message-queue-toolkit/core';
4
4
  import { type SQSCreationConfig } from '@message-queue-toolkit/sqs';
5
- import type { SNSCreationConfig, SNSTopicLocatorType } from '../sns/AbstractSnsService';
6
- import type { SNSSQSQueueLocatorType } from '../sns/AbstractSnsSqsConsumer';
5
+ import type { SNSCreationConfig, SNSTopicLocatorType } from '../sns/AbstractSnsService.ts';
6
+ import type { SNSSQSQueueLocatorType } from '../sns/AbstractSnsSqsConsumer.ts';
7
7
  import type { STSClient } from '@aws-sdk/client-sts';
8
- import type { SNSSubscriptionOptions } from './snsSubscriber';
8
+ import type { SNSSubscriptionOptions } from './snsSubscriber.ts';
9
9
  export declare function initSnsSqs(sqsClient: SQSClient, snsClient: SNSClient, stsClient: STSClient, locatorConfig?: SNSSQSQueueLocatorType, creationConfig?: SNSCreationConfig & SQSCreationConfig, subscriptionConfig?: SNSSubscriptionOptions, extraParams?: ExtraParams): Promise<{
10
10
  subscriptionArn: string;
11
11
  topicArn: string;