@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
@@ -33,11 +33,14 @@ export interface MessageJSON<Key = unknown, Value = unknown, HeaderKey = unknown
33
33
  partition: number;
34
34
  timestamp: string;
35
35
  offset: string;
36
+ leaderEpoch: number;
36
37
  metadata: Record<string, unknown>;
37
38
  }
38
39
  export interface Message<Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer> extends Required<MessageBase<Key, Value>> {
39
40
  headers: Map<HeaderKey, HeaderValue>;
41
+ headerEntries: Array<[HeaderKey, HeaderValue]>;
40
42
  offset: bigint;
43
+ leaderEpoch: number;
41
44
  metadata: Record<string, unknown>;
42
45
  commit(callback?: (error?: Error) => void): void | Promise<void>;
43
46
  toJSON(): MessageJSON<Key, Value, HeaderKey, HeaderValue>;
@@ -71,6 +74,7 @@ export interface KafkaRecord {
71
74
  export interface MessageToConsume extends KafkaRecord {
72
75
  topic: string;
73
76
  partition: number;
77
+ metadata?: Record<string, unknown>;
74
78
  }
75
79
  export interface RecordsBatch {
76
80
  firstOffset: bigint;
@@ -1,6 +1,6 @@
1
1
  import { DynamicBuffer } from '@platformatic/dynamic-buffer';
2
2
  import { humanize } from "../utils.js";
3
- import { EMPTY_TAGGED_FIELDS_BUFFER, EMPTY_UUID } from "./definitions.js";
3
+ import { EMPTY_TAGGED_FIELDS_BUFFER, EMPTY_UUID, UUID_SIZE } from "./definitions.js";
4
4
  const instanceIdentifier = Symbol('plt.kafka.writer.instanceIdentifier');
5
5
  export class Writer {
6
6
  context;
@@ -125,6 +125,12 @@ export class Writer {
125
125
  return this.append(EMPTY_UUID);
126
126
  }
127
127
  const buffer = Buffer.from(value.replaceAll('-', ''), 'hex');
128
+ // UUIDs are fixed width and carry no length prefix, so anything that is not exactly 16 bytes
129
+ // would silently desync the rest of the request. Buffer.from() stops at the first non hex
130
+ // character, so a topic name used as a topic id would append nothing at all here.
131
+ if (buffer.length !== UUID_SIZE) {
132
+ throw new RangeError(`Expected a UUID, got ${JSON.stringify(value)}.`);
133
+ }
128
134
  this.#buffer.append(buffer);
129
135
  return this;
130
136
  }
@@ -138,7 +144,9 @@ export class Writer {
138
144
  else {
139
145
  this.appendInt32(value.length);
140
146
  }
141
- this.#buffer.append(value);
147
+ if (value.length > 0) {
148
+ this.#buffer.append(value);
149
+ }
142
150
  return this;
143
151
  }
144
152
  // Note that this does not follow the wire protocol specification and thus the length is not +1ed
@@ -147,7 +155,12 @@ export class Writer {
147
155
  return this.appendVarInt(-1);
148
156
  }
149
157
  this.appendVarInt(value.length);
150
- this.#buffer.append(value);
158
+ // Appending an empty buffer corrupts DynamicBuffer's positional reads, so it must be skipped:
159
+ // see https://github.com/platformatic/dynamic-buffer/issues/12. Record keys and values are
160
+ // allowed to be empty without being null, so this is reachable.
161
+ if (value.length > 0) {
162
+ this.#buffer.append(value);
163
+ }
151
164
  return this;
152
165
  }
153
166
  appendArray(value, entryWriter, compact = true, appendTrailingTaggedFields = true) {
@@ -210,7 +223,7 @@ export class Writer {
210
223
  }
211
224
  return this;
212
225
  }
213
- // TODO: Tagged fields are not supported yet
226
+ // This client emits only empty tagged-field sections; it does not expose tagged fields to callers.
214
227
  appendTaggedFields(_ = []) {
215
228
  return this.append(EMPTY_TAGGED_FIELDS_BUFFER);
216
229
  }
@@ -4,7 +4,7 @@ import { type MessageToProduce } from '../protocol/records.ts';
4
4
  export interface SchemaRegistry<Id = unknown, Schema = unknown, Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer> {
5
5
  get(id: Id): Schema | undefined;
6
6
  fetch(id: Id, callback?: (error?: Error) => void): void | Promise<void>;
7
- getSchemaId(payload: Buffer | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, type?: BeforeHookPayloadType): Id;
7
+ getSchemaId(payload: Buffer | null | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, type?: BeforeHookPayloadType): Id;
8
8
  getSerializers(): Serializers<Key, Value, HeaderKey, HeaderValue>;
9
9
  getDeserializers(): Deserializers<Key, Value, HeaderKey, HeaderValue>;
10
10
  getBeforeSerializationHook(): BeforeSerializationHook<Key, Value, HeaderKey, HeaderValue>;
@@ -14,7 +14,7 @@ export declare function runAsyncSeries<V>(operation: (item: V, cb: Callback<void
14
14
  export declare class AbstractSchemaRegistry<Id = unknown, Schema = unknown, Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer> implements SchemaRegistry<Id, Schema, Key, Value, HeaderKey, HeaderValue> {
15
15
  get(_: Id): Schema | undefined;
16
16
  fetch(_i: unknown, _c?: (error?: Error) => void): void | Promise<void>;
17
- getSchemaId(_p: Buffer | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, _t?: BeforeHookPayloadType): Id;
17
+ getSchemaId(_p: Buffer | null | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, _t?: BeforeHookPayloadType): Id;
18
18
  getSerializers(): Serializers<Key, Value, HeaderKey, HeaderValue>;
19
19
  getDeserializers(): Deserializers<Key, Value, HeaderKey, HeaderValue>;
20
20
  getBeforeSerializationHook(): BeforeSerializationHook<Key, Value, HeaderKey, HeaderValue>;
@@ -1,19 +1,38 @@
1
1
  export function runAsyncSeries(operation, collection, index, callback) {
2
- if (collection.length === 0 || index >= collection.length) {
2
+ const length = collection.length;
3
+ if (length === 0 || index >= length) {
3
4
  callback(null);
4
5
  return;
5
6
  }
6
- operation(collection[index], error => {
7
- if (error) {
8
- callback(error);
7
+ while (index < length) {
8
+ let invocationReturned = false;
9
+ let cbCalled = false;
10
+ let cbError;
11
+ operation(collection[index], error => {
12
+ if (invocationReturned) {
13
+ // The callback was invoked asynchronously, so continuing recursively does not grow the current stack.
14
+ if (error) {
15
+ callback(error);
16
+ return;
17
+ }
18
+ runAsyncSeries(operation, collection, index + 1, callback);
19
+ return;
20
+ }
21
+ cbCalled = true;
22
+ cbError = error;
23
+ });
24
+ invocationReturned = true;
25
+ if (!cbCalled) {
26
+ // Wait for the async callback to continue the series.
9
27
  return;
10
28
  }
11
- else if (index === collection.length - 1) {
12
- callback(null);
29
+ if (cbError) {
30
+ callback(cbError);
13
31
  return;
14
32
  }
15
- runAsyncSeries(operation, collection, index + 1, callback);
16
- });
33
+ index++;
34
+ }
35
+ callback(null);
17
36
  }
18
37
  /* c8 ignore start */
19
38
  export class AbstractSchemaRegistry {
@@ -1,16 +1,32 @@
1
- import { type ValidateFunction } from 'ajv';
1
+ import { type ErrorObject, type Options, type ValidateFunction } from 'ajv';
2
2
  import { type Type } from 'avsc';
3
+ import { type ConnectionOptions as TLSConnectionOptions } from 'node:tls';
3
4
  import { type Root } from 'protobufjs';
4
5
  import { type Callback } from '../apis/definitions.ts';
5
6
  import { type BeforeDeserializationHook, type BeforeHookPayloadType, type BeforeSerializationHook, type Deserializers, type Serializers } from '../clients/serde.ts';
6
- import { type CredentialProvider } from '../index.ts';
7
+ import { type CredentialProvider, UserError } from '../index.ts';
7
8
  import { type MessageToConsume, type MessageToProduce } from '../protocol/records.ts';
8
9
  import { AbstractSchemaRegistry } from './abstract.ts';
9
10
  type ConfluentSchemaRegistryMessageToProduce = MessageToProduce<unknown, unknown, unknown, unknown>;
11
+ export type UndiciDispatcher = NonNullable<RequestInit['dispatcher']>;
12
+ export interface UndiciAgentOptions {
13
+ connect: TLSConnectionOptions;
14
+ }
15
+ export type UndiciAgentConstructor = new (options: UndiciAgentOptions) => UndiciDispatcher;
16
+ export declare function createUndiciAgent(options: UndiciAgentOptions): UndiciDispatcher;
10
17
  export interface ConfluentSchemaRegistryMetadata {
11
- schemas?: Record<BeforeHookPayloadType, number>;
18
+ schemas?: Partial<Record<BeforeHookPayloadType, number>>;
19
+ }
20
+ export interface ConfluentSchemaRegistryConsumedMetadata {
21
+ lengths?: {
22
+ key?: number;
23
+ value?: number;
24
+ };
12
25
  }
13
26
  export type ConfluentSchemaRegistryProtobufTypeMapper = (id: number, type: BeforeHookPayloadType, context: ConfluentSchemaRegistryMessageToProduce | MessageToConsume) => string;
27
+ export type ConfluentSchemaRegistryHeaders = Record<string, string>;
28
+ export type ConfluentSchemaRegistryHeadersProvider = () => ConfluentSchemaRegistryHeaders | Promise<ConfluentSchemaRegistryHeaders>;
29
+ export type ConfluentSchemaRegistryRetryDelayGetter = (attempt: number, retries: number, error: Error) => number;
14
30
  export interface ConfluentSchemaRegistryOptions {
15
31
  url: string;
16
32
  auth?: {
@@ -18,19 +34,56 @@ export interface ConfluentSchemaRegistryOptions {
18
34
  password?: string | CredentialProvider;
19
35
  token?: string | CredentialProvider;
20
36
  };
37
+ headers?: ConfluentSchemaRegistryHeaders | ConfluentSchemaRegistryHeadersProvider;
38
+ timeout?: number;
39
+ retries?: number;
40
+ retryDelay?: number | ConfluentSchemaRegistryRetryDelayGetter;
41
+ tls?: TLSConnectionOptions;
42
+ ssl?: TLSConnectionOptions;
21
43
  protobufTypeMapper?: ConfluentSchemaRegistryProtobufTypeMapper;
22
44
  jsonValidateSend?: boolean;
45
+ jsonAjvOptions?: Options;
46
+ }
47
+ export declare const defaultConfluentSchemaRegistryOptions: {
48
+ timeout: number;
49
+ retries: number;
50
+ retryDelay: number;
51
+ };
52
+ export declare const retriableSchemaRegistryStatuses: number[];
53
+ export type SchemaValidationPhase = 'serialization' | 'deserialization';
54
+ export interface SchemaValidationErrorProperties {
55
+ schemaId: number;
56
+ schemaType: 'json';
57
+ phase: SchemaValidationPhase;
58
+ payloadType: BeforeHookPayloadType;
59
+ type: BeforeHookPayloadType;
60
+ data: unknown;
61
+ headers?: ReadonlyMap<unknown, unknown>;
62
+ validationErrors: ErrorObject[] | null | undefined;
63
+ }
64
+ export declare class SchemaValidationError extends UserError {
65
+ readonly schemaId: number;
66
+ readonly schemaType: 'json';
67
+ readonly phase: SchemaValidationPhase;
68
+ readonly payloadType: BeforeHookPayloadType;
69
+ readonly type: BeforeHookPayloadType;
70
+ readonly data: unknown;
71
+ readonly headers?: ReadonlyMap<unknown, unknown>;
72
+ readonly validationErrors: ErrorObject[] | null | undefined;
73
+ constructor(message: string, properties: SchemaValidationErrorProperties);
23
74
  }
24
75
  export interface Schema {
25
76
  id: number;
26
77
  type: 'avro' | 'protobuf' | 'json';
27
78
  schema: Type | Root | ValidateFunction;
28
79
  }
80
+ export declare function trackConsumedSchemaId(message: MessageToConsume | undefined, type: BeforeHookPayloadType, schemaId: number): void;
81
+ export declare function trackConsumedPayloadLength(message: MessageToConsume | undefined, type: 'key' | 'value', data: Buffer): void;
29
82
  export declare function defaultProtobufTypeMapper(_: number, type: BeforeHookPayloadType, context: ConfluentSchemaRegistryMessageToProduce | MessageToConsume): string;
30
83
  export declare class ConfluentSchemaRegistry<Key = Buffer, Value = Buffer, HeaderKey = Buffer, HeaderValue = Buffer> extends AbstractSchemaRegistry<number | undefined, Schema, Key, Value, HeaderKey, HeaderValue> {
31
84
  #private;
32
85
  constructor(options: ConfluentSchemaRegistryOptions);
33
- getSchemaId(message: Buffer | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, type?: BeforeHookPayloadType): number | undefined;
86
+ getSchemaId(message: Buffer | null | MessageToProduce<Key, Value, HeaderKey, HeaderValue>, type?: BeforeHookPayloadType): number | undefined;
34
87
  get(id: number): Schema | undefined;
35
88
  fetchSchema(id: number, callback: Callback<void>): Promise<void>;
36
89
  getSerializers(): Serializers<Key, Value, HeaderKey, HeaderValue>;
@@ -1,32 +1,124 @@
1
+ import * as AjvDraft04Module from 'ajv-draft-04';
2
+ import draft06MetaSchema from 'ajv/dist/refs/json-schema-draft-06.json' with { type: 'json' };
3
+ import { Ajv } from 'ajv';
4
+ import { Ajv2020 } from 'ajv/dist/2020.js';
1
5
  import avro from 'avsc';
2
6
  import { createRequire } from 'node:module';
7
+ import { setTimeout as sleep } from 'node:timers/promises';
3
8
  import { jsonDeserializer, jsonSerializer, stringDeserializer, stringSerializer } from "../clients/serde.js";
4
- import { ajv, EMPTY_BUFFER, UnsupportedFormatError, UserError } from "../index.js";
9
+ import { EMPTY_BUFFER, MultipleErrors, NetworkError, TimeoutError, UnsupportedFormatError, UserError } from "../index.js";
5
10
  import { getCredential } from "../protocol/sasl/utils.js";
6
11
  import { AbstractSchemaRegistry } from "./abstract.js";
7
12
  const require = createRequire(import.meta.url);
13
+ const AjvDraft04 = AjvDraft04Module.default;
14
+ const undiciGlobalDispatcherSymbol = /^undici\.globalDispatcher\.(\d+)$/;
15
+ export function createUndiciAgent(options) {
16
+ /*
17
+ The undici globals are installed the first time undici is loaded, which creating a Request is
18
+ enough to do and which performs no I/O.
19
+ */
20
+ new Request('http://localhost'); // eslint-disable-line no-new
21
+ /*
22
+ The symbol is versioned and more than one version is registered at the same time, pointing at
23
+ different objects: on Node 26 undici.globalDispatcher.1 is a backwards compatibility wrapper and
24
+ only undici.globalDispatcher.2 is the Agent. The highest version available therefore wins.
25
+ */
26
+ const globals = globalThis;
27
+ let version = -1;
28
+ let Agent;
29
+ for (const symbol of Object.getOwnPropertySymbols(globalThis)) {
30
+ const symbolVersion = symbol.description?.match(undiciGlobalDispatcherSymbol)?.[1];
31
+ if (typeof symbolVersion === 'undefined' || Number(symbolVersion) <= version) {
32
+ continue;
33
+ }
34
+ version = Number(symbolVersion);
35
+ Agent = globals[symbol]?.constructor;
36
+ }
37
+ /* c8 ignore next 6 - Only reachable on a Node.js build which does not bundle undici */
38
+ if (typeof Agent !== 'function') {
39
+ throw new UserError('Cannot access the undici Agent bundled with Node.js, which is required to configure TLS for the Schema Registry.');
40
+ }
41
+ return new Agent(options);
42
+ }
43
+ export const defaultConfluentSchemaRegistryOptions = {
44
+ timeout: 5000,
45
+ retries: 3,
46
+ retryDelay: 1000
47
+ };
48
+ // Statuses which are worth retrying: the registry is overloaded, restarting or behind a proxy which is
49
+ export const retriableSchemaRegistryStatuses = [408, 425, 429, 500, 502, 503, 504];
50
+ export class SchemaValidationError extends UserError {
51
+ constructor(message, properties) {
52
+ super(message, properties);
53
+ this.name = 'SchemaValidationError';
54
+ }
55
+ }
56
+ export function trackConsumedSchemaId(message, type, schemaId) {
57
+ /* c8 ignore next 3 - The message is always provided for keys and values */
58
+ if (!message) {
59
+ return;
60
+ }
61
+ const metadata = (message.metadata ??= {});
62
+ metadata.schemas ??= {};
63
+ metadata.schemas[type] = schemaId;
64
+ }
65
+ export function trackConsumedPayloadLength(message, type, data) {
66
+ /* c8 ignore next 3 - The message is always provided for keys and values */
67
+ if (!message) {
68
+ return;
69
+ }
70
+ const metadata = (message.metadata ??= {});
71
+ metadata.lengths ??= {};
72
+ metadata.lengths[type] = data.length;
73
+ }
8
74
  /* c8 ignore next 8 */
9
75
  export function defaultProtobufTypeMapper(_, type, context) {
10
76
  // Confluent Schema Registry convention
11
77
  return `${context.topic}-${type}`;
12
78
  }
13
- // TODO(ShogunPanda): Authentication support
14
79
  export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
15
80
  #url;
16
81
  #schemas;
17
82
  #protobufParse;
18
83
  #protobufTypeMapper;
19
84
  #jsonValidateSend;
85
+ #jsonAjv;
86
+ #jsonAjvDraft7;
87
+ #jsonAjvDraft04;
88
+ #pendingFetches;
20
89
  #auth;
90
+ #headers;
91
+ #timeout;
92
+ #retries;
93
+ #retryDelay;
94
+ #tls;
95
+ #tlsDispatcher;
21
96
  constructor(options) {
22
97
  super();
23
98
  this.#url = options.url;
24
99
  this.#schemas = new Map();
25
100
  this.#protobufTypeMapper = options.protobufTypeMapper ?? defaultProtobufTypeMapper;
26
101
  this.#jsonValidateSend = options.jsonValidateSend ?? false;
102
+ const jsonAjvOptions = { allErrors: true, coerceTypes: false, strict: true, ...options.jsonAjvOptions };
103
+ this.#jsonAjv = new Ajv2020(jsonAjvOptions);
104
+ this.#jsonAjvDraft7 = new Ajv(jsonAjvOptions);
105
+ this.#jsonAjvDraft7.addMetaSchema(draft06MetaSchema);
106
+ this.#jsonAjvDraft04 = new AjvDraft04(jsonAjvOptions);
27
107
  this.#auth = options.auth;
108
+ this.#headers = options.headers;
109
+ this.#timeout = options.timeout ?? defaultConfluentSchemaRegistryOptions.timeout;
110
+ this.#retries = options.retries ?? defaultConfluentSchemaRegistryOptions.retries;
111
+ this.#retryDelay = options.retryDelay ?? defaultConfluentSchemaRegistryOptions.retryDelay;
112
+ this.#tls = options.tls ?? options.ssl;
113
+ this.#pendingFetches = new Map();
114
+ if (this.#tls && new URL(this.#url).protocol !== 'https:') {
115
+ throw new UserError('TLS options can only be used with a HTTPS Schema Registry URL.', { url: this.#url });
116
+ }
28
117
  }
29
118
  getSchemaId(message, type) {
119
+ if (message === null) {
120
+ return undefined;
121
+ }
30
122
  if (Buffer.isBuffer(message)) {
31
123
  if (type !== 'value') {
32
124
  return undefined;
@@ -39,42 +131,15 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
39
131
  return this.#schemas.get(id);
40
132
  }
41
133
  async fetchSchema(id, callback) {
134
+ let fetch = this.#pendingFetches.get(id);
135
+ if (!fetch) {
136
+ fetch = this.#fetchSchema(id).finally(() => {
137
+ this.#pendingFetches.delete(id);
138
+ });
139
+ this.#pendingFetches.set(id, fetch);
140
+ }
42
141
  try {
43
- const requestInit = {};
44
- if (this.#auth) {
45
- if (this.#auth.token) {
46
- const token = await getCredential('token', this.#auth.token);
47
- requestInit.headers = {
48
- Authorization: `Bearer ${token}`
49
- };
50
- }
51
- else {
52
- const username = await getCredential('username', this.#auth.username);
53
- const password = await getCredential('password', this.#auth.password);
54
- requestInit.headers = {
55
- Authorization: `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`
56
- };
57
- }
58
- }
59
- const response = await fetch(`${this.#url}/schemas/ids/${id}`, requestInit);
60
- if (!response.ok) {
61
- throw new UserError(`Failed to fetch a schema: [HTTP ${response.status}]`, { response: await response.text() });
62
- }
63
- const responseBody = (await response.json());
64
- const { schema } = responseBody;
65
- const schemaType = responseBody.schemaType ?? 'AVRO';
66
- switch (schemaType) {
67
- case 'AVRO':
68
- this.#schemas.set(id, { id, type: 'avro', schema: avro.Type.forSchema(JSON.parse(schema)) });
69
- break;
70
- case 'PROTOBUF':
71
- this.#protobufParse ??= this.#loadProtobuf();
72
- this.#schemas.set(id, { id, type: 'protobuf', schema: this.#protobufParse(schema).root });
73
- break;
74
- case 'JSON':
75
- this.#schemas.set(id, { id, type: 'json', schema: ajv.compile(JSON.parse(schema)) });
76
- break;
77
- }
142
+ await fetch;
78
143
  process.nextTick(callback);
79
144
  }
80
145
  catch (err) {
@@ -117,7 +182,7 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
117
182
  }
118
183
  getBeforeDeserializationHook() {
119
184
  const registry = this;
120
- return function beforeDeserialization(payload, type, _message, callback) {
185
+ return function beforeDeserialization(payload, type, message, callback) {
121
186
  // Extract the schema ID from the message metadata
122
187
  const schemaId = registry.getSchemaId(payload, type);
123
188
  // When no schema ID is found, nothing to do
@@ -125,6 +190,11 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
125
190
  callback(null);
126
191
  return;
127
192
  }
193
+ /*
194
+ Track the schema ID before fetching, so that it is exposed on the message metadata even when
195
+ the schema cannot be fetched or the payload cannot be decoded.
196
+ */
197
+ trackConsumedSchemaId(message, type, schemaId);
128
198
  // The schema is already fetch
129
199
  if (registry.get(schemaId)) {
130
200
  callback(null);
@@ -133,6 +203,115 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
133
203
  registry.fetchSchema(schemaId, callback);
134
204
  };
135
205
  }
206
+ async #requestHeaders() {
207
+ let headers;
208
+ if (this.#headers) {
209
+ headers = { ...(typeof this.#headers === 'function' ? await this.#headers() : this.#headers) };
210
+ }
211
+ // Authentication headers are applied last so that auth options always win over custom headers
212
+ if (this.#auth) {
213
+ headers ??= {};
214
+ if (this.#auth.token) {
215
+ const token = await getCredential('token', this.#auth.token);
216
+ headers.Authorization = `Bearer ${token}`;
217
+ }
218
+ else {
219
+ const username = await getCredential('username', this.#auth.username);
220
+ const password = await getCredential('password', this.#auth.password);
221
+ headers.Authorization = `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`;
222
+ }
223
+ }
224
+ return headers;
225
+ }
226
+ async #requestSchema(id) {
227
+ const requestInit = {};
228
+ const headers = await this.#requestHeaders();
229
+ if (headers) {
230
+ requestInit.headers = headers;
231
+ }
232
+ if (this.#tls) {
233
+ // Created once per registry, so that connections are pooled across schema fetches
234
+ this.#tlsDispatcher ??= createUndiciAgent({ connect: this.#tls });
235
+ requestInit.dispatcher = this.#tlsDispatcher;
236
+ }
237
+ if (this.#timeout > 0) {
238
+ requestInit.signal = AbortSignal.timeout(this.#timeout);
239
+ }
240
+ let response;
241
+ try {
242
+ response = await fetch(`${this.#url}/schemas/ids/${id}`, requestInit);
243
+ }
244
+ catch (error) {
245
+ if (error.name === 'TimeoutError') {
246
+ throw new TimeoutError(`Fetching a schema timed out after ${this.#timeout} ms.`, {
247
+ canRetry: true,
248
+ cause: error
249
+ });
250
+ }
251
+ throw new NetworkError('Failed to fetch a schema.', { cause: error });
252
+ }
253
+ if (!response.ok) {
254
+ throw new UserError(`Failed to fetch a schema: [HTTP ${response.status}]`, {
255
+ response: await response.text(),
256
+ canRetry: retriableSchemaRegistryStatuses.includes(response.status)
257
+ });
258
+ }
259
+ return (await response.json());
260
+ }
261
+ async #requestSchemaWithRetries(id) {
262
+ const errors = [];
263
+ for (let attempt = 0;; attempt++) {
264
+ try {
265
+ return await this.#requestSchema(id);
266
+ }
267
+ catch (error) {
268
+ errors.push(error);
269
+ if (attempt >= this.#retries || error.canRetry !== true) {
270
+ if (errors.length === 1) {
271
+ throw errors[0];
272
+ }
273
+ throw new MultipleErrors(`Failed to fetch a schema after ${errors.length} attempts.`, errors);
274
+ }
275
+ const delay = typeof this.#retryDelay === 'function'
276
+ ? this.#retryDelay(attempt + 1, this.#retries, error)
277
+ : this.#retryDelay;
278
+ if (delay > 0) {
279
+ await sleep(delay);
280
+ }
281
+ }
282
+ }
283
+ }
284
+ async #fetchSchema(id) {
285
+ const responseBody = await this.#requestSchemaWithRetries(id);
286
+ const { schema } = responseBody;
287
+ const schemaType = responseBody.schemaType ?? 'AVRO';
288
+ switch (schemaType) {
289
+ case 'AVRO':
290
+ this.#schemas.set(id, { id, type: 'avro', schema: avro.Type.forSchema(JSON.parse(schema)) });
291
+ break;
292
+ case 'PROTOBUF':
293
+ this.#protobufParse ??= this.#loadProtobuf();
294
+ this.#schemas.set(id, { id, type: 'protobuf', schema: this.#protobufParse(schema).root });
295
+ break;
296
+ case 'JSON': {
297
+ const jsonSchema = JSON.parse(schema);
298
+ this.#schemas.set(id, { id, type: 'json', schema: this.#getJsonAjv(jsonSchema).compile(jsonSchema) });
299
+ break;
300
+ }
301
+ }
302
+ }
303
+ #getJsonAjv(schema) {
304
+ if (typeof schema !== 'object' || schema === null || typeof schema.$schema !== 'string') {
305
+ return this.#jsonAjv;
306
+ }
307
+ if (schema.$schema.includes('draft-04')) {
308
+ return this.#jsonAjvDraft04;
309
+ }
310
+ if (schema.$schema.includes('draft-06') || schema.$schema.includes('draft-07')) {
311
+ return this.#jsonAjvDraft7;
312
+ }
313
+ return this.#jsonAjv;
314
+ }
136
315
  #schemaSerializer(type, fallbackSerializer, data, headers, message) {
137
316
  /* c8 ignore next 3 - Hard to test */
138
317
  if (typeof data === 'undefined') {
@@ -166,7 +345,16 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
166
345
  const validate = schema.schema;
167
346
  const valid = validate(data);
168
347
  if (!valid) {
169
- throw new UserError(`JSON Schema validation failed before serialization: ${ajv.errorsText(validate.errors)}`, { type, data, headers, validationErrors: validate.errors });
348
+ throw new SchemaValidationError(`JSON Schema validation failed before serialization: ${this.#jsonAjv.errorsText(validate.errors)}`, {
349
+ schemaId,
350
+ schemaType: 'json',
351
+ phase: 'serialization',
352
+ payloadType: type,
353
+ type,
354
+ data,
355
+ headers,
356
+ validationErrors: validate.errors
357
+ });
170
358
  }
171
359
  }
172
360
  encodedMessage = Buffer.from(JSON.stringify(data));
@@ -177,17 +365,32 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
177
365
  return Buffer.concat([header, encodedMessage]);
178
366
  }
179
367
  #schemaDeserializer(type, fallbackDeserializer, data, headers, message) {
368
+ /*
369
+ Deserializing replaces the original payload, so record its size beforehand: it is the only
370
+ chance callers have to account for the actual ingress size of the message.
371
+ */
372
+ if ((type === 'key' || type === 'value') && Buffer.isBuffer(data)) {
373
+ trackConsumedPayloadLength(message, type, data);
374
+ }
180
375
  /* c8 ignore next 3 - Hard to test */
181
376
  if (typeof data === 'undefined' || data.length === 0) {
182
377
  return EMPTY_BUFFER;
183
378
  }
184
- if (type === 'headerKey' || type === 'headerValue') {
379
+ const isHeader = type === 'headerKey' || type === 'headerValue';
380
+ if (isHeader) {
185
381
  message = headers;
186
382
  }
187
383
  const schemaId = this.getSchemaId(data, type);
188
384
  if (!schemaId) {
189
385
  return fallbackDeserializer(data);
190
386
  }
387
+ /*
388
+ Also track the schema ID here, so that it is exposed on the message metadata even when the
389
+ deserializers are used without the before-deserialization hook of this registry.
390
+ */
391
+ if (!isHeader) {
392
+ trackConsumedSchemaId(message, type, schemaId);
393
+ }
191
394
  const schema = this.#schemas.get(schemaId);
192
395
  if (!schema) {
193
396
  throw new UserError(`Schema with ID ${schemaId} not found.`, { missingSchema: schemaId });
@@ -205,7 +408,16 @@ export class ConfluentSchemaRegistry extends AbstractSchemaRegistry {
205
408
  const validate = schema.schema;
206
409
  const valid = validate(parsed);
207
410
  if (!valid) {
208
- throw new UserError(`JSON Schema validation failed before deserialization: ${ajv.errorsText(validate.errors)}`, { type, data: parsed, headers, validationErrors: validate.errors });
411
+ throw new SchemaValidationError(`JSON Schema validation failed before deserialization: ${this.#jsonAjv.errorsText(validate.errors)}`, {
412
+ schemaId,
413
+ schemaType: 'json',
414
+ phase: 'deserialization',
415
+ payloadType: type,
416
+ type,
417
+ data: parsed,
418
+ headers,
419
+ validationErrors: validate.errors
420
+ });
209
421
  }
210
422
  return parsed;
211
423
  }
package/dist/symbols.d.ts CHANGED
@@ -2,6 +2,7 @@ export declare const kInstance: unique symbol;
2
2
  export declare const kRefreshOffsetsAndFetch: unique symbol;
3
3
  export declare const kAutocommit: unique symbol;
4
4
  export declare const kGetFetchNode: unique symbol;
5
+ export declare const kDeserializationError: unique symbol;
5
6
  export declare const kTransaction: unique symbol;
6
7
  export declare const kTransactionPrepare: unique symbol;
7
8
  export declare const kTransactionAddPartitions: unique symbol;
package/dist/symbols.js CHANGED
@@ -3,6 +3,7 @@ export const kInstance = Symbol('plt.kafka.base.instance');
3
3
  export const kRefreshOffsetsAndFetch = Symbol('plt.kafka.messagesStream.refreshOffsetsAndFetch');
4
4
  export const kAutocommit = Symbol('plt.kafka.messagesStream.autocommit');
5
5
  export const kGetFetchNode = Symbol('plt.kafka.consumer.getFetchNode');
6
+ export const kDeserializationError = Symbol('plt.kafka.messagesStream.deserializationError');
6
7
  export const kTransaction = Symbol('plt.kafka.producer.transactions');
7
8
  export const kTransactionPrepare = Symbol('plt.kafka.producer.transactions.prepare');
8
9
  export const kTransactionAddPartitions = Symbol('plt.kafka.producer.transactions.addPartitions');