@platformatic/kafka 1.22.0 → 1.23.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 (251) hide show
  1. package/dist/apis/admin/alter-client-quotas-v1.js +1 -1
  2. package/dist/apis/admin/alter-configs-v2.js +3 -2
  3. package/dist/apis/admin/alter-partition-reassignments-v0.js +4 -3
  4. package/dist/apis/admin/alter-partition-v3.js +2 -2
  5. package/dist/apis/admin/alter-replica-log-dirs-v2.js +1 -1
  6. package/dist/apis/admin/alter-user-scram-credentials-v0.js +1 -1
  7. package/dist/apis/admin/consumer-group-describe-v0.js +3 -2
  8. package/dist/apis/admin/create-acls-v3.js +1 -1
  9. package/dist/apis/admin/create-delegation-token-v3.js +1 -1
  10. package/dist/apis/admin/create-partitions-v1.js +1 -1
  11. package/dist/apis/admin/create-partitions-v2.js +1 -1
  12. package/dist/apis/admin/create-partitions-v3.js +1 -1
  13. package/dist/apis/admin/create-topics-v7.js +1 -1
  14. package/dist/apis/admin/delete-acls-v3.js +6 -4
  15. package/dist/apis/admin/delete-groups-v2.js +1 -1
  16. package/dist/apis/admin/delete-records-v2.js +1 -1
  17. package/dist/apis/admin/delete-topics-v6.js +1 -1
  18. package/dist/apis/admin/describe-acls-v3.js +1 -1
  19. package/dist/apis/admin/describe-client-quotas-v0.js +1 -1
  20. package/dist/apis/admin/describe-cluster-v1.js +1 -1
  21. package/dist/apis/admin/describe-configs-v2.js +3 -2
  22. package/dist/apis/admin/describe-configs-v3.js +3 -2
  23. package/dist/apis/admin/describe-configs-v4.js +3 -2
  24. package/dist/apis/admin/describe-delegation-token-v3.js +1 -1
  25. package/dist/apis/admin/describe-groups-v5.js +1 -1
  26. package/dist/apis/admin/describe-log-dirs-v4.js +2 -2
  27. package/dist/apis/admin/describe-producers-v0.js +1 -1
  28. package/dist/apis/admin/describe-quorum-v2.js +4 -3
  29. package/dist/apis/admin/describe-topic-partitions-v0.js +2 -2
  30. package/dist/apis/admin/describe-transactions-v0.js +1 -1
  31. package/dist/apis/admin/describe-user-scram-credentials-v0.js +6 -4
  32. package/dist/apis/admin/envelope-v0.js +1 -1
  33. package/dist/apis/admin/expire-delegation-token-v2.js +1 -1
  34. package/dist/apis/admin/incremental-alter-configs-v1.js +3 -2
  35. package/dist/apis/admin/list-groups-v4.js +1 -1
  36. package/dist/apis/admin/list-groups-v5.js +1 -1
  37. package/dist/apis/admin/list-partition-reassignments-v0.js +1 -1
  38. package/dist/apis/admin/list-transactions-v1.js +1 -1
  39. package/dist/apis/admin/offset-delete-v0.js +2 -2
  40. package/dist/apis/admin/renew-delegation-token-v2.js +1 -1
  41. package/dist/apis/admin/unregister-broker-v0.js +1 -1
  42. package/dist/apis/admin/update-features-v1.js +4 -3
  43. package/dist/apis/callbacks.d.ts +0 -1
  44. package/dist/apis/callbacks.js +3 -18
  45. package/dist/apis/consumer/consumer-group-heartbeat-v0.js +1 -1
  46. package/dist/apis/consumer/fetch-v12.js +2 -2
  47. package/dist/apis/consumer/fetch-v13.js +2 -2
  48. package/dist/apis/consumer/fetch-v14.js +2 -2
  49. package/dist/apis/consumer/fetch-v15.js +2 -2
  50. package/dist/apis/consumer/fetch-v16.js +2 -2
  51. package/dist/apis/consumer/fetch-v17.js +2 -2
  52. package/dist/apis/consumer/heartbeat-v4.js +1 -1
  53. package/dist/apis/consumer/join-group-v9.js +1 -1
  54. package/dist/apis/consumer/leave-group-v5.js +2 -2
  55. package/dist/apis/consumer/list-offsets-v8.js +1 -1
  56. package/dist/apis/consumer/list-offsets-v9.js +1 -1
  57. package/dist/apis/consumer/offset-commit-v8.js +1 -1
  58. package/dist/apis/consumer/offset-commit-v9.js +1 -1
  59. package/dist/apis/consumer/offset-fetch-v8.js +2 -2
  60. package/dist/apis/consumer/offset-fetch-v9.js +2 -2
  61. package/dist/apis/consumer/offset-for-leader-epoch-v4.js +1 -1
  62. package/dist/apis/consumer/sync-group-v5.js +1 -1
  63. package/dist/apis/definitions.d.ts +2 -1
  64. package/dist/apis/metadata/api-versions-v3.js +1 -1
  65. package/dist/apis/metadata/api-versions-v4.js +1 -1
  66. package/dist/apis/metadata/find-coordinator-v4.js +1 -1
  67. package/dist/apis/metadata/find-coordinator-v5.js +1 -1
  68. package/dist/apis/metadata/find-coordinator-v6.js +1 -1
  69. package/dist/apis/metadata/metadata-v10.js +2 -2
  70. package/dist/apis/metadata/metadata-v11.js +2 -2
  71. package/dist/apis/metadata/metadata-v12.js +2 -2
  72. package/dist/apis/metadata/metadata-v9.js +2 -2
  73. package/dist/apis/producer/add-offsets-to-txn-v4.js +1 -1
  74. package/dist/apis/producer/add-partitions-to-txn-v5.js +2 -2
  75. package/dist/apis/producer/end-txn-v4.js +1 -1
  76. package/dist/apis/producer/init-producer-id-v4.js +1 -1
  77. package/dist/apis/producer/init-producer-id-v5.js +1 -1
  78. package/dist/apis/producer/produce-v10.js +14 -9
  79. package/dist/apis/producer/produce-v11.js +14 -9
  80. package/dist/apis/producer/produce-v7.js +1 -1
  81. package/dist/apis/producer/produce-v8.js +14 -9
  82. package/dist/apis/producer/produce-v9.js +14 -9
  83. package/dist/apis/producer/txn-offset-commit-v4.js +1 -1
  84. package/dist/apis/security/sasl-authenticate-v2.js +1 -1
  85. package/dist/apis/security/sasl-handshake-v1.d.ts +2 -2
  86. package/dist/apis/security/sasl-handshake-v1.js +1 -1
  87. package/dist/apis/telemetry/get-telemetry-subscriptions-v0.js +1 -1
  88. package/dist/apis/telemetry/list-client-metrics-resources-v0.js +1 -1
  89. package/dist/apis/telemetry/push-telemetry-v0.js +1 -1
  90. package/dist/clients/admin/admin.d.ts +3 -1
  91. package/dist/clients/admin/admin.js +125 -8
  92. package/dist/clients/admin/options.d.ts +33 -0
  93. package/dist/clients/admin/options.js +22 -0
  94. package/dist/clients/admin/types.d.ts +10 -1
  95. package/dist/clients/base/base.js +4 -2
  96. package/dist/clients/base/types.d.ts +1 -0
  97. package/dist/clients/consumer/consumer.js +2 -3
  98. package/dist/errors.d.ts +3 -2
  99. package/dist/errors.js +5 -4
  100. package/dist/network/connection.d.ts +8 -1
  101. package/dist/network/connection.js +28 -10
  102. package/dist/protocol/definitions.d.ts +2 -1
  103. package/dist/protocol/index.d.ts +0 -1
  104. package/dist/protocol/index.js +0 -1
  105. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +39 -0
  106. package/dist/typescript-4/dist/apis/admin/alter-configs-v2.d.ts +26 -0
  107. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +30 -0
  108. package/dist/typescript-4/dist/apis/admin/alter-partition-v3.d.ts +39 -0
  109. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +26 -0
  110. package/dist/typescript-4/dist/apis/admin/alter-user-scram-credentials-v0.d.ts +27 -0
  111. package/dist/typescript-4/dist/apis/admin/consumer-group-describe-v0.d.ts +41 -0
  112. package/dist/typescript-4/dist/apis/admin/create-acls-v3.d.ts +24 -0
  113. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v3.d.ts +24 -0
  114. package/dist/typescript-4/dist/apis/admin/create-partitions-v1.d.ts +24 -0
  115. package/dist/typescript-4/dist/apis/admin/create-partitions-v2.d.ts +24 -0
  116. package/dist/typescript-4/dist/apis/admin/create-partitions-v3.d.ts +24 -0
  117. package/dist/typescript-4/dist/apis/admin/create-topics-v7.d.ts +42 -0
  118. package/dist/typescript-4/dist/apis/admin/delete-acls-v3.d.ts +36 -0
  119. package/dist/typescript-4/dist/apis/admin/delete-groups-v2.d.ts +14 -0
  120. package/dist/typescript-4/dist/apis/admin/delete-records-v2.d.ts +27 -0
  121. package/dist/typescript-4/dist/apis/admin/delete-topics-v6.d.ts +21 -0
  122. package/dist/typescript-4/dist/apis/admin/describe-acls-v3.d.ts +25 -0
  123. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +36 -0
  124. package/dist/typescript-4/dist/apis/admin/describe-cluster-v1.d.ts +23 -0
  125. package/dist/typescript-4/dist/apis/admin/describe-configs-v2.d.ts +38 -0
  126. package/dist/typescript-4/dist/apis/admin/describe-configs-v3.d.ts +38 -0
  127. package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +38 -0
  128. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v3.d.ts +31 -0
  129. package/dist/typescript-4/dist/apis/admin/describe-groups-v5.d.ts +28 -0
  130. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v4.d.ts +32 -0
  131. package/dist/typescript-4/dist/apis/admin/describe-producers-v0.d.ts +33 -0
  132. package/dist/typescript-4/dist/apis/admin/describe-quorum-v2.d.ts +50 -0
  133. package/dist/typescript-4/dist/apis/admin/describe-topic-partitions-v0.d.ts +42 -0
  134. package/dist/typescript-4/dist/apis/admin/describe-transactions-v0.d.ts +24 -0
  135. package/dist/typescript-4/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +26 -0
  136. package/dist/typescript-4/dist/apis/admin/envelope-v0.d.ts +10 -0
  137. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v2.d.ts +11 -0
  138. package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v1.d.ts +27 -0
  139. package/dist/typescript-4/dist/apis/admin/index.d.ts +42 -0
  140. package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +17 -0
  141. package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +18 -0
  142. package/dist/typescript-4/dist/apis/admin/list-partition-reassignments-v0.d.ts +27 -0
  143. package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +18 -0
  144. package/dist/typescript-4/dist/apis/admin/offset-delete-v0.d.ts +26 -0
  145. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v2.d.ts +11 -0
  146. package/dist/typescript-4/dist/apis/admin/unregister-broker-v0.d.ts +12 -0
  147. package/dist/typescript-4/dist/apis/admin/update-features-v1.d.ts +23 -0
  148. package/dist/typescript-4/dist/apis/callbacks.d.ts +9 -0
  149. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +27 -0
  150. package/dist/typescript-4/dist/apis/consumer/fetch-v12.d.ts +46 -0
  151. package/dist/typescript-4/dist/apis/consumer/fetch-v13.d.ts +46 -0
  152. package/dist/typescript-4/dist/apis/consumer/fetch-v14.d.ts +46 -0
  153. package/dist/typescript-4/dist/apis/consumer/fetch-v15.d.ts +46 -0
  154. package/dist/typescript-4/dist/apis/consumer/fetch-v16.d.ts +46 -0
  155. package/dist/typescript-4/dist/apis/consumer/fetch-v17.d.ts +46 -0
  156. package/dist/typescript-4/dist/apis/consumer/heartbeat-v4.d.ts +11 -0
  157. package/dist/typescript-4/dist/apis/consumer/index.d.ts +18 -0
  158. package/dist/typescript-4/dist/apis/consumer/join-group-v9.d.ts +27 -0
  159. package/dist/typescript-4/dist/apis/consumer/leave-group-v5.d.ts +22 -0
  160. package/dist/typescript-4/dist/apis/consumer/list-offsets-v8.d.ts +30 -0
  161. package/dist/typescript-4/dist/apis/consumer/list-offsets-v9.d.ts +30 -0
  162. package/dist/typescript-4/dist/apis/consumer/offset-commit-v8.d.ts +29 -0
  163. package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +29 -0
  164. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v8.d.ts +37 -0
  165. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v9.d.ts +37 -0
  166. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +29 -0
  167. package/dist/typescript-4/dist/apis/consumer/sync-group-v5.d.ts +18 -0
  168. package/dist/typescript-4/dist/apis/definitions.d.ts +17 -0
  169. package/dist/typescript-4/dist/apis/enumerations.d.ts +143 -0
  170. package/dist/typescript-4/dist/apis/index.d.ts +9 -0
  171. package/dist/typescript-4/dist/apis/metadata/api-versions-v3.d.ts +17 -0
  172. package/dist/typescript-4/dist/apis/metadata/api-versions-v4.d.ts +17 -0
  173. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v4.d.ts +19 -0
  174. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v5.d.ts +19 -0
  175. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v6.d.ts +19 -0
  176. package/dist/typescript-4/dist/apis/metadata/index.d.ts +9 -0
  177. package/dist/typescript-4/dist/apis/metadata/metadata-v10.d.ts +37 -0
  178. package/dist/typescript-4/dist/apis/metadata/metadata-v11.d.ts +37 -0
  179. package/dist/typescript-4/dist/apis/metadata/metadata-v12.d.ts +37 -0
  180. package/dist/typescript-4/dist/apis/metadata/metadata-v9.d.ts +37 -0
  181. package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v4.d.ts +10 -0
  182. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v5.d.ts +34 -0
  183. package/dist/typescript-4/dist/apis/producer/end-txn-v4.d.ts +10 -0
  184. package/dist/typescript-4/dist/apis/producer/index.d.ts +11 -0
  185. package/dist/typescript-4/dist/apis/producer/init-producer-id-v4.d.ts +21 -0
  186. package/dist/typescript-4/dist/apis/producer/init-producer-id-v5.d.ts +21 -0
  187. package/dist/typescript-4/dist/apis/producer/produce-v10.d.ts +29 -0
  188. package/dist/typescript-4/dist/apis/producer/produce-v11.d.ts +29 -0
  189. package/dist/typescript-4/dist/apis/producer/produce-v7.d.ts +29 -0
  190. package/dist/typescript-4/dist/apis/producer/produce-v8.d.ts +29 -0
  191. package/dist/typescript-4/dist/apis/producer/produce-v9.d.ts +29 -0
  192. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v4.d.ts +29 -0
  193. package/dist/typescript-4/dist/apis/security/index.d.ts +2 -0
  194. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v2.d.ts +15 -0
  195. package/dist/typescript-4/dist/apis/security/sasl-handshake-v1.d.ts +10 -0
  196. package/dist/typescript-4/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +18 -0
  197. package/dist/typescript-4/dist/apis/telemetry/index.d.ts +3 -0
  198. package/dist/typescript-4/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +14 -0
  199. package/dist/typescript-4/dist/apis/telemetry/push-telemetry-v0.d.ts +10 -0
  200. package/dist/typescript-4/dist/clients/admin/admin.d.ts +30 -0
  201. package/dist/typescript-4/dist/clients/admin/index.d.ts +3 -0
  202. package/dist/typescript-4/dist/clients/admin/options.d.ts +330 -0
  203. package/dist/typescript-4/dist/clients/admin/types.d.ts +88 -0
  204. package/dist/typescript-4/dist/clients/base/base.d.ts +75 -0
  205. package/dist/typescript-4/dist/clients/base/index.d.ts +3 -0
  206. package/dist/typescript-4/dist/clients/base/options.d.ts +198 -0
  207. package/dist/typescript-4/dist/clients/base/types.d.ts +42 -0
  208. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +44 -0
  209. package/dist/typescript-4/dist/clients/consumer/index.d.ts +5 -0
  210. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +81 -0
  211. package/dist/typescript-4/dist/clients/consumer/options.d.ts +748 -0
  212. package/dist/typescript-4/dist/clients/consumer/partitions-assigners.d.ts +3 -0
  213. package/dist/typescript-4/dist/clients/consumer/topics-map.d.ts +11 -0
  214. package/dist/typescript-4/dist/clients/consumer/types.d.ts +100 -0
  215. package/dist/typescript-4/dist/clients/index.d.ts +5 -0
  216. package/dist/typescript-4/dist/clients/metrics.d.ts +60 -0
  217. package/dist/typescript-4/dist/clients/producer/index.d.ts +3 -0
  218. package/dist/typescript-4/dist/clients/producer/options.d.ts +164 -0
  219. package/dist/typescript-4/dist/clients/producer/producer.d.ts +16 -0
  220. package/dist/typescript-4/dist/clients/producer/types.d.ts +29 -0
  221. package/dist/typescript-4/dist/clients/serde.d.ts +42 -0
  222. package/dist/typescript-4/dist/diagnostic.d.ts +54 -0
  223. package/dist/typescript-4/dist/errors.d.ts +83 -0
  224. package/dist/typescript-4/dist/index.d.ts +7 -0
  225. package/dist/typescript-4/dist/network/connection-pool.d.ts +16 -0
  226. package/dist/typescript-4/dist/network/connection.d.ts +78 -0
  227. package/dist/typescript-4/dist/network/index.d.ts +3 -0
  228. package/dist/typescript-4/dist/network/utils.d.ts +2 -0
  229. package/dist/typescript-4/dist/protocol/apis.d.ts +2 -0
  230. package/dist/typescript-4/dist/protocol/compression.d.ts +79 -0
  231. package/dist/typescript-4/dist/protocol/crc32c.d.ts +4 -0
  232. package/dist/typescript-4/dist/protocol/definitions.d.ts +13 -0
  233. package/dist/typescript-4/dist/protocol/dynamic-buffer.d.ts +65 -0
  234. package/dist/typescript-4/dist/protocol/errors.d.ts +8 -0
  235. package/dist/typescript-4/dist/protocol/index.d.ts +15 -0
  236. package/dist/typescript-4/dist/protocol/murmur2.d.ts +1 -0
  237. package/dist/typescript-4/dist/protocol/reader.d.ts +61 -0
  238. package/dist/typescript-4/dist/protocol/records.d.ts +111 -0
  239. package/dist/typescript-4/dist/protocol/sasl/oauth-bearer.d.ts +6 -0
  240. package/dist/typescript-4/dist/protocol/sasl/plain.d.ts +5 -0
  241. package/dist/typescript-4/dist/protocol/sasl/scram-sha.d.ts +39 -0
  242. package/dist/typescript-4/dist/protocol/sasl/utils.d.ts +4 -0
  243. package/dist/typescript-4/dist/protocol/varint.d.ts +12 -0
  244. package/dist/typescript-4/dist/protocol/writer.d.ts +48 -0
  245. package/dist/typescript-4/dist/symbols.d.ts +3 -0
  246. package/dist/typescript-4/dist/utils.d.ts +37 -0
  247. package/dist/typescript-4/dist/version.d.ts +2 -0
  248. package/dist/utils.d.ts +6 -1
  249. package/dist/utils.js +3 -4
  250. package/dist/version.js +1 -1
  251. package/package.json +17 -2
@@ -61,7 +61,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
61
61
  }))
62
62
  };
63
63
  if (response.errorCode !== 0) {
64
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
64
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, response.errorMessage] }, response);
65
65
  }
66
66
  return response;
67
67
  }
@@ -77,7 +77,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
77
77
  const throttleTimeMs = reader.readInt32();
78
78
  const errorCode = reader.readInt16();
79
79
  if (errorCode !== 0) {
80
- errors.push(['', errorCode]);
80
+ errors.push(['/', [errorCode, null]]);
81
81
  }
82
82
  const response = {
83
83
  throttleTimeMs,
@@ -102,7 +102,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
102
102
  preferredReadReplica: r.readInt32()
103
103
  };
104
104
  if (partition.errorCode !== 0) {
105
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
105
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
106
106
  }
107
107
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
108
108
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -77,7 +77,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
77
77
  const throttleTimeMs = reader.readInt32();
78
78
  const errorCode = reader.readInt16();
79
79
  if (errorCode !== 0) {
80
- errors.push(['', errorCode]);
80
+ errors.push(['/', [errorCode, null]]);
81
81
  }
82
82
  const response = {
83
83
  throttleTimeMs,
@@ -102,7 +102,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
102
102
  preferredReadReplica: r.readInt32()
103
103
  };
104
104
  if (partition.errorCode !== 0) {
105
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
105
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
106
106
  }
107
107
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
108
108
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -77,7 +77,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
77
77
  const throttleTimeMs = reader.readInt32();
78
78
  const errorCode = reader.readInt16();
79
79
  if (errorCode !== 0) {
80
- errors.push(['', errorCode]);
80
+ errors.push(['/', [errorCode, null]]);
81
81
  }
82
82
  const response = {
83
83
  throttleTimeMs,
@@ -102,7 +102,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
102
102
  preferredReadReplica: r.readInt32()
103
103
  };
104
104
  if (partition.errorCode !== 0) {
105
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
105
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
106
106
  }
107
107
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
108
108
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -75,7 +75,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
75
75
  const throttleTimeMs = reader.readInt32();
76
76
  const errorCode = reader.readInt16();
77
77
  if (errorCode !== 0) {
78
- errors.push(['', errorCode]);
78
+ errors.push(['', [errorCode, null]]);
79
79
  }
80
80
  const response = {
81
81
  throttleTimeMs,
@@ -100,7 +100,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
100
100
  preferredReadReplica: r.readInt32()
101
101
  };
102
102
  if (partition.errorCode !== 0) {
103
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
103
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
104
104
  }
105
105
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
106
106
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -75,7 +75,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
75
75
  const throttleTimeMs = reader.readInt32();
76
76
  const errorCode = reader.readInt16();
77
77
  if (errorCode !== 0) {
78
- errors.push(['', errorCode]);
78
+ errors.push(['', [errorCode, null]]);
79
79
  }
80
80
  const response = {
81
81
  throttleTimeMs,
@@ -100,7 +100,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
100
100
  preferredReadReplica: r.readInt32()
101
101
  };
102
102
  if (partition.errorCode !== 0) {
103
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
103
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
104
104
  }
105
105
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
106
106
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -75,7 +75,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
75
75
  const throttleTimeMs = reader.readInt32();
76
76
  const errorCode = reader.readInt16();
77
77
  if (errorCode !== 0) {
78
- errors.push(['', errorCode]);
78
+ errors.push(['', [errorCode, null]]);
79
79
  }
80
80
  const response = {
81
81
  throttleTimeMs,
@@ -100,7 +100,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
100
100
  preferredReadReplica: r.readInt32()
101
101
  };
102
102
  if (partition.errorCode !== 0) {
103
- errors.push([`/responses/${i}/partitions/${j}`, partition.errorCode]);
103
+ errors.push([`/responses/${i}/partitions/${j}`, [partition.errorCode, null]]);
104
104
  }
105
105
  // We need to reduce the size by one to follow the COMPACT_RECORDS specification.
106
106
  const recordsSize = r.readUnsignedVarInt() - 1;
@@ -27,7 +27,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
27
27
  errorCode: reader.readInt16()
28
28
  };
29
29
  if (response.errorCode !== 0) {
30
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
30
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
31
31
  }
32
32
  return response;
33
33
  }
@@ -64,7 +64,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
64
64
  })
65
65
  };
66
66
  if (response.errorCode !== 0) {
67
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
67
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
68
68
  }
69
69
  return response;
70
70
  }
@@ -32,7 +32,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
32
32
  const throttleTimeMs = reader.readInt32();
33
33
  const errorCode = reader.readInt16();
34
34
  if (errorCode !== 0) {
35
- errors.push(['', errorCode]);
35
+ errors.push(['', [errorCode, null]]);
36
36
  }
37
37
  const response = {
38
38
  throttleTimeMs,
@@ -44,7 +44,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
44
44
  errorCode: r.readInt16()
45
45
  };
46
46
  if (member.errorCode !== 0) {
47
- errors.push([`/members/${i}`, member.errorCode]);
47
+ errors.push([`/members/${i}`, [member.errorCode, null]]);
48
48
  }
49
49
  return member;
50
50
  })
@@ -53,7 +53,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
53
53
  leaderEpoch: r.readInt32()
54
54
  };
55
55
  if (partition.errorCode !== 0) {
56
- errors.push([`/topics/${i}/partitions/${j}`, partition.errorCode]);
56
+ errors.push([`/topics/${i}/partitions/${j}`, [partition.errorCode, null]]);
57
57
  }
58
58
  return partition;
59
59
  })
@@ -53,7 +53,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
53
53
  leaderEpoch: r.readInt32()
54
54
  };
55
55
  if (partition.errorCode !== 0) {
56
- errors.push([`/topics/${i}/partitions/${j}`, partition.errorCode]);
56
+ errors.push([`/topics/${i}/partitions/${j}`, [partition.errorCode, null]]);
57
57
  }
58
58
  return partition;
59
59
  })
@@ -53,7 +53,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
53
53
  errorCode: r.readInt16()
54
54
  };
55
55
  if (partition.errorCode !== 0) {
56
- errors.push([`/topics/${i}/partitions/${j}`, partition.errorCode]);
56
+ errors.push([`/topics/${i}/partitions/${j}`, [partition.errorCode, null]]);
57
57
  }
58
58
  return partition;
59
59
  })
@@ -53,7 +53,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
53
53
  errorCode: r.readInt16()
54
54
  };
55
55
  if (partition.errorCode !== 0) {
56
- errors.push([`/topics/${i}/partitions/${j}`, partition.errorCode]);
56
+ errors.push([`/topics/${i}/partitions/${j}`, [partition.errorCode, null]]);
57
57
  }
58
58
  return partition;
59
59
  })
@@ -56,7 +56,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
56
56
  errorCode: r.readInt16()
57
57
  };
58
58
  if (partition.errorCode !== 0) {
59
- errors.push([`/groups/${i}/topics/${j}/partitions/${k}`, partition.errorCode]);
59
+ errors.push([`/groups/${i}/topics/${j}/partitions/${k}`, [partition.errorCode, null]]);
60
60
  }
61
61
  return partition;
62
62
  })
@@ -65,7 +65,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
65
65
  errorCode: r.readInt16()
66
66
  };
67
67
  if (group.errorCode !== 0) {
68
- errors.push([`/groups/${i}`, group.errorCode]);
68
+ errors.push([`/groups/${i}`, [group.errorCode, null]]);
69
69
  }
70
70
  return group;
71
71
  })
@@ -59,7 +59,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
59
59
  errorCode: r.readInt16()
60
60
  };
61
61
  if (partition.errorCode !== 0) {
62
- errors.push([`/groups/${i}/topics/${j}/partitions/${k}`, partition.errorCode]);
62
+ errors.push([`/groups/${i}/topics/${j}/partitions/${k}`, [partition.errorCode, null]]);
63
63
  }
64
64
  return partition;
65
65
  })
@@ -68,7 +68,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
68
68
  errorCode: r.readInt16()
69
69
  };
70
70
  if (group.errorCode !== 0) {
71
- errors.push([`/groups/${i}`, group.errorCode]);
71
+ errors.push([`/groups/${i}`, [group.errorCode, null]]);
72
72
  }
73
73
  return group;
74
74
  })
@@ -45,7 +45,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
45
45
  const partition = r.readInt32();
46
46
  const errorCode = r.readInt16();
47
47
  if (errorCode !== 0) {
48
- errors.push([`/topics/${i}/partitions/${j}`, errorCode]);
48
+ errors.push([`/topics/${i}/partitions/${j}`, [errorCode, null]]);
49
49
  }
50
50
  return {
51
51
  partition,
@@ -42,7 +42,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
42
42
  assignment: reader.readBytes()
43
43
  };
44
44
  if (response.errorCode !== 0) {
45
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
45
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
46
46
  }
47
47
  return response;
48
48
  }
@@ -1,11 +1,12 @@
1
1
  import { type Connection } from '../network/connection.ts';
2
2
  import { type Reader } from '../protocol/reader.ts';
3
3
  import { type Writer } from '../protocol/writer.ts';
4
+ import { type NullableString } from '../protocol/definitions.ts';
4
5
  export type Callback<ReturnType> = (error: Error | null, payload: ReturnType) => void;
5
6
  export type CallbackArguments<ReturnType> = [cb: Callback<ReturnType>];
6
7
  export type RequestCreator = (...args: any[]) => Writer;
7
8
  export type ResponseParser<ReturnType> = (correlationId: number, apiKey: number, apiVersion: number, reader: Reader) => ReturnType | Promise<ReturnType>;
8
- export type ResponseErrorWithLocation = [string, number];
9
+ export type ResponseErrorWithLocation = [string, [number, NullableString]];
9
10
  export type APIWithCallback<RequestArguments extends Array<unknown>, ResponseType> = (connection: Connection, ...args: [...RequestArguments, ...Partial<CallbackArguments<ResponseType>>]) => void;
10
11
  export type APIWithPromise<RequestArguments extends Array<unknown>, ResponseType> = (connection: Connection, ...args: RequestArguments) => Promise<ResponseType>;
11
12
  export type API<RequestType extends Array<unknown>, ResponseType> = APIWithCallback<RequestType, ResponseType> & {
@@ -34,7 +34,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
34
34
  throttleTimeMs: reader.readInt32()
35
35
  };
36
36
  if (response.errorCode !== 0) {
37
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
37
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
38
38
  }
39
39
  return response;
40
40
  }
@@ -34,7 +34,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
34
34
  throttleTimeMs: reader.readInt32()
35
35
  };
36
36
  if (response.errorCode !== 0) {
37
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
37
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
38
38
  }
39
39
  return response;
40
40
  }
@@ -37,7 +37,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
37
37
  errorMessage: r.readNullableString()
38
38
  };
39
39
  if (coordinator.errorCode !== 0) {
40
- errors.push([`/coordinators/${i}`, coordinator.errorCode]);
40
+ errors.push([`/coordinators/${i}`, [coordinator.errorCode, coordinator.errorMessage]]);
41
41
  }
42
42
  return coordinator;
43
43
  })
@@ -37,7 +37,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
37
37
  errorMessage: r.readNullableString()
38
38
  };
39
39
  if (coordinator.errorCode !== 0) {
40
- errors.push([`/coordinators/${i}`, coordinator.errorCode]);
40
+ errors.push([`/coordinators/${i}`, [coordinator.errorCode, coordinator.errorMessage]]);
41
41
  }
42
42
  return coordinator;
43
43
  })
@@ -37,7 +37,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
37
37
  errorMessage: r.readNullableString()
38
38
  };
39
39
  if (coordinator.errorCode !== 0) {
40
- errors.push([`/coordinators/${i}`, coordinator.errorCode]);
40
+ errors.push([`/coordinators/${i}`, [coordinator.errorCode, coordinator.errorMessage]]);
41
41
  }
42
42
  return coordinator;
43
43
  })
@@ -61,7 +61,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
61
61
  topics: reader.readArray((r, i) => {
62
62
  const errorCode = r.readInt16();
63
63
  if (errorCode !== 0) {
64
- errors.push([`/topics/${i}`, errorCode]);
64
+ errors.push([`/topics/${i}`, [errorCode, null]]);
65
65
  }
66
66
  return {
67
67
  errorCode,
@@ -71,7 +71,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
71
71
  partitions: r.readArray((r, j) => {
72
72
  const errorCode = r.readInt16();
73
73
  if (errorCode !== 0) {
74
- errors.push([`/topics/${i}/partitions/${j}`, errorCode]);
74
+ errors.push([`/topics/${i}/partitions/${j}`, [errorCode, null]]);
75
75
  }
76
76
  return {
77
77
  errorCode,
@@ -61,7 +61,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
61
61
  topics: reader.readArray((r, i) => {
62
62
  const errorCode = r.readInt16();
63
63
  if (errorCode !== 0) {
64
- errors.push([`/topics/${i}`, errorCode]);
64
+ errors.push([`/topics/${i}`, [errorCode, null]]);
65
65
  }
66
66
  return {
67
67
  errorCode,
@@ -71,7 +71,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
71
71
  partitions: r.readArray((r, j) => {
72
72
  const errorCode = r.readInt16();
73
73
  if (errorCode !== 0) {
74
- errors.push([`/topics/${i}/partitions/${j}`, errorCode]);
74
+ errors.push([`/topics/${i}/partitions/${j}`, [errorCode, null]]);
75
75
  }
76
76
  return {
77
77
  errorCode,
@@ -58,7 +58,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
58
58
  topics: reader.readArray((r, i) => {
59
59
  const errorCode = r.readInt16();
60
60
  if (errorCode !== 0) {
61
- errors.push([`/topics/${i}`, errorCode]);
61
+ errors.push([`/topics/${i}`, [errorCode, null]]);
62
62
  }
63
63
  return {
64
64
  errorCode,
@@ -68,7 +68,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
68
68
  partitions: r.readArray((r, j) => {
69
69
  const errorCode = r.readInt16();
70
70
  if (errorCode !== 0) {
71
- errors.push([`/topics/${i}/partitions/${j}`, errorCode]);
71
+ errors.push([`/topics/${i}/partitions/${j}`, [errorCode, null]]);
72
72
  }
73
73
  return {
74
74
  errorCode,
@@ -60,7 +60,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
60
60
  topics: reader.readArray((r, i) => {
61
61
  const errorCode = r.readInt16();
62
62
  if (errorCode !== 0) {
63
- errors.push([`/topics/${i}`, errorCode]);
63
+ errors.push([`/topics/${i}`, [errorCode, null]]);
64
64
  }
65
65
  const name = r.readNullableString();
66
66
  return {
@@ -71,7 +71,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
71
71
  partitions: r.readArray((r, j) => {
72
72
  const errorCode = r.readInt16();
73
73
  if (errorCode !== 0) {
74
- errors.push([`/topics/${i}/partitions/${j}`, errorCode]);
74
+ errors.push([`/topics/${i}/partitions/${j}`, [errorCode, null]]);
75
75
  }
76
76
  return {
77
77
  errorCode,
@@ -27,7 +27,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
27
27
  errorCode: reader.readInt16()
28
28
  };
29
29
  if (response.errorCode !== 0) {
30
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
30
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
31
31
  }
32
32
  return response;
33
33
  }
@@ -42,7 +42,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
42
42
  const throttleTimeMs = reader.readInt32();
43
43
  const errorCode = reader.readInt16();
44
44
  if (errorCode !== 0) {
45
- errors.push(['', errorCode]);
45
+ errors.push(['', [errorCode, null]]);
46
46
  }
47
47
  const response = {
48
48
  throttleTimeMs,
@@ -61,7 +61,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
61
61
  if (partition.partitionErrorCode !== 0) {
62
62
  errors.push([
63
63
  `/results_by_transaction/${i}/topic_results/${j}/results_by_partitions/${k}`,
64
- partition.partitionErrorCode
64
+ [partition.partitionErrorCode, null]
65
65
  ]);
66
66
  }
67
67
  return partition;
@@ -27,7 +27,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
27
27
  errorCode: reader.readInt16()
28
28
  };
29
29
  if (response.errorCode !== 0) {
30
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
30
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
31
31
  }
32
32
  return response;
33
33
  }
@@ -31,7 +31,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
31
31
  producerEpoch: reader.readInt16()
32
32
  };
33
33
  if (response.errorCode !== 0) {
34
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
34
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
35
35
  }
36
36
  return response;
37
37
  }
@@ -31,7 +31,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
31
31
  producerEpoch: reader.readInt16()
32
32
  };
33
33
  if (response.errorCode !== 0) {
34
- throw new ResponseError(apiKey, apiVersion, { '': response.errorCode }, response);
34
+ throw new ResponseError(apiKey, apiVersion, { '/': [response.errorCode, null] }, response);
35
35
  }
36
36
  return response;
37
37
  }
@@ -67,14 +67,9 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
67
67
  const topicResponse = {
68
68
  name: r.readString(),
69
69
  partitionResponses: r.readArray((r, j) => {
70
- const index = r.readInt32();
71
- const errorCode = r.readInt16();
72
- if (errorCode !== 0) {
73
- errors.push([`/responses/${i}/partition_responses/${j}`, errorCode]);
74
- }
75
- return {
76
- index,
77
- errorCode,
70
+ const partitionResponse = {
71
+ index: r.readInt32(),
72
+ errorCode: r.readInt16(),
78
73
  baseOffset: r.readInt64(),
79
74
  logAppendTimeMs: r.readInt64(),
80
75
  logStartOffset: r.readInt64(),
@@ -84,12 +79,22 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
84
79
  batchIndexErrorMessage: r.readNullableString()
85
80
  };
86
81
  if (recordError.batchIndexErrorMessage) {
87
- errors.push([`/responses/${i}/partition_responses/${j}/record_errors/${k}`, -1]);
82
+ errors.push([
83
+ `/responses/${i}/partition_responses/${j}/record_errors/${k}`,
84
+ [-1, recordError.batchIndexErrorMessage]
85
+ ]);
88
86
  }
89
87
  return recordError;
90
88
  }),
91
89
  errorMessage: r.readNullableString()
92
90
  };
91
+ if (partitionResponse.errorCode !== 0) {
92
+ errors.push([
93
+ `/responses/${i}/partition_responses/${j}`,
94
+ [partitionResponse.errorCode, partitionResponse.errorMessage]
95
+ ]);
96
+ }
97
+ return partitionResponse;
93
98
  })
94
99
  };
95
100
  return topicResponse;
@@ -67,14 +67,9 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
67
67
  const topicResponse = {
68
68
  name: r.readString(),
69
69
  partitionResponses: r.readArray((r, j) => {
70
- const index = r.readInt32();
71
- const errorCode = r.readInt16();
72
- if (errorCode !== 0) {
73
- errors.push([`/responses/${i}/partition_responses/${j}`, errorCode]);
74
- }
75
- return {
76
- index,
77
- errorCode,
70
+ const partitionResponse = {
71
+ index: r.readInt32(),
72
+ errorCode: r.readInt16(),
78
73
  baseOffset: r.readInt64(),
79
74
  logAppendTimeMs: r.readInt64(),
80
75
  logStartOffset: r.readInt64(),
@@ -84,12 +79,22 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
84
79
  batchIndexErrorMessage: r.readNullableString()
85
80
  };
86
81
  if (recordError.batchIndexErrorMessage) {
87
- errors.push([`/responses/${i}/partition_responses/${j}/record_errors/${k}`, -1]);
82
+ errors.push([
83
+ `/responses/${i}/partition_responses/${j}/record_errors/${k}`,
84
+ [-1, recordError.batchIndexErrorMessage]
85
+ ]);
88
86
  }
89
87
  return recordError;
90
88
  }),
91
89
  errorMessage: r.readNullableString()
92
90
  };
91
+ if (partitionResponse.errorCode !== 0) {
92
+ errors.push([
93
+ `/responses/${i}/partition_responses/${j}`,
94
+ [partitionResponse.errorCode, partitionResponse.errorMessage]
95
+ ]);
96
+ }
97
+ return partitionResponse;
93
98
  })
94
99
  };
95
100
  return topicResponse;
@@ -63,7 +63,7 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
63
63
  const index = r.readInt32();
64
64
  const errorCode = r.readInt16();
65
65
  if (errorCode !== 0) {
66
- errors.push([`/responses/${i}/partition_responses/${j}`, errorCode]);
66
+ errors.push([`/responses/${i}/partition_responses/${j}`, [errorCode, null]]);
67
67
  }
68
68
  return {
69
69
  index,
@@ -64,14 +64,9 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
64
64
  const topicResponse = {
65
65
  name: r.readString(false),
66
66
  partitionResponses: r.readArray((r, j) => {
67
- const index = r.readInt32();
68
- const errorCode = r.readInt16();
69
- if (errorCode !== 0) {
70
- errors.push([`/responses/${i}/partition_responses/${j}`, errorCode]);
71
- }
72
- return {
73
- index,
74
- errorCode,
67
+ const partitionResponse = {
68
+ index: r.readInt32(),
69
+ errorCode: r.readInt16(),
75
70
  baseOffset: r.readInt64(),
76
71
  logAppendTimeMs: r.readInt64(),
77
72
  logStartOffset: r.readInt64(),
@@ -81,12 +76,22 @@ export function parseResponse(_correlationId, apiKey, apiVersion, reader) {
81
76
  batchIndexErrorMessage: r.readNullableString(false)
82
77
  };
83
78
  if (recordError.batchIndexErrorMessage) {
84
- errors.push([`/responses/${i}/partition_responses/${j}/record_errors/${k}`, -1]);
79
+ errors.push([
80
+ `/responses/${i}/partition_responses/${j}/record_errors/${k}`,
81
+ [-1, recordError.batchIndexErrorMessage]
82
+ ]);
85
83
  }
86
84
  return recordError;
87
85
  }, false, false),
88
86
  errorMessage: r.readNullableString(false)
89
87
  };
88
+ if (partitionResponse.errorCode !== 0) {
89
+ errors.push([
90
+ `/responses/${i}/partition_responses/${j}`,
91
+ [partitionResponse.errorCode, partitionResponse.errorMessage]
92
+ ]);
93
+ }
94
+ return partitionResponse;
90
95
  }, false, false)
91
96
  };
92
97
  return topicResponse;