@message-queue-toolkit/sns 22.2.0 → 23.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { types } from 'node:util';
2
2
  import { InternalError, isStandardizedError } from '@lokalise/node-core';
3
3
  import { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
4
- import { ZodError } from 'zod/v3';
4
+ import { ZodError } from 'zod/v4';
5
5
  export class SnsConsumerErrorResolver {
6
6
  processError(error) {
7
7
  if (types.isNativeError(error) && error?.name === 'SyntaxError') {
@@ -14,7 +14,7 @@ export declare abstract class AbstractSnsPublisher<MessagePayloadType extends ob
14
14
  constructor(dependencies: SNSDependencies, options: SNSPublisherOptions<MessagePayloadType>);
15
15
  publish(message: MessagePayloadType, options?: SNSMessageOptions): Promise<void>;
16
16
  protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, ResolvedMessage>;
17
- protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
17
+ protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadType, unknown>>>;
18
18
  protected resolveNextFunction(): () => void;
19
19
  protected processPrehandlers(): Promise<undefined>;
20
20
  protected preHandlerBarrier<BarrierOutput>(): Promise<BarrierResult<BarrierOutput>>;
@@ -24,5 +24,5 @@ export declare abstract class AbstractSnsSqsConsumer<MessagePayloadSchemas exten
24
24
  protected constructor(dependencies: SNSSQSConsumerDependencies, options: SNSSQSConsumerOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>, executionContext: ExecutionContext);
25
25
  init(): Promise<void>;
26
26
  protected resolveMessage(message: SQSMessage): import("@lokalise/node-core").Either<import("@message-queue-toolkit/core").MessageInvalidFormatError | import("@message-queue-toolkit/core").MessageValidationError, import("@message-queue-toolkit/core").ResolvedMessage>;
27
- protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either<Error, import("zod").ZodType<MessagePayloadSchemas, import("zod").ZodTypeDef, MessagePayloadSchemas>>;
27
+ protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either<Error, import("zod").ZodType<MessagePayloadSchemas, unknown, import("zod/v4/core").$ZodTypeInternals<MessagePayloadSchemas, unknown>>>;
28
28
  }
@@ -1,7 +1,7 @@
1
1
  import type { EventRegistry, MessagePublishType, MessageSchemaType, MetadataFiller, PublisherBaseEventType, PublisherMessageMetadataType } from '@message-queue-toolkit/core';
2
2
  import { AbstractPublisherManager } from '@message-queue-toolkit/core';
3
3
  import type { SnsAwareEventDefinition } from '@message-queue-toolkit/schemas';
4
- import type z from 'zod/v3';
4
+ import type z from 'zod/v4';
5
5
  import type { AbstractSnsPublisher, SNSMessageOptions, SNSPublisherOptions } from './AbstractSnsPublisher.ts';
6
6
  import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService.ts';
7
7
  import type { SnsPublisherFactory } from './CommonSnsPublisherFactory.ts';
@@ -17,9 +17,9 @@ export type SnsPublisherManagerOptions<T extends AbstractSnsPublisher<EventType>
17
17
  creationConfig?: Omit<SNSCreationConfig, 'topic'>;
18
18
  };
19
19
  };
20
- export type SnsMessageSchemaType<T extends SnsAwareEventDefinition> = z.infer<T['publisherSchema']>;
21
- export declare class SnsPublisherManager<T extends AbstractSnsPublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, SupportedEventDefinitions extends SnsAwareEventDefinition[], MetadataType = PublisherMessageMetadataType> extends AbstractPublisherManager<SnsAwareEventDefinition, NonNullable<SupportedEventDefinitions[number]['snsTopic']>, AbstractSnsPublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, SNSDependencies, SNSCreationConfig, SNSTopicLocatorType, SnsMessageSchemaType<SnsAwareEventDefinition>, Omit<SNSPublisherOptions<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>, SupportedEventDefinitions, MetadataType, SNSMessageOptions> {
22
- constructor(dependencies: SnsPublisherManagerDependencies<SupportedEventDefinitions>, options: SnsPublisherManagerOptions<T, z.infer<SupportedEventDefinitions[number]['publisherSchema']>, MetadataType>);
20
+ export type SnsMessageSchemaType<T extends SnsAwareEventDefinition> = z.output<T['publisherSchema']>;
21
+ export declare class SnsPublisherManager<T extends AbstractSnsPublisher<z.input<SupportedEventDefinitions[number]['publisherSchema']>>, SupportedEventDefinitions extends SnsAwareEventDefinition[], MetadataType = PublisherMessageMetadataType> extends AbstractPublisherManager<SnsAwareEventDefinition, NonNullable<SupportedEventDefinitions[number]['snsTopic']>, AbstractSnsPublisher<z.input<SupportedEventDefinitions[number]['publisherSchema']>>, SNSDependencies, SNSCreationConfig, SNSTopicLocatorType, SnsMessageSchemaType<SnsAwareEventDefinition>, Omit<SNSPublisherOptions<z.input<SupportedEventDefinitions[number]['publisherSchema']>>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>, SupportedEventDefinitions, MetadataType, SNSMessageOptions> {
22
+ constructor(dependencies: SnsPublisherManagerDependencies<SupportedEventDefinitions>, options: SnsPublisherManagerOptions<T, z.input<SupportedEventDefinitions[number]['publisherSchema']>, MetadataType>);
23
23
  publish(topic: NonNullable<SupportedEventDefinitions[number]['snsTopic']>, message: MessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: Partial<MetadataType>, messageOptions?: SNSMessageOptions): Promise<MessageSchemaType<SupportedEventDefinitions[number]>>;
24
24
  protected resolveCreationConfig(eventTarget: NonNullable<SupportedEventDefinitions[number]['snsTopic']>): SNSCreationConfig;
25
25
  protected resolveEventTarget(event: SnsAwareEventDefinition): NonNullable<SupportedEventDefinitions[number]['snsTopic']> | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { PublisherBaseMessageType } from '@message-queue-toolkit/core';
2
- import type { ZodSchema } from 'zod/v3';
2
+ import type { ZodSchema } from 'zod/v4';
3
3
  import type { SNSSQSConsumerDependencies } from '../AbstractSnsSqsConsumer.ts';
4
4
  import { AbstractSnsSqsConsumer } from '../AbstractSnsSqsConsumer.ts';
5
5
  export declare class FakeConsumer<T extends PublisherBaseMessageType> extends AbstractSnsSqsConsumer<T, unknown> {
@@ -1,4 +1,4 @@
1
- import z from 'zod/v3';
1
+ import z from 'zod/v4';
2
2
  export type CommonMessage = {
3
3
  messageType: string;
4
4
  };
@@ -9,46 +9,12 @@ export declare const SNS_MESSAGE_BODY_SCHEMA: z.ZodObject<{
9
9
  Message: z.ZodString;
10
10
  MessageAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
11
11
  Type: z.ZodString;
12
- Value: z.ZodUnknown;
13
- }, "strip", z.ZodTypeAny, {
14
- Type: string;
15
- Value?: unknown;
16
- }, {
17
- Type: string;
18
- Value?: unknown;
19
- }>>>;
12
+ Value: z.ZodAny;
13
+ }, z.core.$strip>>>;
20
14
  Timestamp: z.ZodString;
21
15
  SignatureVersion: z.ZodString;
22
16
  Signature: z.ZodString;
23
17
  SigningCertURL: z.ZodString;
24
18
  UnsubscribeURL: z.ZodString;
25
- }, "strip", z.ZodTypeAny, {
26
- Type: string;
27
- MessageId: string;
28
- TopicArn: string;
29
- Message: string;
30
- Timestamp: string;
31
- SignatureVersion: string;
32
- Signature: string;
33
- SigningCertURL: string;
34
- UnsubscribeURL: string;
35
- MessageAttributes?: Record<string, {
36
- Type: string;
37
- Value?: unknown;
38
- }> | undefined;
39
- }, {
40
- Type: string;
41
- MessageId: string;
42
- TopicArn: string;
43
- Message: string;
44
- Timestamp: string;
45
- SignatureVersion: string;
46
- Signature: string;
47
- SigningCertURL: string;
48
- UnsubscribeURL: string;
49
- MessageAttributes?: Record<string, {
50
- Type: string;
51
- Value?: unknown;
52
- }> | undefined;
53
- }>;
54
- export type SNS_MESSAGE_BODY_TYPE = z.infer<typeof SNS_MESSAGE_BODY_SCHEMA>;
19
+ }, z.core.$strip>;
20
+ export type SNS_MESSAGE_BODY_TYPE = z.output<typeof SNS_MESSAGE_BODY_SCHEMA>;
@@ -1,4 +1,4 @@
1
- import z from 'zod/v3';
1
+ import z from 'zod/v4';
2
2
  export const SNS_MESSAGE_BODY_SCHEMA = z.object({
3
3
  Type: z.string(),
4
4
  MessageId: z.string(),
@@ -7,7 +7,7 @@ export const SNS_MESSAGE_BODY_SCHEMA = z.object({
7
7
  MessageAttributes: z
8
8
  .record(z.string(), z.object({
9
9
  Type: z.string(),
10
- Value: z.unknown(),
10
+ Value: z.any(),
11
11
  }))
12
12
  .optional(),
13
13
  Timestamp: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"MessageTypes.js","sourceRoot":"","sources":["../../lib/types/MessageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAMtB,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
+ {"version":3,"file":"MessageTypes.js","sourceRoot":"","sources":["../../lib/types/MessageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAMtB,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,GAAG,EAAE;KACf,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,4 +1,4 @@
1
- import type { ZodSchema } from 'zod/v3';
1
+ import type { ZodSchema } from 'zod/v4';
2
2
  export type TopicSubscriptionPolicyParams = {
3
3
  topicArn: string;
4
4
  allowedSqsQueueUrlPrefix?: string | readonly string[];
@@ -1,5 +1,5 @@
1
1
  import type { Either, ErrorResolver } from '@lokalise/node-core';
2
2
  import type { MessageInvalidFormatError, MessageValidationError, ParseMessageResult } from '@message-queue-toolkit/core';
3
3
  import type { SQSMessage } from '@message-queue-toolkit/sqs';
4
- import type { ZodType } from 'zod/v3';
4
+ import type { ZodType } from 'zod/v4';
5
5
  export declare const deserializeSNSMessage: <T extends object>(message: SQSMessage, type: ZodType<T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, ParseMessageResult<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/sns",
3
- "version": "22.2.0",
3
+ "version": "23.1.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "SNS adapter for message-queue-toolkit",
@@ -28,37 +28,38 @@
28
28
  "prepublishOnly": "npm run lint && npm run build"
29
29
  },
30
30
  "dependencies": {
31
- "@lokalise/node-core": "^14.0.1",
32
- "sqs-consumer": "^12.0.0",
33
- "zod": "^3.25.3"
31
+ "@lokalise/node-core": "^14.2.0",
32
+ "sqs-consumer": "^12.0.0"
34
33
  },
35
34
  "peerDependencies": {
36
35
  "@aws-sdk/client-sns": "^3.632.0",
37
36
  "@aws-sdk/client-sqs": "^3.632.0",
38
37
  "@aws-sdk/client-sts": "^3.632.0",
39
- "@message-queue-toolkit/core": ">=21.2.0",
40
- "@message-queue-toolkit/schemas": ">=6.2.0",
41
- "@message-queue-toolkit/sqs": ">=21.1.0"
38
+ "@message-queue-toolkit/core": ">=22.0.0",
39
+ "@message-queue-toolkit/schemas": ">=7.0.0",
40
+ "@message-queue-toolkit/sqs": ">=22.0.0",
41
+ "zod": ">=3.25.76 <5.0.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@aws-sdk/client-s3": "^3.812.0",
45
45
  "@aws-sdk/client-sns": "^3.812.0",
46
46
  "@aws-sdk/client-sqs": "^3.812.0",
47
- "@biomejs/biome": "1.9.4",
47
+ "@biomejs/biome": "^1.9.4",
48
48
  "@lokalise/biome-config": "^2.0.0",
49
- "@lokalise/tsconfig": "^1.3.0",
49
+ "@lokalise/tsconfig": "^2.0.0",
50
50
  "@message-queue-toolkit/core": "*",
51
51
  "@message-queue-toolkit/redis-message-deduplication-store": "*",
52
52
  "@message-queue-toolkit/s3-payload-store": "*",
53
53
  "@message-queue-toolkit/sqs": "*",
54
- "@types/node": "^22.15.19",
55
- "@vitest/coverage-v8": "^3.1.4",
54
+ "@types/node": "^24.0.3",
55
+ "@vitest/coverage-v8": "^3.2.4",
56
56
  "awilix": "^12.0.1",
57
57
  "awilix-manager": "^6.1.0",
58
- "ioredis": "^5.6.1",
58
+ "ioredis": "^5.7.0",
59
59
  "rimraf": "^6.0.1",
60
- "typescript": "^5.8.3",
61
- "vitest": "^3.1.4"
60
+ "typescript": "^5.9.2",
61
+ "vitest": "^3.2.4",
62
+ "zod": "^4.0.17"
62
63
  },
63
64
  "homepage": "https://github.com/kibertoad/message-queue-toolkit",
64
65
  "repository": {