@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
@@ -1,3 +1,9 @@
1
1
  export function partitionKey(topic, partition) {
2
2
  return `${topic}:${partition}`;
3
3
  }
4
+ export function nextFetchEpoch(epoch) {
5
+ if (epoch < 0) {
6
+ return 0;
7
+ }
8
+ return epoch >= 0x7fffffff ? 1 : epoch + 1;
9
+ }
@@ -2,7 +2,7 @@ import { randomUUID } from 'crypto';
2
2
  import { createPromisifiedCallback, kCallbackPromise, runConcurrentCallbacks } from "../../apis/callbacks.js";
3
3
  import { FindCoordinatorKeyTypes, ProduceAcks } from "../../apis/enumerations.js";
4
4
  import { createDiagnosticContext, producerInitIdempotentChannel, producerSendsChannel, producerTransactionsChannel } from "../../diagnostic.js";
5
- import { GenericError, UserError } from "../../errors.js";
5
+ import { findErrorBy, NetworkError, UserError } from "../../errors.js";
6
6
  import { runAsyncSeries } from "../../registries/abstract.js";
7
7
  import { kInstance, kTransaction, kTransactionAddOffsets, kTransactionAddPartitions, kTransactionCancel, kTransactionCommitOffset, kTransactionEnd, kTransactionFindCoordinator, kTransactionPrepare } from "../../symbols.js";
8
8
  import { emitExperimentalApiWarning, NumericMap } from "../../utils.js";
@@ -342,7 +342,7 @@ export class Producer extends Base {
342
342
  }
343
343
  const transactionalId = this.#transaction.id;
344
344
  this[kPerformDeduplicated]('findCoordinator', deduplicateCallback => {
345
- this[kPerformWithRetry]('findCoordinator', retryCallback => {
345
+ this[kPerformWithRetry]('findCoordinator', (retryCallback, attempt) => {
346
346
  this[kGetBootstrapConnection]((error, connection) => {
347
347
  if (error) {
348
348
  retryCallback(error);
@@ -353,9 +353,14 @@ export class Producer extends Base {
353
353
  retryCallback(error);
354
354
  return;
355
355
  }
356
- api(connection, FindCoordinatorKeyTypes.TRANSACTION, [transactionalId], retryCallback);
356
+ api(connection, FindCoordinatorKeyTypes.TRANSACTION, [transactionalId], (error, response) => {
357
+ if (response && api.version < 4) {
358
+ response.coordinators[0].key = transactionalId;
359
+ }
360
+ retryCallback(error, response);
361
+ });
357
362
  });
358
- });
363
+ }, attempt);
359
364
  }, (error, response) => {
360
365
  if (error) {
361
366
  deduplicateCallback(error);
@@ -531,11 +536,8 @@ export class Producer extends Base {
531
536
  #initIdempotentProducer(options, callback) {
532
537
  const transactionalId = this.#transaction?.id;
533
538
  this[kPerformDeduplicated]('initProducerId', deduplicateCallback => {
534
- this[kPerformWithRetry]('initProducerId', retryCallback => {
535
- const connector = transactionalId
536
- ? this.#getCoordinatorConnection.bind(this)
537
- : this[kGetBootstrapConnection].bind(this);
538
- connector((error, connection) => {
539
+ this[kPerformWithRetry]('initProducerId', (retryCallback, attempt) => {
540
+ const onConnection = (error, connection) => {
539
541
  if (error) {
540
542
  retryCallback(error);
541
543
  return;
@@ -549,7 +551,16 @@ export class Producer extends Base {
549
551
  retryCallback(this.#handleError(error), response);
550
552
  });
551
553
  });
552
- });
554
+ };
555
+ // The transactional path fails over inside #getCoordinatorConnection (via
556
+ // #findCoordinator -> kGetBootstrapConnection). The idempotent path must thread
557
+ // `attempt` so kGetBootstrapConnection rotates past a reachable-but-hung broker.
558
+ if (transactionalId) {
559
+ this.#getCoordinatorConnection(onConnection);
560
+ }
561
+ else {
562
+ this[kGetBootstrapConnection](onConnection, attempt);
563
+ }
553
564
  }, (error, response) => {
554
565
  if (error) {
555
566
  this.#handleFencingError(error);
@@ -685,9 +696,16 @@ export class Producer extends Base {
685
696
  }
686
697
  // Track nodes so that we can get their ID for delayed write reporting
687
698
  const nodes = [];
699
+ const sequenceSnapshot = produceOptions.sequences ? new NumericMap() : undefined;
700
+ if (sequenceSnapshot) {
701
+ for (const [partitionKey, messagesCount] of messagesPerPartition) {
702
+ sequenceSnapshot.set(partitionKey, this.#sequences.postIncrement(partitionKey, messagesCount, 0));
703
+ }
704
+ produceOptions = { ...produceOptions, sequences: sequenceSnapshot };
705
+ }
688
706
  runConcurrentCallbacks('Producing messages failed.', messagesByDestination, ([destination, destinationMessages], concurrentCallback) => {
689
707
  nodes.push(destination);
690
- this.#performSingleDestinationSend(topics, destinationMessages, this[kOptions].timeout, sendOptions.acks, sendOptions.autocreateTopics, sendOptions.repeatOnStaleMetadata, produceOptions, concurrentCallback);
708
+ this.#performSingleDestinationSend(topics, destinationMessages, this[kOptions].timeout, sendOptions.acks, sendOptions.autocreateTopics, sendOptions.repeatOnStaleMetadata, produceOptions, true, concurrentCallback);
691
709
  }, (error, apiResults) => {
692
710
  this.#metricsProducedMessages?.inc(messages.length);
693
711
  const results = {};
@@ -710,14 +728,16 @@ export class Producer extends Base {
710
728
  partition: partitionResponse.index,
711
729
  offset: partitionResponse.baseOffset
712
730
  });
713
- const partitionKey = `${name}:${partitionResponse.index}`;
714
- this.#sequences.postIncrement(partitionKey, messagesPerPartition.get(partitionKey), 0);
715
731
  }
716
732
  }
717
733
  results.offsets = topics;
718
734
  }
719
735
  }
720
736
  if (error) {
737
+ if (sendOptions.idempotent && !this.#transaction) {
738
+ this.#producerInfo = undefined;
739
+ this.#sequences.clear();
740
+ }
721
741
  ;
722
742
  error.produced = results;
723
743
  callback(error);
@@ -728,53 +748,94 @@ export class Producer extends Base {
728
748
  });
729
749
  });
730
750
  }
731
- #performSingleDestinationSend(topics, messages, timeout, acks, autocreateTopics, repeatOnStaleMetadata, produceOptions, callback) {
732
- // Get the metadata with the topic/partitions informations
733
- this[kMetadata]({ topics, autocreateTopics }, (error, metadata) => {
734
- if (error) {
735
- callback(error);
736
- return;
737
- }
738
- const { topic, partition } = messages[0];
739
- const leader = metadata.topics.get(topic).partitions[partition].leader;
740
- this[kPerformWithRetry]('produce', retryCallback => {
751
+ #performSingleDestinationSend(topics, messages, timeout, acks, autocreateTopics, repeatOnStaleMetadata, produceOptions, recoverOnProducerStateLoss, callback) {
752
+ const { topic, partition } = messages[0];
753
+ let refreshMetadata = false;
754
+ this[kPerformWithRetry]('produce', retryCallback => {
755
+ this[kMetadata]({ topics, autocreateTopics, forceUpdate: refreshMetadata }, (error, metadata) => {
756
+ if (error) {
757
+ refreshMetadata = NetworkError.isRetryable(error);
758
+ retryCallback(error);
759
+ return;
760
+ }
761
+ refreshMetadata = false;
762
+ const leader = metadata.topics.get(topic).partitions[partition].leader;
741
763
  this[kGetConnection](metadata.brokers.get(leader), (error, connection) => {
742
764
  if (error) {
765
+ refreshMetadata = NetworkError.isRetryable(error);
743
766
  retryCallback(error);
744
767
  return;
745
768
  }
746
769
  this[kGetApi]('Produce', (error, api) => {
747
770
  if (error) {
771
+ refreshMetadata = NetworkError.isRetryable(error);
748
772
  retryCallback(error);
749
773
  return;
750
774
  }
751
- api(connection, acks, timeout, messages, produceOptions, retryCallback);
775
+ api(connection, acks, timeout, messages, produceOptions, (error, response) => {
776
+ refreshMetadata = NetworkError.isRetryable(error);
777
+ retryCallback(error, response);
778
+ });
752
779
  });
753
780
  });
754
- }, (error, results) => {
755
- if (error) {
756
- // If the last error was due to stale metadata, we retry the operation with this set of messages
757
- // since the partition is already set, it should attempt on the new destination
758
- /* c8 ignore next 3 - Hard to test */
759
- const kafkaError = GenericError.isGenericError(error)
760
- ? error
761
- : null;
762
- const hasStaleMetadata = kafkaError?.findBy('hasStaleMetadata', true);
763
- if (hasStaleMetadata && repeatOnStaleMetadata) {
764
- this.clearMetadata();
765
- this.#performSingleDestinationSend(topics, messages, timeout, acks, autocreateTopics, false, produceOptions, callback);
766
- return;
767
- }
768
- callback(error, results);
781
+ });
782
+ }, (error, results) => {
783
+ if (error) {
784
+ // If the last error was due to stale metadata, we retry the operation with this set of messages
785
+ // since the partition is already set, it should attempt on the new destination
786
+ /* c8 ignore next - Hard to test */
787
+ const hasStaleMetadata = findErrorBy(error, 'hasStaleMetadata', true);
788
+ if (hasStaleMetadata && repeatOnStaleMetadata) {
789
+ this.clearMetadata();
790
+ this.#performSingleDestinationSend(topics, messages, timeout, acks, autocreateTopics, false, produceOptions, recoverOnProducerStateLoss, callback);
769
791
  return;
770
792
  }
771
- callback(error, results);
772
- }, 0, [], error => {
773
- /* c8 ignore next 3 - Hard to test */
774
- if (!repeatOnStaleMetadata || !GenericError.isGenericError(error)) {
775
- return false;
793
+ if (recoverOnProducerStateLoss && !this.#transaction && this.#isProducerStateLost(error)) {
794
+ this.#recoverIdempotentProducer(messages, produceOptions, (error, recoveredProduceOptions) => {
795
+ if (error) {
796
+ callback(error);
797
+ return;
798
+ }
799
+ this.#performSingleDestinationSend(topics, messages, timeout, acks, autocreateTopics, repeatOnStaleMetadata, recoveredProduceOptions, false, callback);
800
+ });
801
+ return;
776
802
  }
777
- return !!error.findBy('hasStaleMetadata', true);
803
+ callback(error, results);
804
+ return;
805
+ }
806
+ callback(error, results);
807
+ }, 0, [], error => {
808
+ /* c8 ignore next 3 - Hard to test */
809
+ if (!repeatOnStaleMetadata) {
810
+ return false;
811
+ }
812
+ return !!findErrorBy(error, 'hasStaleMetadata', true);
813
+ });
814
+ }
815
+ #isProducerStateLost(error) {
816
+ return !!(findErrorBy(error, 'apiId', 'UNKNOWN_PRODUCER_ID') || findErrorBy(error, 'apiId', 'OUT_OF_ORDER_SEQUENCE_NUMBER'));
817
+ }
818
+ #recoverIdempotentProducer(messages, produceOptions, callback) {
819
+ this.#producerInfo = undefined;
820
+ this.#sequences.clear();
821
+ this.initIdempotentProducer({}, (error, producerInfo) => {
822
+ if (error) {
823
+ callback(error);
824
+ return;
825
+ }
826
+ const sequences = new NumericMap();
827
+ const messagesPerPartition = new NumericMap();
828
+ for (const { topic, partition } of messages) {
829
+ messagesPerPartition.postIncrement(`${topic}:${partition}`, 1, 0);
830
+ }
831
+ for (const [partitionKey, messagesCount] of messagesPerPartition) {
832
+ sequences.set(partitionKey, this.#sequences.postIncrement(partitionKey, messagesCount, 0));
833
+ }
834
+ callback(null, {
835
+ ...produceOptions,
836
+ producerId: producerInfo.producerId,
837
+ producerEpoch: producerInfo.producerEpoch,
838
+ sequences
778
839
  });
779
840
  });
780
841
  }
@@ -805,20 +866,17 @@ export class Producer extends Base {
805
866
  });
806
867
  }
807
868
  #handleFencingError(error) {
808
- if (error.findBy?.('producerFenced', true)) {
869
+ if (findErrorBy(error, 'producerFenced', true)) {
809
870
  this.#producerInfo = undefined;
810
871
  this.#transaction = undefined;
811
872
  }
812
873
  }
813
874
  #handleError(error) {
814
- const kafkaError = error;
815
- if (kafkaError) {
816
- if (kafkaError.findBy('code', 'PLT_KFK_NETWORK') ||
817
- kafkaError.findBy('apiId', 'COORDINATOR_LOAD_IN_PROGRESS') ||
818
- kafkaError.findBy('apiId', 'COORDINATOR_NOT_AVAILABLE') ||
819
- kafkaError.findBy('apiId', 'NOT_COORDINATOR')) {
820
- this.#coordinatorId = undefined;
821
- }
875
+ if (findErrorBy(error, 'code', 'PLT_KFK_NETWORK') ||
876
+ findErrorBy(error, 'apiId', 'COORDINATOR_LOAD_IN_PROGRESS') ||
877
+ findErrorBy(error, 'apiId', 'COORDINATOR_NOT_AVAILABLE') ||
878
+ findErrorBy(error, 'apiId', 'NOT_COORDINATOR')) {
879
+ this.#coordinatorId = undefined;
822
880
  }
823
881
  return error;
824
882
  }
@@ -17,7 +17,7 @@ export interface Deserializers<Key, Value, HeaderKey, HeaderValue> {
17
17
  headerValue: Deserializer<HeaderValue>;
18
18
  }
19
19
  export type BeforeHookPayloadType = 'key' | 'value' | 'headerKey' | 'headerValue';
20
- export type BeforeDeserializationHook = (payload: Buffer, type: BeforeHookPayloadType, message: MessageToConsume, callback: Callback<void>) => void | Promise<void>;
20
+ export type BeforeDeserializationHook = (payload: Buffer | null, type: BeforeHookPayloadType, message: MessageToConsume, callback: Callback<void>) => void | Promise<void>;
21
21
  export type BeforeSerializationHook<Key, Value, HeaderKey, HeaderValue> = (payload: unknown, type: BeforeHookPayloadType, message: MessageToProduce<Key, Value, HeaderKey, HeaderValue>, callback: Callback<void>) => void | Promise<void>;
22
22
  export declare function stringSerializer(data?: string): Buffer | undefined;
23
23
  export declare function stringDeserializer(data?: string | Buffer): string | undefined;
package/dist/errors.d.ts CHANGED
@@ -14,6 +14,7 @@ export declare class GenericError extends Error {
14
14
  static isGenericError(error: Error): error is GenericError | MultipleErrors;
15
15
  constructor(code: ErrorCode, message: string, { cause, ...rest }?: ErrorProperties);
16
16
  findBy<ErrorType extends GenericError = GenericError>(property: string, value: unknown): ErrorType | null;
17
+ toString(): string;
17
18
  }
18
19
  export declare class MultipleErrors extends AggregateError {
19
20
  code: string;
@@ -25,7 +26,9 @@ export declare class MultipleErrors extends AggregateError {
25
26
  static isMultipleErrors(error: Error): error is MultipleErrors;
26
27
  constructor(message: string, errors: Error[], { cause, ...rest }?: ErrorProperties);
27
28
  findBy<ErrorType extends GenericError | MultipleErrors = MultipleErrors>(property: string, value: unknown): ErrorType | null;
29
+ toString(): string;
28
30
  }
31
+ export declare function findErrorBy<ErrorType extends GenericError = GenericError>(error: Error | null | undefined, property: string, value: unknown): ErrorType | null;
29
32
  export * from './protocol/errors.ts';
30
33
  export declare class AuthenticationError extends GenericError {
31
34
  static code: ErrorCode;
@@ -33,6 +36,7 @@ export declare class AuthenticationError extends GenericError {
33
36
  }
34
37
  export declare class NetworkError extends GenericError {
35
38
  static code: ErrorCode;
39
+ static isRetryable(error: Error | null | undefined): boolean;
36
40
  constructor(message: string, properties?: ErrorProperties);
37
41
  }
38
42
  export declare class ProtocolError extends GenericError {
package/dist/errors.js CHANGED
@@ -45,6 +45,9 @@ export class GenericError extends Error {
45
45
  }
46
46
  return null;
47
47
  }
48
+ toString() {
49
+ return `Error ${this.code}: ${this.message}`;
50
+ }
48
51
  }
49
52
  export class MultipleErrors extends AggregateError {
50
53
  code;
@@ -91,6 +94,21 @@ export class MultipleErrors extends AggregateError {
91
94
  }
92
95
  return null;
93
96
  }
97
+ toString() {
98
+ return `Error ${this.code}: ${this.message} (caused by: ${this.errors.map(error => error.toString()).join(', ')})`;
99
+ }
100
+ }
101
+ // findBy only exists on the library's own error classes, but errors also come from user code, Node
102
+ // internals and third parties. This brand checks first, so classification is total: an error that
103
+ // cannot be classified reports no match instead of throwing. Use it for any error whose origin is
104
+ // not statically known.
105
+ export function findErrorBy(error, property, value) {
106
+ if (!error || !GenericError.isGenericError(error)) {
107
+ return null;
108
+ }
109
+ // GenericError and MultipleErrors declare findBy with different generic defaults, so the union is
110
+ // not callable. The brand check above guarantees the call is safe either way.
111
+ return error.findBy(property, value);
94
112
  }
95
113
  export * from "./protocol/errors.js";
96
114
  export class AuthenticationError extends GenericError {
@@ -101,6 +119,10 @@ export class AuthenticationError extends GenericError {
101
119
  }
102
120
  export class NetworkError extends GenericError {
103
121
  static code = 'PLT_KFK_NETWORK';
122
+ static isRetryable(error) {
123
+ const networkError = findErrorBy(error, 'code', NetworkError.code);
124
+ return networkError?.canRetry === true;
125
+ }
104
126
  constructor(message, properties = {}) {
105
127
  super(NetworkError.code, message, { canRetry: true, ...properties });
106
128
  }
@@ -1,6 +1,6 @@
1
1
  import { createPromisifiedCallback, kCallbackPromise, runConcurrentCallbacks } from "../apis/callbacks.js";
2
2
  import { connectionsPoolGetsChannel, createDiagnosticContext, notifyCreation } from "../diagnostic.js";
3
- import { MultipleErrors } from "../errors.js";
3
+ import { MultipleErrors, NetworkError } from "../errors.js";
4
4
  import { TypedEventEmitter } from "../events.js";
5
5
  import { Connection, ConnectionStatuses } from "./connection.js";
6
6
  let currentInstance = 0;
@@ -92,7 +92,17 @@ export class ConnectionPool extends TypedEventEmitter {
92
92
  }
93
93
  #get(broker, callback) {
94
94
  if (this.#closed) {
95
- callback(new Error('Connection pool is closed.'));
95
+ // A closed pool never reopens, so this must not be retried. It also has to be a library error:
96
+ // clients classify errors via findBy, which only exists on GenericError subclasses.
97
+ callback(new NetworkError('Connection pool is closed.', { canRetry: false, closed: true, broker }));
98
+ return;
99
+ }
100
+ if (broker == null || broker.host == null || broker.port == null) {
101
+ callback(new NetworkError('Cannot get a connection: the broker is not available in the current cluster metadata.', {
102
+ canRetry: true,
103
+ hasStaleMetadata: true,
104
+ broker
105
+ }));
96
106
  return;
97
107
  }
98
108
  const key = `${broker.host}:${broker.port}`;
@@ -4,7 +4,8 @@ import { createConnection } from 'node:net';
4
4
  import { connect as createTLSConnection } from 'node:tls';
5
5
  import { createPromisifiedCallback, kCallbackPromise } from "../apis/callbacks.js";
6
6
  import { allowedSASLMechanisms, SASLMechanisms } from "../apis/enumerations.js";
7
- import { saslAuthenticateV2, saslHandshakeV1 } from "../apis/index.js";
7
+ import { clientSoftwareName, clientSoftwareVersion } from "../clients/base/options.js";
8
+ import { apiVersionsV1, saslAuthenticateV0, saslAuthenticateV1, saslAuthenticateV2, saslHandshakeV1 } from "../apis/index.js";
8
9
  import { connectionsApiChannel, connectionsConnectsChannel, createDiagnosticContext, notifyCreation } from "../diagnostic.js";
9
10
  import { AuthenticationError, NetworkError, TimeoutError, UnexpectedCorrelationIdError, UserError } from "../errors.js";
10
11
  import { TypedEventEmitter } from "../events.js";
@@ -50,7 +51,10 @@ export class Connection extends TypedEventEmitter {
50
51
  #responseReader;
51
52
  #socket;
52
53
  #socketMustBeDrained;
54
+ #detectMissingTLS;
53
55
  #reauthenticationTimeout;
56
+ // Negotiated once per connection: reauthentication runs the same path again.
57
+ #saslAuthenticateApi;
54
58
  constructor(clientId, options = {}) {
55
59
  super();
56
60
  this.setMaxListeners(0);
@@ -75,6 +79,7 @@ export class Connection extends TypedEventEmitter {
75
79
  this.#responseBuffer = new DynamicBuffer();
76
80
  this.#responseReader = new Reader(this.#responseBuffer);
77
81
  this.#socketMustBeDrained = false;
82
+ this.#detectMissingTLS = !this.#options.tls;
78
83
  notifyCreation('connection', this);
79
84
  }
80
85
  /* c8 ignore next 3 - Simple getter */
@@ -120,6 +125,7 @@ export class Connection extends TypedEventEmitter {
120
125
  return callback[kCallbackPromise];
121
126
  }
122
127
  this.#status = ConnectionStatuses.CONNECTING;
128
+ this.#detectMissingTLS = !this.#options.tls;
123
129
  const connectionOptions = {
124
130
  timeout: this.#options.connectTimeout
125
131
  };
@@ -129,7 +135,7 @@ export class Connection extends TypedEventEmitter {
129
135
  }
130
136
  /* c8 ignore next 13 - Hard to test */
131
137
  const connectingSocketTimeoutHandler = () => {
132
- const error = new TimeoutError(`Connection to ${host}:${port} timed out.`);
138
+ const error = new TimeoutError(`Connection to ${host}:${port} timed out.`, { canRetry: true });
133
139
  diagnosticContext.error = error;
134
140
  this.#socket.destroy();
135
141
  this.#status = ConnectionStatuses.ERROR;
@@ -219,7 +225,7 @@ export class Connection extends TypedEventEmitter {
219
225
  this.#socket?.destroy();
220
226
  callback(new TimeoutError(this.#host
221
227
  ? `Connection to ${this.#host}:${this.#port} timed out.`
222
- : `Connection ready timed out after ${this.#options.connectTimeout}ms.`));
228
+ : `Connection ready timed out after ${this.#options.connectTimeout}ms.`, { canRetry: true }));
223
229
  }, this.#options.connectTimeout);
224
230
  this.once('connect', onConnect);
225
231
  this.once('error', onError);
@@ -258,7 +264,9 @@ export class Connection extends TypedEventEmitter {
258
264
  return callback[kCallbackPromise];
259
265
  }
260
266
  send(apiKey, apiVersion, createPayload, responseParser, hasRequestHeaderTaggedFields, hasResponseHeaderTaggedFields, callback) {
261
- const correlationId = ++this.#correlationId;
267
+ // Correlation ID is a 32-bit integer in the protocol, so we need to wrap around after 2^31 - 1
268
+ const correlationId = (this.#correlationId + 1) & 0x7fffffff;
269
+ this.#correlationId = correlationId;
262
270
  const diagnostic = createDiagnosticContext({
263
271
  connection: this,
264
272
  operation: 'send',
@@ -335,28 +343,71 @@ export class Connection extends TypedEventEmitter {
335
343
  this.#onConnectionError(host, port, diagnosticContext, new UserError(`SASL mechanism ${mechanism} not supported.`));
336
344
  return;
337
345
  }
338
- saslHandshakeV1.api(this, mechanism, (error, response) => {
346
+ this.#negotiateSaslAuthenticate(saslAuthenticate => {
347
+ saslHandshakeV1.api(this, mechanism, (error, response) => {
348
+ if (error) {
349
+ this.#onConnectionError(host, port, diagnosticContext, new AuthenticationError('Cannot find a suitable SASL mechanism.', { cause: error }));
350
+ return;
351
+ }
352
+ this.emit('sasl:handshake', response.mechanisms);
353
+ const callback = this.#onSaslAuthenticate.bind(this, host, port, diagnosticContext);
354
+ if (authenticate) {
355
+ authenticate(mechanism, this, saslAuthenticate, username, password, token, callback);
356
+ }
357
+ else if (mechanism === SASLMechanisms.PLAIN) {
358
+ saslPlain.authenticate(saslAuthenticate, this, username, password, callback);
359
+ }
360
+ else if (mechanism === SASLMechanisms.OAUTHBEARER) {
361
+ saslOAuthBearer.authenticate(saslAuthenticate, this, token, oauthBearerExtensions, callback);
362
+ }
363
+ else if (mechanism === SASLMechanisms.GSSAPI) {
364
+ callback(new UserError('No custom SASL/GSSAPI authenticator provided.'));
365
+ }
366
+ else {
367
+ saslScramSha.authenticate(saslAuthenticate, this, mechanism.substring(6), username, password, defaultCrypto, callback);
368
+ }
369
+ });
370
+ });
371
+ }
372
+ /**
373
+ * Chooses the SaslAuthenticate version to authenticate with.
374
+ *
375
+ * The version cannot be assumed: v1 arrived in Apache Kafka 2.0 and v2 in 2.4, so pinning the
376
+ * newest makes authentication fail outright on older brokers, which answer an unparseable request
377
+ * with InvalidRequestException and drop the connection.
378
+ *
379
+ * Brokers accept ApiVersions before authentication precisely so that clients can ask, and it has
380
+ * to happen before SaslHandshake: once the handshake is sent the connection only accepts
381
+ * SaslAuthenticate. The result is cached because reauthentication runs this path again.
382
+ *
383
+ * SaslHandshake itself stays at v1. v0 signals the pre-1.0 flow, where the SASL tokens are written
384
+ * raw on the wire rather than wrapped in SaslAuthenticate requests, which this package does not
385
+ * implement.
386
+ */
387
+ #negotiateSaslAuthenticate(callback) {
388
+ if (this.#saslAuthenticateApi) {
389
+ callback(this.#saslAuthenticateApi);
390
+ return;
391
+ }
392
+ const candidates = [
393
+ [2, saslAuthenticateV2.api],
394
+ [1, saslAuthenticateV1.api],
395
+ [0, saslAuthenticateV0.api]
396
+ ];
397
+ apiVersionsV1.api(this, clientSoftwareName, clientSoftwareVersion, (error, response) => {
398
+ let selected;
399
+ /* c8 ignore next 3 - Only reachable against a broker which refuses ApiVersions before authentication */
339
400
  if (error) {
340
- this.#onConnectionError(host, port, diagnosticContext, new AuthenticationError('Cannot find a suitable SASL mechanism.', { cause: error }));
341
- return;
342
- }
343
- this.emit('sasl:handshake', response.mechanisms);
344
- const callback = this.#onSaslAuthenticate.bind(this, host, port, diagnosticContext);
345
- if (authenticate) {
346
- authenticate(mechanism, this, saslAuthenticateV2.api, username, password, token, callback);
347
- }
348
- else if (mechanism === SASLMechanisms.PLAIN) {
349
- saslPlain.authenticate(saslAuthenticateV2.api, this, username, password, callback);
350
- }
351
- else if (mechanism === SASLMechanisms.OAUTHBEARER) {
352
- saslOAuthBearer.authenticate(saslAuthenticateV2.api, this, token, oauthBearerExtensions, callback);
353
- }
354
- else if (mechanism === SASLMechanisms.GSSAPI) {
355
- callback(new UserError('No custom SASL/GSSAPI authenticator provided.'));
401
+ selected = undefined;
356
402
  }
357
403
  else {
358
- saslScramSha.authenticate(saslAuthenticateV2.api, this, mechanism.substring(6), username, password, defaultCrypto, callback);
404
+ const advertised = response.apiKeys.find(api => api.apiKey === saslAuthenticateV2.api.key);
405
+ selected = candidates.find(([version]) => advertised && version >= advertised.minVersion && version <= advertised.maxVersion)?.[1];
359
406
  }
407
+ // Falling back to the newest version keeps the previous behaviour for brokers which do not
408
+ // answer the probe, rather than failing a connection which would otherwise have worked.
409
+ this.#saslAuthenticateApi = selected ?? saslAuthenticateV2.api;
410
+ callback(this.#saslAuthenticateApi);
360
411
  });
361
412
  }
362
413
  /*
@@ -465,6 +516,27 @@ export class Connection extends TypedEventEmitter {
465
516
  correlation_id => INT32
466
517
  */
467
518
  #onData(chunk) {
519
+ if (this.#detectMissingTLS) {
520
+ this.#detectMissingTLS = false;
521
+ if (this.#isTLSRecord(chunk)) {
522
+ const error = new UserError('Broker requires TLS.');
523
+ this.#status = ConnectionStatuses.ERROR;
524
+ for (const request of this.#afterDrainRequests) {
525
+ if (!request.noResponse) {
526
+ clearTimeout(request.timeoutHandle);
527
+ request.callback(error, undefined);
528
+ }
529
+ }
530
+ this.#afterDrainRequests = [];
531
+ for (const request of this.#inflightRequests.values()) {
532
+ clearTimeout(request.timeoutHandle);
533
+ request.callback(error, undefined);
534
+ }
535
+ this.#inflightRequests.clear();
536
+ this.#socket.destroy();
537
+ return;
538
+ }
539
+ }
468
540
  this.#responseBuffer.append(chunk);
469
541
  // There is at least one message size to add
470
542
  // Note that here the initial position is always 0
@@ -545,6 +617,12 @@ export class Connection extends TypedEventEmitter {
545
617
  this.#socketMustBeDrained = false;
546
618
  this.emit('drain');
547
619
  }
620
+ #isTLSRecord(chunk) {
621
+ return (chunk.length >= 3 &&
622
+ (chunk[0] === 0x14 || chunk[0] === 0x15 || chunk[0] === 0x16 || chunk[0] === 0x17) &&
623
+ chunk[1] === 0x03 &&
624
+ chunk[2] <= 0x04);
625
+ }
548
626
  #onClose() {
549
627
  this.#status = ConnectionStatuses.CLOSED;
550
628
  this.emit('close');
@@ -1,12 +1,30 @@
1
+ const BRACKETED_BROKER_RE = /^\[([^\]]+)](?::(\d*))?$/;
1
2
  export function parseBroker(broker, defaultPort = 9092) {
2
- if (typeof broker === 'string') {
3
- if (broker.includes(':')) {
4
- const [host, port] = broker.split(':');
5
- return { host, port: Number(port) };
6
- }
7
- else {
8
- return { host: broker, port: defaultPort };
3
+ if (typeof broker !== 'string') {
4
+ const host = stripBrackets(broker.host);
5
+ if (host === broker.host) {
6
+ return broker;
9
7
  }
8
+ return { ...broker, host };
9
+ }
10
+ const bracketed = BRACKETED_BROKER_RE.exec(broker);
11
+ if (bracketed) {
12
+ return { host: bracketed[1], port: parsePort(bracketed[2], defaultPort) };
13
+ }
14
+ const separator = broker.lastIndexOf(':');
15
+ // Bare IPv6 addresses contain multiple colons and no port. The host:port form
16
+ // is unambiguous only with a single colon, or with brackets around the host.
17
+ if (separator === -1 || broker.indexOf(':') !== separator) {
18
+ return { host: broker, port: defaultPort };
19
+ }
20
+ return { host: broker.slice(0, separator), port: parsePort(broker.slice(separator + 1), defaultPort) };
21
+ }
22
+ function parsePort(port, defaultPort) {
23
+ return port === undefined || port.length === 0 ? defaultPort : Number(port);
24
+ }
25
+ function stripBrackets(host) {
26
+ if (host.startsWith('[') && host.endsWith(']')) {
27
+ return host.slice(1, -1);
10
28
  }
11
- return broker;
29
+ return host;
12
30
  }
@@ -7,5 +7,5 @@ export const EMPTY_BUFFER = Buffer.alloc(0);
7
7
  export const EMPTY_UUID = Buffer.alloc(UUID_SIZE);
8
8
  // Since it is serialized at either 0 (for nullable) or 1 (since length is stored as length + 1), it always uses a single byte
9
9
  export const EMPTY_OR_SINGLE_COMPACT_LENGTH_SIZE = INT8_SIZE;
10
- // TODO: Tagged fields are not supported yet
10
+ // Flexible-version messages use this zero-length tagged-field section.
11
11
  export const EMPTY_TAGGED_FIELDS_BUFFER = Buffer.from([0]);
@@ -187,9 +187,13 @@ export class Reader {
187
187
  return this.readNullableString(compact, encoding) || '';
188
188
  }
189
189
  readUUID() {
190
- const value = this.peekUUID();
190
+ const hex = this.peekUUID();
191
191
  this.position += UUID_SIZE;
192
- return value.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
192
+ // Hyphenated by slicing rather than by a capture group regex. This runs once per topic per
193
+ // Fetch response from v13 up, and the regex form measured about fourteen times the cost, which
194
+ // made the newest Fetch versions measurably slower to decode than the ones identifying topics
195
+ // by name.
196
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
193
197
  }
194
198
  readNullableBytes(compact = true) {
195
199
  let length;
@@ -300,11 +304,12 @@ export class Reader {
300
304
  }
301
305
  return reader();
302
306
  }
303
- // TODO: Tagged fields are not supported yet
307
+ // Skip unknown tagged fields because codecs do not expose them to callers.
304
308
  readTaggedFields() {
305
- const length = this.readVarInt();
306
- if (length > 0) {
307
- this.skip(length);
309
+ const length = this.readUnsignedVarInt();
310
+ for (let i = 0; i < length; i++) {
311
+ this.readUnsignedVarInt();
312
+ this.skip(this.readUnsignedVarInt());
308
313
  }
309
314
  }
310
315
  }