@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.
- package/dist/apis/admin/alter-client-quotas-v1.d.ts +4 -4
- package/dist/apis/admin/alter-configs-v2.d.ts +3 -2
- package/dist/apis/admin/alter-partition-reassignments-v0.js +1 -1
- package/dist/apis/admin/create-acls-v3.d.ts +3 -11
- package/dist/apis/admin/create-partitions-v3.d.ts +2 -2
- package/dist/apis/admin/delete-acls-v3.d.ts +4 -19
- package/dist/apis/admin/delete-acls-v3.js +6 -6
- package/dist/apis/admin/describe-acls-v3.d.ts +5 -13
- package/dist/apis/admin/describe-acls-v3.js +9 -9
- package/dist/apis/admin/describe-client-quotas-v0.d.ts +5 -5
- package/dist/apis/admin/describe-configs-v4.d.ts +7 -6
- package/dist/apis/admin/describe-configs-v4.js +1 -1
- package/dist/apis/admin/incremental-alter-configs-v1.d.ts +12 -5
- package/dist/apis/admin/incremental-alter-configs-v1.js +3 -1
- package/dist/apis/admin/list-groups-v4.d.ts +2 -2
- package/dist/apis/admin/list-groups-v5.d.ts +2 -2
- package/dist/apis/admin/offset-delete-v0.js +3 -3
- package/dist/apis/callbacks.d.ts +3 -1
- package/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
- package/dist/apis/consumer/offset-fetch-v8.d.ts +2 -2
- package/dist/apis/consumer/offset-fetch-v9.d.ts +2 -2
- package/dist/apis/definitions.d.ts +2 -2
- package/dist/apis/enumerations.d.ts +134 -42
- package/dist/apis/enumerations.js +42 -6
- package/dist/apis/index.d.ts +1 -0
- package/dist/apis/index.js +1 -0
- package/dist/apis/producer/add-offsets-to-txn-v3.d.ts +10 -0
- package/dist/apis/producer/add-offsets-to-txn-v3.js +34 -0
- package/dist/apis/producer/add-partitions-to-txn-v3.d.ts +34 -0
- package/dist/apis/producer/add-partitions-to-txn-v3.js +67 -0
- package/dist/apis/producer/add-partitions-to-txn-v4.d.ts +34 -0
- package/dist/apis/producer/add-partitions-to-txn-v4.js +79 -0
- package/dist/apis/producer/end-txn-v3.d.ts +10 -0
- package/dist/apis/producer/end-txn-v3.js +34 -0
- package/dist/apis/producer/index.d.ts +5 -0
- package/dist/apis/producer/index.js +5 -0
- package/dist/apis/producer/txn-offset-commit-v3.d.ts +29 -0
- package/dist/apis/producer/txn-offset-commit-v3.js +74 -0
- package/dist/apis/types.d.ts +16 -0
- package/dist/apis/types.js +1 -0
- package/dist/clients/admin/admin.d.ts +31 -1
- package/dist/clients/admin/admin.js +732 -50
- package/dist/clients/admin/options.d.ts +577 -0
- package/dist/clients/admin/options.js +359 -2
- package/dist/clients/admin/types.d.ts +105 -3
- package/dist/clients/base/base.js +29 -26
- package/dist/clients/base/options.d.ts +2 -5
- package/dist/clients/base/options.js +0 -1
- package/dist/clients/base/types.d.ts +8 -2
- package/dist/clients/consumer/consumer.d.ts +58 -2
- package/dist/clients/consumer/consumer.js +116 -47
- package/dist/clients/consumer/messages-stream.d.ts +1 -0
- package/dist/clients/consumer/messages-stream.js +48 -17
- package/dist/clients/consumer/options.d.ts +6 -6
- package/dist/clients/consumer/options.js +3 -3
- package/dist/clients/consumer/types.d.ts +26 -3
- package/dist/clients/index.d.ts +1 -1
- package/dist/clients/index.js +1 -1
- package/dist/clients/producer/options.d.ts +12 -3
- package/dist/clients/producer/options.js +1 -0
- package/dist/clients/producer/producer.d.ts +19 -2
- package/dist/clients/producer/producer.js +335 -37
- package/dist/clients/producer/transaction.d.ts +30 -0
- package/dist/clients/producer/transaction.js +172 -0
- package/dist/clients/producer/types.d.ts +2 -0
- package/dist/diagnostic.d.ts +5 -0
- package/dist/diagnostic.js +5 -0
- package/dist/errors.js +1 -0
- package/dist/network/connection-pool.js +4 -4
- package/dist/network/connection.js +3 -2
- package/dist/protocol/records.d.ts +12 -0
- package/dist/protocol/records.js +6 -4
- package/dist/protocol/sasl/oauth-bearer.js +4 -4
- package/dist/protocol/sasl/plain.js +2 -2
- package/dist/protocol/sasl/scram-sha.js +8 -8
- package/dist/protocol/sasl/utils.js +5 -5
- package/dist/symbols.d.ts +8 -0
- package/dist/symbols.js +8 -0
- package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +4 -4
- package/dist/typescript-4/dist/apis/admin/alter-configs-v2.d.ts +3 -2
- package/dist/typescript-4/dist/apis/admin/create-acls-v3.d.ts +3 -11
- package/dist/typescript-4/dist/apis/admin/create-partitions-v3.d.ts +2 -2
- package/dist/typescript-4/dist/apis/admin/delete-acls-v3.d.ts +4 -19
- package/dist/typescript-4/dist/apis/admin/describe-acls-v3.d.ts +5 -13
- package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +5 -5
- package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +7 -6
- package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v1.d.ts +13 -6
- package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +2 -2
- package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +2 -2
- package/dist/typescript-4/dist/apis/callbacks.d.ts +3 -1
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v8.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v9.d.ts +2 -2
- package/dist/typescript-4/dist/apis/definitions.d.ts +2 -2
- package/dist/typescript-4/dist/apis/enumerations.d.ts +134 -42
- package/dist/typescript-4/dist/apis/index.d.ts +1 -0
- package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v3.d.ts +10 -0
- package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v3.d.ts +34 -0
- package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v4.d.ts +34 -0
- package/dist/typescript-4/dist/apis/producer/end-txn-v3.d.ts +10 -0
- package/dist/typescript-4/dist/apis/producer/index.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v3.d.ts +29 -0
- package/dist/typescript-4/dist/apis/types.d.ts +14 -0
- package/dist/typescript-4/dist/clients/admin/admin.d.ts +31 -1
- package/dist/typescript-4/dist/clients/admin/options.d.ts +577 -0
- package/dist/typescript-4/dist/clients/admin/types.d.ts +105 -3
- package/dist/typescript-4/dist/clients/base/options.d.ts +2 -5
- package/dist/typescript-4/dist/clients/base/types.d.ts +8 -2
- package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +58 -2
- package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +1 -0
- package/dist/typescript-4/dist/clients/consumer/options.d.ts +6 -6
- package/dist/typescript-4/dist/clients/consumer/types.d.ts +27 -4
- package/dist/typescript-4/dist/clients/index.d.ts +1 -1
- package/dist/typescript-4/dist/clients/producer/options.d.ts +12 -3
- package/dist/typescript-4/dist/clients/producer/producer.d.ts +19 -2
- package/dist/typescript-4/dist/clients/producer/transaction.d.ts +30 -0
- package/dist/typescript-4/dist/clients/producer/types.d.ts +2 -0
- package/dist/typescript-4/dist/diagnostic.d.ts +5 -0
- package/dist/typescript-4/dist/protocol/records.d.ts +12 -0
- package/dist/typescript-4/dist/symbols.d.ts +9 -1
- package/dist/version.js +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
|
248
|
+
callback(error);
|
|
249
249
|
return;
|
|
250
250
|
}
|
|
251
|
-
callback(new MultipleErrors(`${operationId} failed ${attempt + 1} times.`, errors)
|
|
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
|
|
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}.`)
|
|
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 })
|
|
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 =
|
|
345
|
+
topicsToFetch = topics;
|
|
345
346
|
}
|
|
346
347
|
else {
|
|
347
|
-
for (const topic of
|
|
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(
|
|
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-${
|
|
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
|
|
370
|
+
retryCallback(error);
|
|
370
371
|
return;
|
|
371
372
|
}
|
|
372
373
|
this[kGetApi]('Metadata', (error, api) => {
|
|
373
374
|
if (error) {
|
|
374
|
-
retryCallback(error
|
|
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 =
|
|
387
|
+
topicsToFetch = topics;
|
|
387
388
|
}
|
|
388
|
-
deduplicateCallback(error
|
|
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(
|
|
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:
|
|
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,
|
|
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
|
|
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
|
|
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
|
}
|