kafka-ts 1.3.1-beta.5 → 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
@@ -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.5",
3
+ "version": "1.3.1-beta.6",
4
4
  "main": "dist/index.js",
5
5
  "author": "Priit Käärd",
6
6
  "license": "MIT",