@platformatic/kafka 2.10.0 → 2.12.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 (770) hide show
  1. package/README.md +7 -0
  2. package/dist/apis/admin/alter-client-quotas-v0.d.ts +40 -0
  3. package/dist/apis/admin/alter-client-quotas-v0.js +60 -0
  4. package/dist/apis/admin/alter-client-quotas-v1.d.ts +6 -5
  5. package/dist/apis/admin/alter-client-quotas-v1.js +3 -1
  6. package/dist/apis/admin/alter-configs-v0.d.ts +7 -0
  7. package/dist/apis/admin/alter-configs-v0.js +10 -0
  8. package/dist/apis/admin/alter-configs-v1.d.ts +2 -0
  9. package/dist/apis/admin/alter-configs-v1.js +5 -0
  10. package/dist/apis/admin/alter-configs-v2.js +3 -1
  11. package/dist/apis/admin/alter-partition-reassignments-v0.d.ts +3 -2
  12. package/dist/apis/admin/alter-partition-reassignments-v0.js +4 -1
  13. package/dist/apis/admin/alter-partition-reassignments-v1.d.ts +6 -4
  14. package/dist/apis/admin/alter-partition-reassignments-v1.js +7 -3
  15. package/dist/apis/admin/alter-partition-v0.d.ts +40 -0
  16. package/dist/apis/admin/alter-partition-v0.js +81 -0
  17. package/dist/apis/admin/alter-partition-v1.d.ts +37 -0
  18. package/dist/apis/admin/alter-partition-v1.js +84 -0
  19. package/dist/apis/admin/alter-partition-v2.d.ts +36 -0
  20. package/dist/apis/admin/alter-partition-v2.js +83 -0
  21. package/dist/apis/admin/alter-partition-v3.d.ts +6 -35
  22. package/dist/apis/admin/alter-partition-v3.js +10 -8
  23. package/dist/apis/admin/alter-replica-log-dirs-v0.d.ts +23 -0
  24. package/dist/apis/admin/alter-replica-log-dirs-v0.js +29 -0
  25. package/dist/apis/admin/alter-replica-log-dirs-v1.d.ts +4 -0
  26. package/dist/apis/admin/alter-replica-log-dirs-v1.js +8 -0
  27. package/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +1 -1
  28. package/dist/apis/admin/alter-replica-log-dirs-v2.js +1 -0
  29. package/dist/apis/admin/alter-user-scram-credentials-v0.js +1 -1
  30. package/dist/apis/admin/client-quotas.d.ts +2 -0
  31. package/dist/apis/admin/client-quotas.js +1 -0
  32. package/dist/apis/admin/consumer-group-describe-v0.d.ts +2 -1
  33. package/dist/apis/admin/consumer-group-describe-v0.js +51 -30
  34. package/dist/apis/admin/create-acls-v0.d.ts +16 -0
  35. package/dist/apis/admin/create-acls-v0.js +10 -0
  36. package/dist/apis/admin/create-acls-v1.d.ts +15 -0
  37. package/dist/apis/admin/create-acls-v1.js +10 -0
  38. package/dist/apis/admin/create-acls-v2.js +1 -0
  39. package/dist/apis/admin/create-acls-v3.js +1 -0
  40. package/dist/apis/admin/create-delegation-token-v0.d.ts +24 -0
  41. package/dist/apis/admin/create-delegation-token-v0.js +47 -0
  42. package/dist/apis/admin/create-delegation-token-v1.d.ts +4 -0
  43. package/dist/apis/admin/create-delegation-token-v1.js +8 -0
  44. package/dist/apis/admin/create-delegation-token-v2.d.ts +9 -0
  45. package/dist/apis/admin/create-delegation-token-v2.js +30 -0
  46. package/dist/apis/admin/create-delegation-token-v3.js +1 -0
  47. package/dist/apis/admin/create-partitions-v0.d.ts +2 -0
  48. package/dist/apis/admin/create-partitions-v0.js +5 -0
  49. package/dist/apis/admin/create-partitions-v1.d.ts +2 -2
  50. package/dist/apis/admin/create-partitions-v1.js +5 -5
  51. package/dist/apis/admin/create-partitions-v2.d.ts +2 -2
  52. package/dist/apis/admin/create-partitions-v2.js +1 -0
  53. package/dist/apis/admin/create-partitions-v3.js +1 -0
  54. package/dist/apis/admin/create-topics-v0.d.ts +42 -0
  55. package/dist/apis/admin/create-topics-v0.js +63 -0
  56. package/dist/apis/admin/create-topics-v1.d.ts +42 -0
  57. package/dist/apis/admin/create-topics-v1.js +65 -0
  58. package/dist/apis/admin/create-topics-v2.d.ts +42 -0
  59. package/dist/apis/admin/create-topics-v2.js +66 -0
  60. package/dist/apis/admin/create-topics-v3.d.ts +42 -0
  61. package/dist/apis/admin/create-topics-v3.js +66 -0
  62. package/dist/apis/admin/create-topics-v4.d.ts +42 -0
  63. package/dist/apis/admin/create-topics-v4.js +66 -0
  64. package/dist/apis/admin/create-topics-v5.d.ts +42 -0
  65. package/dist/apis/admin/create-topics-v5.js +88 -0
  66. package/dist/apis/admin/create-topics-v6.d.ts +42 -0
  67. package/dist/apis/admin/create-topics-v6.js +88 -0
  68. package/dist/apis/admin/create-topics-v7.d.ts +2 -1
  69. package/dist/apis/admin/create-topics-v7.js +19 -5
  70. package/dist/apis/admin/delete-acls-v0.d.ts +28 -0
  71. package/dist/apis/admin/delete-acls-v0.js +12 -0
  72. package/dist/apis/admin/delete-acls-v1.d.ts +27 -0
  73. package/dist/apis/admin/delete-acls-v1.js +11 -0
  74. package/dist/apis/admin/delete-acls-v2.js +5 -2
  75. package/dist/apis/admin/delete-acls-v3.js +1 -0
  76. package/dist/apis/admin/delete-groups-v0.d.ts +14 -0
  77. package/dist/apis/admin/delete-groups-v0.js +38 -0
  78. package/dist/apis/admin/delete-groups-v1.d.ts +14 -0
  79. package/dist/apis/admin/delete-groups-v1.js +38 -0
  80. package/dist/apis/admin/delete-groups-v2.js +1 -0
  81. package/dist/apis/admin/delete-records-v0.d.ts +27 -0
  82. package/dist/apis/admin/delete-records-v0.js +50 -0
  83. package/dist/apis/admin/delete-records-v1.d.ts +27 -0
  84. package/dist/apis/admin/delete-records-v1.js +50 -0
  85. package/dist/apis/admin/delete-records-v2.js +1 -0
  86. package/dist/apis/admin/delete-topics-v0.d.ts +19 -0
  87. package/dist/apis/admin/delete-topics-v0.js +39 -0
  88. package/dist/apis/admin/delete-topics-v1.d.ts +19 -0
  89. package/dist/apis/admin/delete-topics-v1.js +37 -0
  90. package/dist/apis/admin/delete-topics-v2.d.ts +19 -0
  91. package/dist/apis/admin/delete-topics-v2.js +37 -0
  92. package/dist/apis/admin/delete-topics-v3.d.ts +19 -0
  93. package/dist/apis/admin/delete-topics-v3.js +37 -0
  94. package/dist/apis/admin/delete-topics-v4.d.ts +19 -0
  95. package/dist/apis/admin/delete-topics-v4.js +41 -0
  96. package/dist/apis/admin/delete-topics-v5.d.ts +19 -0
  97. package/dist/apis/admin/delete-topics-v5.js +45 -0
  98. package/dist/apis/admin/delete-topics-v6.d.ts +1 -1
  99. package/dist/apis/admin/delete-topics-v6.js +5 -1
  100. package/dist/apis/admin/describe-acls-v0.d.ts +21 -0
  101. package/dist/apis/admin/describe-acls-v0.js +19 -0
  102. package/dist/apis/admin/describe-acls-v1.d.ts +21 -0
  103. package/dist/apis/admin/describe-acls-v1.js +18 -0
  104. package/dist/apis/admin/describe-acls-v2.js +1 -0
  105. package/dist/apis/admin/describe-acls-v3.js +1 -0
  106. package/dist/apis/admin/describe-client-quotas-v0.d.ts +8 -7
  107. package/dist/apis/admin/describe-client-quotas-v0.js +28 -25
  108. package/dist/apis/admin/describe-client-quotas-v1.d.ts +9 -0
  109. package/dist/apis/admin/describe-client-quotas-v1.js +34 -0
  110. package/dist/apis/admin/describe-cluster-v0.d.ts +4 -3
  111. package/dist/apis/admin/describe-cluster-v0.js +3 -1
  112. package/dist/apis/admin/describe-cluster-v1.d.ts +4 -3
  113. package/dist/apis/admin/describe-cluster-v1.js +1 -0
  114. package/dist/apis/admin/describe-configs-v0.d.ts +41 -0
  115. package/dist/apis/admin/describe-configs-v0.js +72 -0
  116. package/dist/apis/admin/describe-configs-v1.d.ts +39 -0
  117. package/dist/apis/admin/describe-configs-v1.js +81 -0
  118. package/dist/apis/admin/describe-configs-v2.d.ts +9 -8
  119. package/dist/apis/admin/describe-configs-v2.js +10 -14
  120. package/dist/apis/admin/describe-configs-v3.d.ts +9 -8
  121. package/dist/apis/admin/describe-configs-v3.js +7 -7
  122. package/dist/apis/admin/describe-configs-v4.d.ts +2 -2
  123. package/dist/apis/admin/describe-configs-v4.js +14 -7
  124. package/dist/apis/admin/describe-delegation-token-v0.d.ts +31 -0
  125. package/dist/apis/admin/describe-delegation-token-v0.js +51 -0
  126. package/dist/apis/admin/describe-delegation-token-v1.d.ts +4 -0
  127. package/dist/apis/admin/describe-delegation-token-v1.js +8 -0
  128. package/dist/apis/admin/describe-delegation-token-v2.d.ts +8 -0
  129. package/dist/apis/admin/describe-delegation-token-v2.js +32 -0
  130. package/dist/apis/admin/describe-delegation-token-v3.d.ts +4 -27
  131. package/dist/apis/admin/describe-delegation-token-v3.js +1 -0
  132. package/dist/apis/admin/describe-groups-v0.d.ts +28 -0
  133. package/dist/apis/admin/describe-groups-v0.js +60 -0
  134. package/dist/apis/admin/describe-groups-v1.d.ts +28 -0
  135. package/dist/apis/admin/describe-groups-v1.js +62 -0
  136. package/dist/apis/admin/describe-groups-v2.d.ts +28 -0
  137. package/dist/apis/admin/describe-groups-v2.js +62 -0
  138. package/dist/apis/admin/describe-groups-v3.d.ts +28 -0
  139. package/dist/apis/admin/describe-groups-v3.js +64 -0
  140. package/dist/apis/admin/describe-groups-v4.d.ts +28 -0
  141. package/dist/apis/admin/describe-groups-v4.js +64 -0
  142. package/dist/apis/admin/describe-groups-v5.js +1 -0
  143. package/dist/apis/admin/describe-log-dirs-v0.d.ts +30 -0
  144. package/dist/apis/admin/describe-log-dirs-v0.js +39 -0
  145. package/dist/apis/admin/describe-log-dirs-v1.d.ts +4 -0
  146. package/dist/apis/admin/describe-log-dirs-v1.js +8 -0
  147. package/dist/apis/admin/describe-log-dirs-v2.d.ts +3 -2
  148. package/dist/apis/admin/describe-log-dirs-v2.js +9 -5
  149. package/dist/apis/admin/describe-log-dirs-v3.d.ts +3 -2
  150. package/dist/apis/admin/describe-log-dirs-v3.js +3 -2
  151. package/dist/apis/admin/describe-log-dirs-v4.d.ts +3 -2
  152. package/dist/apis/admin/describe-log-dirs-v4.js +1 -0
  153. package/dist/apis/admin/describe-producers-v0.js +1 -0
  154. package/dist/apis/admin/describe-quorum-v0.d.ts +13 -0
  155. package/dist/apis/admin/describe-quorum-v0.js +85 -0
  156. package/dist/apis/admin/describe-quorum-v1.d.ts +13 -0
  157. package/dist/apis/admin/describe-quorum-v1.js +84 -0
  158. package/dist/apis/admin/describe-quorum-v2.js +1 -0
  159. package/dist/apis/admin/describe-topic-partitions-v0.d.ts +3 -3
  160. package/dist/apis/admin/describe-topic-partitions-v0.js +5 -2
  161. package/dist/apis/admin/describe-transactions-v0.js +1 -0
  162. package/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +4 -3
  163. package/dist/apis/admin/describe-user-scram-credentials-v0.js +1 -0
  164. package/dist/apis/admin/envelope-v0.js +1 -0
  165. package/dist/apis/admin/expire-delegation-token-v0.d.ts +11 -0
  166. package/dist/apis/admin/expire-delegation-token-v0.js +29 -0
  167. package/dist/apis/admin/expire-delegation-token-v1.d.ts +4 -0
  168. package/dist/apis/admin/expire-delegation-token-v1.js +8 -0
  169. package/dist/apis/admin/expire-delegation-token-v2.js +1 -0
  170. package/dist/apis/admin/incremental-alter-configs-v0.d.ts +26 -0
  171. package/dist/apis/admin/incremental-alter-configs-v0.js +10 -0
  172. package/dist/apis/admin/incremental-alter-configs-v1.js +1 -0
  173. package/dist/apis/admin/index.d.ts +60 -0
  174. package/dist/apis/admin/index.js +60 -0
  175. package/dist/apis/admin/list-groups-v0.d.ts +18 -0
  176. package/dist/apis/admin/list-groups-v0.js +30 -0
  177. package/dist/apis/admin/list-groups-v1.d.ts +18 -0
  178. package/dist/apis/admin/list-groups-v1.js +37 -0
  179. package/dist/apis/admin/list-groups-v2.d.ts +18 -0
  180. package/dist/apis/admin/list-groups-v2.js +37 -0
  181. package/dist/apis/admin/list-groups-v3.d.ts +18 -0
  182. package/dist/apis/admin/list-groups-v3.js +38 -0
  183. package/dist/apis/admin/list-groups-v4.d.ts +4 -3
  184. package/dist/apis/admin/list-groups-v4.js +15 -4
  185. package/dist/apis/admin/list-groups-v5.d.ts +3 -3
  186. package/dist/apis/admin/list-groups-v5.js +25 -3
  187. package/dist/apis/admin/list-partition-reassignments-v0.d.ts +3 -3
  188. package/dist/apis/admin/list-partition-reassignments-v0.js +1 -0
  189. package/dist/apis/admin/list-transactions-v0.d.ts +5 -3
  190. package/dist/apis/admin/list-transactions-v0.js +23 -1
  191. package/dist/apis/admin/list-transactions-v1.d.ts +5 -3
  192. package/dist/apis/admin/list-transactions-v1.js +15 -1
  193. package/dist/apis/admin/list-transactions-v2.d.ts +5 -4
  194. package/dist/apis/admin/list-transactions-v2.js +17 -5
  195. package/dist/apis/admin/renew-delegation-token-v0.d.ts +11 -0
  196. package/dist/apis/admin/renew-delegation-token-v0.js +29 -0
  197. package/dist/apis/admin/renew-delegation-token-v1.d.ts +4 -0
  198. package/dist/apis/admin/renew-delegation-token-v1.js +8 -0
  199. package/dist/apis/admin/renew-delegation-token-v2.js +1 -0
  200. package/dist/apis/admin/unregister-broker-v0.js +1 -0
  201. package/dist/apis/admin/update-features-v0.d.ts +24 -0
  202. package/dist/apis/admin/update-features-v0.js +59 -0
  203. package/dist/apis/admin/update-features-v1.d.ts +2 -1
  204. package/dist/apis/admin/update-features-v1.js +1 -0
  205. package/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  206. package/dist/apis/consumer/consumer-group-heartbeat-v0.js +17 -10
  207. package/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
  208. package/dist/apis/consumer/consumer-group-heartbeat-v1.js +17 -10
  209. package/dist/apis/consumer/fetch-v10.d.ts +51 -0
  210. package/dist/apis/consumer/fetch-v10.js +122 -0
  211. package/dist/apis/consumer/fetch-v11.d.ts +51 -0
  212. package/dist/apis/consumer/fetch-v11.js +125 -0
  213. package/dist/apis/consumer/fetch-v12.d.ts +20 -4
  214. package/dist/apis/consumer/fetch-v12.js +29 -12
  215. package/dist/apis/consumer/fetch-v13.d.ts +20 -4
  216. package/dist/apis/consumer/fetch-v13.js +25 -7
  217. package/dist/apis/consumer/fetch-v14.d.ts +20 -4
  218. package/dist/apis/consumer/fetch-v14.js +25 -7
  219. package/dist/apis/consumer/fetch-v15.d.ts +20 -4
  220. package/dist/apis/consumer/fetch-v15.js +25 -7
  221. package/dist/apis/consumer/fetch-v16.d.ts +27 -4
  222. package/dist/apis/consumer/fetch-v16.js +36 -8
  223. package/dist/apis/consumer/fetch-v17.d.ts +28 -4
  224. package/dist/apis/consumer/fetch-v17.js +43 -9
  225. package/dist/apis/consumer/fetch-v4.d.ts +51 -0
  226. package/dist/apis/consumer/fetch-v4.js +87 -0
  227. package/dist/apis/consumer/fetch-v5.d.ts +51 -0
  228. package/dist/apis/consumer/fetch-v5.js +89 -0
  229. package/dist/apis/consumer/fetch-v6.d.ts +51 -0
  230. package/dist/apis/consumer/fetch-v6.js +99 -0
  231. package/dist/apis/consumer/fetch-v7.d.ts +51 -0
  232. package/dist/apis/consumer/fetch-v7.js +117 -0
  233. package/dist/apis/consumer/fetch-v8.d.ts +51 -0
  234. package/dist/apis/consumer/fetch-v8.js +117 -0
  235. package/dist/apis/consumer/fetch-v9.d.ts +51 -0
  236. package/dist/apis/consumer/fetch-v9.js +122 -0
  237. package/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
  238. package/dist/apis/consumer/heartbeat-v0.js +24 -0
  239. package/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
  240. package/dist/apis/consumer/heartbeat-v1.js +31 -0
  241. package/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
  242. package/dist/apis/consumer/heartbeat-v2.js +31 -0
  243. package/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
  244. package/dist/apis/consumer/heartbeat-v3.js +33 -0
  245. package/dist/apis/consumer/heartbeat-v4.js +1 -0
  246. package/dist/apis/consumer/index.d.ts +51 -0
  247. package/dist/apis/consumer/index.js +51 -0
  248. package/dist/apis/consumer/join-group-v0.d.ts +27 -0
  249. package/dist/apis/consumer/join-group-v0.js +51 -0
  250. package/dist/apis/consumer/join-group-v1.d.ts +8 -0
  251. package/dist/apis/consumer/join-group-v1.js +43 -0
  252. package/dist/apis/consumer/join-group-v2.d.ts +27 -0
  253. package/dist/apis/consumer/join-group-v2.js +60 -0
  254. package/dist/apis/consumer/join-group-v3.d.ts +27 -0
  255. package/dist/apis/consumer/join-group-v3.js +60 -0
  256. package/dist/apis/consumer/join-group-v4.d.ts +27 -0
  257. package/dist/apis/consumer/join-group-v4.js +60 -0
  258. package/dist/apis/consumer/join-group-v5.d.ts +27 -0
  259. package/dist/apis/consumer/join-group-v5.js +63 -0
  260. package/dist/apis/consumer/join-group-v6.d.ts +2 -2
  261. package/dist/apis/consumer/join-group-v6.js +10 -7
  262. package/dist/apis/consumer/join-group-v7.d.ts +2 -2
  263. package/dist/apis/consumer/join-group-v7.js +5 -3
  264. package/dist/apis/consumer/join-group-v8.d.ts +2 -2
  265. package/dist/apis/consumer/join-group-v8.js +5 -3
  266. package/dist/apis/consumer/join-group-v9.d.ts +2 -2
  267. package/dist/apis/consumer/join-group-v9.js +5 -3
  268. package/dist/apis/consumer/leave-group-v0.d.ts +22 -0
  269. package/dist/apis/consumer/leave-group-v0.js +23 -0
  270. package/dist/apis/consumer/leave-group-v1.d.ts +22 -0
  271. package/dist/apis/consumer/leave-group-v1.js +30 -0
  272. package/dist/apis/consumer/leave-group-v2.d.ts +22 -0
  273. package/dist/apis/consumer/leave-group-v2.js +30 -0
  274. package/dist/apis/consumer/leave-group-v3.d.ts +22 -0
  275. package/dist/apis/consumer/leave-group-v3.js +54 -0
  276. package/dist/apis/consumer/leave-group-v4.d.ts +1 -1
  277. package/dist/apis/consumer/leave-group-v4.js +4 -2
  278. package/dist/apis/consumer/leave-group-v5.d.ts +1 -1
  279. package/dist/apis/consumer/leave-group-v5.js +4 -2
  280. package/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
  281. package/dist/apis/consumer/list-offsets-v0.js +50 -0
  282. package/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
  283. package/dist/apis/consumer/list-offsets-v1.js +52 -0
  284. package/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
  285. package/dist/apis/consumer/list-offsets-v2.js +64 -0
  286. package/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
  287. package/dist/apis/consumer/list-offsets-v3.js +64 -0
  288. package/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
  289. package/dist/apis/consumer/list-offsets-v4.js +67 -0
  290. package/dist/apis/consumer/list-offsets-v6.js +6 -3
  291. package/dist/apis/consumer/list-offsets-v7.js +6 -3
  292. package/dist/apis/consumer/list-offsets-v8.js +6 -3
  293. package/dist/apis/consumer/list-offsets-v9.js +6 -3
  294. package/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
  295. package/dist/apis/consumer/offset-commit-v0.js +52 -0
  296. package/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
  297. package/dist/apis/consumer/offset-commit-v1.js +30 -0
  298. package/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
  299. package/dist/apis/consumer/offset-commit-v2.js +31 -0
  300. package/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
  301. package/dist/apis/consumer/offset-commit-v3.js +58 -0
  302. package/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
  303. package/dist/apis/consumer/offset-commit-v4.js +58 -0
  304. package/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
  305. package/dist/apis/consumer/offset-commit-v5.js +56 -0
  306. package/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
  307. package/dist/apis/consumer/offset-commit-v6.js +60 -0
  308. package/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
  309. package/dist/apis/consumer/offset-commit-v7.js +62 -0
  310. package/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
  311. package/dist/apis/consumer/offset-commit-v8.js +6 -3
  312. package/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  313. package/dist/apis/consumer/offset-commit-v9.js +6 -3
  314. package/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
  315. package/dist/apis/consumer/offset-fetch-v0.js +62 -0
  316. package/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
  317. package/dist/apis/consumer/offset-fetch-v1.js +41 -0
  318. package/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
  319. package/dist/apis/consumer/offset-fetch-v2.js +48 -0
  320. package/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
  321. package/dist/apis/consumer/offset-fetch-v3.js +64 -0
  322. package/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
  323. package/dist/apis/consumer/offset-fetch-v4.js +64 -0
  324. package/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
  325. package/dist/apis/consumer/offset-fetch-v5.js +65 -0
  326. package/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
  327. package/dist/apis/consumer/offset-fetch-v6.js +68 -0
  328. package/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
  329. package/dist/apis/consumer/offset-fetch-v7.js +70 -0
  330. package/dist/apis/consumer/offset-fetch-v8.js +5 -2
  331. package/dist/apis/consumer/offset-fetch-v9.js +5 -2
  332. package/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
  333. package/dist/apis/consumer/offset-for-leader-epoch-v0.js +48 -0
  334. package/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
  335. package/dist/apis/consumer/offset-for-leader-epoch-v1.js +54 -0
  336. package/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
  337. package/dist/apis/consumer/offset-for-leader-epoch-v2.js +58 -0
  338. package/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
  339. package/dist/apis/consumer/offset-for-leader-epoch-v3.js +59 -0
  340. package/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
  341. package/dist/apis/consumer/offset-for-leader-epoch-v4.js +11 -8
  342. package/dist/apis/consumer/sync-group-v0.d.ts +18 -0
  343. package/dist/apis/consumer/sync-group-v0.js +38 -0
  344. package/dist/apis/consumer/sync-group-v1.d.ts +18 -0
  345. package/dist/apis/consumer/sync-group-v1.js +39 -0
  346. package/dist/apis/consumer/sync-group-v2.d.ts +18 -0
  347. package/dist/apis/consumer/sync-group-v2.js +39 -0
  348. package/dist/apis/consumer/sync-group-v3.d.ts +18 -0
  349. package/dist/apis/consumer/sync-group-v3.js +41 -0
  350. package/dist/apis/consumer/sync-group-v4.js +1 -0
  351. package/dist/apis/consumer/sync-group-v5.js +1 -0
  352. package/dist/apis/definitions.d.ts +1 -1
  353. package/dist/apis/enumerations.d.ts +21 -6
  354. package/dist/apis/enumerations.js +57 -5
  355. package/dist/apis/index.d.ts +1 -0
  356. package/dist/apis/index.js +1 -0
  357. package/dist/apis/metadata/api-versions-v0.d.ts +17 -0
  358. package/dist/apis/metadata/api-versions-v0.js +24 -0
  359. package/dist/apis/metadata/api-versions-v1.d.ts +17 -0
  360. package/dist/apis/metadata/api-versions-v1.js +39 -0
  361. package/dist/apis/metadata/api-versions-v2.d.ts +17 -0
  362. package/dist/apis/metadata/api-versions-v2.js +39 -0
  363. package/dist/apis/metadata/api-versions-v3.d.ts +16 -2
  364. package/dist/apis/metadata/api-versions-v3.js +43 -4
  365. package/dist/apis/metadata/api-versions-v4.d.ts +16 -2
  366. package/dist/apis/metadata/api-versions-v4.js +35 -3
  367. package/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
  368. package/dist/apis/metadata/find-coordinator-v0.js +24 -0
  369. package/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
  370. package/dist/apis/metadata/find-coordinator-v1.js +41 -0
  371. package/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
  372. package/dist/apis/metadata/find-coordinator-v2.js +41 -0
  373. package/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
  374. package/dist/apis/metadata/find-coordinator-v3.js +44 -0
  375. package/dist/apis/metadata/find-coordinator-v4.js +3 -1
  376. package/dist/apis/metadata/find-coordinator-v5.js +3 -1
  377. package/dist/apis/metadata/find-coordinator-v6.js +3 -1
  378. package/dist/apis/metadata/index.d.ts +16 -0
  379. package/dist/apis/metadata/index.js +16 -0
  380. package/dist/apis/metadata/metadata-v0.d.ts +38 -0
  381. package/dist/apis/metadata/metadata-v0.js +47 -0
  382. package/dist/apis/metadata/metadata-v1.d.ts +38 -0
  383. package/dist/apis/metadata/metadata-v1.js +52 -0
  384. package/dist/apis/metadata/metadata-v10.d.ts +4 -2
  385. package/dist/apis/metadata/metadata-v10.js +29 -16
  386. package/dist/apis/metadata/metadata-v11.d.ts +3 -2
  387. package/dist/apis/metadata/metadata-v11.js +23 -15
  388. package/dist/apis/metadata/metadata-v12.d.ts +9 -2
  389. package/dist/apis/metadata/metadata-v12.js +21 -9
  390. package/dist/apis/metadata/metadata-v2.d.ts +38 -0
  391. package/dist/apis/metadata/metadata-v2.js +52 -0
  392. package/dist/apis/metadata/metadata-v3.d.ts +38 -0
  393. package/dist/apis/metadata/metadata-v3.js +52 -0
  394. package/dist/apis/metadata/metadata-v4.d.ts +38 -0
  395. package/dist/apis/metadata/metadata-v4.js +54 -0
  396. package/dist/apis/metadata/metadata-v5.d.ts +38 -0
  397. package/dist/apis/metadata/metadata-v5.js +85 -0
  398. package/dist/apis/metadata/metadata-v6.d.ts +38 -0
  399. package/dist/apis/metadata/metadata-v6.js +85 -0
  400. package/dist/apis/metadata/metadata-v7.d.ts +38 -0
  401. package/dist/apis/metadata/metadata-v7.js +86 -0
  402. package/dist/apis/metadata/metadata-v8.d.ts +39 -0
  403. package/dist/apis/metadata/metadata-v8.js +94 -0
  404. package/dist/apis/metadata/metadata-v9.d.ts +5 -3
  405. package/dist/apis/metadata/metadata-v9.js +28 -21
  406. package/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
  407. package/dist/apis/producer/add-offsets-to-txn-v0.js +30 -0
  408. package/dist/apis/producer/add-offsets-to-txn-v3.js +1 -0
  409. package/dist/apis/producer/add-offsets-to-txn-v4.js +1 -0
  410. package/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
  411. package/dist/apis/producer/add-partitions-to-txn-v0.js +62 -0
  412. package/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
  413. package/dist/apis/producer/add-partitions-to-txn-v1.js +9 -0
  414. package/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
  415. package/dist/apis/producer/add-partitions-to-txn-v2.js +9 -0
  416. package/dist/apis/producer/add-partitions-to-txn-v3.js +13 -8
  417. package/dist/apis/producer/add-partitions-to-txn-v4.js +11 -5
  418. package/dist/apis/producer/add-partitions-to-txn-v5.js +11 -5
  419. package/dist/apis/producer/end-txn-v0.d.ts +10 -0
  420. package/dist/apis/producer/end-txn-v0.js +30 -0
  421. package/dist/apis/producer/end-txn-v1.d.ts +5 -0
  422. package/dist/apis/producer/end-txn-v1.js +9 -0
  423. package/dist/apis/producer/end-txn-v2.d.ts +5 -0
  424. package/dist/apis/producer/end-txn-v2.js +9 -0
  425. package/dist/apis/producer/end-txn-v3.js +1 -0
  426. package/dist/apis/producer/end-txn-v4.js +1 -0
  427. package/dist/apis/producer/index.d.ts +17 -0
  428. package/dist/apis/producer/index.js +17 -0
  429. package/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
  430. package/dist/apis/producer/init-producer-id-v0.js +31 -0
  431. package/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
  432. package/dist/apis/producer/init-producer-id-v1.js +9 -0
  433. package/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
  434. package/dist/apis/producer/init-producer-id-v2.js +24 -0
  435. package/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
  436. package/dist/apis/producer/init-producer-id-v3.js +9 -1
  437. package/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
  438. package/dist/apis/producer/init-producer-id-v4.js +9 -1
  439. package/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
  440. package/dist/apis/producer/init-producer-id-v5.js +9 -1
  441. package/dist/apis/producer/produce-v10.d.ts +13 -0
  442. package/dist/apis/producer/produce-v10.js +68 -6
  443. package/dist/apis/producer/produce-v11.d.ts +13 -0
  444. package/dist/apis/producer/produce-v11.js +68 -6
  445. package/dist/apis/producer/produce-v3.d.ts +29 -0
  446. package/dist/apis/producer/produce-v3.js +88 -0
  447. package/dist/apis/producer/produce-v4.d.ts +29 -0
  448. package/dist/apis/producer/produce-v4.js +88 -0
  449. package/dist/apis/producer/produce-v5.d.ts +29 -0
  450. package/dist/apis/producer/produce-v5.js +88 -0
  451. package/dist/apis/producer/produce-v6.d.ts +29 -0
  452. package/dist/apis/producer/produce-v6.js +88 -0
  453. package/dist/apis/producer/produce-v7.d.ts +1 -0
  454. package/dist/apis/producer/produce-v7.js +24 -2
  455. package/dist/apis/producer/produce-v8.d.ts +1 -0
  456. package/dist/apis/producer/produce-v8.js +23 -1
  457. package/dist/apis/producer/produce-v9.d.ts +1 -0
  458. package/dist/apis/producer/produce-v9.js +33 -4
  459. package/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
  460. package/dist/apis/producer/txn-offset-commit-v0.js +60 -0
  461. package/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
  462. package/dist/apis/producer/txn-offset-commit-v1.js +60 -0
  463. package/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
  464. package/dist/apis/producer/txn-offset-commit-v2.js +62 -0
  465. package/dist/apis/producer/txn-offset-commit-v3.js +7 -3
  466. package/dist/apis/producer/txn-offset-commit-v4.js +7 -3
  467. package/dist/apis/producer/utils.d.ts +11 -0
  468. package/dist/apis/producer/utils.js +31 -0
  469. package/dist/apis/security/index.d.ts +3 -0
  470. package/dist/apis/security/index.js +3 -0
  471. package/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
  472. package/dist/apis/security/sasl-authenticate-v0.js +30 -0
  473. package/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
  474. package/dist/apis/security/sasl-authenticate-v1.js +30 -0
  475. package/dist/apis/security/sasl-authenticate-v2.js +1 -0
  476. package/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
  477. package/dist/apis/security/sasl-handshake-v0.js +28 -0
  478. package/dist/apis/tagged-fields.d.ts +7 -0
  479. package/dist/apis/tagged-fields.js +27 -0
  480. package/dist/apis/telemetry/compression-types.d.ts +8 -0
  481. package/dist/apis/telemetry/compression-types.js +7 -0
  482. package/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
  483. package/dist/apis/telemetry/get-telemetry-subscriptions-v0.js +1 -0
  484. package/dist/apis/telemetry/index.d.ts +3 -0
  485. package/dist/apis/telemetry/index.js +3 -0
  486. package/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
  487. package/dist/apis/telemetry/list-client-metrics-resources-v0.js +13 -8
  488. package/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
  489. package/dist/apis/telemetry/list-config-resources-v1.js +38 -0
  490. package/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
  491. package/dist/apis/telemetry/push-telemetry-v0.js +1 -0
  492. package/dist/clients/admin/admin.js +85 -25
  493. package/dist/clients/admin/options.d.ts +4 -4
  494. package/dist/clients/admin/options.js +3 -3
  495. package/dist/clients/admin/types.d.ts +1 -1
  496. package/dist/clients/base/base.d.ts +2 -2
  497. package/dist/clients/base/base.js +42 -9
  498. package/dist/clients/base/options.d.ts +4 -0
  499. package/dist/clients/base/options.js +2 -1
  500. package/dist/clients/base/types.d.ts +1 -0
  501. package/dist/clients/consumer/consumer-protocol.d.ts +32 -0
  502. package/dist/clients/consumer/consumer-protocol.js +114 -0
  503. package/dist/clients/consumer/consumer.d.ts +3 -2
  504. package/dist/clients/consumer/consumer.js +367 -98
  505. package/dist/clients/consumer/index.d.ts +2 -0
  506. package/dist/clients/consumer/index.js +2 -0
  507. package/dist/clients/consumer/messages-stream.d.ts +4 -2
  508. package/dist/clients/consumer/messages-stream.js +135 -15
  509. package/dist/clients/consumer/partitions-assigners.d.ts +3 -0
  510. package/dist/clients/consumer/partitions-assigners.js +259 -0
  511. package/dist/clients/consumer/types.d.ts +11 -0
  512. package/dist/clients/producer/producer.d.ts +1 -1
  513. package/dist/clients/producer/producer.js +7 -2
  514. package/dist/errors.js +12 -1
  515. package/dist/network/connection.d.ts +1 -1
  516. package/dist/network/connection.js +148 -59
  517. package/dist/protocol/compression.d.ts +6 -0
  518. package/dist/protocol/compression.js +14 -1
  519. package/dist/protocol/definitions.js +1 -1
  520. package/dist/protocol/reader.js +7 -3
  521. package/dist/protocol/records.d.ts +1 -0
  522. package/dist/protocol/records.js +40 -17
  523. package/dist/protocol/writer.js +17 -4
  524. package/dist/registries/confluent-schema-registry.d.ts +2 -1
  525. package/dist/registries/confluent-schema-registry.js +2 -1
  526. package/dist/symbols.d.ts +1 -0
  527. package/dist/symbols.js +1 -0
  528. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v0.d.ts +40 -0
  529. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +6 -5
  530. package/dist/typescript-4/dist/apis/admin/alter-configs-v0.d.ts +7 -0
  531. package/dist/typescript-4/dist/apis/admin/alter-configs-v1.d.ts +2 -0
  532. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +3 -2
  533. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v1.d.ts +6 -4
  534. package/dist/typescript-4/dist/apis/admin/alter-partition-v0.d.ts +40 -0
  535. package/dist/typescript-4/dist/apis/admin/alter-partition-v1.d.ts +37 -0
  536. package/dist/typescript-4/dist/apis/admin/alter-partition-v2.d.ts +36 -0
  537. package/dist/typescript-4/dist/apis/admin/alter-partition-v3.d.ts +6 -35
  538. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v0.d.ts +23 -0
  539. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v1.d.ts +4 -0
  540. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +1 -1
  541. package/dist/typescript-4/dist/apis/admin/client-quotas.d.ts +2 -0
  542. package/dist/typescript-4/dist/apis/admin/consumer-group-describe-v0.d.ts +2 -1
  543. package/dist/typescript-4/dist/apis/admin/create-acls-v0.d.ts +16 -0
  544. package/dist/typescript-4/dist/apis/admin/create-acls-v1.d.ts +15 -0
  545. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v0.d.ts +24 -0
  546. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v1.d.ts +4 -0
  547. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v2.d.ts +9 -0
  548. package/dist/typescript-4/dist/apis/admin/create-partitions-v0.d.ts +2 -0
  549. package/dist/typescript-4/dist/apis/admin/create-partitions-v1.d.ts +2 -2
  550. package/dist/typescript-4/dist/apis/admin/create-partitions-v2.d.ts +2 -2
  551. package/dist/typescript-4/dist/apis/admin/create-topics-v0.d.ts +42 -0
  552. package/dist/typescript-4/dist/apis/admin/create-topics-v1.d.ts +42 -0
  553. package/dist/typescript-4/dist/apis/admin/create-topics-v2.d.ts +42 -0
  554. package/dist/typescript-4/dist/apis/admin/create-topics-v3.d.ts +42 -0
  555. package/dist/typescript-4/dist/apis/admin/create-topics-v4.d.ts +42 -0
  556. package/dist/typescript-4/dist/apis/admin/create-topics-v5.d.ts +42 -0
  557. package/dist/typescript-4/dist/apis/admin/create-topics-v6.d.ts +42 -0
  558. package/dist/typescript-4/dist/apis/admin/create-topics-v7.d.ts +2 -1
  559. package/dist/typescript-4/dist/apis/admin/delete-acls-v0.d.ts +28 -0
  560. package/dist/typescript-4/dist/apis/admin/delete-acls-v1.d.ts +27 -0
  561. package/dist/typescript-4/dist/apis/admin/delete-groups-v0.d.ts +14 -0
  562. package/dist/typescript-4/dist/apis/admin/delete-groups-v1.d.ts +14 -0
  563. package/dist/typescript-4/dist/apis/admin/delete-records-v0.d.ts +27 -0
  564. package/dist/typescript-4/dist/apis/admin/delete-records-v1.d.ts +27 -0
  565. package/dist/typescript-4/dist/apis/admin/delete-topics-v0.d.ts +19 -0
  566. package/dist/typescript-4/dist/apis/admin/delete-topics-v1.d.ts +19 -0
  567. package/dist/typescript-4/dist/apis/admin/delete-topics-v2.d.ts +19 -0
  568. package/dist/typescript-4/dist/apis/admin/delete-topics-v3.d.ts +19 -0
  569. package/dist/typescript-4/dist/apis/admin/delete-topics-v4.d.ts +19 -0
  570. package/dist/typescript-4/dist/apis/admin/delete-topics-v5.d.ts +19 -0
  571. package/dist/typescript-4/dist/apis/admin/delete-topics-v6.d.ts +1 -1
  572. package/dist/typescript-4/dist/apis/admin/describe-acls-v0.d.ts +21 -0
  573. package/dist/typescript-4/dist/apis/admin/describe-acls-v1.d.ts +21 -0
  574. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +8 -7
  575. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v1.d.ts +9 -0
  576. package/dist/typescript-4/dist/apis/admin/describe-cluster-v0.d.ts +4 -3
  577. package/dist/typescript-4/dist/apis/admin/describe-cluster-v1.d.ts +4 -3
  578. package/dist/typescript-4/dist/apis/admin/describe-configs-v0.d.ts +41 -0
  579. package/dist/typescript-4/dist/apis/admin/describe-configs-v1.d.ts +39 -0
  580. package/dist/typescript-4/dist/apis/admin/describe-configs-v2.d.ts +9 -8
  581. package/dist/typescript-4/dist/apis/admin/describe-configs-v3.d.ts +9 -8
  582. package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +2 -2
  583. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v0.d.ts +31 -0
  584. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v1.d.ts +4 -0
  585. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v2.d.ts +8 -0
  586. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v3.d.ts +4 -27
  587. package/dist/typescript-4/dist/apis/admin/describe-groups-v0.d.ts +28 -0
  588. package/dist/typescript-4/dist/apis/admin/describe-groups-v1.d.ts +28 -0
  589. package/dist/typescript-4/dist/apis/admin/describe-groups-v2.d.ts +28 -0
  590. package/dist/typescript-4/dist/apis/admin/describe-groups-v3.d.ts +28 -0
  591. package/dist/typescript-4/dist/apis/admin/describe-groups-v4.d.ts +28 -0
  592. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v0.d.ts +30 -0
  593. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v1.d.ts +4 -0
  594. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v2.d.ts +3 -2
  595. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v3.d.ts +3 -2
  596. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v4.d.ts +3 -2
  597. package/dist/typescript-4/dist/apis/admin/describe-quorum-v0.d.ts +13 -0
  598. package/dist/typescript-4/dist/apis/admin/describe-quorum-v1.d.ts +13 -0
  599. package/dist/typescript-4/dist/apis/admin/describe-topic-partitions-v0.d.ts +3 -3
  600. package/dist/typescript-4/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +4 -3
  601. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v0.d.ts +11 -0
  602. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v1.d.ts +4 -0
  603. package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v0.d.ts +26 -0
  604. package/dist/typescript-4/dist/apis/admin/index.d.ts +60 -0
  605. package/dist/typescript-4/dist/apis/admin/list-groups-v0.d.ts +18 -0
  606. package/dist/typescript-4/dist/apis/admin/list-groups-v1.d.ts +18 -0
  607. package/dist/typescript-4/dist/apis/admin/list-groups-v2.d.ts +18 -0
  608. package/dist/typescript-4/dist/apis/admin/list-groups-v3.d.ts +18 -0
  609. package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +4 -3
  610. package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +3 -3
  611. package/dist/typescript-4/dist/apis/admin/list-partition-reassignments-v0.d.ts +3 -3
  612. package/dist/typescript-4/dist/apis/admin/list-transactions-v0.d.ts +5 -3
  613. package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +5 -3
  614. package/dist/typescript-4/dist/apis/admin/list-transactions-v2.d.ts +5 -4
  615. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v0.d.ts +11 -0
  616. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v1.d.ts +4 -0
  617. package/dist/typescript-4/dist/apis/admin/update-features-v0.d.ts +24 -0
  618. package/dist/typescript-4/dist/apis/admin/update-features-v1.d.ts +2 -1
  619. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  620. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
  621. package/dist/typescript-4/dist/apis/consumer/fetch-v10.d.ts +51 -0
  622. package/dist/typescript-4/dist/apis/consumer/fetch-v11.d.ts +51 -0
  623. package/dist/typescript-4/dist/apis/consumer/fetch-v12.d.ts +20 -4
  624. package/dist/typescript-4/dist/apis/consumer/fetch-v13.d.ts +20 -4
  625. package/dist/typescript-4/dist/apis/consumer/fetch-v14.d.ts +20 -4
  626. package/dist/typescript-4/dist/apis/consumer/fetch-v15.d.ts +20 -4
  627. package/dist/typescript-4/dist/apis/consumer/fetch-v16.d.ts +27 -4
  628. package/dist/typescript-4/dist/apis/consumer/fetch-v17.d.ts +28 -4
  629. package/dist/typescript-4/dist/apis/consumer/fetch-v4.d.ts +51 -0
  630. package/dist/typescript-4/dist/apis/consumer/fetch-v5.d.ts +51 -0
  631. package/dist/typescript-4/dist/apis/consumer/fetch-v6.d.ts +51 -0
  632. package/dist/typescript-4/dist/apis/consumer/fetch-v7.d.ts +51 -0
  633. package/dist/typescript-4/dist/apis/consumer/fetch-v8.d.ts +51 -0
  634. package/dist/typescript-4/dist/apis/consumer/fetch-v9.d.ts +51 -0
  635. package/dist/typescript-4/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
  636. package/dist/typescript-4/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
  637. package/dist/typescript-4/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
  638. package/dist/typescript-4/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
  639. package/dist/typescript-4/dist/apis/consumer/index.d.ts +51 -0
  640. package/dist/typescript-4/dist/apis/consumer/join-group-v0.d.ts +27 -0
  641. package/dist/typescript-4/dist/apis/consumer/join-group-v1.d.ts +8 -0
  642. package/dist/typescript-4/dist/apis/consumer/join-group-v2.d.ts +27 -0
  643. package/dist/typescript-4/dist/apis/consumer/join-group-v3.d.ts +27 -0
  644. package/dist/typescript-4/dist/apis/consumer/join-group-v4.d.ts +27 -0
  645. package/dist/typescript-4/dist/apis/consumer/join-group-v5.d.ts +27 -0
  646. package/dist/typescript-4/dist/apis/consumer/join-group-v6.d.ts +2 -2
  647. package/dist/typescript-4/dist/apis/consumer/join-group-v7.d.ts +2 -2
  648. package/dist/typescript-4/dist/apis/consumer/join-group-v8.d.ts +2 -2
  649. package/dist/typescript-4/dist/apis/consumer/join-group-v9.d.ts +2 -2
  650. package/dist/typescript-4/dist/apis/consumer/leave-group-v0.d.ts +22 -0
  651. package/dist/typescript-4/dist/apis/consumer/leave-group-v1.d.ts +22 -0
  652. package/dist/typescript-4/dist/apis/consumer/leave-group-v2.d.ts +22 -0
  653. package/dist/typescript-4/dist/apis/consumer/leave-group-v3.d.ts +22 -0
  654. package/dist/typescript-4/dist/apis/consumer/leave-group-v4.d.ts +1 -1
  655. package/dist/typescript-4/dist/apis/consumer/leave-group-v5.d.ts +1 -1
  656. package/dist/typescript-4/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
  657. package/dist/typescript-4/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
  658. package/dist/typescript-4/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
  659. package/dist/typescript-4/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
  660. package/dist/typescript-4/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
  661. package/dist/typescript-4/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
  662. package/dist/typescript-4/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
  663. package/dist/typescript-4/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
  664. package/dist/typescript-4/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
  665. package/dist/typescript-4/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
  666. package/dist/typescript-4/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
  667. package/dist/typescript-4/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
  668. package/dist/typescript-4/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
  669. package/dist/typescript-4/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
  670. package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  671. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
  672. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
  673. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
  674. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
  675. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
  676. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
  677. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
  678. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
  679. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
  680. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
  681. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
  682. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
  683. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
  684. package/dist/typescript-4/dist/apis/consumer/sync-group-v0.d.ts +18 -0
  685. package/dist/typescript-4/dist/apis/consumer/sync-group-v1.d.ts +18 -0
  686. package/dist/typescript-4/dist/apis/consumer/sync-group-v2.d.ts +18 -0
  687. package/dist/typescript-4/dist/apis/consumer/sync-group-v3.d.ts +18 -0
  688. package/dist/typescript-4/dist/apis/definitions.d.ts +1 -1
  689. package/dist/typescript-4/dist/apis/enumerations.d.ts +21 -6
  690. package/dist/typescript-4/dist/apis/index.d.ts +1 -0
  691. package/dist/typescript-4/dist/apis/metadata/api-versions-v0.d.ts +17 -0
  692. package/dist/typescript-4/dist/apis/metadata/api-versions-v1.d.ts +17 -0
  693. package/dist/typescript-4/dist/apis/metadata/api-versions-v2.d.ts +17 -0
  694. package/dist/typescript-4/dist/apis/metadata/api-versions-v3.d.ts +16 -2
  695. package/dist/typescript-4/dist/apis/metadata/api-versions-v4.d.ts +16 -2
  696. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
  697. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
  698. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
  699. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
  700. package/dist/typescript-4/dist/apis/metadata/index.d.ts +16 -0
  701. package/dist/typescript-4/dist/apis/metadata/metadata-v0.d.ts +38 -0
  702. package/dist/typescript-4/dist/apis/metadata/metadata-v1.d.ts +38 -0
  703. package/dist/typescript-4/dist/apis/metadata/metadata-v10.d.ts +4 -2
  704. package/dist/typescript-4/dist/apis/metadata/metadata-v11.d.ts +3 -2
  705. package/dist/typescript-4/dist/apis/metadata/metadata-v12.d.ts +9 -2
  706. package/dist/typescript-4/dist/apis/metadata/metadata-v2.d.ts +38 -0
  707. package/dist/typescript-4/dist/apis/metadata/metadata-v3.d.ts +38 -0
  708. package/dist/typescript-4/dist/apis/metadata/metadata-v4.d.ts +38 -0
  709. package/dist/typescript-4/dist/apis/metadata/metadata-v5.d.ts +38 -0
  710. package/dist/typescript-4/dist/apis/metadata/metadata-v6.d.ts +38 -0
  711. package/dist/typescript-4/dist/apis/metadata/metadata-v7.d.ts +38 -0
  712. package/dist/typescript-4/dist/apis/metadata/metadata-v8.d.ts +39 -0
  713. package/dist/typescript-4/dist/apis/metadata/metadata-v9.d.ts +5 -3
  714. package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
  715. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
  716. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
  717. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
  718. package/dist/typescript-4/dist/apis/producer/end-txn-v0.d.ts +10 -0
  719. package/dist/typescript-4/dist/apis/producer/end-txn-v1.d.ts +5 -0
  720. package/dist/typescript-4/dist/apis/producer/end-txn-v2.d.ts +5 -0
  721. package/dist/typescript-4/dist/apis/producer/index.d.ts +17 -0
  722. package/dist/typescript-4/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
  723. package/dist/typescript-4/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
  724. package/dist/typescript-4/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
  725. package/dist/typescript-4/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
  726. package/dist/typescript-4/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
  727. package/dist/typescript-4/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
  728. package/dist/typescript-4/dist/apis/producer/produce-v10.d.ts +13 -0
  729. package/dist/typescript-4/dist/apis/producer/produce-v11.d.ts +13 -0
  730. package/dist/typescript-4/dist/apis/producer/produce-v3.d.ts +29 -0
  731. package/dist/typescript-4/dist/apis/producer/produce-v4.d.ts +29 -0
  732. package/dist/typescript-4/dist/apis/producer/produce-v5.d.ts +29 -0
  733. package/dist/typescript-4/dist/apis/producer/produce-v6.d.ts +29 -0
  734. package/dist/typescript-4/dist/apis/producer/produce-v7.d.ts +1 -0
  735. package/dist/typescript-4/dist/apis/producer/produce-v8.d.ts +1 -0
  736. package/dist/typescript-4/dist/apis/producer/produce-v9.d.ts +1 -0
  737. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
  738. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
  739. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
  740. package/dist/typescript-4/dist/apis/producer/utils.d.ts +11 -0
  741. package/dist/typescript-4/dist/apis/security/index.d.ts +3 -0
  742. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
  743. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
  744. package/dist/typescript-4/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
  745. package/dist/typescript-4/dist/apis/tagged-fields.d.ts +7 -0
  746. package/dist/typescript-4/dist/apis/telemetry/compression-types.d.ts +8 -0
  747. package/dist/typescript-4/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
  748. package/dist/typescript-4/dist/apis/telemetry/index.d.ts +3 -0
  749. package/dist/typescript-4/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
  750. package/dist/typescript-4/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
  751. package/dist/typescript-4/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
  752. package/dist/typescript-4/dist/clients/admin/options.d.ts +4 -4
  753. package/dist/typescript-4/dist/clients/admin/types.d.ts +1 -1
  754. package/dist/typescript-4/dist/clients/base/base.d.ts +2 -2
  755. package/dist/typescript-4/dist/clients/base/options.d.ts +4 -0
  756. package/dist/typescript-4/dist/clients/base/types.d.ts +1 -0
  757. package/dist/typescript-4/dist/clients/consumer/consumer-protocol.d.ts +32 -0
  758. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +3 -2
  759. package/dist/typescript-4/dist/clients/consumer/index.d.ts +2 -0
  760. package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +4 -2
  761. package/dist/typescript-4/dist/clients/consumer/partitions-assigners.d.ts +4 -1
  762. package/dist/typescript-4/dist/clients/consumer/types.d.ts +11 -0
  763. package/dist/typescript-4/dist/clients/producer/producer.d.ts +1 -1
  764. package/dist/typescript-4/dist/network/connection.d.ts +1 -1
  765. package/dist/typescript-4/dist/protocol/compression.d.ts +7 -1
  766. package/dist/typescript-4/dist/protocol/records.d.ts +1 -0
  767. package/dist/typescript-4/dist/registries/confluent-schema-registry.d.ts +2 -1
  768. package/dist/typescript-4/dist/symbols.d.ts +1 -0
  769. package/dist/version.js +1 -1
  770. package/package.json +6 -2
@@ -2,18 +2,17 @@ import { randomUUID } from 'node:crypto';
2
2
  import { createPromisifiedCallback, kCallbackPromise, runConcurrentCallbacks } from "../../apis/callbacks.js";
3
3
  import { FetchIsolationLevels, FindCoordinatorKeyTypes } from "../../apis/enumerations.js";
4
4
  import { consumerCommitsChannel, consumerConsumesChannel, consumerFetchesChannel, consumerGroupChannel, consumerHeartbeatChannel, consumerLagChannel, consumerOffsetsChannel, createDiagnosticContext } from "../../diagnostic.js";
5
- import { findErrorBy, NetworkError, protocolErrors, UserError } from "../../errors.js";
6
- import { INT32_SIZE } from "../../protocol/definitions.js";
7
- import { Reader } from "../../protocol/reader.js";
5
+ import { findErrorBy, MultipleErrors, NetworkError, protocolErrors, UserError } from "../../errors.js";
8
6
  import { IS_CONTROL } from "../../protocol/records.js";
9
7
  import { Writer } from "../../protocol/writer.js";
10
- import { kAutocommit, kGetFetchNode, kRefreshOffsetsAndFetch } from "../../symbols.js";
8
+ import { kAutocommit, kGetFetchNode, kRefreshOffsetsAndFetch, kUpdateCommittedOffset } from "../../symbols.js";
11
9
  import { emitExperimentalApiWarning } from "../../utils.js";
12
10
  import { Base, kAfterCreate, kCheckNotClosed, kClosed, kConnections, kCreateConnectionPool, kFormatValidationErrors, kGetApi, kGetBootstrapConnection, kGetConnection, kMetadata, kOptions, kPerformDeduplicated, kPerformWithRetry, kPrometheus, kValidateOptions } from "../base/base.js";
13
11
  import { ensureMetric } from "../metrics.js";
14
12
  import { MessagesStream } from "./messages-stream.js";
13
+ import { CONSUMER_PROTOCOL_HIGHEST_VERSION, decodeCooperativeStickyGeneration, decodeConsumerProtocolAssignment, decodeConsumerProtocolSubscription, encodeConsumerProtocolAssignment, encodeConsumerProtocolSubscription } from "./consumer-protocol.js";
15
14
  import { commitOptionsValidator, consumeOptionsValidator, consumerOptionsValidator, defaultConsumerOptions, fetchOptionsValidator, getLagOptionsValidator, groupIdAndOptionsValidator, groupOptionsValidator, listCommitsOptionsValidator, listOffsetsOptionsValidator } from "./options.js";
16
- import { roundRobinAssigner } from "./partitions-assigners.js";
15
+ import { COOPERATIVE_STICKY_ASSIGNOR, cooperativeStickyAssigner, roundRobinAssigner } from "./partitions-assigners.js";
17
16
  import { TopicsMap } from "./topics-map.js";
18
17
  import { nextFetchEpoch, partitionKey } from "./utils.js";
19
18
  export class Consumer extends Base {
@@ -170,7 +169,7 @@ export class Consumer extends Base {
170
169
  return false;
171
170
  }
172
171
  if (this.#useConsumerGroupProtocol) {
173
- return !!this.memberId && this.#memberEpoch >= 0;
172
+ return !!this.memberId && this.#memberEpoch > 0;
174
173
  }
175
174
  // We consider the group ready if we have a groupId, a memberId and heartbeat interval
176
175
  return this.#membershipActive && Boolean(this.groupId) && Boolean(this.memberId) && this.#heartbeatInterval !== null;
@@ -362,6 +361,13 @@ export class Consumer extends Base {
362
361
  throw validationError;
363
362
  }
364
363
  this.#lagMonitoring = setTimeout(() => {
364
+ // Skip this tick while mid-(re)join: listOffsets adds load to a coordinator/cluster that
365
+ // may already be struggling, and any lag figure computed against stale/absent assignments
366
+ // would be meaningless anyway. Just reschedule and try again next tick.
367
+ if (!this.isActive()) {
368
+ this.#lagMonitoring.refresh();
369
+ return;
370
+ }
365
371
  this.getLag(options, () => this.#lagMonitoring.refresh());
366
372
  }, interval);
367
373
  }
@@ -592,7 +598,36 @@ export class Consumer extends Base {
592
598
  }
593
599
  }
594
600
  }
601
+ // Fetch v12 identifies topics by name, while later versions use UUIDs.
602
+ const useTopicNames = api.version <= 12;
603
+ let topicIdsByName;
604
+ if (useTopicNames) {
605
+ // Built here rather than in the response callback so that the fetch loop allocates
606
+ // it once per request instead of once per request and once per response.
607
+ topicIdsByName = new Map();
608
+ for (const [id, name] of topicIds) {
609
+ topicIdsByName.set(name, id);
610
+ }
611
+ requestTopics = requestTopics.map(topic => ({
612
+ ...topic,
613
+ topicId: topicIds.get(topic.topicId) ?? topic.topicId
614
+ }));
615
+ for (const forgotten of forgottenTopicsData) {
616
+ const topicId = forgotten.topicId ?? forgotten.topic;
617
+ forgotten.topicId = topicIds.get(topicId) ?? topicId;
618
+ delete forgotten.topic;
619
+ }
620
+ }
595
621
  api(connection, options.maxWaitTime ?? this[kOptions].maxWaitTime, options.minBytes ?? this[kOptions].minBytes, options.maxBytes ?? this[kOptions].maxBytes, isolationLevel, sessionId, sessionEpoch, requestTopics, forgottenTopicsData, this.#clientRack, (error, result) => {
622
+ const response = result ?? error?.response;
623
+ if (response && !response.nodeEndpoints) {
624
+ response.nodeEndpoints = [];
625
+ }
626
+ if (useTopicNames && response) {
627
+ for (const topic of response.responses) {
628
+ topic.topicId = topicIdsByName.get(topic.topicId) ?? topic.topicId;
629
+ }
630
+ }
596
631
  if (error) {
597
632
  refreshMetadata = NetworkError.isRetryable(error);
598
633
  this.#clearPreferredReadReplicas(options.topics, topicIds);
@@ -601,7 +636,14 @@ export class Consumer extends Base {
601
636
  findErrorBy(error, 'apiId', 'FETCH_SESSION_TOPIC_ID_ERROR')) {
602
637
  this.#fetchSessions.delete(node);
603
638
  }
604
- if (findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH')) {
639
+ // NOT_LEADER_OR_FOLLOWER/LEADER_NOT_AVAILABLE mean leadership just moved (broker
640
+ // rebalance/leader election); without a refresh here, kPerformWithRetry repeats
641
+ // the same request against the stale cached leader until retries exhaust.
642
+ // UNKNOWN_TOPIC_OR_PARTITION also carries hasStaleMetadata but is deliberately
643
+ // excluded: broadening this to it breaks deleted-topic handling (see git history).
644
+ if (findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH') ||
645
+ findErrorBy(error, 'apiId', 'NOT_LEADER_OR_FOLLOWER') ||
646
+ findErrorBy(error, 'apiId', 'LEADER_NOT_AVAILABLE')) {
605
647
  this.#fetchSessions.delete(node);
606
648
  this.clearMetadata();
607
649
  for (const topic of options.topics) {
@@ -681,6 +723,16 @@ export class Consumer extends Base {
681
723
  });
682
724
  return;
683
725
  }
726
+ if (!error) {
727
+ for (const { topic, partition, offset } of options.offsets) {
728
+ const key = partitionKey(topic, partition);
729
+ for (const stream of this.#streams) {
730
+ if (stream.offsetsCommitted.has(key)) {
731
+ stream[kUpdateCommittedOffset](topic, partition, offset);
732
+ }
733
+ }
734
+ }
735
+ }
684
736
  callback(error);
685
737
  });
686
738
  }
@@ -744,7 +796,16 @@ export class Consumer extends Base {
744
796
  }, concurrentCallback, 0);
745
797
  }, (error, responses) => {
746
798
  if (error) {
747
- if (!forceUpdateMetadata && NetworkError.isRetryable(error)) {
799
+ // Mirrors the fetch() handling: right after a topic is created or its leadership moves,
800
+ // the cached leader is briefly stale and the broker answers with one of these three
801
+ // errors. Retrying once against fresh metadata clears the race instead of surfacing it.
802
+ // UNKNOWN_TOPIC_OR_PARTITION also carries hasStaleMetadata but is deliberately excluded,
803
+ // same as in fetch(), to avoid masking deleted-topic handling.
804
+ if (!forceUpdateMetadata &&
805
+ (NetworkError.isRetryable(error) ||
806
+ findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH') ||
807
+ findErrorBy(error, 'apiId', 'NOT_LEADER_OR_FOLLOWER') ||
808
+ findErrorBy(error, 'apiId', 'LEADER_NOT_AVAILABLE'))) {
748
809
  this.clearMetadata();
749
810
  this.#listOffsets(withTimestamps, options, callback, true);
750
811
  return;
@@ -805,7 +866,17 @@ export class Consumer extends Base {
805
866
  memberEpoch: this.#useConsumerGroupProtocol ? this.#memberEpoch : -1,
806
867
  topics
807
868
  }
808
- ], false, groupCallback);
869
+ ], false, (error, response) => {
870
+ if (error || api.version >= 8) {
871
+ groupCallback(error, response);
872
+ return;
873
+ }
874
+ const legacyResponse = response;
875
+ groupCallback(null, {
876
+ throttleTimeMs: legacyResponse.throttleTimeMs,
877
+ groups: [{ groupId: this.groupId, topics: legacyResponse.topics, errorCode: legacyResponse.errorCode }]
878
+ });
879
+ });
809
880
  });
810
881
  }, (error, response) => {
811
882
  if (error) {
@@ -885,9 +956,7 @@ export class Consumer extends Base {
885
956
  // - a rejoin that never completes still surfaces as a stall
886
957
  this.#resetHeartbeatStall();
887
958
  this.#trackHeartbeatStall(options, error, options.rebalanceTimeout + this.#heartbeatStallTimeoutFor(options));
888
- this[kPerformWithRetry]('rejoinGroup', retryCallback => {
889
- this.#joinGroup(options, retryCallback);
890
- }, error => {
959
+ this.#joinGroup(options, error => {
891
960
  if (error) {
892
961
  this.emitWithDebug(null, 'error', error);
893
962
  if (!this.#heartbeatStalled) {
@@ -903,7 +972,7 @@ export class Consumer extends Base {
903
972
  this.#resetHeartbeatStall();
904
973
  }
905
974
  this.emitWithDebug('consumer', 'rejoin');
906
- }, 0);
975
+ });
907
976
  return;
908
977
  }
909
978
  // The error was not group related, so we schedule another heartbeat.
@@ -1000,7 +1069,12 @@ export class Consumer extends Base {
1000
1069
  this.assignments = [];
1001
1070
  this.#syncPreferredReadReplicas();
1002
1071
  this.#memberEpoch = 0;
1003
- this.#consumerGroupHeartbeat(options, () => { });
1072
+ // Retry after a delay, not immediately: if many members get fenced around the same
1073
+ // rebalance, resending ConsumerGroupHeartbeat with no delay at all can flood the
1074
+ // coordinator faster than the group can converge.
1075
+ this.#heartbeatInterval = setTimeout(() => {
1076
+ this.#consumerGroupHeartbeat(options, () => { });
1077
+ }, this.#lastHeartbeatIntervalMs || 1000);
1004
1078
  callback(error);
1005
1079
  return;
1006
1080
  }
@@ -1056,6 +1130,22 @@ export class Consumer extends Base {
1056
1130
  }
1057
1131
  return result;
1058
1132
  }
1133
+ #diffGroupAssignments(A, B) {
1134
+ const result = [];
1135
+ for (const a of A) {
1136
+ const b = B.find(assignment => assignment.topic === a.topic);
1137
+ if (!b) {
1138
+ result.push({ topic: a.topic, partitions: [...a.partitions] });
1139
+ }
1140
+ else {
1141
+ const diff = a.partitions.filter(partition => !b.partitions.includes(partition));
1142
+ if (diff.length > 0) {
1143
+ result.push({ topic: a.topic, partitions: diff });
1144
+ }
1145
+ }
1146
+ }
1147
+ return result;
1148
+ }
1059
1149
  #revokePartitions(newAssignment) {
1060
1150
  const toRevoke = this.#diffAssignments(this.#assignments, newAssignment);
1061
1151
  if (toRevoke.length === 0) {
@@ -1081,6 +1171,14 @@ export class Consumer extends Base {
1081
1171
  #assignPartitions(newAssignment) {
1082
1172
  const toAssign = this.#diffAssignments(newAssignment, this.#assignments);
1083
1173
  if (toAssign.length === 0) {
1174
+ // An explicit empty initial assignment confirms an idle member, even though
1175
+ // there are no partitions to add. An omitted assignment must remain unknown.
1176
+ if (this.assignments === null && newAssignment.length === 0) {
1177
+ this.assignments = [];
1178
+ for (const stream of this.#streams) {
1179
+ stream[kRefreshOffsetsAndFetch]();
1180
+ }
1181
+ }
1084
1182
  return;
1085
1183
  }
1086
1184
  this.#updateAssignments(newAssignment, error => {
@@ -1159,9 +1257,18 @@ export class Consumer extends Base {
1159
1257
  });
1160
1258
  return;
1161
1259
  }
1260
+ const finish = () => {
1261
+ this.emitWithDebug('consumer', 'group:leave', { groupId: this.groupId, memberId: this.memberId });
1262
+ this.memberId = null;
1263
+ this.#memberEpoch = -1;
1264
+ this.#assignments = [];
1265
+ this.assignments = [];
1266
+ this.#syncPreferredReadReplicas();
1267
+ callback(null);
1268
+ };
1162
1269
  // Leave by sending a heartbeat with memberEpoch = -1
1163
1270
  this.#cancelHeartbeat();
1164
- this.#performDeduplicateGroupOperaton('leaveGroupConsumerProtocol', (connection, groupCallback) => {
1271
+ const operation = (connection, groupCallback) => {
1165
1272
  this[kGetApi]('ConsumerGroupHeartbeat', (error, api) => {
1166
1273
  if (error) {
1167
1274
  groupCallback(error);
@@ -1175,15 +1282,18 @@ export class Consumer extends Base {
1175
1282
  this.#groupRemoteAssignor, [], // topicPartitions
1176
1283
  groupCallback);
1177
1284
  });
1178
- }, _error => {
1179
- this.emitWithDebug('consumer', 'group:leave', { groupId: this.groupId, memberId: this.memberId });
1180
- this.memberId = null;
1181
- this.#memberEpoch = -1;
1182
- this.#assignments = [];
1183
- this.assignments = [];
1184
- this.#syncPreferredReadReplicas();
1185
- callback(null);
1186
- });
1285
+ };
1286
+ if (this[kClosed]) {
1287
+ const connection = this.#getGroupCoordinatorConnection();
1288
+ if (connection) {
1289
+ operation(connection, finish);
1290
+ }
1291
+ else {
1292
+ finish();
1293
+ }
1294
+ return;
1295
+ }
1296
+ this.#performDeduplicateGroupOperaton('leaveGroupConsumerProtocol', operation, finish);
1187
1297
  }
1188
1298
  #getConsumerGroupHeartbeatMemberId(apiVersion) {
1189
1299
  if (this.memberId) {
@@ -1251,7 +1361,12 @@ export class Consumer extends Base {
1251
1361
  retryCallback(error);
1252
1362
  return;
1253
1363
  }
1254
- api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId], retryCallback);
1364
+ api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId], (error, response) => {
1365
+ if (response && api.version < 4) {
1366
+ response.coordinators[0].key = this.groupId;
1367
+ }
1368
+ retryCallback(error, response);
1369
+ });
1255
1370
  });
1256
1371
  });
1257
1372
  }, (error, response) => {
@@ -1266,6 +1381,13 @@ export class Consumer extends Base {
1266
1381
  }, callback);
1267
1382
  }
1268
1383
  #performJoinGroup(options, callback) {
1384
+ if (!this.#membershipActive) {
1385
+ callback(null);
1386
+ return;
1387
+ }
1388
+ this.#performJoinGroupAttempt(options, callback, 0, []);
1389
+ }
1390
+ #performJoinGroupAttempt(options, callback, attempt, attemptErrors) {
1269
1391
  if (!this.#membershipActive) {
1270
1392
  callback(null);
1271
1393
  return;
@@ -1273,7 +1395,7 @@ export class Consumer extends Base {
1273
1395
  this.#cancelHeartbeat();
1274
1396
  this.#createJoinGroupProtocols(options, (error, protocols) => {
1275
1397
  if (error) {
1276
- callback(error);
1398
+ this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
1277
1399
  return;
1278
1400
  }
1279
1401
  this.#performDeduplicateGroupOperaton('joinGroup', (connection, groupCallback) => {
@@ -1290,11 +1412,7 @@ export class Consumer extends Base {
1290
1412
  return;
1291
1413
  }
1292
1414
  if (error) {
1293
- if (this.#getRejoinError(error)) {
1294
- this.#performJoinGroup(options, callback);
1295
- return;
1296
- }
1297
- callback(error);
1415
+ this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
1298
1416
  return;
1299
1417
  }
1300
1418
  // This is for Azure Event Hubs compatibility, which does not respond with an error on the first join
@@ -1313,31 +1431,120 @@ export class Consumer extends Base {
1313
1431
  return;
1314
1432
  }
1315
1433
  if (error) {
1316
- if (this.#getRejoinError(error)) {
1317
- this.#performJoinGroup(options, callback);
1318
- return;
1319
- }
1320
- callback(error);
1434
+ this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
1321
1435
  return;
1322
1436
  }
1323
- this.assignments = response;
1324
- this.#syncPreferredReadReplicas();
1325
- this.#cancelHeartbeat();
1326
- this.#heartbeatInterval = setTimeout(() => {
1327
- this.#heartbeat(options);
1328
- }, options.heartbeatInterval);
1329
- this.emitWithDebug('consumer', 'group:join', {
1330
- groupId: this.groupId,
1331
- memberId: this.memberId,
1332
- generationId: this.generationId,
1333
- isLeader: this.#isLeader,
1334
- assignments: this.assignments
1335
- });
1336
- callback(null, this.memberId);
1437
+ this.#completeClassicSyncGroup(options, response, callback);
1337
1438
  });
1338
1439
  });
1339
1440
  });
1340
1441
  }
1442
+ #retryJoinGroup(options, callback, attempt, attemptErrors, error) {
1443
+ const retries = this[kOptions].retries;
1444
+ const memberId = this.memberId;
1445
+ const rejoinError = this.#getRejoinError(error);
1446
+ // MEMBER_ID_REQUIRED is the normal first-join handshake. The broker assigns a member ID and
1447
+ // expects the JoinGroup request to be sent again; this progress must not consume a retry.
1448
+ if (rejoinError?.apiId === 'MEMBER_ID_REQUIRED' && this.memberId !== memberId) {
1449
+ this.#performJoinGroupAttempt(options, callback, attempt, attemptErrors);
1450
+ return;
1451
+ }
1452
+ attemptErrors.push(error);
1453
+ if (!rejoinError) {
1454
+ if (error instanceof MultipleErrors && error.errors.length > 0) {
1455
+ const nestedMessages = error.errors.map(error => error.message).join(' ');
1456
+ callback(new MultipleErrors(`${error.message} ${nestedMessages}`, error.errors));
1457
+ }
1458
+ else {
1459
+ callback(error);
1460
+ }
1461
+ return;
1462
+ }
1463
+ if (attempt >= retries) {
1464
+ callback(attempt > 0 ? new MultipleErrors(`joinGroup failed ${attempt + 1} times.`, attemptErrors) : error);
1465
+ return;
1466
+ }
1467
+ let delay = this[kOptions].retryDelay;
1468
+ if (typeof delay === 'function') {
1469
+ delay = delay(this, 'joinGroup', attempt + 1, retries, error);
1470
+ }
1471
+ function onClose() {
1472
+ clearTimeout(timeout);
1473
+ attemptErrors.push(new UserError('Client closed while retrying joinGroup.'));
1474
+ callback(new MultipleErrors(`joinGroup failed ${attempt + 1} times.`, attemptErrors));
1475
+ }
1476
+ const timeout = setTimeout(() => {
1477
+ this.removeListener('client:close', onClose);
1478
+ this.#performJoinGroupAttempt(options, callback, attempt + 1, attemptErrors);
1479
+ }, delay);
1480
+ this.once('client:close', onClose);
1481
+ }
1482
+ #completeClassicSyncGroup(options, assignments, callback) {
1483
+ if (this.#isCooperativeProtocol()) {
1484
+ const previousAssignments = this.assignments ?? [];
1485
+ const revoked = this.#diffGroupAssignments(previousAssignments, assignments);
1486
+ const addedOnRevokeRound = this.#diffGroupAssignments(assignments, previousAssignments);
1487
+ if (revoked.length > 0) {
1488
+ for (const stream of this.#streams) {
1489
+ stream.pause();
1490
+ }
1491
+ // Snapshot the set: a failing autocommit destroys its stream, which removes it from
1492
+ // #streams while the concurrent callbacks are still iterating.
1493
+ runConcurrentCallbacks('Autocommit before cooperative rebalance failed.', [...this.#streams], (stream, concurrentCallback) => {
1494
+ // A destroyed stream never settles an autocommit, so do not wait on one.
1495
+ if (stream.destroyed || stream.closed) {
1496
+ concurrentCallback(null);
1497
+ return;
1498
+ }
1499
+ stream[kAutocommit](concurrentCallback);
1500
+ }, autocommitError => {
1501
+ // Mirror Kafka's reference client: capture autocommit errors but
1502
+ // continue the rebalance so the group does not get stuck mid-cycle.
1503
+ // Per-stream autocommit errors are already surfaced through the
1504
+ // `autocommit` event on each MessagesStream.
1505
+ if (autocommitError) {
1506
+ this.emitWithDebug('consumer', 'group:autocommit:error', {
1507
+ groupId: this.groupId,
1508
+ error: autocommitError
1509
+ });
1510
+ }
1511
+ this.assignments = assignments;
1512
+ this.#syncPreferredReadReplicas();
1513
+ for (const stream of this.#streams) {
1514
+ stream.resume();
1515
+ }
1516
+ if (addedOnRevokeRound.length > 0) {
1517
+ for (const stream of this.#streams) {
1518
+ stream[kRefreshOffsetsAndFetch]();
1519
+ }
1520
+ }
1521
+ this.emitWithDebug('consumer', 'group:rebalance', { groupId: this.groupId });
1522
+ this.#performJoinGroup(options, callback);
1523
+ });
1524
+ return;
1525
+ }
1526
+ }
1527
+ const added = this.#diffGroupAssignments(assignments, this.assignments ?? []);
1528
+ this.assignments = assignments;
1529
+ this.#syncPreferredReadReplicas();
1530
+ this.#cancelHeartbeat();
1531
+ this.#heartbeatInterval = setTimeout(() => {
1532
+ this.#heartbeat(options);
1533
+ }, options.heartbeatInterval);
1534
+ this.emitWithDebug('consumer', 'group:join', {
1535
+ groupId: this.groupId,
1536
+ memberId: this.memberId,
1537
+ generationId: this.generationId,
1538
+ isLeader: this.#isLeader,
1539
+ assignments: this.assignments
1540
+ });
1541
+ if (this.#isCooperativeProtocol() && added.length > 0) {
1542
+ for (const stream of this.#streams) {
1543
+ stream[kRefreshOffsetsAndFetch]();
1544
+ }
1545
+ }
1546
+ callback(null, this.memberId);
1547
+ }
1341
1548
  #performLeaveGroup(force, callback) {
1342
1549
  if (!this.memberId) {
1343
1550
  callback(null);
@@ -1366,8 +1573,20 @@ export class Consumer extends Base {
1366
1573
  });
1367
1574
  return;
1368
1575
  }
1576
+ const finish = () => {
1577
+ this.emitWithDebug('consumer', 'group:leave', {
1578
+ groupId: this.groupId,
1579
+ memberId: this.memberId,
1580
+ generationId: this.generationId
1581
+ });
1582
+ this.memberId = null;
1583
+ this.generationId = 0;
1584
+ this.assignments = null;
1585
+ this.#syncPreferredReadReplicas();
1586
+ callback(null);
1587
+ };
1369
1588
  this.#cancelHeartbeat();
1370
- this.#performDeduplicateGroupOperaton('leaveGroup', (connection, groupCallback) => {
1589
+ const operation = (connection, groupCallback) => {
1371
1590
  this[kGetApi]('LeaveGroup', (error, api) => {
1372
1591
  if (error) {
1373
1592
  groupCallback(error);
@@ -1375,26 +1594,30 @@ export class Consumer extends Base {
1375
1594
  }
1376
1595
  api(connection, this.groupId, [{ memberId: this.memberId }], groupCallback);
1377
1596
  });
1378
- }, error => {
1597
+ };
1598
+ const onLeave = (error) => {
1379
1599
  if (error) {
1380
1600
  const unknownMemberError = findErrorBy(error, 'unknownMemberId', true);
1601
+ const unavailableBrokerWhileClosing = this[kClosed] && NetworkError.isRetryable(error);
1381
1602
  // This is to avoid throwing an error if a group join was cancelled.
1382
- if (!unknownMemberError) {
1603
+ if (!unknownMemberError && !unavailableBrokerWhileClosing) {
1383
1604
  callback(error);
1384
1605
  return;
1385
1606
  }
1386
1607
  }
1387
- this.emitWithDebug('consumer', 'group:leave', {
1388
- groupId: this.groupId,
1389
- memberId: this.memberId,
1390
- generationId: this.generationId
1391
- });
1392
- this.memberId = null;
1393
- this.generationId = 0;
1394
- this.assignments = null;
1395
- this.#syncPreferredReadReplicas();
1396
- callback(null);
1397
- });
1608
+ finish();
1609
+ };
1610
+ if (this[kClosed]) {
1611
+ const connection = this.#getGroupCoordinatorConnection();
1612
+ if (connection) {
1613
+ operation(connection, onLeave);
1614
+ }
1615
+ else {
1616
+ finish();
1617
+ }
1618
+ return;
1619
+ }
1620
+ this.#performDeduplicateGroupOperaton('leaveGroup', operation, onLeave);
1398
1621
  }
1399
1622
  #performSyncGroup(partitionsAssigner, assignments, callback) {
1400
1623
  if (!this.#membershipActive) {
@@ -1485,7 +1708,7 @@ export class Consumer extends Base {
1485
1708
  });
1486
1709
  }, (error, result) => {
1487
1710
  callback(this.#handleError(error), result);
1488
- });
1711
+ }, 0, [], () => this[kClosed]);
1489
1712
  }
1490
1713
  #validateGroupOptions(options, validator) {
1491
1714
  validator ??= groupOptionsValidator;
@@ -1554,19 +1777,37 @@ export class Consumer extends Base {
1554
1777
  https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/ConsumerProtocolSubscription.json
1555
1778
  */
1556
1779
  #encodeProtocolSubscriptionMetadata(metadata, topics) {
1557
- return Writer.create()
1558
- .appendInt16(metadata.version)
1559
- .appendArray(topics, (w, t) => w.appendString(t, false), false, false)
1560
- .appendBytes(typeof metadata.metadata === 'string' ? Buffer.from(metadata.metadata) : metadata.metadata, false)
1561
- .buffer;
1780
+ const cooperative = metadata.name === COOPERATIVE_STICKY_ASSIGNOR;
1781
+ const ownedPartitions = cooperative ? this.#ownedPartitionsForSubscription(topics) : [];
1782
+ let userData = typeof metadata.metadata === 'string' ? Buffer.from(metadata.metadata) : metadata.metadata;
1783
+ if (cooperative && !userData && metadata.version < 2) {
1784
+ userData = Writer.create()
1785
+ .appendInt32(this.memberId && ownedPartitions.length > 0 ? this.generationId : -1)
1786
+ .buffer;
1787
+ }
1788
+ return encodeConsumerProtocolSubscription({
1789
+ version: metadata.version,
1790
+ topics,
1791
+ userData,
1792
+ ownedPartitions,
1793
+ generationId: cooperative && this.memberId && ownedPartitions.length > 0 ? this.generationId : -1,
1794
+ rackId: cooperative ? this.#clientRack || null : null
1795
+ });
1562
1796
  }
1563
1797
  #decodeProtocolSubscriptionMetadata(memberId, buffer) {
1564
- const reader = Reader.from(buffer);
1798
+ const subscription = decodeConsumerProtocolSubscription(buffer);
1799
+ const cooperative = this.#protocol === COOPERATIVE_STICKY_ASSIGNOR;
1800
+ const generationId = cooperative && subscription.version < 2
1801
+ ? decodeCooperativeStickyGeneration(subscription.userData)
1802
+ : subscription.generationId;
1565
1803
  return {
1566
1804
  memberId,
1567
- version: reader.readInt16(),
1568
- topics: reader.readArray(r => r.readString(false), false, false),
1569
- metadata: reader.readBytes(false)
1805
+ version: subscription.version,
1806
+ topics: subscription.topics,
1807
+ metadata: subscription.userData,
1808
+ ownedPartitions: subscription.ownedPartitions,
1809
+ generationId,
1810
+ rackId: subscription.rackId
1570
1811
  };
1571
1812
  }
1572
1813
  /*
@@ -1574,27 +1815,14 @@ export class Consumer extends Base {
1574
1815
  https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/ConsumerProtocolAssignment.json
1575
1816
  */
1576
1817
  #encodeProtocolAssignment(assignments) {
1577
- const userData = this[kOptions].assignmentUserData;
1578
- const writer = Writer.create()
1579
- .appendInt16(0) // Version information
1580
- .appendArray(assignments, (w, { topic, partitions }) => {
1581
- w.appendString(topic, false).appendArray(partitions, (w, a) => w.appendInt32(a), false, false);
1582
- }, false, false);
1583
- writer.appendBytes(userData ?? null, false);
1584
- return writer.buffer;
1818
+ return encodeConsumerProtocolAssignment({
1819
+ version: this.#isCooperativeProtocol() ? CONSUMER_PROTOCOL_HIGHEST_VERSION : 0,
1820
+ assignedPartitions: assignments,
1821
+ userData: this[kOptions].assignmentUserData ?? null
1822
+ });
1585
1823
  }
1586
1824
  #decodeProtocolAssignment(buffer) {
1587
- const reader = Reader.from(buffer);
1588
- reader.skip(2); // Ignore Version information
1589
- if (reader.remaining < INT32_SIZE) {
1590
- return [];
1591
- }
1592
- return reader.readArray(r => {
1593
- return {
1594
- topic: r.readString(false),
1595
- partitions: r.readArray(r => r.readInt32(), false, false)
1596
- };
1597
- }, false, false);
1825
+ return decodeConsumerProtocolAssignment(buffer).assignedPartitions;
1598
1826
  }
1599
1827
  #createAssignments(partitionsAssigner, metadata) {
1600
1828
  const partitionTracker = new Map();
@@ -1617,7 +1845,7 @@ export class Consumer extends Base {
1617
1845
  return [{ memberId: this.memberId, assignment: this.#encodeProtocolAssignment(assignments) }];
1618
1846
  }
1619
1847
  const encodedAssignments = [];
1620
- partitionsAssigner ??= this[kOptions].partitionAssigner ?? roundRobinAssigner;
1848
+ partitionsAssigner ??= this.#defaultPartitionsAssigner();
1621
1849
  for (const member of partitionsAssigner(this.memberId, this.#members, new Set(this.topics.current), metadata)) {
1622
1850
  encodedAssignments.push({
1623
1851
  memberId: member.memberId,
@@ -1626,24 +1854,50 @@ export class Consumer extends Base {
1626
1854
  }
1627
1855
  return encodedAssignments;
1628
1856
  }
1857
+ #defaultPartitionsAssigner() {
1858
+ const configuredAssigner = this[kOptions].partitionAssigner;
1859
+ if (configuredAssigner) {
1860
+ return configuredAssigner;
1861
+ }
1862
+ if (this.#isCooperativeProtocol()) {
1863
+ return cooperativeStickyAssigner;
1864
+ }
1865
+ return roundRobinAssigner;
1866
+ }
1867
+ #isCooperativeProtocol() {
1868
+ return this.#protocol === COOPERATIVE_STICKY_ASSIGNOR;
1869
+ }
1870
+ #ownedPartitionsForSubscription(topics) {
1871
+ if (!this.assignments) {
1872
+ return [];
1873
+ }
1874
+ const currentTopics = new Set(topics);
1875
+ return this.assignments
1876
+ .filter(assignment => currentTopics.has(assignment.topic))
1877
+ .map(assignment => ({ topic: assignment.topic, partitions: [...assignment.partitions] }));
1878
+ }
1629
1879
  #filterUncommittedMessages(response) {
1630
1880
  for (const topic of response.responses) {
1631
1881
  for (const partition of topic.partitions) {
1632
1882
  if (!partition.records) {
1633
1883
  continue;
1634
1884
  }
1635
- if (partition.abortedTransactions.length) {
1885
+ const abortedTransactions = partition.abortedTransactions ?? [];
1886
+ if (abortedTransactions.length) {
1636
1887
  const abortedRanges = new Map();
1637
1888
  // Find first offsets
1638
1889
  // For last offsets we set -1n as special value. It allows us to detect open ranges, whichs means
1639
1890
  // that Kafka has not sent the control marker. In that case we ignore the range for safety.
1640
- for (const aborted of partition.abortedTransactions) {
1891
+ for (const aborted of abortedTransactions) {
1641
1892
  abortedRanges.set(aborted.producerId, [aborted.firstOffset, -1n]);
1642
1893
  }
1643
1894
  // Now find last offsets
1644
1895
  for (const batch of partition.records) {
1645
1896
  if (batch.attributes & IS_CONTROL && batch.records[0].key?.readInt16BE(2) === 0) {
1646
- abortedRanges.get(batch.producerId)[1] = batch.firstOffset;
1897
+ const abortedRange = abortedRanges.get(batch.producerId);
1898
+ if (abortedRange) {
1899
+ abortedRange[1] = batch.firstOffset;
1900
+ }
1647
1901
  }
1648
1902
  }
1649
1903
  // Filter all records in the aborted ranges
@@ -1665,7 +1919,14 @@ export class Consumer extends Base {
1665
1919
  if (protocolError.rebalanceInProgress) {
1666
1920
  this.emitWithDebug('consumer', 'group:rebalance', { groupId: this.groupId });
1667
1921
  }
1668
- if (protocolError.unknownMemberId) {
1922
+ // A cooperative member which lost its membership or generation no longer owns anything:
1923
+ // clear the assignments so the next JoinGroup advertises an empty ownedPartitions set
1924
+ // instead of re-claiming partitions the group has already reassigned elsewhere.
1925
+ if (this.#isCooperativeProtocol() && ['UNKNOWN_MEMBER_ID', 'ILLEGAL_GENERATION'].includes(protocolError.apiId)) {
1926
+ this.assignments = [];
1927
+ this.#syncPreferredReadReplicas();
1928
+ }
1929
+ if (protocolError.unknownMemberId || protocolError.fencedInstanceId) {
1669
1930
  this.memberId = null;
1670
1931
  }
1671
1932
  else if (protocolError.memberId && !this.memberId) {
@@ -1755,4 +2016,12 @@ export class Consumer extends Base {
1755
2016
  }
1756
2017
  return error;
1757
2018
  }
2019
+ #getGroupCoordinatorConnection() {
2020
+ if (this.#coordinatorId === null) {
2021
+ return null;
2022
+ }
2023
+ const broker = this.currentMetadata?.brokers.get(this.#coordinatorId);
2024
+ const connection = broker ? this[kConnections].getEstablishedConnection(broker) : undefined;
2025
+ return connection?.isConnected() === true ? connection : null;
2026
+ }
1758
2027
  }