@platformatic/kafka 1.23.0 → 1.24.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 (122) hide show
  1. package/dist/apis/admin/alter-client-quotas-v1.d.ts +4 -4
  2. package/dist/apis/admin/alter-configs-v2.d.ts +3 -2
  3. package/dist/apis/admin/alter-partition-reassignments-v0.js +1 -1
  4. package/dist/apis/admin/create-acls-v3.d.ts +3 -11
  5. package/dist/apis/admin/create-partitions-v3.d.ts +2 -2
  6. package/dist/apis/admin/delete-acls-v3.d.ts +4 -19
  7. package/dist/apis/admin/delete-acls-v3.js +6 -6
  8. package/dist/apis/admin/describe-acls-v3.d.ts +5 -13
  9. package/dist/apis/admin/describe-acls-v3.js +9 -9
  10. package/dist/apis/admin/describe-client-quotas-v0.d.ts +5 -5
  11. package/dist/apis/admin/describe-configs-v4.d.ts +7 -6
  12. package/dist/apis/admin/describe-configs-v4.js +1 -1
  13. package/dist/apis/admin/incremental-alter-configs-v1.d.ts +12 -5
  14. package/dist/apis/admin/incremental-alter-configs-v1.js +3 -1
  15. package/dist/apis/admin/list-groups-v4.d.ts +2 -2
  16. package/dist/apis/admin/list-groups-v5.d.ts +2 -2
  17. package/dist/apis/admin/offset-delete-v0.js +3 -3
  18. package/dist/apis/callbacks.d.ts +3 -1
  19. package/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  20. package/dist/apis/consumer/offset-fetch-v8.d.ts +2 -2
  21. package/dist/apis/consumer/offset-fetch-v9.d.ts +2 -2
  22. package/dist/apis/definitions.d.ts +2 -2
  23. package/dist/apis/enumerations.d.ts +134 -42
  24. package/dist/apis/enumerations.js +42 -6
  25. package/dist/apis/index.d.ts +1 -0
  26. package/dist/apis/index.js +1 -0
  27. package/dist/apis/producer/add-offsets-to-txn-v3.d.ts +10 -0
  28. package/dist/apis/producer/add-offsets-to-txn-v3.js +34 -0
  29. package/dist/apis/producer/add-partitions-to-txn-v3.d.ts +34 -0
  30. package/dist/apis/producer/add-partitions-to-txn-v3.js +67 -0
  31. package/dist/apis/producer/add-partitions-to-txn-v4.d.ts +34 -0
  32. package/dist/apis/producer/add-partitions-to-txn-v4.js +79 -0
  33. package/dist/apis/producer/end-txn-v3.d.ts +10 -0
  34. package/dist/apis/producer/end-txn-v3.js +34 -0
  35. package/dist/apis/producer/index.d.ts +5 -0
  36. package/dist/apis/producer/index.js +5 -0
  37. package/dist/apis/producer/txn-offset-commit-v3.d.ts +29 -0
  38. package/dist/apis/producer/txn-offset-commit-v3.js +74 -0
  39. package/dist/apis/types.d.ts +16 -0
  40. package/dist/apis/types.js +1 -0
  41. package/dist/clients/admin/admin.d.ts +31 -1
  42. package/dist/clients/admin/admin.js +732 -50
  43. package/dist/clients/admin/options.d.ts +577 -0
  44. package/dist/clients/admin/options.js +359 -2
  45. package/dist/clients/admin/types.d.ts +105 -3
  46. package/dist/clients/base/base.js +29 -26
  47. package/dist/clients/base/options.d.ts +2 -5
  48. package/dist/clients/base/options.js +0 -1
  49. package/dist/clients/base/types.d.ts +8 -2
  50. package/dist/clients/consumer/consumer.d.ts +58 -2
  51. package/dist/clients/consumer/consumer.js +116 -47
  52. package/dist/clients/consumer/messages-stream.d.ts +1 -0
  53. package/dist/clients/consumer/messages-stream.js +48 -17
  54. package/dist/clients/consumer/options.d.ts +6 -6
  55. package/dist/clients/consumer/options.js +3 -3
  56. package/dist/clients/consumer/types.d.ts +26 -3
  57. package/dist/clients/index.d.ts +1 -1
  58. package/dist/clients/index.js +1 -1
  59. package/dist/clients/producer/options.d.ts +12 -3
  60. package/dist/clients/producer/options.js +1 -0
  61. package/dist/clients/producer/producer.d.ts +19 -2
  62. package/dist/clients/producer/producer.js +335 -37
  63. package/dist/clients/producer/transaction.d.ts +30 -0
  64. package/dist/clients/producer/transaction.js +172 -0
  65. package/dist/clients/producer/types.d.ts +2 -0
  66. package/dist/diagnostic.d.ts +5 -0
  67. package/dist/diagnostic.js +5 -0
  68. package/dist/errors.js +1 -0
  69. package/dist/network/connection-pool.js +4 -4
  70. package/dist/network/connection.js +3 -2
  71. package/dist/protocol/records.d.ts +12 -0
  72. package/dist/protocol/records.js +6 -4
  73. package/dist/protocol/sasl/oauth-bearer.js +4 -4
  74. package/dist/protocol/sasl/plain.js +2 -2
  75. package/dist/protocol/sasl/scram-sha.js +8 -8
  76. package/dist/protocol/sasl/utils.js +5 -5
  77. package/dist/symbols.d.ts +8 -0
  78. package/dist/symbols.js +8 -0
  79. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +4 -4
  80. package/dist/typescript-4/dist/apis/admin/alter-configs-v2.d.ts +3 -2
  81. package/dist/typescript-4/dist/apis/admin/create-acls-v3.d.ts +3 -11
  82. package/dist/typescript-4/dist/apis/admin/create-partitions-v3.d.ts +2 -2
  83. package/dist/typescript-4/dist/apis/admin/delete-acls-v3.d.ts +4 -19
  84. package/dist/typescript-4/dist/apis/admin/describe-acls-v3.d.ts +5 -13
  85. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +5 -5
  86. package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +7 -6
  87. package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v1.d.ts +13 -6
  88. package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +2 -2
  89. package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +2 -2
  90. package/dist/typescript-4/dist/apis/callbacks.d.ts +3 -1
  91. package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  92. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v8.d.ts +2 -2
  93. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v9.d.ts +2 -2
  94. package/dist/typescript-4/dist/apis/definitions.d.ts +2 -2
  95. package/dist/typescript-4/dist/apis/enumerations.d.ts +134 -42
  96. package/dist/typescript-4/dist/apis/index.d.ts +1 -0
  97. package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v3.d.ts +10 -0
  98. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v3.d.ts +34 -0
  99. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v4.d.ts +34 -0
  100. package/dist/typescript-4/dist/apis/producer/end-txn-v3.d.ts +10 -0
  101. package/dist/typescript-4/dist/apis/producer/index.d.ts +5 -0
  102. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v3.d.ts +29 -0
  103. package/dist/typescript-4/dist/apis/types.d.ts +14 -0
  104. package/dist/typescript-4/dist/clients/admin/admin.d.ts +31 -1
  105. package/dist/typescript-4/dist/clients/admin/options.d.ts +577 -0
  106. package/dist/typescript-4/dist/clients/admin/types.d.ts +105 -3
  107. package/dist/typescript-4/dist/clients/base/options.d.ts +2 -5
  108. package/dist/typescript-4/dist/clients/base/types.d.ts +8 -2
  109. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +58 -2
  110. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +1 -0
  111. package/dist/typescript-4/dist/clients/consumer/options.d.ts +6 -6
  112. package/dist/typescript-4/dist/clients/consumer/types.d.ts +27 -4
  113. package/dist/typescript-4/dist/clients/index.d.ts +1 -1
  114. package/dist/typescript-4/dist/clients/producer/options.d.ts +12 -3
  115. package/dist/typescript-4/dist/clients/producer/producer.d.ts +19 -2
  116. package/dist/typescript-4/dist/clients/producer/transaction.d.ts +30 -0
  117. package/dist/typescript-4/dist/clients/producer/types.d.ts +2 -0
  118. package/dist/typescript-4/dist/diagnostic.d.ts +5 -0
  119. package/dist/typescript-4/dist/protocol/records.d.ts +12 -0
  120. package/dist/typescript-4/dist/symbols.d.ts +9 -1
  121. package/dist/version.js +1 -1
  122. package/package.json +1 -1
@@ -54,11 +54,11 @@ export class Base extends EventEmitter {
54
54
  this[kApis] = [];
55
55
  // Validate options
56
56
  this[kOptions] = Object.assign({}, defaultBaseOptions, options);
57
+ this[kValidateOptions](this[kOptions], baseOptionsValidator, '/options');
58
+ this[kClientId] = options.clientId;
57
59
  if (typeof this[kOptions].retries === 'boolean') {
58
60
  this[kOptions].retries = this[kOptions].retries ? Number.POSITIVE_INFINITY : 0;
59
61
  }
60
- this[kValidateOptions](this[kOptions], baseOptionsValidator, '/options');
61
- this[kClientId] = options.clientId;
62
62
  // Initialize bootstrap brokers
63
63
  this[kBootstrapBrokers] = [];
64
64
  for (const broker of options.bootstrapBrokers) {
@@ -114,7 +114,7 @@ export class Base extends EventEmitter {
114
114
  }
115
115
  const validationError = this[kValidateOptions](options, metadataOptionsValidator, '/options', false);
116
116
  if (validationError) {
117
- callback(validationError, undefined);
117
+ callback(validationError);
118
118
  return callback[kCallbackPromise];
119
119
  }
120
120
  this[kMetadata](options, callback);
@@ -127,7 +127,7 @@ export class Base extends EventEmitter {
127
127
  // Fetch the metadata
128
128
  this[kMetadata]({ topics: [] }, (error, metadata) => {
129
129
  if (error) {
130
- callback(error, undefined);
130
+ callback(error);
131
131
  return;
132
132
  }
133
133
  let nodes = [];
@@ -144,14 +144,14 @@ export class Base extends EventEmitter {
144
144
  runConcurrentCallbacks('Connecting to brokers failed.', nodes, (nodeId, concurrentCallback) => {
145
145
  this[kGetConnection](metadata.brokers.get(nodeId), (error, connection) => {
146
146
  if (error) {
147
- concurrentCallback(error, undefined);
147
+ concurrentCallback(error);
148
148
  return;
149
149
  }
150
150
  concurrentCallback(null, [nodeId, connection]);
151
151
  });
152
152
  }, (error, connections) => {
153
153
  if (error) {
154
- callback(error, undefined);
154
+ callback(error);
155
155
  return;
156
156
  }
157
157
  return callback(null, new Map(connections));
@@ -192,7 +192,7 @@ export class Base extends EventEmitter {
192
192
  this[kPerformWithRetry]('listApis', retryCallback => {
193
193
  this[kGetBootstrapConnection]((error, connection) => {
194
194
  if (error) {
195
- retryCallback(error, undefined);
195
+ retryCallback(error);
196
196
  return;
197
197
  }
198
198
  // We use V3 to be able to get APIS from Kafka 2.4.0+
@@ -200,7 +200,7 @@ export class Base extends EventEmitter {
200
200
  });
201
201
  }, (error, metadata) => {
202
202
  if (error) {
203
- deduplicateCallback(error, undefined);
203
+ deduplicateCallback(error);
204
204
  return;
205
205
  }
206
206
  deduplicateCallback(null, metadata.apiKeys);
@@ -235,7 +235,7 @@ export class Base extends EventEmitter {
235
235
  function onClose() {
236
236
  clearTimeout(timeout);
237
237
  errors.push(new UserError(`Client closed while retrying ${operationId}.`));
238
- callback(new MultipleErrors(`${operationId} failed ${attempt + 1} times.`, errors), undefined);
238
+ callback(new MultipleErrors(`${operationId} failed ${attempt + 1} times.`, errors));
239
239
  }
240
240
  const timeout = setTimeout(() => {
241
241
  this.removeListener('client:close', onClose);
@@ -245,10 +245,10 @@ export class Base extends EventEmitter {
245
245
  }
246
246
  else {
247
247
  if (attempt === 0) {
248
- callback(error, undefined);
248
+ callback(error);
249
249
  return;
250
250
  }
251
- callback(new MultipleErrors(`${operationId} failed ${attempt + 1} times.`, errors), undefined);
251
+ callback(new MultipleErrors(`${operationId} failed ${attempt + 1} times.`, errors));
252
252
  }
253
253
  return;
254
254
  }
@@ -280,7 +280,7 @@ export class Base extends EventEmitter {
280
280
  if (!this[kApis].length) {
281
281
  this[kListApis]((error, apis) => {
282
282
  if (error) {
283
- callback(error, undefined);
283
+ callback(error);
284
284
  return;
285
285
  }
286
286
  this[kApis] = apis;
@@ -290,7 +290,7 @@ export class Base extends EventEmitter {
290
290
  }
291
291
  const api = this[kApis].find(api => api.name === name);
292
292
  if (!api) {
293
- callback(new UnsupportedApiError(`Unsupported API ${name}.`), undefined);
293
+ callback(new UnsupportedApiError(`Unsupported API ${name}.`));
294
294
  return;
295
295
  }
296
296
  const { minVersion, maxVersion } = api;
@@ -303,7 +303,7 @@ export class Base extends EventEmitter {
303
303
  return;
304
304
  }
305
305
  }
306
- callback(new UnsupportedApiError(`No usable implementation found for API ${name}.`, { minVersion, maxVersion }), undefined);
306
+ callback(new UnsupportedApiError(`No usable implementation found for API ${name}.`, { minVersion, maxVersion }));
307
307
  }
308
308
  [kGetConnection](broker, callback) {
309
309
  this[kConnections].get(broker, callback);
@@ -339,12 +339,13 @@ export class Base extends EventEmitter {
339
339
  #performMetadata(options, callback) {
340
340
  const expiralDate = Date.now() - (options.metadataMaxAge ?? this[kOptions].metadataMaxAge);
341
341
  let topicsToFetch = [];
342
+ const topics = options.topics ?? [];
342
343
  // Determine which topics we need to fetch
343
344
  if (!this.#metadata || options.forceUpdate) {
344
- topicsToFetch = options.topics;
345
+ topicsToFetch = topics;
345
346
  }
346
347
  else {
347
- for (const topic of options.topics) {
348
+ for (const topic of topics) {
348
349
  const existingTopic = this.#metadata.topics.get(topic);
349
350
  if (!existingTopic || existingTopic.lastUpdate < expiralDate) {
350
351
  topicsToFetch.push(topic);
@@ -355,23 +356,23 @@ export class Base extends EventEmitter {
355
356
  if (this.#metadata && !topicsToFetch.length && !options.forceUpdate) {
356
357
  callback(null, {
357
358
  ...this.#metadata,
358
- topics: new Map(options.topics.map(topic => [topic, this.#metadata.topics.get(topic)]))
359
+ topics: new Map(topics.map(topic => [topic, this.#metadata.topics.get(topic)]))
359
360
  });
360
361
  return;
361
362
  }
362
363
  const autocreateTopics = options.autocreateTopics ?? this[kOptions].autocreateTopics;
363
364
  this[kPerformDeduplicated](
364
365
  // Unique key to avoid mixing callbacks
365
- `metadata-${options.topics.sort().join(',')}-${autocreateTopics}-${options.forceUpdate}`, deduplicateCallback => {
366
+ `metadata-${topics.sort().join(',')}-${autocreateTopics}-${options.forceUpdate}`, deduplicateCallback => {
366
367
  this[kPerformWithRetry]('metadata', retryCallback => {
367
368
  this[kGetBootstrapConnection]((error, connection) => {
368
369
  if (error) {
369
- retryCallback(error, undefined);
370
+ retryCallback(error);
370
371
  return;
371
372
  }
372
373
  this[kGetApi]('Metadata', (error, api) => {
373
374
  if (error) {
374
- retryCallback(error, undefined);
375
+ retryCallback(error);
375
376
  return;
376
377
  }
377
378
  api(connection, topicsToFetch, autocreateTopics, true, retryCallback);
@@ -383,9 +384,9 @@ export class Base extends EventEmitter {
383
384
  // Stale metadata, we need to fetch everything again
384
385
  if (hasStaleMetadata) {
385
386
  this.clearMetadata();
386
- topicsToFetch = options.topics;
387
+ topicsToFetch = topics;
387
388
  }
388
- deduplicateCallback(error, undefined);
389
+ deduplicateCallback(error);
389
390
  return;
390
391
  }
391
392
  const lastUpdate = Date.now();
@@ -404,8 +405,8 @@ export class Base extends EventEmitter {
404
405
  const brokers = new Map();
405
406
  // This should never change, but we act defensively here
406
407
  for (const broker of metadata.brokers) {
407
- const { host, port } = broker;
408
- brokers.set(broker.nodeId, { host, port });
408
+ const { host, port, rack } = broker;
409
+ brokers.set(broker.nodeId, { host, port, rack });
409
410
  }
410
411
  this.#metadata.brokers = brokers;
411
412
  // Update all the topics in the cache
@@ -419,7 +420,9 @@ export class Base extends EventEmitter {
419
420
  partitions[rawPartition.partitionIndex] = {
420
421
  leader: rawPartition.leaderId,
421
422
  leaderEpoch: rawPartition.leaderEpoch,
422
- replicas: rawPartition.replicaNodes
423
+ replicas: rawPartition.replicaNodes,
424
+ isr: rawPartition.isrNodes,
425
+ offlineReplicas: rawPartition.offlineReplicas
423
426
  };
424
427
  }
425
428
  this.#metadata.topics.set(name, { id, partitions, partitionsCount: rawPartitions.length, lastUpdate });
@@ -427,7 +430,7 @@ export class Base extends EventEmitter {
427
430
  // Now build the object to return
428
431
  const updatedMetadata = {
429
432
  ...this.#metadata,
430
- topics: new Map(options.topics.map(topic => [topic, this.#metadata.topics.get(topic)]))
433
+ topics: new Map(topics.map(topic => [topic, this.#metadata.topics.get(topic)]))
431
434
  };
432
435
  this.emitWithDebug('client', 'metadata', updatedMetadata);
433
436
  deduplicateCallback(null, updatedMetadata);
@@ -92,7 +92,7 @@ export declare const baseOptionsSchema: {
92
92
  properties: {
93
93
  mechanism: {
94
94
  type: string;
95
- enum: import("../../apis/enumerations.ts").SASLMechanismValue[];
95
+ enum: ("PLAIN" | "SCRAM-SHA-256" | "SCRAM-SHA-512" | "OAUTHBEARER" | "GSSAPI")[];
96
96
  };
97
97
  username: {
98
98
  oneOf: ({
@@ -185,14 +185,11 @@ export declare const metadataOptionsSchema: {
185
185
  minimum: number;
186
186
  };
187
187
  };
188
- required: string[];
189
188
  additionalProperties: boolean;
190
189
  };
191
190
  export declare const baseOptionsValidator: import("ajv").ValidateFunction<{
192
191
  [x: string]: {};
193
192
  }>;
194
- export declare const metadataOptionsValidator: import("ajv").ValidateFunction<{
195
- [x: string]: {};
196
- }>;
193
+ export declare const metadataOptionsValidator: import("ajv").ValidateFunction<unknown>;
197
194
  export declare const defaultPort = 9092;
198
195
  export declare const defaultBaseOptions: Partial<BaseOptions>;
@@ -66,7 +66,6 @@ export const metadataOptionsSchema = {
66
66
  forceUpdate: { type: 'boolean' },
67
67
  metadataMaxAge: { type: 'number', minimum: 0 }
68
68
  },
69
- required: ['topics'],
70
69
  additionalProperties: false
71
70
  };
72
71
  export const baseOptionsValidator = ajv.compile(baseOptionsSchema);
@@ -1,4 +1,5 @@
1
1
  import { type Broker, type ConnectionOptions } from '../../network/connection.ts';
2
+ import { type NullableString } from '../../protocol/definitions.ts';
2
3
  import { type Metrics } from '../metrics.ts';
3
4
  export interface TopicWithPartitionAndOffset {
4
5
  topic: string;
@@ -9,6 +10,8 @@ export interface ClusterPartitionMetadata {
9
10
  leader: number;
10
11
  leaderEpoch: number;
11
12
  replicas: number[];
13
+ isr: number[];
14
+ offlineReplicas: number[];
12
15
  }
13
16
  export interface ClusterTopicMetadata {
14
17
  id: string;
@@ -16,9 +19,12 @@ export interface ClusterTopicMetadata {
16
19
  partitionsCount: number;
17
20
  lastUpdate: number;
18
21
  }
22
+ export interface BrokerWithRack extends Broker {
23
+ rack: NullableString;
24
+ }
19
25
  export interface ClusterMetadata {
20
26
  id: string;
21
- brokers: Map<number, Broker>;
27
+ brokers: Map<number, BrokerWithRack>;
22
28
  controllerId: number;
23
29
  topics: Map<string, ClusterTopicMetadata>;
24
30
  lastUpdate: number;
@@ -35,7 +41,7 @@ export interface BaseOptions extends ConnectionOptions {
35
41
  metrics?: Metrics;
36
42
  }
37
43
  export interface MetadataOptions {
38
- topics: string[];
44
+ topics?: string[];
39
45
  autocreateTopics?: boolean;
40
46
  forceUpdate?: boolean;
41
47
  metadataMaxAge?: number;
@@ -4,7 +4,7 @@ import { type ConnectionPool } from '../../network/connection-pool.ts';
4
4
  import { Base, kFetchConnections } from '../base/base.ts';
5
5
  import { MessagesStream } from './messages-stream.ts';
6
6
  import { TopicsMap } from './topics-map.ts';
7
- import { type CommitOptions, type ConsumeOptions, type ConsumerOptions, type FetchOptions, type GetLagOptions, type GroupAssignment, type GroupOptions, type ListCommitsOptions, type ListOffsetsOptions, type Offsets, type OffsetsWithTimestamps } from './types.ts';
7
+ import { type CommitOptions, type ConsumeOptions, type ConsumerGroupJoinPayload, type ConsumerGroupLeavePayload, type ConsumerGroupRebalancePayload, type ConsumerHeartbeatErrorPayload, type ConsumerHeartbeatPayload, type ConsumerOptions, type FetchOptions, type GetLagOptions, type GroupAssignment, type GroupOptions, type ListCommitsOptions, type ListOffsetsOptions, type Offsets, type OffsetsWithTimestamps } from './types.ts';
8
8
  export declare class Consumer<Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer> extends Base<ConsumerOptions<Key, Value, HeaderKey, HeaderValue>> {
9
9
  #private;
10
10
  groupId: string;
@@ -16,6 +16,62 @@ export declare class Consumer<Key = Buffer, Value = Buffer, HeaderKey = Buffer,
16
16
  constructor(options: ConsumerOptions<Key, Value, HeaderKey, HeaderValue>);
17
17
  get streamsCount(): number;
18
18
  get lastHeartbeat(): Date | null;
19
+ get coordinatorId(): number | null;
20
+ addListener(event: 'consumer:group:join', listener: (payload: ConsumerGroupJoinPayload) => void): this;
21
+ addListener(event: 'consumer:group:leave', listener: (payload: ConsumerGroupLeavePayload) => void): this;
22
+ addListener(event: 'consumer:group:rejoin', listener: () => void): this;
23
+ addListener(event: 'consumer:group:rebalance', listener: (payload: ConsumerGroupRebalancePayload) => void): this;
24
+ addListener(event: 'consumer:heartbeat:start', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
25
+ addListener(event: 'consumer:heartbeat:cancel', listener: (payload: ConsumerHeartbeatPayload) => void): this;
26
+ addListener(event: 'consumer:heartbeat:end', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
27
+ addListener(event: 'consumer:heartbeat:error', listener: (payload: ConsumerHeartbeatErrorPayload) => void): this;
28
+ addListener(event: 'consumer:lag', listener: (lag: Offsets) => void): this;
29
+ addListener(event: 'consumer:lag:error', listener: (error: Error) => void): this;
30
+ addListener(event: 'error', listener: (error: Error) => void): this;
31
+ on(event: 'consumer:group:join', listener: (payload: ConsumerGroupJoinPayload) => void): this;
32
+ on(event: 'consumer:group:leave', listener: (payload: ConsumerGroupLeavePayload) => void): this;
33
+ on(event: 'consumer:group:rejoin', listener: () => void): this;
34
+ on(event: 'consumer:group:rebalance', listener: (payload: ConsumerGroupRebalancePayload) => void): this;
35
+ on(event: 'consumer:heartbeat:start', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
36
+ on(event: 'consumer:heartbeat:cancel', listener: (payload: ConsumerHeartbeatPayload) => void): this;
37
+ on(event: 'consumer:heartbeat:end', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
38
+ on(event: 'consumer:heartbeat:error', listener: (payload: ConsumerHeartbeatErrorPayload) => void): this;
39
+ on(event: 'consumer:lag', listener: (lag: Offsets) => void): this;
40
+ on(event: 'consumer:lag:error', listener: (error: Error) => void): this;
41
+ on(event: 'error', listener: (error: Error) => void): this;
42
+ once(event: 'consumer:group:join', listener: (payload: ConsumerGroupJoinPayload) => void): this;
43
+ once(event: 'consumer:group:leave', listener: (payload: ConsumerGroupLeavePayload) => void): this;
44
+ once(event: 'consumer:group:rejoin', listener: () => void): this;
45
+ once(event: 'consumer:group:rebalance', listener: (payload: ConsumerGroupRebalancePayload) => void): this;
46
+ once(event: 'consumer:heartbeat:start', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
47
+ once(event: 'consumer:heartbeat:cancel', listener: (payload: ConsumerHeartbeatPayload) => void): this;
48
+ once(event: 'consumer:heartbeat:end', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
49
+ once(event: 'consumer:heartbeat:error', listener: (payload: ConsumerHeartbeatErrorPayload) => void): this;
50
+ once(event: 'consumer:lag', listener: (lag: Offsets) => void): this;
51
+ once(event: 'consumer:lag:error', listener: (error: Error) => void): this;
52
+ once(event: 'error', listener: (error: Error) => void): this;
53
+ prependListener(event: 'consumer:group:join', listener: (payload: ConsumerGroupJoinPayload) => void): this;
54
+ prependListener(event: 'consumer:group:leave', listener: (payload: ConsumerGroupLeavePayload) => void): this;
55
+ prependListener(event: 'consumer:group:rejoin', listener: () => void): this;
56
+ prependListener(event: 'consumer:group:rebalance', listener: (payload: ConsumerGroupRebalancePayload) => void): this;
57
+ prependListener(event: 'consumer:heartbeat:start', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
58
+ prependListener(event: 'consumer:heartbeat:cancel', listener: (payload: ConsumerHeartbeatPayload) => void): this;
59
+ prependListener(event: 'consumer:heartbeat:end', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
60
+ prependListener(event: 'consumer:heartbeat:error', listener: (payload: ConsumerHeartbeatErrorPayload) => void): this;
61
+ prependListener(event: 'consumer:lag', listener: (lag: Offsets) => void): this;
62
+ prependListener(event: 'consumer:lag:error', listener: (error: Error) => void): this;
63
+ prependListener(event: 'error', listener: (error: Error) => void): this;
64
+ prependOnceListener(event: 'consumer:group:join', listener: (payload: ConsumerGroupJoinPayload) => void): this;
65
+ prependOnceListener(event: 'consumer:group:leave', listener: (payload: ConsumerGroupLeavePayload) => void): this;
66
+ prependOnceListener(event: 'consumer:group:rejoin', listener: () => void): this;
67
+ prependOnceListener(event: 'consumer:group:rebalance', listener: (payload: ConsumerGroupRebalancePayload) => void): this;
68
+ prependOnceListener(event: 'consumer:heartbeat:start', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
69
+ prependOnceListener(event: 'consumer:heartbeat:cancel', listener: (payload: ConsumerHeartbeatPayload) => void): this;
70
+ prependOnceListener(event: 'consumer:heartbeat:end', listener: (payload?: ConsumerHeartbeatPayload) => void): this;
71
+ prependOnceListener(event: 'consumer:heartbeat:error', listener: (payload: ConsumerHeartbeatErrorPayload) => void): this;
72
+ prependOnceListener(event: 'consumer:lag', listener: (lag: Offsets) => void): this;
73
+ prependOnceListener(event: 'consumer:lag:error', listener: (error: Error) => void): this;
74
+ prependOnceListener(event: 'error', listener: (error: Error) => void): this;
19
75
  close(force: boolean | CallbackWithPromise<void>, callback?: CallbackWithPromise<void>): void;
20
76
  close(force?: boolean): Promise<void>;
21
77
  isActive(): boolean;
@@ -38,7 +94,7 @@ export declare class Consumer<Key = Buffer, Value = Buffer, HeaderKey = Buffer,
38
94
  findGroupCoordinator(callback: CallbackWithPromise<number>): void;
39
95
  findGroupCoordinator(): Promise<number>;
40
96
  joinGroup(options: GroupOptions, callback: CallbackWithPromise<string>): void;
41
- joinGroup(options: GroupOptions): Promise<string>;
97
+ joinGroup(options?: GroupOptions): Promise<string>;
42
98
  leaveGroup(force?: boolean | CallbackWithPromise<void>, callback?: CallbackWithPromise<void>): void;
43
99
  leaveGroup(force?: boolean): Promise<void>;
44
100
  }