kafka-ts 1.3.1-beta.3 → 1.3.1-beta.5
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/api/join-group.js +42 -35
- package/dist/api/sync-group.js +26 -19
- package/dist/broker.d.ts +1 -1
- package/dist/broker.js +2 -13
- package/dist/connection.js +1 -0
- package/package.json +1 -1
package/dist/api/join-group.js
CHANGED
|
@@ -5,60 +5,67 @@ const api_1 = require("../utils/api");
|
|
|
5
5
|
const encoder_1 = require("../utils/encoder");
|
|
6
6
|
const error_1 = require("../utils/error");
|
|
7
7
|
/*
|
|
8
|
-
JoinGroup Request (Version:
|
|
9
|
-
group_id =>
|
|
8
|
+
JoinGroup Request (Version: 6) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] _tagged_fields
|
|
9
|
+
group_id => COMPACT_STRING
|
|
10
10
|
session_timeout_ms => INT32
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
rebalance_timeout_ms => INT32
|
|
12
|
+
member_id => COMPACT_STRING
|
|
13
|
+
group_instance_id => COMPACT_NULLABLE_STRING
|
|
14
|
+
protocol_type => COMPACT_STRING
|
|
15
|
+
protocols => name metadata _tagged_fields
|
|
16
|
+
name => COMPACT_STRING
|
|
17
|
+
metadata => COMPACT_BYTES
|
|
16
18
|
|
|
17
|
-
JoinGroup Response (Version:
|
|
19
|
+
JoinGroup Response (Version: 6) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] _tagged_fields
|
|
20
|
+
throttle_time_ms => INT32
|
|
18
21
|
error_code => INT16
|
|
19
22
|
generation_id => INT32
|
|
20
|
-
protocol_name =>
|
|
21
|
-
leader =>
|
|
22
|
-
member_id =>
|
|
23
|
-
members => member_id metadata
|
|
24
|
-
member_id =>
|
|
25
|
-
|
|
23
|
+
protocol_name => COMPACT_STRING
|
|
24
|
+
leader => COMPACT_STRING
|
|
25
|
+
member_id => COMPACT_STRING
|
|
26
|
+
members => member_id group_instance_id metadata _tagged_fields
|
|
27
|
+
member_id => COMPACT_STRING
|
|
28
|
+
group_instance_id => COMPACT_NULLABLE_STRING
|
|
29
|
+
metadata => COMPACT_BYTES
|
|
26
30
|
*/
|
|
27
|
-
const
|
|
31
|
+
const JOIN_GROUP_V6 = (0, api_1.createApi)({
|
|
28
32
|
apiKey: 11,
|
|
29
|
-
apiVersion:
|
|
30
|
-
requestHeaderVersion:
|
|
31
|
-
responseHeaderVersion:
|
|
33
|
+
apiVersion: 6,
|
|
34
|
+
requestHeaderVersion: 2,
|
|
35
|
+
responseHeaderVersion: 1,
|
|
32
36
|
request: (encoder, data) => encoder
|
|
33
|
-
.
|
|
37
|
+
.writeCompactString(data.groupId)
|
|
34
38
|
.writeInt32(data.sessionTimeoutMs)
|
|
35
|
-
.
|
|
36
|
-
.
|
|
37
|
-
.
|
|
39
|
+
.writeInt32(data.rebalanceTimeoutMs)
|
|
40
|
+
.writeCompactString(data.memberId)
|
|
41
|
+
.writeCompactString(data.groupInstanceId)
|
|
42
|
+
.writeCompactString(data.protocolType)
|
|
43
|
+
.writeCompactArray(data.protocols, (encoder, protocol) => {
|
|
38
44
|
const metadata = new encoder_1.Encoder()
|
|
39
45
|
.writeInt16(protocol.metadata.version)
|
|
40
46
|
.writeArray(protocol.metadata.topics, (encoder, topic) => encoder.writeString(topic))
|
|
41
47
|
.writeBytes(Buffer.alloc(0))
|
|
42
48
|
.value();
|
|
43
|
-
return encoder.
|
|
44
|
-
})
|
|
49
|
+
return encoder.writeCompactString(protocol.name).writeCompactBytes(metadata).writeTagBuffer();
|
|
50
|
+
})
|
|
51
|
+
.writeTagBuffer(),
|
|
45
52
|
response: (decoder) => {
|
|
46
53
|
const result = {
|
|
47
|
-
throttleTimeMs:
|
|
54
|
+
throttleTimeMs: decoder.readInt32(),
|
|
48
55
|
errorCode: decoder.readInt16(),
|
|
49
56
|
generationId: decoder.readInt32(),
|
|
50
57
|
protocolType: null,
|
|
51
|
-
protocolName: decoder.
|
|
52
|
-
leader: decoder.
|
|
58
|
+
protocolName: decoder.readCompactString(),
|
|
59
|
+
leader: decoder.readCompactString(),
|
|
53
60
|
skipAssignment: false,
|
|
54
|
-
memberId: decoder.
|
|
55
|
-
members: decoder.
|
|
56
|
-
memberId: decoder.
|
|
57
|
-
groupInstanceId:
|
|
58
|
-
metadata: decoder.
|
|
59
|
-
tags:
|
|
61
|
+
memberId: decoder.readCompactString(),
|
|
62
|
+
members: decoder.readCompactArray((decoder) => ({
|
|
63
|
+
memberId: decoder.readCompactString(),
|
|
64
|
+
groupInstanceId: decoder.readCompactString(),
|
|
65
|
+
metadata: decoder.readCompactBytes(),
|
|
66
|
+
tags: decoder.readTagBuffer(),
|
|
60
67
|
})),
|
|
61
|
-
tags:
|
|
68
|
+
tags: decoder.readTagBuffer(),
|
|
62
69
|
};
|
|
63
70
|
if (result.errorCode)
|
|
64
71
|
throw new error_1.KafkaTSApiError(result.errorCode, null, result);
|
|
@@ -95,7 +102,7 @@ JoinGroup Response (Version: 9) => throttle_time_ms error_code generation_id pro
|
|
|
95
102
|
exports.JOIN_GROUP = (0, api_1.createApi)({
|
|
96
103
|
apiKey: 11,
|
|
97
104
|
apiVersion: 9,
|
|
98
|
-
fallback:
|
|
105
|
+
fallback: JOIN_GROUP_V6,
|
|
99
106
|
requestHeaderVersion: 2,
|
|
100
107
|
responseHeaderVersion: 1,
|
|
101
108
|
request: (encoder, data) => encoder
|
package/dist/api/sync-group.js
CHANGED
|
@@ -6,36 +6,43 @@ const decoder_1 = require("../utils/decoder");
|
|
|
6
6
|
const encoder_1 = require("../utils/encoder");
|
|
7
7
|
const error_1 = require("../utils/error");
|
|
8
8
|
/*
|
|
9
|
-
SyncGroup Request (Version:
|
|
10
|
-
group_id =>
|
|
9
|
+
SyncGroup Request (Version: 4) => group_id generation_id member_id group_instance_id [assignments] _tagged_fields
|
|
10
|
+
group_id => COMPACT_STRING
|
|
11
11
|
generation_id => INT32
|
|
12
|
-
member_id =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
member_id => COMPACT_STRING
|
|
13
|
+
group_instance_id => COMPACT_NULLABLE_STRING
|
|
14
|
+
assignments => member_id assignment _tagged_fields
|
|
15
|
+
member_id => COMPACT_STRING
|
|
16
|
+
assignment => COMPACT_BYTES
|
|
16
17
|
|
|
17
|
-
SyncGroup Response (Version:
|
|
18
|
+
SyncGroup Response (Version: 4) => throttle_time_ms error_code assignment _tagged_fields
|
|
19
|
+
throttle_time_ms => INT32
|
|
18
20
|
error_code => INT16
|
|
19
|
-
assignment =>
|
|
21
|
+
assignment => COMPACT_BYTES
|
|
20
22
|
*/
|
|
21
|
-
const
|
|
23
|
+
const SYNC_GROUP_V4 = (0, api_1.createApi)({
|
|
22
24
|
apiKey: 14,
|
|
23
|
-
apiVersion:
|
|
24
|
-
requestHeaderVersion:
|
|
25
|
-
responseHeaderVersion:
|
|
25
|
+
apiVersion: 4,
|
|
26
|
+
requestHeaderVersion: 2,
|
|
27
|
+
responseHeaderVersion: 1,
|
|
26
28
|
request: (encoder, data) => encoder
|
|
27
|
-
.
|
|
29
|
+
.writeCompactString(data.groupId)
|
|
28
30
|
.writeInt32(data.generationId)
|
|
29
|
-
.
|
|
30
|
-
.
|
|
31
|
+
.writeCompactString(data.memberId)
|
|
32
|
+
.writeCompactString(data.groupInstanceId)
|
|
33
|
+
.writeCompactArray(data.assignments, (encoder, assignment) => encoder
|
|
34
|
+
.writeCompactString(assignment.memberId)
|
|
35
|
+
.writeCompactBytes(encodeAssignment(assignment.assignment))
|
|
36
|
+
.writeTagBuffer())
|
|
37
|
+
.writeTagBuffer(),
|
|
31
38
|
response: (decoder) => {
|
|
32
39
|
const result = {
|
|
33
|
-
throttleTimeMs:
|
|
40
|
+
throttleTimeMs: decoder.readInt32(),
|
|
34
41
|
errorCode: decoder.readInt16(),
|
|
35
42
|
protocolType: null,
|
|
36
43
|
protocolName: null,
|
|
37
|
-
assignments: decodeAssignment(decoder.
|
|
38
|
-
tags:
|
|
44
|
+
assignments: decodeAssignment(decoder.readCompactBytes()),
|
|
45
|
+
tags: decoder.readTagBuffer(),
|
|
39
46
|
};
|
|
40
47
|
if (result.errorCode)
|
|
41
48
|
throw new error_1.KafkaTSApiError(result.errorCode, null, result);
|
|
@@ -64,7 +71,7 @@ SyncGroup Response (Version: 5) => throttle_time_ms error_code protocol_type pro
|
|
|
64
71
|
exports.SYNC_GROUP = (0, api_1.createApi)({
|
|
65
72
|
apiKey: 14,
|
|
66
73
|
apiVersion: 5,
|
|
67
|
-
fallback:
|
|
74
|
+
fallback: SYNC_GROUP_V4,
|
|
68
75
|
requestHeaderVersion: 2,
|
|
69
76
|
responseHeaderVersion: 1,
|
|
70
77
|
request: (encoder, data) => encoder
|
package/dist/broker.d.ts
CHANGED
package/dist/broker.js
CHANGED
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Broker = void 0;
|
|
4
4
|
const api_1 = require("./api");
|
|
5
5
|
const connection_1 = require("./connection");
|
|
6
|
-
const logger_1 = require("./utils/logger");
|
|
7
6
|
class Broker {
|
|
8
7
|
options;
|
|
9
8
|
connection;
|
|
@@ -21,7 +20,7 @@ class Broker {
|
|
|
21
20
|
async connect() {
|
|
22
21
|
if (!this.connection.isConnected()) {
|
|
23
22
|
await this.connection.connect();
|
|
24
|
-
await this.
|
|
23
|
+
await this.fetchApiVersions();
|
|
25
24
|
await this.saslHandshake();
|
|
26
25
|
await this.saslAuthenticate();
|
|
27
26
|
}
|
|
@@ -30,18 +29,8 @@ class Broker {
|
|
|
30
29
|
async disconnect() {
|
|
31
30
|
await this.connection.disconnect();
|
|
32
31
|
}
|
|
33
|
-
async
|
|
32
|
+
async fetchApiVersions() {
|
|
34
33
|
const { versions } = await this.sendRequest(api_1.API.API_VERSIONS, {});
|
|
35
|
-
const apiByKey = Object.fromEntries(Object.values(api_1.API).map((api) => [api.apiKey, api]));
|
|
36
|
-
versions.forEach(({ apiKey, minVersion, maxVersion }) => {
|
|
37
|
-
const api = apiByKey[apiKey];
|
|
38
|
-
if (!api) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
if (api.apiVersion < minVersion || api.apiVersion > maxVersion) {
|
|
42
|
-
logger_1.log.warn(`Broker does not support API ${(0, api_1.getApiName)(api)} version ${api.apiVersion} (minVersion=${minVersion}, maxVersion=${maxVersion})`);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
34
|
const versionsByApiKey = Object.fromEntries(versions.map(({ apiKey, minVersion, maxVersion }) => [apiKey, { minVersion, maxVersion }]));
|
|
46
35
|
this.connection.setVersions(versionsByApiKey);
|
|
47
36
|
}
|
package/dist/connection.js
CHANGED
|
@@ -123,6 +123,7 @@ class Connection {
|
|
|
123
123
|
}
|
|
124
124
|
throw new Error(`Broker does not support API ${(0, api_1.getApiName)(api)} version ${api.apiVersion} (minVersion=${versionInfo.minVersion}, maxVersion=${versionInfo.maxVersion})`);
|
|
125
125
|
}
|
|
126
|
+
logger_1.log.debug(`Using API ${(0, api_1.getApiName)(api)} version ${api.apiVersion}`);
|
|
126
127
|
return api;
|
|
127
128
|
}
|
|
128
129
|
validateVersionCached = (0, cached_1.cached)(this.validateVersion.bind(this), (api) => api.apiKey.toString());
|