kafka-ts 1.3.1-beta.4 → 1.3.1-beta.6

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.
@@ -8,44 +8,45 @@ exports.KEY_TYPE = {
8
8
  TRANSACTION: 1,
9
9
  };
10
10
  /*
11
- FindCoordinator Request (Version: 1) => key key_type
12
- key => STRING
11
+ FindCoordinator Request (Version: 3) => key key_type _tagged_fields
12
+ key => COMPACT_STRING
13
13
  key_type => INT8
14
14
 
15
- FindCoordinator Response (Version: 1) => throttle_time_ms error_code error_message node_id host port
15
+ FindCoordinator Response (Version: 3) => throttle_time_ms error_code error_message node_id host port _tagged_fields
16
16
  throttle_time_ms => INT32
17
17
  error_code => INT16
18
- error_message => NULLABLE_STRING
18
+ error_message => COMPACT_NULLABLE_STRING
19
19
  node_id => INT32
20
- host => STRING
20
+ host => COMPACT_STRING
21
21
  port => INT32
22
22
  */
23
- const FIND_COORDINATOR_V1 = (0, api_1.createApi)({
23
+ const FIND_COORDINATOR_V3 = (0, api_1.createApi)({
24
24
  apiKey: 10,
25
- apiVersion: 1,
26
- requestHeaderVersion: 1,
27
- responseHeaderVersion: 0,
28
- request: (encoder, data) => encoder.writeString(data.keys[0]).writeInt8(data.keyType),
25
+ apiVersion: 3,
26
+ requestHeaderVersion: 2,
27
+ responseHeaderVersion: 1,
28
+ request: (encoder, data) => encoder
29
+ .writeCompactString(data.keys[0])
30
+ .writeInt8(data.keyType)
31
+ .writeTagBuffer(),
29
32
  response: (decoder) => {
30
33
  const result = {
31
34
  throttleTimeMs: decoder.readInt32(),
32
- errorCode: decoder.readInt16(),
33
- errorMessage: decoder.readString(),
34
35
  coordinators: [
35
36
  {
36
- key: '', // Key not present in v1 response
37
+ key: '',
38
+ errorCode: decoder.readInt16(),
39
+ errorMessage: decoder.readCompactString(),
37
40
  nodeId: decoder.readInt32(),
38
- host: decoder.readString(),
41
+ host: decoder.readCompactString(),
39
42
  port: decoder.readInt32(),
40
- errorCode: 0,
41
- errorMessage: null,
42
43
  tags: {},
43
44
  },
44
45
  ],
45
- tags: {},
46
+ tags: decoder.readTagBuffer(),
46
47
  };
47
- if (result.errorCode)
48
- throw new error_1.KafkaTSApiError(result.errorCode, result.errorMessage, result);
48
+ if (result.coordinators[0].errorCode)
49
+ throw new error_1.KafkaTSApiError(result.coordinators[0].errorCode, result.coordinators[0].errorMessage, result);
49
50
  return result;
50
51
  },
51
52
  });
@@ -67,7 +68,7 @@ FindCoordinator Response (Version: 4) => throttle_time_ms [coordinators] _tagged
67
68
  exports.FIND_COORDINATOR = (0, api_1.createApi)({
68
69
  apiKey: 10,
69
70
  apiVersion: 4,
70
- fallback: FIND_COORDINATOR_V1,
71
+ fallback: FIND_COORDINATOR_V3,
71
72
  requestHeaderVersion: 2,
72
73
  responseHeaderVersion: 1,
73
74
  request: (encoder, data) => encoder
@@ -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: 0) => group_id session_timeout_ms member_id protocol_type [protocols]
9
- group_id => STRING
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
- member_id => STRING
12
- protocol_type => STRING
13
- protocols => name metadata
14
- name => STRING
15
- metadata => BYTES
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: 0) => error_code generation_id protocol_name leader member_id [members]
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 => STRING
21
- leader => STRING
22
- member_id => STRING
23
- members => member_id metadata
24
- member_id => STRING
25
- metadata => BYTES
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 JOIN_GROUP_V0 = (0, api_1.createApi)({
31
+ const JOIN_GROUP_V6 = (0, api_1.createApi)({
28
32
  apiKey: 11,
29
- apiVersion: 0,
30
- requestHeaderVersion: 1,
31
- responseHeaderVersion: 0,
33
+ apiVersion: 6,
34
+ requestHeaderVersion: 2,
35
+ responseHeaderVersion: 1,
32
36
  request: (encoder, data) => encoder
33
- .writeString(data.groupId)
37
+ .writeCompactString(data.groupId)
34
38
  .writeInt32(data.sessionTimeoutMs)
35
- .writeString(data.memberId)
36
- .writeString(data.protocolType)
37
- .writeArray(data.protocols, (encoder, protocol) => {
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.writeString(protocol.name).writeBytes(metadata);
44
- }),
49
+ return encoder.writeCompactString(protocol.name).writeCompactBytes(metadata).writeTagBuffer();
50
+ })
51
+ .writeTagBuffer(),
45
52
  response: (decoder) => {
46
53
  const result = {
47
- throttleTimeMs: 0,
54
+ throttleTimeMs: decoder.readInt32(),
48
55
  errorCode: decoder.readInt16(),
49
56
  generationId: decoder.readInt32(),
50
57
  protocolType: null,
51
- protocolName: decoder.readString(),
52
- leader: decoder.readString(),
58
+ protocolName: decoder.readCompactString(),
59
+ leader: decoder.readCompactString(),
53
60
  skipAssignment: false,
54
- memberId: decoder.readString(),
55
- members: decoder.readArray((decoder) => ({
56
- memberId: decoder.readString(),
57
- groupInstanceId: null,
58
- metadata: decoder.readBytes(),
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: JOIN_GROUP_V0,
105
+ fallback: JOIN_GROUP_V6,
99
106
  requestHeaderVersion: 2,
100
107
  responseHeaderVersion: 1,
101
108
  request: (encoder, data) => encoder
@@ -4,28 +4,50 @@ exports.LEAVE_GROUP = void 0;
4
4
  const api_1 = require("../utils/api");
5
5
  const error_1 = require("../utils/error");
6
6
  /*
7
- LeaveGroup Request (Version: 0) => group_id member_id
8
- group_id => STRING
9
- member_id => STRING
7
+ LeaveGroup Request (Version: 4) => group_id [members] _tagged_fields
8
+ group_id => COMPACT_STRING
9
+ members => member_id group_instance_id _tagged_fields
10
+ member_id => COMPACT_STRING
11
+ group_instance_id => COMPACT_NULLABLE_STRING
10
12
 
11
- LeaveGroup Response (Version: 0) => error_code
13
+ LeaveGroup Response (Version: 4) => throttle_time_ms error_code [members] _tagged_fields
14
+ throttle_time_ms => INT32
12
15
  error_code => INT16
16
+ members => member_id group_instance_id error_code _tagged_fields
17
+ member_id => COMPACT_STRING
18
+ group_instance_id => COMPACT_NULLABLE_STRING
19
+ error_code => INT16
13
20
  */
14
- const LEAVE_GROUP_V0 = (0, api_1.createApi)({
21
+ const LEAVE_GROUP_V4 = (0, api_1.createApi)({
15
22
  apiKey: 13,
16
- apiVersion: 0,
17
- requestHeaderVersion: 1,
18
- responseHeaderVersion: 0,
19
- request: (encoder, body) => encoder.writeString(body.groupId).writeString(body.members[0].memberId),
23
+ apiVersion: 4,
24
+ requestHeaderVersion: 2,
25
+ responseHeaderVersion: 1,
26
+ request: (encoder, body) => encoder
27
+ .writeCompactString(body.groupId)
28
+ .writeCompactArray(body.members, (encoder, member) => encoder
29
+ .writeCompactString(member.memberId)
30
+ .writeCompactString(member.groupInstanceId)
31
+ .writeTagBuffer())
32
+ .writeTagBuffer(),
20
33
  response: (decoder) => {
21
34
  const result = {
22
- throttleTimeMs: 0,
35
+ throttleTimeMs: decoder.readInt32(),
23
36
  errorCode: decoder.readInt16(),
24
- members: [],
25
- tags: {},
37
+ members: decoder.readCompactArray((decoder) => ({
38
+ memberId: decoder.readCompactString(),
39
+ groupInstanceId: decoder.readCompactString(),
40
+ errorCode: decoder.readInt16(),
41
+ tags: decoder.readTagBuffer(),
42
+ })),
43
+ tags: decoder.readTagBuffer(),
26
44
  };
27
45
  if (result.errorCode)
28
46
  throw new error_1.KafkaTSApiError(result.errorCode, null, result);
47
+ result.members.forEach((member) => {
48
+ if (member.errorCode)
49
+ throw new error_1.KafkaTSApiError(member.errorCode, null, result);
50
+ });
29
51
  return result;
30
52
  },
31
53
  });
@@ -48,7 +70,7 @@ LeaveGroup Response (Version: 5) => throttle_time_ms error_code [members] _tagge
48
70
  exports.LEAVE_GROUP = (0, api_1.createApi)({
49
71
  apiKey: 13,
50
72
  apiVersion: 5,
51
- fallback: LEAVE_GROUP_V0,
73
+ fallback: LEAVE_GROUP_V4,
52
74
  requestHeaderVersion: 2,
53
75
  responseHeaderVersion: 1,
54
76
  request: (encoder, body) => encoder
@@ -4,61 +4,71 @@ exports.OFFSET_FETCH = void 0;
4
4
  const api_1 = require("../utils/api");
5
5
  const error_1 = require("../utils/error");
6
6
  /*
7
- OffsetFetch Request (Version: 1) => group_id [topics]
8
- group_id => STRING
9
- topics => name [partition_indexes]
10
- name => STRING
7
+ OffsetFetch Request (Version: 6) => group_id [topics] _tagged_fields
8
+ group_id => COMPACT_STRING
9
+ topics => name [partition_indexes] _tagged_fields
10
+ name => COMPACT_STRING
11
11
  partition_indexes => INT32
12
12
 
13
- OffsetFetch Response (Version: 1) => [topics]
14
- topics => name [partitions]
15
- name => STRING
16
- partitions => partition_index committed_offset metadata error_code
13
+ OffsetFetch Response (Version: 6) => throttle_time_ms [topics] error_code _tagged_fields
14
+ throttle_time_ms => INT32
15
+ topics => name [partitions] _tagged_fields
16
+ name => COMPACT_STRING
17
+ partitions => partition_index committed_offset committed_leader_epoch metadata error_code _tagged_fields
17
18
  partition_index => INT32
18
19
  committed_offset => INT64
19
- metadata => NULLABLE_STRING
20
+ committed_leader_epoch => INT32
21
+ metadata => COMPACT_NULLABLE_STRING
20
22
  error_code => INT16
23
+ error_code => INT16
21
24
  */
22
- const OFFSET_FETCH_V1 = (0, api_1.createApi)({
25
+ const OFFSET_FETCH_V6 = (0, api_1.createApi)({
23
26
  apiKey: 9,
24
- apiVersion: 1,
25
- requestHeaderVersion: 1,
26
- responseHeaderVersion: 0,
27
- request: (encoder, data) => encoder
28
- .writeString(data.groups[0].groupId)
29
- .writeArray(data.groups[0].topics, (encoder, topic) => encoder
30
- .writeString(topic.name)
31
- .writeArray(topic.partitionIndexes, (encoder, partitionIndex) => encoder.writeInt32(partitionIndex))),
27
+ apiVersion: 6,
28
+ requestHeaderVersion: 2,
29
+ responseHeaderVersion: 1,
30
+ request: (encoder, data) => {
31
+ if (data.groups.length !== 1)
32
+ throw new Error('OffsetFetch v6 requires exactly 1 group');
33
+ const [group] = data.groups;
34
+ return encoder
35
+ .writeCompactString(group.groupId)
36
+ .writeCompactArray(group.topics, (encoder, topic) => encoder
37
+ .writeCompactString(topic.name)
38
+ .writeCompactArray(topic.partitionIndexes, (encoder, partitionIndex) => encoder.writeInt32(partitionIndex))
39
+ .writeTagBuffer())
40
+ .writeTagBuffer();
41
+ },
32
42
  response: (decoder) => {
33
43
  const result = {
34
- throttleTimeMs: 0,
44
+ throttleTimeMs: decoder.readInt32(),
35
45
  groups: [
36
46
  {
37
- groupId: '', // Not provided in v1 response
38
- topics: decoder.readArray((decoder) => ({
39
- name: decoder.readString(),
40
- partitions: decoder.readArray((decoder) => ({
47
+ groupId: '',
48
+ topics: decoder.readCompactArray((decoder) => ({
49
+ name: decoder.readCompactString(),
50
+ partitions: decoder.readCompactArray((decoder) => ({
41
51
  partitionIndex: decoder.readInt32(),
42
52
  committedOffset: decoder.readInt64(),
43
- committedLeaderEpoch: -1,
44
- committedMetadata: decoder.readString(),
53
+ committedLeaderEpoch: decoder.readInt32(),
54
+ committedMetadata: decoder.readCompactString(),
45
55
  errorCode: decoder.readInt16(),
46
- tags: {},
56
+ tags: decoder.readTagBuffer(),
47
57
  })),
48
- tags: {},
58
+ tags: decoder.readTagBuffer(),
49
59
  })),
50
- errorCode: 0,
60
+ errorCode: decoder.readInt16(),
51
61
  tags: {},
52
62
  },
53
63
  ],
54
- tags: {},
64
+ tags: decoder.readTagBuffer(),
55
65
  };
56
- result.groups.forEach((group) => {
57
- group.topics.forEach((topic) => {
58
- topic.partitions.forEach((partition) => {
59
- if (partition.errorCode)
60
- throw new error_1.KafkaTSApiError(partition.errorCode, null, result);
61
- });
66
+ if (result.groups[0].errorCode)
67
+ throw new error_1.KafkaTSApiError(result.groups[0].errorCode, null, result);
68
+ result.groups[0].topics.forEach((topic) => {
69
+ topic.partitions.forEach((partition) => {
70
+ if (partition.errorCode)
71
+ throw new error_1.KafkaTSApiError(partition.errorCode, null, result);
62
72
  });
63
73
  });
64
74
  return result;
@@ -90,7 +100,7 @@ OffsetFetch Response (Version: 8) => throttle_time_ms [groups] _tagged_fields
90
100
  exports.OFFSET_FETCH = (0, api_1.createApi)({
91
101
  apiKey: 9,
92
102
  apiVersion: 8,
93
- fallback: OFFSET_FETCH_V1,
103
+ fallback: OFFSET_FETCH_V6,
94
104
  requestHeaderVersion: 2,
95
105
  responseHeaderVersion: 1,
96
106
  request: (encoder, data) => encoder
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kafka-ts",
3
- "version": "1.3.1-beta.4",
3
+ "version": "1.3.1-beta.6",
4
4
  "main": "dist/index.js",
5
5
  "author": "Priit Käärd",
6
6
  "license": "MIT",