@platformatic/kafka 2.1.0 → 2.2.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 (753) hide show
  1. package/README.md +4 -1
  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 +20 -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/callbacks.d.ts +1 -3
  206. package/dist/apis/callbacks.js +26 -11
  207. package/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  208. package/dist/apis/consumer/consumer-group-heartbeat-v0.js +17 -10
  209. package/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
  210. package/dist/apis/consumer/consumer-group-heartbeat-v1.js +17 -10
  211. package/dist/apis/consumer/fetch-v10.d.ts +51 -0
  212. package/dist/apis/consumer/fetch-v10.js +122 -0
  213. package/dist/apis/consumer/fetch-v11.d.ts +51 -0
  214. package/dist/apis/consumer/fetch-v11.js +125 -0
  215. package/dist/apis/consumer/fetch-v12.d.ts +20 -4
  216. package/dist/apis/consumer/fetch-v12.js +29 -12
  217. package/dist/apis/consumer/fetch-v13.d.ts +20 -4
  218. package/dist/apis/consumer/fetch-v13.js +25 -7
  219. package/dist/apis/consumer/fetch-v14.d.ts +20 -4
  220. package/dist/apis/consumer/fetch-v14.js +25 -7
  221. package/dist/apis/consumer/fetch-v15.d.ts +20 -4
  222. package/dist/apis/consumer/fetch-v15.js +25 -7
  223. package/dist/apis/consumer/fetch-v16.d.ts +27 -4
  224. package/dist/apis/consumer/fetch-v16.js +36 -8
  225. package/dist/apis/consumer/fetch-v17.d.ts +28 -4
  226. package/dist/apis/consumer/fetch-v17.js +43 -9
  227. package/dist/apis/consumer/fetch-v4.d.ts +51 -0
  228. package/dist/apis/consumer/fetch-v4.js +87 -0
  229. package/dist/apis/consumer/fetch-v5.d.ts +51 -0
  230. package/dist/apis/consumer/fetch-v5.js +89 -0
  231. package/dist/apis/consumer/fetch-v6.d.ts +51 -0
  232. package/dist/apis/consumer/fetch-v6.js +99 -0
  233. package/dist/apis/consumer/fetch-v7.d.ts +51 -0
  234. package/dist/apis/consumer/fetch-v7.js +117 -0
  235. package/dist/apis/consumer/fetch-v8.d.ts +51 -0
  236. package/dist/apis/consumer/fetch-v8.js +117 -0
  237. package/dist/apis/consumer/fetch-v9.d.ts +51 -0
  238. package/dist/apis/consumer/fetch-v9.js +122 -0
  239. package/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
  240. package/dist/apis/consumer/heartbeat-v0.js +24 -0
  241. package/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
  242. package/dist/apis/consumer/heartbeat-v1.js +31 -0
  243. package/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
  244. package/dist/apis/consumer/heartbeat-v2.js +31 -0
  245. package/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
  246. package/dist/apis/consumer/heartbeat-v3.js +33 -0
  247. package/dist/apis/consumer/heartbeat-v4.js +1 -0
  248. package/dist/apis/consumer/index.d.ts +51 -0
  249. package/dist/apis/consumer/index.js +51 -0
  250. package/dist/apis/consumer/join-group-v0.d.ts +27 -0
  251. package/dist/apis/consumer/join-group-v0.js +51 -0
  252. package/dist/apis/consumer/join-group-v1.d.ts +8 -0
  253. package/dist/apis/consumer/join-group-v1.js +43 -0
  254. package/dist/apis/consumer/join-group-v2.d.ts +27 -0
  255. package/dist/apis/consumer/join-group-v2.js +60 -0
  256. package/dist/apis/consumer/join-group-v3.d.ts +27 -0
  257. package/dist/apis/consumer/join-group-v3.js +60 -0
  258. package/dist/apis/consumer/join-group-v4.d.ts +27 -0
  259. package/dist/apis/consumer/join-group-v4.js +60 -0
  260. package/dist/apis/consumer/join-group-v5.d.ts +27 -0
  261. package/dist/apis/consumer/join-group-v5.js +63 -0
  262. package/dist/apis/consumer/join-group-v6.d.ts +2 -2
  263. package/dist/apis/consumer/join-group-v6.js +10 -7
  264. package/dist/apis/consumer/join-group-v7.d.ts +2 -2
  265. package/dist/apis/consumer/join-group-v7.js +5 -3
  266. package/dist/apis/consumer/join-group-v8.d.ts +2 -2
  267. package/dist/apis/consumer/join-group-v8.js +5 -3
  268. package/dist/apis/consumer/join-group-v9.d.ts +2 -2
  269. package/dist/apis/consumer/join-group-v9.js +5 -3
  270. package/dist/apis/consumer/leave-group-v0.d.ts +22 -0
  271. package/dist/apis/consumer/leave-group-v0.js +23 -0
  272. package/dist/apis/consumer/leave-group-v1.d.ts +22 -0
  273. package/dist/apis/consumer/leave-group-v1.js +30 -0
  274. package/dist/apis/consumer/leave-group-v2.d.ts +22 -0
  275. package/dist/apis/consumer/leave-group-v2.js +30 -0
  276. package/dist/apis/consumer/leave-group-v3.d.ts +22 -0
  277. package/dist/apis/consumer/leave-group-v3.js +54 -0
  278. package/dist/apis/consumer/leave-group-v4.d.ts +1 -1
  279. package/dist/apis/consumer/leave-group-v4.js +4 -2
  280. package/dist/apis/consumer/leave-group-v5.d.ts +1 -1
  281. package/dist/apis/consumer/leave-group-v5.js +4 -2
  282. package/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
  283. package/dist/apis/consumer/list-offsets-v0.js +50 -0
  284. package/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
  285. package/dist/apis/consumer/list-offsets-v1.js +52 -0
  286. package/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
  287. package/dist/apis/consumer/list-offsets-v2.js +64 -0
  288. package/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
  289. package/dist/apis/consumer/list-offsets-v3.js +64 -0
  290. package/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
  291. package/dist/apis/consumer/list-offsets-v4.js +67 -0
  292. package/dist/apis/consumer/list-offsets-v6.js +6 -3
  293. package/dist/apis/consumer/list-offsets-v7.js +6 -3
  294. package/dist/apis/consumer/list-offsets-v8.js +6 -3
  295. package/dist/apis/consumer/list-offsets-v9.js +6 -3
  296. package/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
  297. package/dist/apis/consumer/offset-commit-v0.js +52 -0
  298. package/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
  299. package/dist/apis/consumer/offset-commit-v1.js +30 -0
  300. package/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
  301. package/dist/apis/consumer/offset-commit-v2.js +31 -0
  302. package/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
  303. package/dist/apis/consumer/offset-commit-v3.js +58 -0
  304. package/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
  305. package/dist/apis/consumer/offset-commit-v4.js +58 -0
  306. package/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
  307. package/dist/apis/consumer/offset-commit-v5.js +56 -0
  308. package/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
  309. package/dist/apis/consumer/offset-commit-v6.js +60 -0
  310. package/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
  311. package/dist/apis/consumer/offset-commit-v7.js +62 -0
  312. package/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
  313. package/dist/apis/consumer/offset-commit-v8.js +6 -3
  314. package/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  315. package/dist/apis/consumer/offset-commit-v9.js +6 -3
  316. package/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
  317. package/dist/apis/consumer/offset-fetch-v0.js +62 -0
  318. package/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
  319. package/dist/apis/consumer/offset-fetch-v1.js +41 -0
  320. package/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
  321. package/dist/apis/consumer/offset-fetch-v2.js +48 -0
  322. package/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
  323. package/dist/apis/consumer/offset-fetch-v3.js +64 -0
  324. package/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
  325. package/dist/apis/consumer/offset-fetch-v4.js +64 -0
  326. package/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
  327. package/dist/apis/consumer/offset-fetch-v5.js +65 -0
  328. package/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
  329. package/dist/apis/consumer/offset-fetch-v6.js +68 -0
  330. package/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
  331. package/dist/apis/consumer/offset-fetch-v7.js +70 -0
  332. package/dist/apis/consumer/offset-fetch-v8.js +5 -2
  333. package/dist/apis/consumer/offset-fetch-v9.js +5 -2
  334. package/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
  335. package/dist/apis/consumer/offset-for-leader-epoch-v0.js +48 -0
  336. package/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
  337. package/dist/apis/consumer/offset-for-leader-epoch-v1.js +54 -0
  338. package/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
  339. package/dist/apis/consumer/offset-for-leader-epoch-v2.js +58 -0
  340. package/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
  341. package/dist/apis/consumer/offset-for-leader-epoch-v3.js +59 -0
  342. package/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
  343. package/dist/apis/consumer/offset-for-leader-epoch-v4.js +11 -8
  344. package/dist/apis/consumer/sync-group-v0.d.ts +18 -0
  345. package/dist/apis/consumer/sync-group-v0.js +38 -0
  346. package/dist/apis/consumer/sync-group-v1.d.ts +18 -0
  347. package/dist/apis/consumer/sync-group-v1.js +39 -0
  348. package/dist/apis/consumer/sync-group-v2.d.ts +18 -0
  349. package/dist/apis/consumer/sync-group-v2.js +39 -0
  350. package/dist/apis/consumer/sync-group-v3.d.ts +18 -0
  351. package/dist/apis/consumer/sync-group-v3.js +41 -0
  352. package/dist/apis/consumer/sync-group-v4.js +1 -0
  353. package/dist/apis/consumer/sync-group-v5.js +1 -0
  354. package/dist/apis/enumerations.d.ts +21 -6
  355. package/dist/apis/enumerations.js +57 -5
  356. package/dist/apis/index.d.ts +1 -0
  357. package/dist/apis/index.js +1 -0
  358. package/dist/apis/metadata/api-versions-v0.d.ts +17 -0
  359. package/dist/apis/metadata/api-versions-v0.js +24 -0
  360. package/dist/apis/metadata/api-versions-v1.d.ts +17 -0
  361. package/dist/apis/metadata/api-versions-v1.js +39 -0
  362. package/dist/apis/metadata/api-versions-v2.d.ts +17 -0
  363. package/dist/apis/metadata/api-versions-v2.js +39 -0
  364. package/dist/apis/metadata/api-versions-v3.d.ts +16 -2
  365. package/dist/apis/metadata/api-versions-v3.js +43 -4
  366. package/dist/apis/metadata/api-versions-v4.d.ts +16 -2
  367. package/dist/apis/metadata/api-versions-v4.js +35 -3
  368. package/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
  369. package/dist/apis/metadata/find-coordinator-v0.js +24 -0
  370. package/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
  371. package/dist/apis/metadata/find-coordinator-v1.js +41 -0
  372. package/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
  373. package/dist/apis/metadata/find-coordinator-v2.js +41 -0
  374. package/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
  375. package/dist/apis/metadata/find-coordinator-v3.js +44 -0
  376. package/dist/apis/metadata/find-coordinator-v4.js +3 -1
  377. package/dist/apis/metadata/find-coordinator-v5.js +3 -1
  378. package/dist/apis/metadata/find-coordinator-v6.js +3 -1
  379. package/dist/apis/metadata/index.d.ts +16 -0
  380. package/dist/apis/metadata/index.js +16 -0
  381. package/dist/apis/metadata/metadata-v0.d.ts +38 -0
  382. package/dist/apis/metadata/metadata-v0.js +47 -0
  383. package/dist/apis/metadata/metadata-v1.d.ts +38 -0
  384. package/dist/apis/metadata/metadata-v1.js +52 -0
  385. package/dist/apis/metadata/metadata-v10.d.ts +4 -2
  386. package/dist/apis/metadata/metadata-v10.js +29 -16
  387. package/dist/apis/metadata/metadata-v11.d.ts +3 -2
  388. package/dist/apis/metadata/metadata-v11.js +23 -15
  389. package/dist/apis/metadata/metadata-v12.d.ts +9 -2
  390. package/dist/apis/metadata/metadata-v12.js +21 -9
  391. package/dist/apis/metadata/metadata-v2.d.ts +38 -0
  392. package/dist/apis/metadata/metadata-v2.js +52 -0
  393. package/dist/apis/metadata/metadata-v3.d.ts +38 -0
  394. package/dist/apis/metadata/metadata-v3.js +52 -0
  395. package/dist/apis/metadata/metadata-v4.d.ts +38 -0
  396. package/dist/apis/metadata/metadata-v4.js +54 -0
  397. package/dist/apis/metadata/metadata-v5.d.ts +38 -0
  398. package/dist/apis/metadata/metadata-v5.js +85 -0
  399. package/dist/apis/metadata/metadata-v6.d.ts +38 -0
  400. package/dist/apis/metadata/metadata-v6.js +85 -0
  401. package/dist/apis/metadata/metadata-v7.d.ts +38 -0
  402. package/dist/apis/metadata/metadata-v7.js +86 -0
  403. package/dist/apis/metadata/metadata-v8.d.ts +39 -0
  404. package/dist/apis/metadata/metadata-v8.js +94 -0
  405. package/dist/apis/metadata/metadata-v9.d.ts +5 -3
  406. package/dist/apis/metadata/metadata-v9.js +28 -21
  407. package/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
  408. package/dist/apis/producer/add-offsets-to-txn-v0.js +30 -0
  409. package/dist/apis/producer/add-offsets-to-txn-v3.js +1 -0
  410. package/dist/apis/producer/add-offsets-to-txn-v4.js +1 -0
  411. package/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
  412. package/dist/apis/producer/add-partitions-to-txn-v0.js +62 -0
  413. package/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
  414. package/dist/apis/producer/add-partitions-to-txn-v1.js +9 -0
  415. package/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
  416. package/dist/apis/producer/add-partitions-to-txn-v2.js +9 -0
  417. package/dist/apis/producer/add-partitions-to-txn-v3.js +13 -8
  418. package/dist/apis/producer/add-partitions-to-txn-v4.js +11 -5
  419. package/dist/apis/producer/add-partitions-to-txn-v5.js +11 -5
  420. package/dist/apis/producer/end-txn-v0.d.ts +10 -0
  421. package/dist/apis/producer/end-txn-v0.js +30 -0
  422. package/dist/apis/producer/end-txn-v1.d.ts +5 -0
  423. package/dist/apis/producer/end-txn-v1.js +9 -0
  424. package/dist/apis/producer/end-txn-v2.d.ts +5 -0
  425. package/dist/apis/producer/end-txn-v2.js +9 -0
  426. package/dist/apis/producer/end-txn-v3.js +1 -0
  427. package/dist/apis/producer/end-txn-v4.js +1 -0
  428. package/dist/apis/producer/index.d.ts +17 -0
  429. package/dist/apis/producer/index.js +17 -0
  430. package/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
  431. package/dist/apis/producer/init-producer-id-v0.js +31 -0
  432. package/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
  433. package/dist/apis/producer/init-producer-id-v1.js +9 -0
  434. package/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
  435. package/dist/apis/producer/init-producer-id-v2.js +24 -0
  436. package/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
  437. package/dist/apis/producer/init-producer-id-v3.js +9 -1
  438. package/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
  439. package/dist/apis/producer/init-producer-id-v4.js +9 -1
  440. package/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
  441. package/dist/apis/producer/init-producer-id-v5.js +9 -1
  442. package/dist/apis/producer/produce-v10.d.ts +12 -0
  443. package/dist/apis/producer/produce-v10.js +42 -5
  444. package/dist/apis/producer/produce-v11.d.ts +12 -0
  445. package/dist/apis/producer/produce-v11.js +42 -5
  446. package/dist/apis/producer/produce-v3.d.ts +29 -0
  447. package/dist/apis/producer/produce-v3.js +88 -0
  448. package/dist/apis/producer/produce-v4.d.ts +29 -0
  449. package/dist/apis/producer/produce-v4.js +88 -0
  450. package/dist/apis/producer/produce-v5.d.ts +29 -0
  451. package/dist/apis/producer/produce-v5.js +88 -0
  452. package/dist/apis/producer/produce-v6.d.ts +29 -0
  453. package/dist/apis/producer/produce-v6.js +88 -0
  454. package/dist/apis/producer/produce-v7.js +1 -1
  455. package/dist/apis/producer/produce-v9.js +7 -3
  456. package/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
  457. package/dist/apis/producer/txn-offset-commit-v0.js +60 -0
  458. package/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
  459. package/dist/apis/producer/txn-offset-commit-v1.js +60 -0
  460. package/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
  461. package/dist/apis/producer/txn-offset-commit-v2.js +62 -0
  462. package/dist/apis/producer/txn-offset-commit-v3.js +7 -3
  463. package/dist/apis/producer/txn-offset-commit-v4.js +7 -3
  464. package/dist/apis/security/index.d.ts +3 -0
  465. package/dist/apis/security/index.js +3 -0
  466. package/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
  467. package/dist/apis/security/sasl-authenticate-v0.js +30 -0
  468. package/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
  469. package/dist/apis/security/sasl-authenticate-v1.js +30 -0
  470. package/dist/apis/security/sasl-authenticate-v2.js +1 -0
  471. package/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
  472. package/dist/apis/security/sasl-handshake-v0.js +28 -0
  473. package/dist/apis/tagged-fields.d.ts +7 -0
  474. package/dist/apis/tagged-fields.js +27 -0
  475. package/dist/apis/telemetry/compression-types.d.ts +8 -0
  476. package/dist/apis/telemetry/compression-types.js +7 -0
  477. package/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
  478. package/dist/apis/telemetry/get-telemetry-subscriptions-v0.js +1 -0
  479. package/dist/apis/telemetry/index.d.ts +3 -0
  480. package/dist/apis/telemetry/index.js +3 -0
  481. package/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
  482. package/dist/apis/telemetry/list-client-metrics-resources-v0.js +13 -8
  483. package/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
  484. package/dist/apis/telemetry/list-config-resources-v1.js +38 -0
  485. package/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
  486. package/dist/apis/telemetry/push-telemetry-v0.js +1 -0
  487. package/dist/clients/admin/admin.js +428 -378
  488. package/dist/clients/admin/options.d.ts +62 -6
  489. package/dist/clients/admin/options.js +41 -10
  490. package/dist/clients/admin/types.d.ts +8 -2
  491. package/dist/clients/base/base.d.ts +3 -3
  492. package/dist/clients/base/base.js +77 -20
  493. package/dist/clients/consumer/consumer.d.ts +2 -1
  494. package/dist/clients/consumer/consumer.js +386 -77
  495. package/dist/clients/consumer/messages-stream.js +228 -43
  496. package/dist/clients/consumer/options.d.ts +38 -0
  497. package/dist/clients/consumer/options.js +3 -0
  498. package/dist/clients/consumer/types.d.ts +40 -2
  499. package/dist/clients/consumer/types.js +5 -0
  500. package/dist/clients/consumer/utils.d.ts +1 -0
  501. package/dist/clients/consumer/utils.js +6 -0
  502. package/dist/clients/producer/producer.js +112 -54
  503. package/dist/clients/serde.d.ts +1 -1
  504. package/dist/errors.d.ts +4 -0
  505. package/dist/errors.js +22 -0
  506. package/dist/network/connection-pool.js +12 -2
  507. package/dist/network/connection.js +100 -22
  508. package/dist/network/utils.js +26 -8
  509. package/dist/protocol/definitions.js +1 -1
  510. package/dist/protocol/reader.js +11 -6
  511. package/dist/protocol/records.d.ts +4 -0
  512. package/dist/protocol/writer.js +17 -4
  513. package/dist/registries/abstract.d.ts +2 -2
  514. package/dist/registries/abstract.js +27 -8
  515. package/dist/registries/confluent-schema-registry.d.ts +57 -4
  516. package/dist/registries/confluent-schema-registry.js +253 -41
  517. package/dist/symbols.d.ts +1 -0
  518. package/dist/symbols.js +1 -0
  519. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v0.d.ts +40 -0
  520. package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +6 -5
  521. package/dist/typescript-4/dist/apis/admin/alter-configs-v0.d.ts +7 -0
  522. package/dist/typescript-4/dist/apis/admin/alter-configs-v1.d.ts +2 -0
  523. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +3 -2
  524. package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v1.d.ts +6 -4
  525. package/dist/typescript-4/dist/apis/admin/alter-partition-v0.d.ts +40 -0
  526. package/dist/typescript-4/dist/apis/admin/alter-partition-v1.d.ts +37 -0
  527. package/dist/typescript-4/dist/apis/admin/alter-partition-v2.d.ts +36 -0
  528. package/dist/typescript-4/dist/apis/admin/alter-partition-v3.d.ts +6 -35
  529. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v0.d.ts +23 -0
  530. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v1.d.ts +4 -0
  531. package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +1 -1
  532. package/dist/typescript-4/dist/apis/admin/client-quotas.d.ts +2 -0
  533. package/dist/typescript-4/dist/apis/admin/consumer-group-describe-v0.d.ts +2 -1
  534. package/dist/typescript-4/dist/apis/admin/create-acls-v0.d.ts +16 -0
  535. package/dist/typescript-4/dist/apis/admin/create-acls-v1.d.ts +15 -0
  536. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v0.d.ts +24 -0
  537. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v1.d.ts +4 -0
  538. package/dist/typescript-4/dist/apis/admin/create-delegation-token-v2.d.ts +9 -0
  539. package/dist/typescript-4/dist/apis/admin/create-partitions-v0.d.ts +2 -0
  540. package/dist/typescript-4/dist/apis/admin/create-partitions-v1.d.ts +2 -2
  541. package/dist/typescript-4/dist/apis/admin/create-partitions-v2.d.ts +2 -2
  542. package/dist/typescript-4/dist/apis/admin/create-topics-v0.d.ts +42 -0
  543. package/dist/typescript-4/dist/apis/admin/create-topics-v1.d.ts +42 -0
  544. package/dist/typescript-4/dist/apis/admin/create-topics-v2.d.ts +42 -0
  545. package/dist/typescript-4/dist/apis/admin/create-topics-v3.d.ts +42 -0
  546. package/dist/typescript-4/dist/apis/admin/create-topics-v4.d.ts +42 -0
  547. package/dist/typescript-4/dist/apis/admin/create-topics-v5.d.ts +42 -0
  548. package/dist/typescript-4/dist/apis/admin/create-topics-v6.d.ts +42 -0
  549. package/dist/typescript-4/dist/apis/admin/create-topics-v7.d.ts +2 -1
  550. package/dist/typescript-4/dist/apis/admin/delete-acls-v0.d.ts +28 -0
  551. package/dist/typescript-4/dist/apis/admin/delete-acls-v1.d.ts +27 -0
  552. package/dist/typescript-4/dist/apis/admin/delete-groups-v0.d.ts +14 -0
  553. package/dist/typescript-4/dist/apis/admin/delete-groups-v1.d.ts +14 -0
  554. package/dist/typescript-4/dist/apis/admin/delete-records-v0.d.ts +27 -0
  555. package/dist/typescript-4/dist/apis/admin/delete-records-v1.d.ts +27 -0
  556. package/dist/typescript-4/dist/apis/admin/delete-topics-v0.d.ts +19 -0
  557. package/dist/typescript-4/dist/apis/admin/delete-topics-v1.d.ts +19 -0
  558. package/dist/typescript-4/dist/apis/admin/delete-topics-v2.d.ts +19 -0
  559. package/dist/typescript-4/dist/apis/admin/delete-topics-v3.d.ts +19 -0
  560. package/dist/typescript-4/dist/apis/admin/delete-topics-v4.d.ts +19 -0
  561. package/dist/typescript-4/dist/apis/admin/delete-topics-v5.d.ts +19 -0
  562. package/dist/typescript-4/dist/apis/admin/delete-topics-v6.d.ts +1 -1
  563. package/dist/typescript-4/dist/apis/admin/describe-acls-v0.d.ts +21 -0
  564. package/dist/typescript-4/dist/apis/admin/describe-acls-v1.d.ts +21 -0
  565. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +8 -7
  566. package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v1.d.ts +9 -0
  567. package/dist/typescript-4/dist/apis/admin/describe-cluster-v0.d.ts +4 -3
  568. package/dist/typescript-4/dist/apis/admin/describe-cluster-v1.d.ts +4 -3
  569. package/dist/typescript-4/dist/apis/admin/describe-configs-v0.d.ts +41 -0
  570. package/dist/typescript-4/dist/apis/admin/describe-configs-v1.d.ts +39 -0
  571. package/dist/typescript-4/dist/apis/admin/describe-configs-v2.d.ts +9 -8
  572. package/dist/typescript-4/dist/apis/admin/describe-configs-v3.d.ts +9 -8
  573. package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +2 -2
  574. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v0.d.ts +31 -0
  575. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v1.d.ts +4 -0
  576. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v2.d.ts +8 -0
  577. package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v3.d.ts +4 -27
  578. package/dist/typescript-4/dist/apis/admin/describe-groups-v0.d.ts +28 -0
  579. package/dist/typescript-4/dist/apis/admin/describe-groups-v1.d.ts +28 -0
  580. package/dist/typescript-4/dist/apis/admin/describe-groups-v2.d.ts +28 -0
  581. package/dist/typescript-4/dist/apis/admin/describe-groups-v3.d.ts +28 -0
  582. package/dist/typescript-4/dist/apis/admin/describe-groups-v4.d.ts +28 -0
  583. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v0.d.ts +30 -0
  584. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v1.d.ts +4 -0
  585. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v2.d.ts +3 -2
  586. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v3.d.ts +3 -2
  587. package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v4.d.ts +3 -2
  588. package/dist/typescript-4/dist/apis/admin/describe-quorum-v0.d.ts +13 -0
  589. package/dist/typescript-4/dist/apis/admin/describe-quorum-v1.d.ts +13 -0
  590. package/dist/typescript-4/dist/apis/admin/describe-topic-partitions-v0.d.ts +3 -3
  591. package/dist/typescript-4/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +4 -3
  592. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v0.d.ts +11 -0
  593. package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v1.d.ts +4 -0
  594. package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v0.d.ts +26 -0
  595. package/dist/typescript-4/dist/apis/admin/index.d.ts +60 -0
  596. package/dist/typescript-4/dist/apis/admin/list-groups-v0.d.ts +18 -0
  597. package/dist/typescript-4/dist/apis/admin/list-groups-v1.d.ts +18 -0
  598. package/dist/typescript-4/dist/apis/admin/list-groups-v2.d.ts +18 -0
  599. package/dist/typescript-4/dist/apis/admin/list-groups-v3.d.ts +18 -0
  600. package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +4 -3
  601. package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +3 -3
  602. package/dist/typescript-4/dist/apis/admin/list-partition-reassignments-v0.d.ts +3 -3
  603. package/dist/typescript-4/dist/apis/admin/list-transactions-v0.d.ts +5 -3
  604. package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +5 -3
  605. package/dist/typescript-4/dist/apis/admin/list-transactions-v2.d.ts +5 -4
  606. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v0.d.ts +11 -0
  607. package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v1.d.ts +4 -0
  608. package/dist/typescript-4/dist/apis/admin/update-features-v0.d.ts +24 -0
  609. package/dist/typescript-4/dist/apis/admin/update-features-v1.d.ts +2 -1
  610. package/dist/typescript-4/dist/apis/callbacks.d.ts +1 -3
  611. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
  612. package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
  613. package/dist/typescript-4/dist/apis/consumer/fetch-v10.d.ts +51 -0
  614. package/dist/typescript-4/dist/apis/consumer/fetch-v11.d.ts +51 -0
  615. package/dist/typescript-4/dist/apis/consumer/fetch-v12.d.ts +20 -4
  616. package/dist/typescript-4/dist/apis/consumer/fetch-v13.d.ts +20 -4
  617. package/dist/typescript-4/dist/apis/consumer/fetch-v14.d.ts +20 -4
  618. package/dist/typescript-4/dist/apis/consumer/fetch-v15.d.ts +20 -4
  619. package/dist/typescript-4/dist/apis/consumer/fetch-v16.d.ts +27 -4
  620. package/dist/typescript-4/dist/apis/consumer/fetch-v17.d.ts +28 -4
  621. package/dist/typescript-4/dist/apis/consumer/fetch-v4.d.ts +51 -0
  622. package/dist/typescript-4/dist/apis/consumer/fetch-v5.d.ts +51 -0
  623. package/dist/typescript-4/dist/apis/consumer/fetch-v6.d.ts +51 -0
  624. package/dist/typescript-4/dist/apis/consumer/fetch-v7.d.ts +51 -0
  625. package/dist/typescript-4/dist/apis/consumer/fetch-v8.d.ts +51 -0
  626. package/dist/typescript-4/dist/apis/consumer/fetch-v9.d.ts +51 -0
  627. package/dist/typescript-4/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
  628. package/dist/typescript-4/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
  629. package/dist/typescript-4/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
  630. package/dist/typescript-4/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
  631. package/dist/typescript-4/dist/apis/consumer/index.d.ts +51 -0
  632. package/dist/typescript-4/dist/apis/consumer/join-group-v0.d.ts +27 -0
  633. package/dist/typescript-4/dist/apis/consumer/join-group-v1.d.ts +8 -0
  634. package/dist/typescript-4/dist/apis/consumer/join-group-v2.d.ts +27 -0
  635. package/dist/typescript-4/dist/apis/consumer/join-group-v3.d.ts +27 -0
  636. package/dist/typescript-4/dist/apis/consumer/join-group-v4.d.ts +27 -0
  637. package/dist/typescript-4/dist/apis/consumer/join-group-v5.d.ts +27 -0
  638. package/dist/typescript-4/dist/apis/consumer/join-group-v6.d.ts +2 -2
  639. package/dist/typescript-4/dist/apis/consumer/join-group-v7.d.ts +2 -2
  640. package/dist/typescript-4/dist/apis/consumer/join-group-v8.d.ts +2 -2
  641. package/dist/typescript-4/dist/apis/consumer/join-group-v9.d.ts +2 -2
  642. package/dist/typescript-4/dist/apis/consumer/leave-group-v0.d.ts +22 -0
  643. package/dist/typescript-4/dist/apis/consumer/leave-group-v1.d.ts +22 -0
  644. package/dist/typescript-4/dist/apis/consumer/leave-group-v2.d.ts +22 -0
  645. package/dist/typescript-4/dist/apis/consumer/leave-group-v3.d.ts +22 -0
  646. package/dist/typescript-4/dist/apis/consumer/leave-group-v4.d.ts +1 -1
  647. package/dist/typescript-4/dist/apis/consumer/leave-group-v5.d.ts +1 -1
  648. package/dist/typescript-4/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
  649. package/dist/typescript-4/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
  650. package/dist/typescript-4/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
  651. package/dist/typescript-4/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
  652. package/dist/typescript-4/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
  653. package/dist/typescript-4/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
  654. package/dist/typescript-4/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
  655. package/dist/typescript-4/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
  656. package/dist/typescript-4/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
  657. package/dist/typescript-4/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
  658. package/dist/typescript-4/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
  659. package/dist/typescript-4/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
  660. package/dist/typescript-4/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
  661. package/dist/typescript-4/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
  662. package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
  663. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
  664. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
  665. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
  666. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
  667. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
  668. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
  669. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
  670. package/dist/typescript-4/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
  671. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
  672. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
  673. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
  674. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
  675. package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
  676. package/dist/typescript-4/dist/apis/consumer/sync-group-v0.d.ts +18 -0
  677. package/dist/typescript-4/dist/apis/consumer/sync-group-v1.d.ts +18 -0
  678. package/dist/typescript-4/dist/apis/consumer/sync-group-v2.d.ts +18 -0
  679. package/dist/typescript-4/dist/apis/consumer/sync-group-v3.d.ts +18 -0
  680. package/dist/typescript-4/dist/apis/enumerations.d.ts +21 -6
  681. package/dist/typescript-4/dist/apis/index.d.ts +1 -0
  682. package/dist/typescript-4/dist/apis/metadata/api-versions-v0.d.ts +17 -0
  683. package/dist/typescript-4/dist/apis/metadata/api-versions-v1.d.ts +17 -0
  684. package/dist/typescript-4/dist/apis/metadata/api-versions-v2.d.ts +17 -0
  685. package/dist/typescript-4/dist/apis/metadata/api-versions-v3.d.ts +16 -2
  686. package/dist/typescript-4/dist/apis/metadata/api-versions-v4.d.ts +16 -2
  687. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
  688. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
  689. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
  690. package/dist/typescript-4/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
  691. package/dist/typescript-4/dist/apis/metadata/index.d.ts +16 -0
  692. package/dist/typescript-4/dist/apis/metadata/metadata-v0.d.ts +38 -0
  693. package/dist/typescript-4/dist/apis/metadata/metadata-v1.d.ts +38 -0
  694. package/dist/typescript-4/dist/apis/metadata/metadata-v10.d.ts +4 -2
  695. package/dist/typescript-4/dist/apis/metadata/metadata-v11.d.ts +3 -2
  696. package/dist/typescript-4/dist/apis/metadata/metadata-v12.d.ts +9 -2
  697. package/dist/typescript-4/dist/apis/metadata/metadata-v2.d.ts +38 -0
  698. package/dist/typescript-4/dist/apis/metadata/metadata-v3.d.ts +38 -0
  699. package/dist/typescript-4/dist/apis/metadata/metadata-v4.d.ts +38 -0
  700. package/dist/typescript-4/dist/apis/metadata/metadata-v5.d.ts +38 -0
  701. package/dist/typescript-4/dist/apis/metadata/metadata-v6.d.ts +38 -0
  702. package/dist/typescript-4/dist/apis/metadata/metadata-v7.d.ts +38 -0
  703. package/dist/typescript-4/dist/apis/metadata/metadata-v8.d.ts +39 -0
  704. package/dist/typescript-4/dist/apis/metadata/metadata-v9.d.ts +5 -3
  705. package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
  706. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
  707. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
  708. package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
  709. package/dist/typescript-4/dist/apis/producer/end-txn-v0.d.ts +10 -0
  710. package/dist/typescript-4/dist/apis/producer/end-txn-v1.d.ts +5 -0
  711. package/dist/typescript-4/dist/apis/producer/end-txn-v2.d.ts +5 -0
  712. package/dist/typescript-4/dist/apis/producer/index.d.ts +17 -0
  713. package/dist/typescript-4/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
  714. package/dist/typescript-4/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
  715. package/dist/typescript-4/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
  716. package/dist/typescript-4/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
  717. package/dist/typescript-4/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
  718. package/dist/typescript-4/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
  719. package/dist/typescript-4/dist/apis/producer/produce-v10.d.ts +12 -0
  720. package/dist/typescript-4/dist/apis/producer/produce-v11.d.ts +12 -0
  721. package/dist/typescript-4/dist/apis/producer/produce-v3.d.ts +29 -0
  722. package/dist/typescript-4/dist/apis/producer/produce-v4.d.ts +29 -0
  723. package/dist/typescript-4/dist/apis/producer/produce-v5.d.ts +29 -0
  724. package/dist/typescript-4/dist/apis/producer/produce-v6.d.ts +29 -0
  725. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
  726. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
  727. package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
  728. package/dist/typescript-4/dist/apis/security/index.d.ts +3 -0
  729. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
  730. package/dist/typescript-4/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
  731. package/dist/typescript-4/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
  732. package/dist/typescript-4/dist/apis/tagged-fields.d.ts +7 -0
  733. package/dist/typescript-4/dist/apis/telemetry/compression-types.d.ts +8 -0
  734. package/dist/typescript-4/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
  735. package/dist/typescript-4/dist/apis/telemetry/index.d.ts +3 -0
  736. package/dist/typescript-4/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
  737. package/dist/typescript-4/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
  738. package/dist/typescript-4/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
  739. package/dist/typescript-4/dist/clients/admin/options.d.ts +62 -6
  740. package/dist/typescript-4/dist/clients/admin/types.d.ts +8 -2
  741. package/dist/typescript-4/dist/clients/base/base.d.ts +3 -3
  742. package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +2 -1
  743. package/dist/typescript-4/dist/clients/consumer/options.d.ts +38 -0
  744. package/dist/typescript-4/dist/clients/consumer/types.d.ts +40 -2
  745. package/dist/typescript-4/dist/clients/consumer/utils.d.ts +2 -1
  746. package/dist/typescript-4/dist/clients/serde.d.ts +1 -1
  747. package/dist/typescript-4/dist/errors.d.ts +4 -0
  748. package/dist/typescript-4/dist/protocol/records.d.ts +4 -0
  749. package/dist/typescript-4/dist/registries/abstract.d.ts +2 -2
  750. package/dist/typescript-4/dist/registries/confluent-schema-registry.d.ts +57 -4
  751. package/dist/typescript-4/dist/symbols.d.ts +1 -0
  752. package/dist/version.js +1 -1
  753. package/package.json +4 -2
@@ -2,7 +2,7 @@ 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 { protocolErrors, UserError } from "../../errors.js";
5
+ import { findErrorBy, NetworkError, protocolErrors, UserError } from "../../errors.js";
6
6
  import { INT32_SIZE } from "../../protocol/definitions.js";
7
7
  import { Reader } from "../../protocol/reader.js";
8
8
  import { IS_CONTROL } from "../../protocol/records.js";
@@ -15,7 +15,7 @@ import { MessagesStream } from "./messages-stream.js";
15
15
  import { commitOptionsValidator, consumeOptionsValidator, consumerOptionsValidator, defaultConsumerOptions, fetchOptionsValidator, getLagOptionsValidator, groupIdAndOptionsValidator, groupOptionsValidator, listCommitsOptionsValidator, listOffsetsOptionsValidator } from "./options.js";
16
16
  import { roundRobinAssigner } from "./partitions-assigners.js";
17
17
  import { TopicsMap } from "./topics-map.js";
18
- import { partitionKey } from "./utils.js";
18
+ import { nextFetchEpoch, partitionKey } from "./utils.js";
19
19
  export class Consumer extends Base {
20
20
  groupId;
21
21
  groupInstanceId;
@@ -32,10 +32,15 @@ export class Consumer extends Base {
32
32
  #heartbeatInterval;
33
33
  #lastHeartbeatIntervalMs;
34
34
  #lastHeartbeat;
35
+ #heartbeatStallTimer;
36
+ #heartbeatStallStart;
37
+ #heartbeatStalled;
38
+ #heartbeatStallError;
35
39
  #useConsumerGroupProtocol;
36
40
  #memberEpoch;
37
41
  #groupRemoteAssignor;
38
42
  #clientRack;
43
+ #fetchSessions;
39
44
  #preferredReadReplicas;
40
45
  #streams;
41
46
  #lagMonitoring;
@@ -76,12 +81,17 @@ export class Consumer extends Base {
76
81
  this.#heartbeatInterval = null;
77
82
  this.#lastHeartbeatIntervalMs = 0;
78
83
  this.#lastHeartbeat = null;
84
+ this.#heartbeatStallTimer = null;
85
+ this.#heartbeatStallStart = null;
86
+ this.#heartbeatStalled = false;
87
+ this.#heartbeatStallError = undefined;
79
88
  this.#streams = new Set();
80
89
  this.#lagMonitoring = null;
81
90
  this.#memberEpoch = 0;
82
91
  this.#useConsumerGroupProtocol = this[kOptions].groupProtocol === 'consumer';
83
92
  this.#groupRemoteAssignor = this[kOptions].groupRemoteAssignor ?? null;
84
93
  this.#clientRack = this[kOptions].clientRack ?? '';
94
+ this.#fetchSessions = new Map();
85
95
  this.#preferredReadReplicas = new Map();
86
96
  this.#streamContext = options.streamContext ?? options.context;
87
97
  this.#validateGroupOptions(this[kOptions], groupIdAndOptionsValidator);
@@ -119,6 +129,7 @@ export class Consumer extends Base {
119
129
  }
120
130
  this[kClosed] = true;
121
131
  clearTimeout(this.#lagMonitoring);
132
+ this.#resetHeartbeatStall();
122
133
  let closer;
123
134
  if (this.#useConsumerGroupProtocol) {
124
135
  closer = this.#leaveGroupConsumerProtocol.bind(this);
@@ -144,6 +155,7 @@ export class Consumer extends Base {
144
155
  return;
145
156
  }
146
157
  this.topics.clear();
158
+ this.#fetchSessions.clear();
147
159
  if (this[kPrometheus]) {
148
160
  ensureMetric(this[kPrometheus], 'Gauge', 'kafka_consumers', 'Number of active Kafka consumers').dec();
149
161
  }
@@ -175,6 +187,10 @@ export class Consumer extends Base {
175
187
  callback(validationError);
176
188
  return callback[kCallbackPromise];
177
189
  }
190
+ if (options.onCorruptedMessage && options.onDeserializationError) {
191
+ callback(new UserError('Cannot specify both onCorruptedMessage and onDeserializationError.'));
192
+ return callback[kCallbackPromise];
193
+ }
178
194
  options.autocommit ??= this[kOptions].autocommit ?? true;
179
195
  options.maxBytes ??= this[kOptions].maxBytes;
180
196
  options.maxBytesPerPartition ??= this[kOptions].maxBytesPerPartition ?? options.maxBytes;
@@ -392,6 +408,10 @@ export class Consumer extends Base {
392
408
  options.rebalanceTimeout ??= this[kOptions].rebalanceTimeout;
393
409
  options.heartbeatInterval ??= this[kOptions].heartbeatInterval;
394
410
  options.protocols ??= this[kOptions].protocols;
411
+ const protocolsMetadata = this[kOptions].protocolsMetadata;
412
+ if (!options.protocolsMetadata && protocolsMetadata) {
413
+ options.protocolsMetadata = protocolsMetadata;
414
+ }
395
415
  this.#validateGroupOptions(options);
396
416
  this.#membershipActive = true;
397
417
  this.#joinGroup(options, callback);
@@ -413,6 +433,7 @@ export class Consumer extends Base {
413
433
  return callback[kCallbackPromise];
414
434
  }
415
435
  this.#membershipActive = false;
436
+ this.#resetHeartbeatStall();
416
437
  this.#leaveGroupClassicProtocol(force, error => {
417
438
  if (error) {
418
439
  this.#membershipActive = true;
@@ -475,12 +496,15 @@ export class Consumer extends Base {
475
496
  }
476
497
  #fetch(options, callback) {
477
498
  const isolationLevel = options.isolationLevel ?? this[kOptions].isolationLevel;
499
+ let refreshMetadata = false;
478
500
  this[kPerformWithRetry]('fetch', retryCallback => {
479
- this[kMetadata]({ topics: this.topics.current }, (error, metadata) => {
501
+ this[kMetadata]({ topics: this.topics.current, forceUpdate: refreshMetadata }, (error, metadata) => {
480
502
  if (error) {
503
+ refreshMetadata = NetworkError.isRetryable(error);
481
504
  retryCallback(error);
482
505
  return;
483
506
  }
507
+ refreshMetadata = false;
484
508
  const topicIds = this.#topicIdsById(metadata);
485
509
  const node = this.#fetchNodeForRequest(metadata, options.node, options.topics, topicIds, Date.now());
486
510
  const broker = metadata.brokers.get(node);
@@ -491,7 +515,9 @@ export class Consumer extends Base {
491
515
  const pool = options.connectionPool ?? this[kConnections];
492
516
  pool.get(broker, (error, connection) => {
493
517
  if (error) {
518
+ refreshMetadata = NetworkError.isRetryable(error);
494
519
  this.#clearPreferredReadReplicas(options.topics, topicIds);
520
+ this.#fetchSessions.delete(node);
495
521
  // When a connection was not available (either interrupted or not available) we
496
522
  // reset the leader epoch in the options so that when connection is re-established again we can continue
497
523
  for (const topic of options.topics) {
@@ -505,14 +531,107 @@ export class Consumer extends Base {
505
531
  }
506
532
  this[kGetApi]('Fetch', (error, api) => {
507
533
  if (error) {
534
+ refreshMetadata = NetworkError.isRetryable(error);
508
535
  retryCallback(error);
509
536
  return;
510
537
  }
511
- api(connection, options.maxWaitTime ?? this[kOptions].maxWaitTime, options.minBytes ?? this[kOptions].minBytes, options.maxBytes ?? this[kOptions].maxBytes, isolationLevel, 0, 0, options.topics, [], this.#clientRack, (error, result) => {
538
+ let session = this.#fetchSessions.get(node);
539
+ if (session && session.pool !== pool) {
540
+ session = undefined;
541
+ }
542
+ const sessionId = session?.id ?? 0;
543
+ const sessionEpoch = session?.epoch ?? 0;
544
+ // The desired state of the session: options.topics always lists all the wanted partitions
545
+ const desired = new Map();
546
+ for (const topic of options.topics) {
547
+ let partitions = desired.get(topic.topicId);
548
+ if (!partitions) {
549
+ partitions = new Map();
550
+ desired.set(topic.topicId, partitions);
551
+ }
552
+ for (const partition of topic.partitions) {
553
+ // Copy the partition since the data is mutated in the error paths
554
+ partitions.set(partition.partition, { ...partition });
555
+ }
556
+ }
557
+ let requestTopics = options.topics;
558
+ const forgottenTopicsData = [];
559
+ if (session) {
560
+ // Only send the partitions which are new or whose state changed: the broker
561
+ // keeps serving the unchanged ones from the session (KIP-227)
562
+ requestTopics = [];
563
+ for (const [topicId, partitions] of desired) {
564
+ const cached = session.partitions.get(topicId);
565
+ const changed = [];
566
+ for (const partition of partitions.values()) {
567
+ const previous = cached?.get(partition.partition);
568
+ if (!previous ||
569
+ previous.fetchOffset !== partition.fetchOffset ||
570
+ previous.currentLeaderEpoch !== partition.currentLeaderEpoch ||
571
+ previous.lastFetchedEpoch !== partition.lastFetchedEpoch ||
572
+ previous.partitionMaxBytes !== partition.partitionMaxBytes) {
573
+ changed.push(partition);
574
+ }
575
+ }
576
+ if (changed.length > 0) {
577
+ requestTopics.push({ topicId, partitions: changed });
578
+ }
579
+ }
580
+ // Ask the broker to remove from the session the partitions which are no
581
+ // longer wanted, otherwise it keeps serving them forever
582
+ for (const [topicId, partitions] of session.partitions) {
583
+ const stillDesired = desired.get(topicId);
584
+ const forgotten = [];
585
+ for (const partition of partitions.keys()) {
586
+ if (!stillDesired?.has(partition)) {
587
+ forgotten.push(partition);
588
+ }
589
+ }
590
+ if (forgotten.length > 0) {
591
+ forgottenTopicsData.push({ topic: topicId, partitions: forgotten });
592
+ }
593
+ }
594
+ }
595
+ // Fetch v12 identifies topics by name, while later versions use UUIDs.
596
+ const useTopicNames = api.version <= 12;
597
+ let topicIdsByName;
598
+ if (useTopicNames) {
599
+ // Built here rather than in the response callback so that the fetch loop allocates
600
+ // it once per request instead of once per request and once per response.
601
+ topicIdsByName = new Map();
602
+ for (const [id, name] of topicIds) {
603
+ topicIdsByName.set(name, id);
604
+ }
605
+ requestTopics = requestTopics.map(topic => ({
606
+ ...topic,
607
+ topicId: topicIds.get(topic.topicId) ?? topic.topicId
608
+ }));
609
+ for (const forgotten of forgottenTopicsData) {
610
+ const topicId = forgotten.topicId ?? forgotten.topic;
611
+ forgotten.topicId = topicIds.get(topicId) ?? topicId;
612
+ delete forgotten.topic;
613
+ }
614
+ }
615
+ 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) => {
616
+ const response = result ?? error?.response;
617
+ if (response && !response.nodeEndpoints) {
618
+ response.nodeEndpoints = [];
619
+ }
620
+ if (useTopicNames && response) {
621
+ for (const topic of response.responses) {
622
+ topic.topicId = topicIdsByName.get(topic.topicId) ?? topic.topicId;
623
+ }
624
+ }
512
625
  if (error) {
626
+ refreshMetadata = NetworkError.isRetryable(error);
513
627
  this.#clearPreferredReadReplicas(options.topics, topicIds);
514
- const genericError = error;
515
- if (genericError.findBy?.('apiId', 'FENCED_LEADER_EPOCH')) {
628
+ if (findErrorBy(error, 'apiId', 'FETCH_SESSION_ID_NOT_FOUND') ||
629
+ findErrorBy(error, 'apiId', 'INVALID_FETCH_SESSION_EPOCH') ||
630
+ findErrorBy(error, 'apiId', 'FETCH_SESSION_TOPIC_ID_ERROR')) {
631
+ this.#fetchSessions.delete(node);
632
+ }
633
+ if (findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH')) {
634
+ this.#fetchSessions.delete(node);
516
635
  this.clearMetadata();
517
636
  for (const topic of options.topics) {
518
637
  for (const partition of topic.partitions) {
@@ -524,6 +643,7 @@ export class Consumer extends Base {
524
643
  }
525
644
  else {
526
645
  this.#updatePreferredReadReplicas(metadata, topicIds, result);
646
+ this.#updateFetchSession(node, pool, sessionEpoch, result.sessionId, desired);
527
647
  }
528
648
  retryCallback(error, result);
529
649
  });
@@ -542,6 +662,20 @@ export class Consumer extends Base {
542
662
  callback(error, response);
543
663
  }, 0);
544
664
  }
665
+ #updateFetchSession(node, pool, sentEpoch, responseSessionId, desired) {
666
+ if (!responseSessionId) {
667
+ this.#fetchSessions.delete(node);
668
+ return;
669
+ }
670
+ // After a successful fetch the broker session contains exactly the desired partitions:
671
+ // unchanged ones already matched it, changed ones were sent and removed ones were forgotten
672
+ this.#fetchSessions.set(node, {
673
+ id: responseSessionId,
674
+ epoch: nextFetchEpoch(sentEpoch),
675
+ pool,
676
+ partitions: desired
677
+ });
678
+ }
545
679
  #commit(options, callback, rejoinAttempts = 0) {
546
680
  this.#performGroupOperation('commit', (connection, groupCallback) => {
547
681
  const topics = new Map();
@@ -579,12 +713,12 @@ export class Consumer extends Base {
579
713
  callback(error);
580
714
  });
581
715
  }
582
- #listOffsets(withTimestamps, options, callback) {
716
+ #listOffsets(withTimestamps, options, callback, forceUpdateMetadata = false) {
583
717
  let topics = options.topics;
584
718
  if (!topics || topics.length === 0) {
585
719
  topics = this.topics.current;
586
720
  }
587
- this[kMetadata]({ topics }, (error, metadata) => {
721
+ this[kMetadata]({ topics, forceUpdate: forceUpdateMetadata }, (error, metadata) => {
588
722
  if (error) {
589
723
  callback(error);
590
724
  return;
@@ -639,6 +773,11 @@ export class Consumer extends Base {
639
773
  }, concurrentCallback, 0);
640
774
  }, (error, responses) => {
641
775
  if (error) {
776
+ if (!forceUpdateMetadata && NetworkError.isRetryable(error)) {
777
+ this.clearMetadata();
778
+ this.#listOffsets(withTimestamps, options, callback, true);
779
+ return;
780
+ }
642
781
  callback(this.#handleError(error));
643
782
  return;
644
783
  }
@@ -695,13 +834,23 @@ export class Consumer extends Base {
695
834
  memberEpoch: this.#useConsumerGroupProtocol ? this.#memberEpoch : -1,
696
835
  topics
697
836
  }
698
- ], false, groupCallback);
837
+ ], false, (error, response) => {
838
+ if (error || api.version >= 8) {
839
+ groupCallback(error, response);
840
+ return;
841
+ }
842
+ const legacyResponse = response;
843
+ groupCallback(null, {
844
+ throttleTimeMs: legacyResponse.throttleTimeMs,
845
+ groups: [{ groupId: this.groupId, topics: legacyResponse.topics, errorCode: legacyResponse.errorCode }]
846
+ });
847
+ });
699
848
  });
700
849
  }, (error, response) => {
701
850
  if (error) {
702
851
  if (this.#useConsumerGroupProtocol &&
703
852
  staleMemberEpochRetries < this[kOptions].retries &&
704
- error.findBy?.('apiId', 'STALE_MEMBER_EPOCH')) {
853
+ findErrorBy(error, 'apiId', 'STALE_MEMBER_EPOCH')) {
705
854
  this.#consumerGroupHeartbeat(this[kOptions], heartbeatError => {
706
855
  if (heartbeatError) {
707
856
  callback(this.#handleError(heartbeatError));
@@ -753,6 +902,7 @@ export class Consumer extends Base {
753
902
  return;
754
903
  }
755
904
  this.emitWithDebug('consumer:heartbeat', 'start', eventPayload);
905
+ this.#trackHeartbeatStall(options);
756
906
  this[kGetApi]('Heartbeat', (error, api) => {
757
907
  if (error) {
758
908
  groupCallback(error);
@@ -769,21 +919,43 @@ export class Consumer extends Base {
769
919
  if (error) {
770
920
  this.#cancelHeartbeat();
771
921
  if (this.#getRejoinError(error)) {
922
+ // A rejoin can legitimately block up to rebalanceTimeout:
923
+ // - extend the stall window by that bound rather than pausing it
924
+ // - a rejoin that never completes still surfaces as a stall
925
+ this.#resetHeartbeatStall();
926
+ this.#trackHeartbeatStall(options, error, options.rebalanceTimeout + this.#heartbeatStallTimeoutFor(options));
772
927
  this[kPerformWithRetry]('rejoinGroup', retryCallback => {
773
928
  this.#joinGroup(options, retryCallback);
774
929
  }, error => {
775
930
  if (error) {
776
931
  this.emitWithDebug(null, 'error', error);
932
+ if (!this.#heartbeatStalled) {
933
+ // No more heartbeats will be scheduled: restart the stall window without
934
+ // the rejoin grace, keeping the triggering heartbeat error as lastError.
935
+ const heartbeatError = this.#heartbeatStallError;
936
+ this.#resetHeartbeatStall();
937
+ this.#trackHeartbeatStall(options, heartbeatError);
938
+ }
939
+ }
940
+ else {
941
+ // Rejoin succeeded: drop the extended window; the next heartbeat opens the normal one.
942
+ this.#resetHeartbeatStall();
777
943
  }
778
944
  this.emitWithDebug('consumer', 'rejoin');
779
945
  }, 0);
780
946
  return;
781
947
  }
948
+ // The error was not group related, so we schedule another heartbeat.
949
+ // Do this before notifying listeners so they can still cancel it.
950
+ this.#heartbeatInterval = setTimeout(() => {
951
+ this.#heartbeat(options);
952
+ }, options.heartbeatInterval);
782
953
  this.emitWithDebug('consumer:heartbeat', 'error', { ...eventPayload, error });
783
- // Note that here we purposely do not return, since it was not a group related problem we schedule another heartbeat
954
+ this.#trackHeartbeatStall(options, error);
784
955
  }
785
956
  else {
786
957
  this.#lastHeartbeat = new Date();
958
+ this.#resetHeartbeatStall();
787
959
  this.emitWithDebug('consumer:heartbeat', 'end', eventPayload);
788
960
  }
789
961
  this.#heartbeatInterval?.refresh();
@@ -793,6 +965,47 @@ export class Consumer extends Base {
793
965
  clearTimeout(this.#heartbeatInterval);
794
966
  this.#heartbeatInterval = null;
795
967
  }
968
+ #heartbeatStallTimeoutFor(options) {
969
+ return (options.heartbeatStallTimeout ??
970
+ this[kOptions].heartbeatStallTimeout ??
971
+ options.rebalanceTimeout ??
972
+ this[kOptions].rebalanceTimeout ??
973
+ defaultConsumerOptions.rebalanceTimeout);
974
+ }
975
+ // Opens the stall window on the first heartbeat attempt after the last success.
976
+ // The window survives retries and only #resetHeartbeatStall closes it.
977
+ #trackHeartbeatStall(options, error, timeout) {
978
+ if (error) {
979
+ this.#heartbeatStallError = error;
980
+ }
981
+ if (this.#heartbeatStalled || this.#heartbeatStallTimer) {
982
+ return;
983
+ }
984
+ timeout ??= this.#heartbeatStallTimeoutFor(options);
985
+ this.#heartbeatStallStart = Date.now();
986
+ this.#heartbeatStallTimer = setTimeout(() => {
987
+ this.#heartbeatStallTimer = null;
988
+ // Emit once per stall episode. The next successful heartbeat re-arms the tracking.
989
+ this.#heartbeatStalled = true;
990
+ if (this[kClosed] || !this.#membershipActive) {
991
+ return;
992
+ }
993
+ this.emitWithDebug('consumer:heartbeat', 'stalled', {
994
+ lastError: this.#heartbeatStallError,
995
+ lastHeartbeat: this.#lastHeartbeat,
996
+ stalledFor: Date.now() - this.#heartbeatStallStart
997
+ });
998
+ }, timeout);
999
+ }
1000
+ #resetHeartbeatStall() {
1001
+ if (this.#heartbeatStallTimer) {
1002
+ clearTimeout(this.#heartbeatStallTimer);
1003
+ this.#heartbeatStallTimer = null;
1004
+ }
1005
+ this.#heartbeatStallStart = null;
1006
+ this.#heartbeatStalled = false;
1007
+ this.#heartbeatStallError = undefined;
1008
+ }
796
1009
  #consumerGroupHeartbeat(options, callback) {
797
1010
  options.rebalanceTimeout ??= this[kOptions].rebalanceTimeout;
798
1011
  consumerHeartbeatChannel.traceCallback(this.#performConsumerGroupHeartbeat, 1, createDiagnosticContext({ client: this, operation: 'consumerGroupHeartbeat' }), this, options, callback);
@@ -800,6 +1013,7 @@ export class Consumer extends Base {
800
1013
  #performConsumerGroupHeartbeat(options, callback) {
801
1014
  this.#performGroupOperation('consumerGroupHeartbeat', (connection, groupCallback) => {
802
1015
  this.emitWithDebug('consumer:heartbeat', 'start');
1016
+ this.#trackHeartbeatStall(options);
803
1017
  this[kGetApi]('ConsumerGroupHeartbeat', (error, api) => {
804
1018
  if (error) {
805
1019
  groupCallback(error);
@@ -810,6 +1024,7 @@ export class Consumer extends Base {
810
1024
  });
811
1025
  }, (error, response) => {
812
1026
  if (this[kClosed]) {
1027
+ this.#resetHeartbeatStall();
813
1028
  this.emitWithDebug('consumer:heartbeat', 'end');
814
1029
  callback(null);
815
1030
  return;
@@ -817,6 +1032,7 @@ export class Consumer extends Base {
817
1032
  if (error) {
818
1033
  this.#cancelHeartbeat();
819
1034
  this.emitWithDebug('consumer:heartbeat', 'error', { error });
1035
+ this.#trackHeartbeatStall(options, error);
820
1036
  const fenced = error.response?.errorCode === protocolErrors.FENCED_MEMBER_EPOCH.code;
821
1037
  if (fenced) {
822
1038
  this.#assignments = [];
@@ -834,6 +1050,7 @@ export class Consumer extends Base {
834
1050
  return;
835
1051
  }
836
1052
  this.#lastHeartbeat = new Date();
1053
+ this.#resetHeartbeatStall();
837
1054
  this.#memberEpoch = response.memberEpoch;
838
1055
  if (response.memberId) {
839
1056
  const changed = this.memberId !== response.memberId;
@@ -883,6 +1100,7 @@ export class Consumer extends Base {
883
1100
  if (toRevoke.length === 0) {
884
1101
  return;
885
1102
  }
1103
+ this.emitWithDebug('consumer', 'group:rebalance', { groupId: this.groupId });
886
1104
  for (const stream of this.#streams) {
887
1105
  stream.pause();
888
1106
  stream[kAutocommit]();
@@ -951,7 +1169,35 @@ export class Consumer extends Base {
951
1169
  callback(err);
952
1170
  });
953
1171
  }
954
- #leaveGroupConsumerProtocol(_, callback) {
1172
+ #leaveGroupConsumerProtocol(force, callback) {
1173
+ // Remove streams that might have been exited in the meanwhile
1174
+ for (const stream of this.#streams) {
1175
+ if (stream.closed || stream.destroyed) {
1176
+ this.#streams.delete(stream);
1177
+ }
1178
+ }
1179
+ // Active streams must be closed before leaving the group, exactly like in the classic protocol.
1180
+ // Their fetch loop keeps running until they are closed and, since Consumer.close marks the client
1181
+ // as closed before leaving, any fetch scheduled in the meanwhile would fail with "Client is closed."
1182
+ // and destroy the stream with an error the user never asked for.
1183
+ if (this.#streams.size) {
1184
+ if (!force) {
1185
+ callback(new UserError('Cannot leave group while consuming messages.'));
1186
+ return;
1187
+ }
1188
+ runConcurrentCallbacks('Closing streams failed.', this.#streams, (stream, concurrentCallback) => {
1189
+ stream.close(concurrentCallback);
1190
+ }, error => {
1191
+ /* c8 ignore next 4 - Hard to test */
1192
+ if (error) {
1193
+ callback(error);
1194
+ return;
1195
+ }
1196
+ // All streams are closed, try the operation again without force
1197
+ this.#leaveGroupConsumerProtocol(false, callback);
1198
+ });
1199
+ return;
1200
+ }
955
1201
  // Leave by sending a heartbeat with memberEpoch = -1
956
1202
  this.#cancelHeartbeat();
957
1203
  this.#performDeduplicateGroupOperaton('leaveGroupConsumerProtocol', (connection, groupCallback) => {
@@ -1044,7 +1290,12 @@ export class Consumer extends Base {
1044
1290
  retryCallback(error);
1045
1291
  return;
1046
1292
  }
1047
- api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId], retryCallback);
1293
+ api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId], (error, response) => {
1294
+ if (response && api.version < 4) {
1295
+ response.coordinators[0].key = this.groupId;
1296
+ }
1297
+ retryCallback(error, response);
1298
+ });
1048
1299
  });
1049
1300
  });
1050
1301
  }, (error, response) => {
@@ -1064,45 +1315,20 @@ export class Consumer extends Base {
1064
1315
  return;
1065
1316
  }
1066
1317
  this.#cancelHeartbeat();
1067
- const protocols = [];
1068
- for (const protocol of options.protocols) {
1069
- protocols.push({
1070
- name: protocol.name,
1071
- metadata: this.#encodeProtocolSubscriptionMetadata(protocol, this.topics.current)
1072
- });
1073
- }
1074
- this.#performDeduplicateGroupOperaton('joinGroup', (connection, groupCallback) => {
1075
- this[kGetApi]('JoinGroup', (error, api) => {
1076
- if (error) {
1077
- groupCallback(error);
1078
- return;
1079
- }
1080
- api(connection, this.groupId, options.sessionTimeout, options.rebalanceTimeout, this.memberId ?? '', this.groupInstanceId, 'consumer', protocols, '', groupCallback);
1081
- });
1082
- }, (error, response) => {
1083
- if (!this.#membershipActive) {
1084
- callback(null);
1085
- return;
1086
- }
1318
+ this.#createJoinGroupProtocols(options, (error, protocols) => {
1087
1319
  if (error) {
1088
- if (this.#getRejoinError(error)) {
1089
- this.#performJoinGroup(options, callback);
1090
- return;
1091
- }
1092
1320
  callback(error);
1093
1321
  return;
1094
1322
  }
1095
- // This is for Azure Event Hubs compatibility, which does not respond with an error on the first join
1096
- this.memberId = response.memberId;
1097
- this.generationId = response.generationId;
1098
- this.#isLeader = response.leader === this.memberId;
1099
- this.#protocol = response.protocolName;
1100
- this.#members = new Map();
1101
- for (const member of response.members) {
1102
- this.#members.set(member.memberId, this.#decodeProtocolSubscriptionMetadata(member.memberId, member.metadata));
1103
- }
1104
- // Send a syncGroup request
1105
- this.#syncGroup(options.partitionAssigner, (error, response) => {
1323
+ this.#performDeduplicateGroupOperaton('joinGroup', (connection, groupCallback) => {
1324
+ this[kGetApi]('JoinGroup', (error, api) => {
1325
+ if (error) {
1326
+ groupCallback(error);
1327
+ return;
1328
+ }
1329
+ api(connection, this.groupId, options.sessionTimeout, options.rebalanceTimeout, this.memberId ?? '', this.groupInstanceId, 'consumer', protocols, '', groupCallback);
1330
+ });
1331
+ }, (error, response) => {
1106
1332
  if (!this.#membershipActive) {
1107
1333
  callback(null);
1108
1334
  return;
@@ -1115,20 +1341,44 @@ export class Consumer extends Base {
1115
1341
  callback(error);
1116
1342
  return;
1117
1343
  }
1118
- this.assignments = response;
1119
- this.#syncPreferredReadReplicas();
1120
- this.#cancelHeartbeat();
1121
- this.#heartbeatInterval = setTimeout(() => {
1122
- this.#heartbeat(options);
1123
- }, options.heartbeatInterval);
1124
- this.emitWithDebug('consumer', 'group:join', {
1125
- groupId: this.groupId,
1126
- memberId: this.memberId,
1127
- generationId: this.generationId,
1128
- isLeader: this.#isLeader,
1129
- assignments: this.assignments
1344
+ // This is for Azure Event Hubs compatibility, which does not respond with an error on the first join
1345
+ this.memberId = response.memberId;
1346
+ this.generationId = response.generationId;
1347
+ this.#isLeader = response.leader === this.memberId;
1348
+ this.#protocol = response.protocolName;
1349
+ this.#members = new Map();
1350
+ for (const member of response.members) {
1351
+ this.#members.set(member.memberId, this.#decodeProtocolSubscriptionMetadata(member.memberId, member.metadata));
1352
+ }
1353
+ // Send a syncGroup request
1354
+ this.#syncGroup(options.partitionAssigner, (error, response) => {
1355
+ if (!this.#membershipActive) {
1356
+ callback(null);
1357
+ return;
1358
+ }
1359
+ if (error) {
1360
+ if (this.#getRejoinError(error)) {
1361
+ this.#performJoinGroup(options, callback);
1362
+ return;
1363
+ }
1364
+ callback(error);
1365
+ return;
1366
+ }
1367
+ this.assignments = response;
1368
+ this.#syncPreferredReadReplicas();
1369
+ this.#cancelHeartbeat();
1370
+ this.#heartbeatInterval = setTimeout(() => {
1371
+ this.#heartbeat(options);
1372
+ }, options.heartbeatInterval);
1373
+ this.emitWithDebug('consumer', 'group:join', {
1374
+ groupId: this.groupId,
1375
+ memberId: this.memberId,
1376
+ generationId: this.generationId,
1377
+ isLeader: this.#isLeader,
1378
+ assignments: this.assignments
1379
+ });
1380
+ callback(null, this.memberId);
1130
1381
  });
1131
- callback(null, this.memberId);
1132
1382
  });
1133
1383
  });
1134
1384
  }
@@ -1171,7 +1421,7 @@ export class Consumer extends Base {
1171
1421
  });
1172
1422
  }, error => {
1173
1423
  if (error) {
1174
- const unknownMemberError = error.findBy?.('unknownMemberId', true);
1424
+ const unknownMemberError = findErrorBy(error, 'unknownMemberId', true);
1175
1425
  // This is to avoid throwing an error if a group join was cancelled.
1176
1426
  if (!unknownMemberError) {
1177
1427
  callback(error);
@@ -1209,11 +1459,17 @@ export class Consumer extends Base {
1209
1459
  topicSubscriptions.push(subscription);
1210
1460
  }
1211
1461
  }
1212
- this[kMetadata]({ topics: Array.from(topicsSubscriptions.keys()) }, (error, metadata) => {
1462
+ const subscribedTopics = Array.from(topicsSubscriptions.keys());
1463
+ this[kMetadata]({ topics: subscribedTopics }, (error, metadata) => {
1213
1464
  if (error) {
1214
1465
  callback(this.#handleError(error));
1215
1466
  return;
1216
1467
  }
1468
+ const missingTopic = subscribedTopics.find(topic => !metadata.topics.has(topic));
1469
+ if (missingTopic) {
1470
+ callback(this.#handleError(new NetworkError(`Cannot compute group assignments: metadata for subscribed topic "${missingTopic}" is not available in the current cluster metadata.`, { canRetry: true, hasStaleMetadata: true })));
1471
+ return;
1472
+ }
1217
1473
  this.#performSyncGroup(partitionsAssigner, this.#createAssignments(partitionsAssigner, metadata), callback);
1218
1474
  });
1219
1475
  return;
@@ -1282,6 +1538,61 @@ export class Consumer extends Base {
1282
1538
  throw new UserError(this[kFormatValidationErrors](validator, '/options'));
1283
1539
  }
1284
1540
  }
1541
+ #createJoinGroupProtocols(options, callback) {
1542
+ if (typeof options.protocolsMetadata !== 'function') {
1543
+ callback(null, options.protocols.map(protocol => ({
1544
+ name: protocol.name,
1545
+ metadata: this.#encodeProtocolSubscriptionMetadata(protocol, this.topics.current)
1546
+ })));
1547
+ return;
1548
+ }
1549
+ this[kMetadata]({ topics: this.topics.current, forceUpdate: true }, (error, metadata) => {
1550
+ if (error) {
1551
+ callback(this.#handleError(error));
1552
+ return;
1553
+ }
1554
+ this.#resolveProtocolsMetadata(options.protocolsMetadata, options.protocols, this.topics.current, metadata, (error, userData) => {
1555
+ if (error) {
1556
+ callback(error);
1557
+ return;
1558
+ }
1559
+ else if (!Buffer.isBuffer(userData)) {
1560
+ callback(new UserError('protocolsMetadata must resolve to a Buffer.'));
1561
+ return;
1562
+ }
1563
+ callback(null, options.protocols.map(protocol => ({
1564
+ name: protocol.name,
1565
+ metadata: this.#encodeProtocolSubscriptionMetadata({ ...protocol, metadata: userData }, this.topics.current)
1566
+ })));
1567
+ });
1568
+ });
1569
+ }
1570
+ #resolveProtocolsMetadata(protocolsMetadata, protocols, topics, metadata, callback) {
1571
+ let settled = false;
1572
+ function resolveCallback(error, userData) {
1573
+ if (settled) {
1574
+ return;
1575
+ }
1576
+ settled = true;
1577
+ callback(error, userData);
1578
+ }
1579
+ let result;
1580
+ try {
1581
+ result = protocolsMetadata(protocols, topics, metadata, resolveCallback);
1582
+ if (typeof result !== 'undefined') {
1583
+ if (typeof result.then === 'function') {
1584
+ ;
1585
+ result.then(userData => process.nextTick(resolveCallback, null, userData), error => process.nextTick(resolveCallback, error));
1586
+ }
1587
+ else {
1588
+ resolveCallback(null, result);
1589
+ }
1590
+ }
1591
+ }
1592
+ catch (error) {
1593
+ resolveCallback(error);
1594
+ }
1595
+ }
1285
1596
  /*
1286
1597
  The following two methods follow:
1287
1598
  https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/ConsumerProtocolSubscription.json
@@ -1365,12 +1676,13 @@ export class Consumer extends Base {
1365
1676
  if (!partition.records) {
1366
1677
  continue;
1367
1678
  }
1368
- if (partition.abortedTransactions.length) {
1679
+ const abortedTransactions = partition.abortedTransactions ?? [];
1680
+ if (abortedTransactions.length) {
1369
1681
  const abortedRanges = new Map();
1370
1682
  // Find first offsets
1371
1683
  // For last offsets we set -1n as special value. It allows us to detect open ranges, whichs means
1372
1684
  // that Kafka has not sent the control marker. In that case we ignore the range for safety.
1373
- for (const aborted of partition.abortedTransactions) {
1685
+ for (const aborted of abortedTransactions) {
1374
1686
  abortedRanges.set(aborted.producerId, [aborted.firstOffset, -1n]);
1375
1687
  }
1376
1688
  // Now find last offsets
@@ -1391,7 +1703,7 @@ export class Consumer extends Base {
1391
1703
  }
1392
1704
  }
1393
1705
  #getRejoinError(error) {
1394
- const protocolError = error.findBy?.('needsRejoin', true);
1706
+ const protocolError = findErrorBy(error, 'needsRejoin', true);
1395
1707
  if (!protocolError) {
1396
1708
  return null;
1397
1709
  }
@@ -1477,17 +1789,14 @@ export class Consumer extends Base {
1477
1789
  }
1478
1790
  }
1479
1791
  #handleError(error) {
1480
- const kafkaError = error;
1481
- if (kafkaError) {
1482
- if (kafkaError.findBy('hasStaleMetadata', true)) {
1483
- this.clearMetadata();
1484
- }
1485
- else if (kafkaError.findBy('code', 'PLT_KFK_NETWORK') ||
1486
- kafkaError.findBy('apiId', 'COORDINATOR_LOAD_IN_PROGRESS') ||
1487
- kafkaError.findBy('apiId', 'COORDINATOR_NOT_AVAILABLE') ||
1488
- kafkaError.findBy('apiId', 'NOT_COORDINATOR')) {
1489
- this.#coordinatorId = null;
1490
- }
1792
+ if (findErrorBy(error, 'hasStaleMetadata', true)) {
1793
+ this.clearMetadata();
1794
+ }
1795
+ else if (findErrorBy(error, 'code', 'PLT_KFK_NETWORK') ||
1796
+ findErrorBy(error, 'apiId', 'COORDINATOR_LOAD_IN_PROGRESS') ||
1797
+ findErrorBy(error, 'apiId', 'COORDINATOR_NOT_AVAILABLE') ||
1798
+ findErrorBy(error, 'apiId', 'NOT_COORDINATOR')) {
1799
+ this.#coordinatorId = null;
1491
1800
  }
1492
1801
  return error;
1493
1802
  }