@message-queue-toolkit/kafka 0.1.3 → 0.2.1

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.
@@ -4,19 +4,22 @@ import { AbstractKafkaService, type BaseKafkaOptions } from './AbstractKafkaServ
4
4
  import type { KafkaHandlerRouting } from './handler-container/KafkaHandlerRoutingBuilder.ts';
5
5
  import type { KafkaConfig, KafkaDependencies, TopicConfig } from './types.ts';
6
6
  export type KafkaConsumerDependencies = KafkaDependencies & Pick<QueueConsumerDependencies, 'transactionObservabilityManager'>;
7
- export type KafkaConsumerOptions<TopicsConfig extends TopicConfig[]> = BaseKafkaOptions & Omit<ConsumerOptions<string, object, string, string>, 'deserializers' | 'autocommit' | keyof KafkaConfig> & Omit<ConsumeOptions<string, object, string, string>, 'topics'> & {
8
- handlers: KafkaHandlerRouting<TopicsConfig>;
7
+ export type KafkaConsumerOptions<TopicsConfig extends TopicConfig[], ExecutionContext> = BaseKafkaOptions & Omit<ConsumerOptions<string, object, string, string>, 'deserializers' | 'autocommit' | keyof KafkaConfig> & Omit<ConsumeOptions<string, object, string, string>, 'topics'> & {
8
+ handlers: KafkaHandlerRouting<TopicsConfig, ExecutionContext>;
9
9
  };
10
- export declare abstract class AbstractKafkaConsumer<TopicsConfig extends TopicConfig[]> extends AbstractKafkaService<TopicsConfig, KafkaConsumerOptions<TopicsConfig>> {
10
+ export declare abstract class AbstractKafkaConsumer<TopicsConfig extends TopicConfig[], ExecutionContext> extends AbstractKafkaService<TopicsConfig, KafkaConsumerOptions<TopicsConfig, ExecutionContext>> {
11
11
  private readonly consumer;
12
12
  private consumerStream?;
13
13
  private readonly transactionObservabilityManager;
14
14
  private readonly handlerContainer;
15
- constructor(dependencies: KafkaConsumerDependencies, options: KafkaConsumerOptions<TopicsConfig>);
15
+ private readonly executionContext;
16
+ constructor(dependencies: KafkaConsumerDependencies, options: KafkaConsumerOptions<TopicsConfig, ExecutionContext>, executionContext: ExecutionContext);
16
17
  init(): Promise<void>;
17
18
  close(): Promise<void>;
18
19
  private consume;
19
20
  private tryToConsume;
21
+ private commitMessage;
22
+ private handleResponseErrorOnCommit;
20
23
  private buildTransactionName;
21
24
  private getRequestContext;
22
25
  }
@@ -1,10 +1,16 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { setTimeout } from 'node:timers/promises';
3
3
  import { InternalError, stringValueSerializer, } from '@lokalise/node-core';
4
- import { Consumer, stringDeserializer, } from '@platformatic/kafka';
4
+ import { Consumer, ProtocolError, ResponseError, stringDeserializer, } from '@platformatic/kafka';
5
5
  import { AbstractKafkaService } from "./AbstractKafkaService.js";
6
6
  import { KafkaHandlerContainer } from "./handler-container/KafkaHandlerContainer.js";
7
+ import { ILLEGAL_GENERATION, REBALANCE_IN_PROGRESS, UNKNOWN_MEMBER_ID } from './utils/errorCodes.js';
7
8
  import { safeJsonDeserializer } from './utils/safeJsonDeserializer.js';
9
+ const commitErrorCodesToIgnore = new Set([
10
+ ILLEGAL_GENERATION,
11
+ UNKNOWN_MEMBER_ID,
12
+ REBALANCE_IN_PROGRESS,
13
+ ]);
8
14
  /*
9
15
  TODO: Proper retry mechanism + DLQ -> https://lokalise.atlassian.net/browse/EDEXP-498
10
16
  In the meantime, we will retry in memory up to 3 times
@@ -15,10 +21,12 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
15
21
  consumerStream;
16
22
  transactionObservabilityManager;
17
23
  handlerContainer;
18
- constructor(dependencies, options) {
24
+ executionContext;
25
+ constructor(dependencies, options, executionContext) {
19
26
  super(dependencies, options);
20
27
  this.transactionObservabilityManager = dependencies.transactionObservabilityManager;
21
28
  this.handlerContainer = new KafkaHandlerContainer(options.handlers, options.messageTypeField);
29
+ this.executionContext = executionContext;
22
30
  this.consumer = new Consumer({
23
31
  ...this.options.kafka,
24
32
  ...this.options,
@@ -30,6 +38,11 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
30
38
  headerValue: stringDeserializer,
31
39
  },
32
40
  });
41
+ const logDetails = { origin: this.constructor.name, groupId: this.options.groupId };
42
+ this.consumer.on('consumer:group:join', (_) => this.logger.debug(logDetails, 'Consumer is joining a group'));
43
+ this.consumer.on('consumer:rejoin', (_) => this.logger.debug(logDetails, 'Consumer is re-joining a group after a rebalance'));
44
+ this.consumer.on('consumer:group:leave', (_) => this.logger.debug(logDetails, 'Consumer is leaving the group'));
45
+ this.consumer.on('consumer:group:rebalance', (_) => this.logger.debug(logDetails, 'Group is rebalancing'));
33
46
  }
34
47
  async init() {
35
48
  if (this.consumerStream)
@@ -61,11 +74,11 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
61
74
  async consume(message) {
62
75
  // message.value can be undefined if the message is not JSON-serializable
63
76
  if (!message.value)
64
- return message.commit();
77
+ return this.commitMessage(message);
65
78
  const handler = this.handlerContainer.resolveHandler(message.topic, message.value);
66
79
  // if there is no handler for the message, we ignore it (simulating subscription)
67
80
  if (!handler)
68
- return message.commit();
81
+ return this.commitMessage(message);
69
82
  /* v8 ignore next */
70
83
  const transactionId = this.resolveMessageId(message.value) ?? randomUUID();
71
84
  this.transactionObservabilityManager?.start(this.buildTransactionName(message), transactionId);
@@ -80,7 +93,7 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
80
93
  message: message.value,
81
94
  processingResult: { status: 'error', errorReason: 'invalidMessage' },
82
95
  });
83
- return message.commit();
96
+ return this.commitMessage(message);
84
97
  }
85
98
  const validatedMessage = parseResult.data;
86
99
  const requestContext = this.getRequestContext(message);
@@ -110,11 +123,11 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
110
123
  });
111
124
  }
112
125
  this.transactionObservabilityManager?.stop(transactionId);
113
- return message.commit();
126
+ return this.commitMessage(message);
114
127
  }
115
128
  async tryToConsume(message, handler, requestContext) {
116
129
  try {
117
- await handler(message, requestContext);
130
+ await handler(message, this.executionContext, requestContext);
118
131
  return true;
119
132
  }
120
133
  catch (error) {
@@ -125,6 +138,38 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
125
138
  }
126
139
  return false;
127
140
  }
141
+ async commitMessage(message) {
142
+ try {
143
+ this.logger.debug({ topic: message.topic, offset: message.offset, timestamp: message.timestamp }, 'Trying to commit message');
144
+ await message.commit();
145
+ }
146
+ catch (error) {
147
+ if (error instanceof ResponseError) {
148
+ return this.handleResponseErrorOnCommit(error);
149
+ }
150
+ throw error;
151
+ }
152
+ }
153
+ handleResponseErrorOnCommit(responseError) {
154
+ // Some errors are expected during group rebalancing, so we handle them gracefully
155
+ for (const error of responseError.errors) {
156
+ if (error instanceof ProtocolError &&
157
+ error.apiCode &&
158
+ commitErrorCodesToIgnore.has(error.apiCode)) {
159
+ this.logger.error({
160
+ apiCode: error.apiCode,
161
+ apiId: error.apiId,
162
+ responseErrorMessage: responseError.message,
163
+ protocolErrorMessage: error.message,
164
+ error: responseError,
165
+ }, `Failed to commit message: ${error.message}`);
166
+ }
167
+ else {
168
+ // If error is not recognized, rethrow it
169
+ throw responseError;
170
+ }
171
+ }
172
+ }
128
173
  buildTransactionName(message) {
129
174
  const messageType = this.resolveMessageType(message.value);
130
175
  let name = `kafka:${message.topic}`;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractKafkaConsumer.js","sourceRoot":"","sources":["../lib/AbstractKafkaConsumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractKafkaConsumer.js","sourceRoot":"","sources":["../lib/AbstractKafkaConsumer.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ export interface RequestContext {
5
5
  logger: CommonLogger;
6
6
  reqId: string;
7
7
  }
8
- export type KafkaHandler<MessageValue extends object> = (message: Message<string, MessageValue, string, string>, requestContext: RequestContext) => Promise<void> | void;
9
- export declare class KafkaHandlerConfig<MessageValue extends object> {
8
+ export type KafkaHandler<MessageValue extends object, ExecutionContext> = (message: Message<string, MessageValue, string, string>, context: ExecutionContext, requestContext: RequestContext) => Promise<void> | void;
9
+ export declare class KafkaHandlerConfig<MessageValue extends object, ExecutionContext> {
10
10
  readonly schema: ZodSchema<MessageValue>;
11
- readonly handler: KafkaHandler<MessageValue>;
12
- constructor(schema: ZodSchema<MessageValue>, handler: KafkaHandler<MessageValue>);
11
+ readonly handler: KafkaHandler<MessageValue, ExecutionContext>;
12
+ constructor(schema: ZodSchema<MessageValue>, handler: KafkaHandler<MessageValue, ExecutionContext>);
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KafkaHandlerConfig.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerConfig.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,kBAAkB;IACb,MAAM,CAAyB;IAC/B,OAAO,CAA4B;IAEnD,YAAY,MAA+B,EAAE,OAAmC;QAC9E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"KafkaHandlerConfig.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerConfig.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,kBAAkB;IACb,MAAM,CAAyB;IAC/B,OAAO,CAA8C;IAErE,YACE,MAA+B,EAC/B,OAAqD;QAErD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import type { SupportedMessageValuesForTopic, SupportedTopics, TopicConfig } from '../types.ts';
2
2
  import type { KafkaHandlerConfig } from './KafkaHandlerConfig.ts';
3
3
  import type { KafkaHandlerRouting } from './KafkaHandlerRoutingBuilder.ts';
4
- export declare class KafkaHandlerContainer<TopicsConfig extends TopicConfig[]> {
4
+ export declare class KafkaHandlerContainer<TopicsConfig extends TopicConfig[], ExecutionContext> {
5
5
  private readonly handlers;
6
6
  private readonly messageTypeField?;
7
- constructor(topicHandlers: KafkaHandlerRouting<TopicsConfig>, messageTypeField?: string);
7
+ constructor(topicHandlers: KafkaHandlerRouting<TopicsConfig, ExecutionContext>, messageTypeField?: string);
8
8
  private mapTopicHandlers;
9
- resolveHandler<Topic extends SupportedTopics<TopicsConfig>>(topic: Topic, messageValue: SupportedMessageValuesForTopic<TopicsConfig, Topic>): KafkaHandlerConfig<SupportedMessageValuesForTopic<TopicsConfig, Topic>> | undefined;
9
+ resolveHandler<Topic extends SupportedTopics<TopicsConfig>>(topic: Topic, messageValue: SupportedMessageValuesForTopic<TopicsConfig, Topic>): KafkaHandlerConfig<SupportedMessageValuesForTopic<TopicsConfig, Topic>, ExecutionContext> | undefined;
10
10
  get topics(): SupportedTopics<TopicsConfig>[];
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KafkaHandlerContainer.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerContainer.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAOrD,MAAM,OAAO,qBAAqB;IACf,QAAQ,CAAwB;IAChC,gBAAgB,CAAS;IAE1C,YAAY,aAAgD,EAAE,gBAAyB;QACrF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACtD,CAAC;IAEO,gBAAgB,CACtB,mBAAsD;QAEtD,MAAM,MAAM,GAA2B,EAAE,CAAA;QAEzC,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,MAAM;gBAAE,SAAQ;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YAElB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB;oBACpC,CAAC,CAAC,mBAAmB;wBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK;oBACpD,CAAC,CAAC,SAAS,CAAA;gBACb,UAAU,KAAK,mBAAmB,CAAA;gBAClC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;gBACzD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA;YACrC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CACZ,KAAY,EACZ,YAAiE;QAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QAE/B,IAAI,gBAAgB,GAAuB,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,gBAAgB;YAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEjF,OAAO,gBAAgB;YACrB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"KafkaHandlerContainer.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerContainer.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAUrD,MAAM,OAAO,qBAAqB;IACf,QAAQ,CAA0C;IAClD,gBAAgB,CAAS;IAE1C,YACE,aAAkE,EAClE,gBAAyB;QAEzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACtD,CAAC;IAEO,gBAAgB,CACtB,mBAAwE;QAExE,MAAM,MAAM,GAA6C,EAAE,CAAA;QAE3D,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,MAAM;gBAAE,SAAQ;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YAElB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB;oBACpC,CAAC,CAAC,mBAAmB;wBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK;oBACpD,CAAC,CAAC,SAAS,CAAA;gBACb,UAAU,KAAK,mBAAmB,CAAA;gBAClC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;gBACzD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA;YACrC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CACZ,KAAY,EACZ,YAAiE;QAIjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QAE/B,IAAI,gBAAgB,GAAuB,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,gBAAgB;YAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEjF,OAAO,gBAAgB;YACrB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  import type { SupportedMessageValues, SupportedMessageValuesForTopic, SupportedTopics, TopicConfig } from '../types.ts';
2
2
  import type { KafkaHandlerConfig } from './KafkaHandlerConfig.ts';
3
- export type KafkaHandlerRouting<TopicsConfig extends TopicConfig[], MessageValue extends SupportedMessageValues<TopicsConfig> = SupportedMessageValues<TopicsConfig>> = Record<string, KafkaHandlerConfig<MessageValue>[]>;
4
- export declare class KafkaHandlerRoutingBuilder<TopicsConfig extends TopicConfig[]> {
3
+ export type KafkaHandlerRouting<TopicsConfig extends TopicConfig[], ExecutionContext, MessageValue extends SupportedMessageValues<TopicsConfig> = SupportedMessageValues<TopicsConfig>> = Record<string, KafkaHandlerConfig<MessageValue, ExecutionContext>[]>;
4
+ export declare class KafkaHandlerRoutingBuilder<const TopicsConfig extends TopicConfig[], ExecutionContext> {
5
5
  private readonly configs;
6
- addConfig<Topic extends SupportedTopics<TopicsConfig>, MessageValue extends SupportedMessageValuesForTopic<TopicsConfig, Topic>>(topic: Topic, config: KafkaHandlerConfig<MessageValue>): this;
7
- build(): KafkaHandlerRouting<TopicsConfig>;
6
+ addConfig<Topic extends SupportedTopics<TopicsConfig>, MessageValue extends SupportedMessageValuesForTopic<TopicsConfig, Topic>>(topic: Topic, config: KafkaHandlerConfig<MessageValue, ExecutionContext>): this;
7
+ build(): KafkaHandlerRouting<TopicsConfig, ExecutionContext>;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KafkaHandlerRoutingBuilder.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerRoutingBuilder.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,0BAA0B;IACpB,OAAO,GAAsC,EAAE,CAAA;IAEhE,SAAS,CAGP,KAAY,EAAE,MAAwC;QACtD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"KafkaHandlerRoutingBuilder.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerRoutingBuilder.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,0BAA0B;IAIpB,OAAO,GAAwD,EAAE,CAAA;IAElF,SAAS,CAGP,KAAY,EAAE,MAA0D;QACxE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
package/dist/types.d.ts CHANGED
@@ -16,7 +16,7 @@ type MessageSchemasForTopic<TopicsConfig extends TopicConfig[], Topic extends Su
16
16
  topic: Topic;
17
17
  }>['schemas'][number];
18
18
  export type SupportedMessageValuesInputForTopic<TopicsConfig extends TopicConfig[], Topic extends SupportedTopics<TopicsConfig>> = z.input<MessageSchemasForTopic<TopicsConfig, Topic>>;
19
- export type SupportedMessageValuesForTopic<TopicsConfig extends TopicConfig[], Topic extends SupportedTopics<TopicsConfig>> = z.infer<MessageSchemasForTopic<TopicsConfig, Topic>>;
19
+ export type SupportedMessageValuesForTopic<TopicsConfig extends TopicConfig[], Topic extends SupportedTopics<TopicsConfig>> = z.output<MessageSchemasForTopic<TopicsConfig, Topic>>;
20
20
  type MessageSchemas<TopicsConfig extends TopicConfig[]> = TopicsConfig[number]['schemas'][number];
21
21
  export type SupportedMessageValuesInput<TopicsConfig extends TopicConfig[]> = z.input<MessageSchemas<TopicsConfig>>;
22
22
  export type SupportedMessageValues<TopicsConfig extends TopicConfig[]> = z.input<MessageSchemas<TopicsConfig>>;
@@ -0,0 +1,3 @@
1
+ export declare const ILLEGAL_GENERATION = 22;
2
+ export declare const UNKNOWN_MEMBER_ID = 25;
3
+ export declare const REBALANCE_IN_PROGRESS = 27;
@@ -0,0 +1,5 @@
1
+ // Kafka protocol error codes (see https://kafka.apache.org/11/protocol.html)
2
+ export const ILLEGAL_GENERATION = 22;
3
+ export const UNKNOWN_MEMBER_ID = 25;
4
+ export const REBALANCE_IN_PROGRESS = 27;
5
+ //# sourceMappingURL=errorCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorCodes.js","sourceRoot":"","sources":["../../lib/utils/errorCodes.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/kafka",
3
- "version": "0.1.3",
3
+ "version": "0.2.1",
4
4
  "engines": {
5
5
  "node": ">= 22.14.0"
6
6
  },
@@ -50,20 +50,20 @@
50
50
  "@confluentinc/kafka-javascript": "^1.3.0",
51
51
  "@lokalise/node-core": "^14.1.0",
52
52
  "@lokalise/universal-ts-utils": "^4.4.1",
53
- "@platformatic/kafka": "^1.3.0",
53
+ "@platformatic/kafka": "^1.7.0",
54
54
  "zod": "^3.25.7"
55
55
  },
56
56
  "peerDependencies": {
57
- "@message-queue-toolkit/core": ">=21.3.0",
58
- "@message-queue-toolkit/schemas": ">=6.0.0"
57
+ "@message-queue-toolkit/core": "21.3.0",
58
+ "@message-queue-toolkit/schemas": "6.2.0"
59
59
  },
60
60
  "devDependencies": {
61
- "@biomejs/biome": "1.9.4",
61
+ "@biomejs/biome": "^1.9.4",
62
62
  "@lokalise/biome-config": "^2.0.0",
63
- "@lokalise/tsconfig": "^1.3.0",
64
- "@message-queue-toolkit/core": "*",
65
- "@message-queue-toolkit/schemas": "*",
66
- "@types/node": "^22.7.5",
63
+ "@lokalise/tsconfig": "^2.0.0",
64
+ "@message-queue-toolkit/core": "21.3.0",
65
+ "@message-queue-toolkit/schemas": "6.2.0",
66
+ "@types/node": "^24.0.3",
67
67
  "@vitest/coverage-v8": "^3.0.7",
68
68
  "awilix": "^12.0.1",
69
69
  "awilix-manager": "^6.0.0",