@platformatic/kafka 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/apis/admin/alter-client-quotas-v0.d.ts +40 -0
- package/dist/apis/admin/alter-client-quotas-v0.js +60 -0
- package/dist/apis/admin/alter-client-quotas-v1.d.ts +6 -5
- package/dist/apis/admin/alter-client-quotas-v1.js +3 -1
- package/dist/apis/admin/alter-configs-v0.d.ts +7 -0
- package/dist/apis/admin/alter-configs-v0.js +10 -0
- package/dist/apis/admin/alter-configs-v1.d.ts +2 -0
- package/dist/apis/admin/alter-configs-v1.js +5 -0
- package/dist/apis/admin/alter-configs-v2.js +3 -1
- package/dist/apis/admin/alter-partition-reassignments-v0.d.ts +3 -2
- package/dist/apis/admin/alter-partition-reassignments-v0.js +4 -1
- package/dist/apis/admin/alter-partition-reassignments-v1.d.ts +6 -4
- package/dist/apis/admin/alter-partition-reassignments-v1.js +7 -3
- package/dist/apis/admin/alter-partition-v0.d.ts +40 -0
- package/dist/apis/admin/alter-partition-v0.js +81 -0
- package/dist/apis/admin/alter-partition-v1.d.ts +37 -0
- package/dist/apis/admin/alter-partition-v1.js +84 -0
- package/dist/apis/admin/alter-partition-v2.d.ts +36 -0
- package/dist/apis/admin/alter-partition-v2.js +83 -0
- package/dist/apis/admin/alter-partition-v3.d.ts +6 -35
- package/dist/apis/admin/alter-partition-v3.js +10 -8
- package/dist/apis/admin/alter-replica-log-dirs-v0.d.ts +23 -0
- package/dist/apis/admin/alter-replica-log-dirs-v0.js +29 -0
- package/dist/apis/admin/alter-replica-log-dirs-v1.d.ts +4 -0
- package/dist/apis/admin/alter-replica-log-dirs-v1.js +8 -0
- package/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +1 -1
- package/dist/apis/admin/alter-replica-log-dirs-v2.js +1 -0
- package/dist/apis/admin/alter-user-scram-credentials-v0.js +1 -1
- package/dist/apis/admin/client-quotas.d.ts +2 -0
- package/dist/apis/admin/client-quotas.js +1 -0
- package/dist/apis/admin/consumer-group-describe-v0.d.ts +2 -1
- package/dist/apis/admin/consumer-group-describe-v0.js +51 -30
- package/dist/apis/admin/create-acls-v0.d.ts +16 -0
- package/dist/apis/admin/create-acls-v0.js +10 -0
- package/dist/apis/admin/create-acls-v1.d.ts +15 -0
- package/dist/apis/admin/create-acls-v1.js +10 -0
- package/dist/apis/admin/create-acls-v2.js +1 -0
- package/dist/apis/admin/create-acls-v3.js +1 -0
- package/dist/apis/admin/create-delegation-token-v0.d.ts +24 -0
- package/dist/apis/admin/create-delegation-token-v0.js +47 -0
- package/dist/apis/admin/create-delegation-token-v1.d.ts +4 -0
- package/dist/apis/admin/create-delegation-token-v1.js +8 -0
- package/dist/apis/admin/create-delegation-token-v2.d.ts +9 -0
- package/dist/apis/admin/create-delegation-token-v2.js +30 -0
- package/dist/apis/admin/create-delegation-token-v3.js +1 -0
- package/dist/apis/admin/create-partitions-v0.d.ts +2 -0
- package/dist/apis/admin/create-partitions-v0.js +5 -0
- package/dist/apis/admin/create-partitions-v1.d.ts +2 -2
- package/dist/apis/admin/create-partitions-v1.js +5 -5
- package/dist/apis/admin/create-partitions-v2.d.ts +2 -2
- package/dist/apis/admin/create-partitions-v2.js +1 -0
- package/dist/apis/admin/create-partitions-v3.js +1 -0
- package/dist/apis/admin/create-topics-v0.d.ts +42 -0
- package/dist/apis/admin/create-topics-v0.js +63 -0
- package/dist/apis/admin/create-topics-v1.d.ts +42 -0
- package/dist/apis/admin/create-topics-v1.js +65 -0
- package/dist/apis/admin/create-topics-v2.d.ts +42 -0
- package/dist/apis/admin/create-topics-v2.js +66 -0
- package/dist/apis/admin/create-topics-v3.d.ts +42 -0
- package/dist/apis/admin/create-topics-v3.js +66 -0
- package/dist/apis/admin/create-topics-v4.d.ts +42 -0
- package/dist/apis/admin/create-topics-v4.js +66 -0
- package/dist/apis/admin/create-topics-v5.d.ts +42 -0
- package/dist/apis/admin/create-topics-v5.js +88 -0
- package/dist/apis/admin/create-topics-v6.d.ts +42 -0
- package/dist/apis/admin/create-topics-v6.js +88 -0
- package/dist/apis/admin/create-topics-v7.d.ts +2 -1
- package/dist/apis/admin/create-topics-v7.js +19 -5
- package/dist/apis/admin/delete-acls-v0.d.ts +28 -0
- package/dist/apis/admin/delete-acls-v0.js +12 -0
- package/dist/apis/admin/delete-acls-v1.d.ts +27 -0
- package/dist/apis/admin/delete-acls-v1.js +11 -0
- package/dist/apis/admin/delete-acls-v2.js +5 -2
- package/dist/apis/admin/delete-acls-v3.js +1 -0
- package/dist/apis/admin/delete-groups-v0.d.ts +14 -0
- package/dist/apis/admin/delete-groups-v0.js +38 -0
- package/dist/apis/admin/delete-groups-v1.d.ts +14 -0
- package/dist/apis/admin/delete-groups-v1.js +38 -0
- package/dist/apis/admin/delete-groups-v2.js +1 -0
- package/dist/apis/admin/delete-records-v0.d.ts +27 -0
- package/dist/apis/admin/delete-records-v0.js +50 -0
- package/dist/apis/admin/delete-records-v1.d.ts +27 -0
- package/dist/apis/admin/delete-records-v1.js +50 -0
- package/dist/apis/admin/delete-records-v2.js +1 -0
- package/dist/apis/admin/delete-topics-v0.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v0.js +39 -0
- package/dist/apis/admin/delete-topics-v1.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v1.js +37 -0
- package/dist/apis/admin/delete-topics-v2.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v2.js +37 -0
- package/dist/apis/admin/delete-topics-v3.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v3.js +37 -0
- package/dist/apis/admin/delete-topics-v4.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v4.js +41 -0
- package/dist/apis/admin/delete-topics-v5.d.ts +19 -0
- package/dist/apis/admin/delete-topics-v5.js +45 -0
- package/dist/apis/admin/delete-topics-v6.d.ts +1 -1
- package/dist/apis/admin/delete-topics-v6.js +5 -1
- package/dist/apis/admin/describe-acls-v0.d.ts +21 -0
- package/dist/apis/admin/describe-acls-v0.js +19 -0
- package/dist/apis/admin/describe-acls-v1.d.ts +21 -0
- package/dist/apis/admin/describe-acls-v1.js +18 -0
- package/dist/apis/admin/describe-acls-v2.js +1 -0
- package/dist/apis/admin/describe-acls-v3.js +1 -0
- package/dist/apis/admin/describe-client-quotas-v0.d.ts +8 -7
- package/dist/apis/admin/describe-client-quotas-v0.js +28 -25
- package/dist/apis/admin/describe-client-quotas-v1.d.ts +9 -0
- package/dist/apis/admin/describe-client-quotas-v1.js +34 -0
- package/dist/apis/admin/describe-cluster-v0.d.ts +4 -3
- package/dist/apis/admin/describe-cluster-v0.js +3 -1
- package/dist/apis/admin/describe-cluster-v1.d.ts +4 -3
- package/dist/apis/admin/describe-cluster-v1.js +1 -0
- package/dist/apis/admin/describe-configs-v0.d.ts +41 -0
- package/dist/apis/admin/describe-configs-v0.js +72 -0
- package/dist/apis/admin/describe-configs-v1.d.ts +39 -0
- package/dist/apis/admin/describe-configs-v1.js +81 -0
- package/dist/apis/admin/describe-configs-v2.d.ts +9 -8
- package/dist/apis/admin/describe-configs-v2.js +10 -14
- package/dist/apis/admin/describe-configs-v3.d.ts +9 -8
- package/dist/apis/admin/describe-configs-v3.js +7 -7
- package/dist/apis/admin/describe-configs-v4.d.ts +2 -2
- package/dist/apis/admin/describe-configs-v4.js +14 -7
- package/dist/apis/admin/describe-delegation-token-v0.d.ts +31 -0
- package/dist/apis/admin/describe-delegation-token-v0.js +51 -0
- package/dist/apis/admin/describe-delegation-token-v1.d.ts +4 -0
- package/dist/apis/admin/describe-delegation-token-v1.js +8 -0
- package/dist/apis/admin/describe-delegation-token-v2.d.ts +8 -0
- package/dist/apis/admin/describe-delegation-token-v2.js +32 -0
- package/dist/apis/admin/describe-delegation-token-v3.d.ts +4 -27
- package/dist/apis/admin/describe-delegation-token-v3.js +1 -0
- package/dist/apis/admin/describe-groups-v0.d.ts +28 -0
- package/dist/apis/admin/describe-groups-v0.js +60 -0
- package/dist/apis/admin/describe-groups-v1.d.ts +28 -0
- package/dist/apis/admin/describe-groups-v1.js +62 -0
- package/dist/apis/admin/describe-groups-v2.d.ts +28 -0
- package/dist/apis/admin/describe-groups-v2.js +62 -0
- package/dist/apis/admin/describe-groups-v3.d.ts +28 -0
- package/dist/apis/admin/describe-groups-v3.js +64 -0
- package/dist/apis/admin/describe-groups-v4.d.ts +28 -0
- package/dist/apis/admin/describe-groups-v4.js +64 -0
- package/dist/apis/admin/describe-groups-v5.js +1 -0
- package/dist/apis/admin/describe-log-dirs-v0.d.ts +30 -0
- package/dist/apis/admin/describe-log-dirs-v0.js +39 -0
- package/dist/apis/admin/describe-log-dirs-v1.d.ts +4 -0
- package/dist/apis/admin/describe-log-dirs-v1.js +8 -0
- package/dist/apis/admin/describe-log-dirs-v2.d.ts +3 -2
- package/dist/apis/admin/describe-log-dirs-v2.js +9 -5
- package/dist/apis/admin/describe-log-dirs-v3.d.ts +3 -2
- package/dist/apis/admin/describe-log-dirs-v3.js +3 -2
- package/dist/apis/admin/describe-log-dirs-v4.d.ts +3 -2
- package/dist/apis/admin/describe-log-dirs-v4.js +1 -0
- package/dist/apis/admin/describe-producers-v0.js +1 -0
- package/dist/apis/admin/describe-quorum-v0.d.ts +13 -0
- package/dist/apis/admin/describe-quorum-v0.js +85 -0
- package/dist/apis/admin/describe-quorum-v1.d.ts +13 -0
- package/dist/apis/admin/describe-quorum-v1.js +84 -0
- package/dist/apis/admin/describe-quorum-v2.js +1 -0
- package/dist/apis/admin/describe-topic-partitions-v0.d.ts +3 -3
- package/dist/apis/admin/describe-topic-partitions-v0.js +5 -2
- package/dist/apis/admin/describe-transactions-v0.js +1 -0
- package/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +4 -3
- package/dist/apis/admin/describe-user-scram-credentials-v0.js +1 -0
- package/dist/apis/admin/envelope-v0.js +1 -0
- package/dist/apis/admin/expire-delegation-token-v0.d.ts +11 -0
- package/dist/apis/admin/expire-delegation-token-v0.js +29 -0
- package/dist/apis/admin/expire-delegation-token-v1.d.ts +4 -0
- package/dist/apis/admin/expire-delegation-token-v1.js +8 -0
- package/dist/apis/admin/expire-delegation-token-v2.js +1 -0
- package/dist/apis/admin/incremental-alter-configs-v0.d.ts +26 -0
- package/dist/apis/admin/incremental-alter-configs-v0.js +10 -0
- package/dist/apis/admin/incremental-alter-configs-v1.js +1 -0
- package/dist/apis/admin/index.d.ts +60 -0
- package/dist/apis/admin/index.js +60 -0
- package/dist/apis/admin/list-groups-v0.d.ts +18 -0
- package/dist/apis/admin/list-groups-v0.js +30 -0
- package/dist/apis/admin/list-groups-v1.d.ts +18 -0
- package/dist/apis/admin/list-groups-v1.js +37 -0
- package/dist/apis/admin/list-groups-v2.d.ts +18 -0
- package/dist/apis/admin/list-groups-v2.js +37 -0
- package/dist/apis/admin/list-groups-v3.d.ts +18 -0
- package/dist/apis/admin/list-groups-v3.js +38 -0
- package/dist/apis/admin/list-groups-v4.d.ts +4 -3
- package/dist/apis/admin/list-groups-v4.js +15 -4
- package/dist/apis/admin/list-groups-v5.d.ts +3 -3
- package/dist/apis/admin/list-groups-v5.js +25 -3
- package/dist/apis/admin/list-partition-reassignments-v0.d.ts +3 -3
- package/dist/apis/admin/list-partition-reassignments-v0.js +1 -0
- package/dist/apis/admin/list-transactions-v0.d.ts +5 -3
- package/dist/apis/admin/list-transactions-v0.js +23 -1
- package/dist/apis/admin/list-transactions-v1.d.ts +5 -3
- package/dist/apis/admin/list-transactions-v1.js +15 -1
- package/dist/apis/admin/list-transactions-v2.d.ts +5 -4
- package/dist/apis/admin/list-transactions-v2.js +17 -5
- package/dist/apis/admin/renew-delegation-token-v0.d.ts +11 -0
- package/dist/apis/admin/renew-delegation-token-v0.js +29 -0
- package/dist/apis/admin/renew-delegation-token-v1.d.ts +4 -0
- package/dist/apis/admin/renew-delegation-token-v1.js +8 -0
- package/dist/apis/admin/renew-delegation-token-v2.js +1 -0
- package/dist/apis/admin/unregister-broker-v0.js +1 -0
- package/dist/apis/admin/update-features-v0.d.ts +24 -0
- package/dist/apis/admin/update-features-v0.js +59 -0
- package/dist/apis/admin/update-features-v1.d.ts +2 -1
- package/dist/apis/admin/update-features-v1.js +1 -0
- package/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
- package/dist/apis/consumer/consumer-group-heartbeat-v0.js +17 -10
- package/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
- package/dist/apis/consumer/consumer-group-heartbeat-v1.js +17 -10
- package/dist/apis/consumer/fetch-v10.d.ts +51 -0
- package/dist/apis/consumer/fetch-v10.js +122 -0
- package/dist/apis/consumer/fetch-v11.d.ts +51 -0
- package/dist/apis/consumer/fetch-v11.js +125 -0
- package/dist/apis/consumer/fetch-v12.d.ts +20 -4
- package/dist/apis/consumer/fetch-v12.js +29 -12
- package/dist/apis/consumer/fetch-v13.d.ts +20 -4
- package/dist/apis/consumer/fetch-v13.js +25 -7
- package/dist/apis/consumer/fetch-v14.d.ts +20 -4
- package/dist/apis/consumer/fetch-v14.js +25 -7
- package/dist/apis/consumer/fetch-v15.d.ts +20 -4
- package/dist/apis/consumer/fetch-v15.js +25 -7
- package/dist/apis/consumer/fetch-v16.d.ts +27 -4
- package/dist/apis/consumer/fetch-v16.js +36 -8
- package/dist/apis/consumer/fetch-v17.d.ts +28 -4
- package/dist/apis/consumer/fetch-v17.js +43 -9
- package/dist/apis/consumer/fetch-v4.d.ts +51 -0
- package/dist/apis/consumer/fetch-v4.js +87 -0
- package/dist/apis/consumer/fetch-v5.d.ts +51 -0
- package/dist/apis/consumer/fetch-v5.js +89 -0
- package/dist/apis/consumer/fetch-v6.d.ts +51 -0
- package/dist/apis/consumer/fetch-v6.js +99 -0
- package/dist/apis/consumer/fetch-v7.d.ts +51 -0
- package/dist/apis/consumer/fetch-v7.js +117 -0
- package/dist/apis/consumer/fetch-v8.d.ts +51 -0
- package/dist/apis/consumer/fetch-v8.js +117 -0
- package/dist/apis/consumer/fetch-v9.d.ts +51 -0
- package/dist/apis/consumer/fetch-v9.js +122 -0
- package/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
- package/dist/apis/consumer/heartbeat-v0.js +24 -0
- package/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
- package/dist/apis/consumer/heartbeat-v1.js +31 -0
- package/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
- package/dist/apis/consumer/heartbeat-v2.js +31 -0
- package/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
- package/dist/apis/consumer/heartbeat-v3.js +33 -0
- package/dist/apis/consumer/heartbeat-v4.js +1 -0
- package/dist/apis/consumer/index.d.ts +51 -0
- package/dist/apis/consumer/index.js +51 -0
- package/dist/apis/consumer/join-group-v0.d.ts +27 -0
- package/dist/apis/consumer/join-group-v0.js +51 -0
- package/dist/apis/consumer/join-group-v1.d.ts +8 -0
- package/dist/apis/consumer/join-group-v1.js +43 -0
- package/dist/apis/consumer/join-group-v2.d.ts +27 -0
- package/dist/apis/consumer/join-group-v2.js +60 -0
- package/dist/apis/consumer/join-group-v3.d.ts +27 -0
- package/dist/apis/consumer/join-group-v3.js +60 -0
- package/dist/apis/consumer/join-group-v4.d.ts +27 -0
- package/dist/apis/consumer/join-group-v4.js +60 -0
- package/dist/apis/consumer/join-group-v5.d.ts +27 -0
- package/dist/apis/consumer/join-group-v5.js +63 -0
- package/dist/apis/consumer/join-group-v6.d.ts +2 -2
- package/dist/apis/consumer/join-group-v6.js +10 -7
- package/dist/apis/consumer/join-group-v7.d.ts +2 -2
- package/dist/apis/consumer/join-group-v7.js +5 -3
- package/dist/apis/consumer/join-group-v8.d.ts +2 -2
- package/dist/apis/consumer/join-group-v8.js +5 -3
- package/dist/apis/consumer/join-group-v9.d.ts +2 -2
- package/dist/apis/consumer/join-group-v9.js +5 -3
- package/dist/apis/consumer/leave-group-v0.d.ts +22 -0
- package/dist/apis/consumer/leave-group-v0.js +23 -0
- package/dist/apis/consumer/leave-group-v1.d.ts +22 -0
- package/dist/apis/consumer/leave-group-v1.js +30 -0
- package/dist/apis/consumer/leave-group-v2.d.ts +22 -0
- package/dist/apis/consumer/leave-group-v2.js +30 -0
- package/dist/apis/consumer/leave-group-v3.d.ts +22 -0
- package/dist/apis/consumer/leave-group-v3.js +54 -0
- package/dist/apis/consumer/leave-group-v4.d.ts +1 -1
- package/dist/apis/consumer/leave-group-v4.js +4 -2
- package/dist/apis/consumer/leave-group-v5.d.ts +1 -1
- package/dist/apis/consumer/leave-group-v5.js +4 -2
- package/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
- package/dist/apis/consumer/list-offsets-v0.js +50 -0
- package/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
- package/dist/apis/consumer/list-offsets-v1.js +52 -0
- package/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
- package/dist/apis/consumer/list-offsets-v2.js +64 -0
- package/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
- package/dist/apis/consumer/list-offsets-v3.js +64 -0
- package/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
- package/dist/apis/consumer/list-offsets-v4.js +67 -0
- package/dist/apis/consumer/list-offsets-v6.js +6 -3
- package/dist/apis/consumer/list-offsets-v7.js +6 -3
- package/dist/apis/consumer/list-offsets-v8.js +6 -3
- package/dist/apis/consumer/list-offsets-v9.js +6 -3
- package/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v0.js +52 -0
- package/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
- package/dist/apis/consumer/offset-commit-v1.js +30 -0
- package/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
- package/dist/apis/consumer/offset-commit-v2.js +31 -0
- package/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v3.js +58 -0
- package/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v4.js +58 -0
- package/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v5.js +56 -0
- package/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v6.js +60 -0
- package/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
- package/dist/apis/consumer/offset-commit-v7.js +62 -0
- package/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
- package/dist/apis/consumer/offset-commit-v8.js +6 -3
- package/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
- package/dist/apis/consumer/offset-commit-v9.js +6 -3
- package/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
- package/dist/apis/consumer/offset-fetch-v0.js +62 -0
- package/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
- package/dist/apis/consumer/offset-fetch-v1.js +41 -0
- package/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
- package/dist/apis/consumer/offset-fetch-v2.js +48 -0
- package/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
- package/dist/apis/consumer/offset-fetch-v3.js +64 -0
- package/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
- package/dist/apis/consumer/offset-fetch-v4.js +64 -0
- package/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
- package/dist/apis/consumer/offset-fetch-v5.js +65 -0
- package/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
- package/dist/apis/consumer/offset-fetch-v6.js +68 -0
- package/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
- package/dist/apis/consumer/offset-fetch-v7.js +70 -0
- package/dist/apis/consumer/offset-fetch-v8.js +5 -2
- package/dist/apis/consumer/offset-fetch-v9.js +5 -2
- package/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v0.js +48 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v1.js +54 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v2.js +58 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v3.js +59 -0
- package/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
- package/dist/apis/consumer/offset-for-leader-epoch-v4.js +11 -8
- package/dist/apis/consumer/sync-group-v0.d.ts +18 -0
- package/dist/apis/consumer/sync-group-v0.js +38 -0
- package/dist/apis/consumer/sync-group-v1.d.ts +18 -0
- package/dist/apis/consumer/sync-group-v1.js +39 -0
- package/dist/apis/consumer/sync-group-v2.d.ts +18 -0
- package/dist/apis/consumer/sync-group-v2.js +39 -0
- package/dist/apis/consumer/sync-group-v3.d.ts +18 -0
- package/dist/apis/consumer/sync-group-v3.js +41 -0
- package/dist/apis/consumer/sync-group-v4.js +1 -0
- package/dist/apis/consumer/sync-group-v5.js +1 -0
- package/dist/apis/definitions.d.ts +1 -1
- package/dist/apis/enumerations.d.ts +21 -6
- package/dist/apis/enumerations.js +57 -5
- package/dist/apis/index.d.ts +1 -0
- package/dist/apis/index.js +1 -0
- package/dist/apis/metadata/api-versions-v0.d.ts +17 -0
- package/dist/apis/metadata/api-versions-v0.js +24 -0
- package/dist/apis/metadata/api-versions-v1.d.ts +17 -0
- package/dist/apis/metadata/api-versions-v1.js +39 -0
- package/dist/apis/metadata/api-versions-v2.d.ts +17 -0
- package/dist/apis/metadata/api-versions-v2.js +39 -0
- package/dist/apis/metadata/api-versions-v3.d.ts +16 -2
- package/dist/apis/metadata/api-versions-v3.js +43 -4
- package/dist/apis/metadata/api-versions-v4.d.ts +16 -2
- package/dist/apis/metadata/api-versions-v4.js +35 -3
- package/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
- package/dist/apis/metadata/find-coordinator-v0.js +24 -0
- package/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
- package/dist/apis/metadata/find-coordinator-v1.js +41 -0
- package/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
- package/dist/apis/metadata/find-coordinator-v2.js +41 -0
- package/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
- package/dist/apis/metadata/find-coordinator-v3.js +44 -0
- package/dist/apis/metadata/find-coordinator-v4.js +3 -1
- package/dist/apis/metadata/find-coordinator-v5.js +3 -1
- package/dist/apis/metadata/find-coordinator-v6.js +3 -1
- package/dist/apis/metadata/index.d.ts +16 -0
- package/dist/apis/metadata/index.js +16 -0
- package/dist/apis/metadata/metadata-v0.d.ts +38 -0
- package/dist/apis/metadata/metadata-v0.js +47 -0
- package/dist/apis/metadata/metadata-v1.d.ts +38 -0
- package/dist/apis/metadata/metadata-v1.js +52 -0
- package/dist/apis/metadata/metadata-v10.d.ts +4 -2
- package/dist/apis/metadata/metadata-v10.js +29 -16
- package/dist/apis/metadata/metadata-v11.d.ts +3 -2
- package/dist/apis/metadata/metadata-v11.js +23 -15
- package/dist/apis/metadata/metadata-v12.d.ts +9 -2
- package/dist/apis/metadata/metadata-v12.js +21 -9
- package/dist/apis/metadata/metadata-v2.d.ts +38 -0
- package/dist/apis/metadata/metadata-v2.js +52 -0
- package/dist/apis/metadata/metadata-v3.d.ts +38 -0
- package/dist/apis/metadata/metadata-v3.js +52 -0
- package/dist/apis/metadata/metadata-v4.d.ts +38 -0
- package/dist/apis/metadata/metadata-v4.js +54 -0
- package/dist/apis/metadata/metadata-v5.d.ts +38 -0
- package/dist/apis/metadata/metadata-v5.js +85 -0
- package/dist/apis/metadata/metadata-v6.d.ts +38 -0
- package/dist/apis/metadata/metadata-v6.js +85 -0
- package/dist/apis/metadata/metadata-v7.d.ts +38 -0
- package/dist/apis/metadata/metadata-v7.js +86 -0
- package/dist/apis/metadata/metadata-v8.d.ts +39 -0
- package/dist/apis/metadata/metadata-v8.js +94 -0
- package/dist/apis/metadata/metadata-v9.d.ts +5 -3
- package/dist/apis/metadata/metadata-v9.js +28 -21
- package/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
- package/dist/apis/producer/add-offsets-to-txn-v0.js +30 -0
- package/dist/apis/producer/add-offsets-to-txn-v3.js +1 -0
- package/dist/apis/producer/add-offsets-to-txn-v4.js +1 -0
- package/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
- package/dist/apis/producer/add-partitions-to-txn-v0.js +62 -0
- package/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
- package/dist/apis/producer/add-partitions-to-txn-v1.js +9 -0
- package/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
- package/dist/apis/producer/add-partitions-to-txn-v2.js +9 -0
- package/dist/apis/producer/add-partitions-to-txn-v3.js +13 -8
- package/dist/apis/producer/add-partitions-to-txn-v4.js +11 -5
- package/dist/apis/producer/add-partitions-to-txn-v5.js +11 -5
- package/dist/apis/producer/end-txn-v0.d.ts +10 -0
- package/dist/apis/producer/end-txn-v0.js +30 -0
- package/dist/apis/producer/end-txn-v1.d.ts +5 -0
- package/dist/apis/producer/end-txn-v1.js +9 -0
- package/dist/apis/producer/end-txn-v2.d.ts +5 -0
- package/dist/apis/producer/end-txn-v2.js +9 -0
- package/dist/apis/producer/end-txn-v3.js +1 -0
- package/dist/apis/producer/end-txn-v4.js +1 -0
- package/dist/apis/producer/index.d.ts +17 -0
- package/dist/apis/producer/index.js +17 -0
- package/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
- package/dist/apis/producer/init-producer-id-v0.js +31 -0
- package/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
- package/dist/apis/producer/init-producer-id-v1.js +9 -0
- package/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
- package/dist/apis/producer/init-producer-id-v2.js +24 -0
- package/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
- package/dist/apis/producer/init-producer-id-v3.js +9 -1
- package/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
- package/dist/apis/producer/init-producer-id-v4.js +9 -1
- package/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
- package/dist/apis/producer/init-producer-id-v5.js +9 -1
- package/dist/apis/producer/produce-v10.d.ts +13 -0
- package/dist/apis/producer/produce-v10.js +68 -6
- package/dist/apis/producer/produce-v11.d.ts +13 -0
- package/dist/apis/producer/produce-v11.js +68 -6
- package/dist/apis/producer/produce-v3.d.ts +29 -0
- package/dist/apis/producer/produce-v3.js +88 -0
- package/dist/apis/producer/produce-v4.d.ts +29 -0
- package/dist/apis/producer/produce-v4.js +88 -0
- package/dist/apis/producer/produce-v5.d.ts +29 -0
- package/dist/apis/producer/produce-v5.js +88 -0
- package/dist/apis/producer/produce-v6.d.ts +29 -0
- package/dist/apis/producer/produce-v6.js +88 -0
- package/dist/apis/producer/produce-v7.d.ts +1 -0
- package/dist/apis/producer/produce-v7.js +24 -2
- package/dist/apis/producer/produce-v8.d.ts +1 -0
- package/dist/apis/producer/produce-v8.js +23 -1
- package/dist/apis/producer/produce-v9.d.ts +1 -0
- package/dist/apis/producer/produce-v9.js +33 -4
- package/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
- package/dist/apis/producer/txn-offset-commit-v0.js +60 -0
- package/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
- package/dist/apis/producer/txn-offset-commit-v1.js +60 -0
- package/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
- package/dist/apis/producer/txn-offset-commit-v2.js +62 -0
- package/dist/apis/producer/txn-offset-commit-v3.js +7 -3
- package/dist/apis/producer/txn-offset-commit-v4.js +7 -3
- package/dist/apis/producer/utils.d.ts +11 -0
- package/dist/apis/producer/utils.js +31 -0
- package/dist/apis/security/index.d.ts +3 -0
- package/dist/apis/security/index.js +3 -0
- package/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
- package/dist/apis/security/sasl-authenticate-v0.js +30 -0
- package/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
- package/dist/apis/security/sasl-authenticate-v1.js +30 -0
- package/dist/apis/security/sasl-authenticate-v2.js +1 -0
- package/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
- package/dist/apis/security/sasl-handshake-v0.js +28 -0
- package/dist/apis/tagged-fields.d.ts +7 -0
- package/dist/apis/tagged-fields.js +27 -0
- package/dist/apis/telemetry/compression-types.d.ts +8 -0
- package/dist/apis/telemetry/compression-types.js +7 -0
- package/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
- package/dist/apis/telemetry/get-telemetry-subscriptions-v0.js +1 -0
- package/dist/apis/telemetry/index.d.ts +3 -0
- package/dist/apis/telemetry/index.js +3 -0
- package/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
- package/dist/apis/telemetry/list-client-metrics-resources-v0.js +13 -8
- package/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
- package/dist/apis/telemetry/list-config-resources-v1.js +38 -0
- package/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
- package/dist/apis/telemetry/push-telemetry-v0.js +1 -0
- package/dist/clients/admin/admin.js +85 -25
- package/dist/clients/admin/options.d.ts +4 -4
- package/dist/clients/admin/options.js +3 -3
- package/dist/clients/admin/types.d.ts +1 -1
- package/dist/clients/base/base.d.ts +2 -2
- package/dist/clients/base/base.js +42 -9
- package/dist/clients/base/options.d.ts +4 -0
- package/dist/clients/base/options.js +2 -1
- package/dist/clients/base/types.d.ts +1 -0
- package/dist/clients/consumer/consumer-protocol.d.ts +32 -0
- package/dist/clients/consumer/consumer-protocol.js +114 -0
- package/dist/clients/consumer/consumer.d.ts +3 -2
- package/dist/clients/consumer/consumer.js +367 -98
- package/dist/clients/consumer/index.d.ts +2 -0
- package/dist/clients/consumer/index.js +2 -0
- package/dist/clients/consumer/messages-stream.d.ts +4 -2
- package/dist/clients/consumer/messages-stream.js +135 -15
- package/dist/clients/consumer/partitions-assigners.d.ts +3 -0
- package/dist/clients/consumer/partitions-assigners.js +259 -0
- package/dist/clients/consumer/types.d.ts +11 -0
- package/dist/clients/producer/producer.d.ts +1 -1
- package/dist/clients/producer/producer.js +7 -2
- package/dist/errors.js +12 -1
- package/dist/network/connection.d.ts +1 -1
- package/dist/network/connection.js +148 -59
- package/dist/protocol/compression.d.ts +6 -0
- package/dist/protocol/compression.js +14 -1
- package/dist/protocol/definitions.js +1 -1
- package/dist/protocol/reader.js +7 -3
- package/dist/protocol/records.d.ts +1 -0
- package/dist/protocol/records.js +40 -17
- package/dist/protocol/writer.js +17 -4
- package/dist/registries/confluent-schema-registry.d.ts +2 -1
- package/dist/registries/confluent-schema-registry.js +2 -1
- package/dist/symbols.d.ts +1 -0
- package/dist/symbols.js +1 -0
- package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v0.d.ts +40 -0
- package/dist/typescript-4/dist/apis/admin/alter-client-quotas-v1.d.ts +6 -5
- package/dist/typescript-4/dist/apis/admin/alter-configs-v0.d.ts +7 -0
- package/dist/typescript-4/dist/apis/admin/alter-configs-v1.d.ts +2 -0
- package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v0.d.ts +3 -2
- package/dist/typescript-4/dist/apis/admin/alter-partition-reassignments-v1.d.ts +6 -4
- package/dist/typescript-4/dist/apis/admin/alter-partition-v0.d.ts +40 -0
- package/dist/typescript-4/dist/apis/admin/alter-partition-v1.d.ts +37 -0
- package/dist/typescript-4/dist/apis/admin/alter-partition-v2.d.ts +36 -0
- package/dist/typescript-4/dist/apis/admin/alter-partition-v3.d.ts +6 -35
- package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v0.d.ts +23 -0
- package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/alter-replica-log-dirs-v2.d.ts +1 -1
- package/dist/typescript-4/dist/apis/admin/client-quotas.d.ts +2 -0
- package/dist/typescript-4/dist/apis/admin/consumer-group-describe-v0.d.ts +2 -1
- package/dist/typescript-4/dist/apis/admin/create-acls-v0.d.ts +16 -0
- package/dist/typescript-4/dist/apis/admin/create-acls-v1.d.ts +15 -0
- package/dist/typescript-4/dist/apis/admin/create-delegation-token-v0.d.ts +24 -0
- package/dist/typescript-4/dist/apis/admin/create-delegation-token-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/create-delegation-token-v2.d.ts +9 -0
- package/dist/typescript-4/dist/apis/admin/create-partitions-v0.d.ts +2 -0
- package/dist/typescript-4/dist/apis/admin/create-partitions-v1.d.ts +2 -2
- package/dist/typescript-4/dist/apis/admin/create-partitions-v2.d.ts +2 -2
- package/dist/typescript-4/dist/apis/admin/create-topics-v0.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v1.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v2.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v3.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v4.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v5.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v6.d.ts +42 -0
- package/dist/typescript-4/dist/apis/admin/create-topics-v7.d.ts +2 -1
- package/dist/typescript-4/dist/apis/admin/delete-acls-v0.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/delete-acls-v1.d.ts +27 -0
- package/dist/typescript-4/dist/apis/admin/delete-groups-v0.d.ts +14 -0
- package/dist/typescript-4/dist/apis/admin/delete-groups-v1.d.ts +14 -0
- package/dist/typescript-4/dist/apis/admin/delete-records-v0.d.ts +27 -0
- package/dist/typescript-4/dist/apis/admin/delete-records-v1.d.ts +27 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v0.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v1.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v2.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v3.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v4.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v5.d.ts +19 -0
- package/dist/typescript-4/dist/apis/admin/delete-topics-v6.d.ts +1 -1
- package/dist/typescript-4/dist/apis/admin/describe-acls-v0.d.ts +21 -0
- package/dist/typescript-4/dist/apis/admin/describe-acls-v1.d.ts +21 -0
- package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v0.d.ts +8 -7
- package/dist/typescript-4/dist/apis/admin/describe-client-quotas-v1.d.ts +9 -0
- package/dist/typescript-4/dist/apis/admin/describe-cluster-v0.d.ts +4 -3
- package/dist/typescript-4/dist/apis/admin/describe-cluster-v1.d.ts +4 -3
- package/dist/typescript-4/dist/apis/admin/describe-configs-v0.d.ts +41 -0
- package/dist/typescript-4/dist/apis/admin/describe-configs-v1.d.ts +39 -0
- package/dist/typescript-4/dist/apis/admin/describe-configs-v2.d.ts +9 -8
- package/dist/typescript-4/dist/apis/admin/describe-configs-v3.d.ts +9 -8
- package/dist/typescript-4/dist/apis/admin/describe-configs-v4.d.ts +2 -2
- package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v0.d.ts +31 -0
- package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v2.d.ts +8 -0
- package/dist/typescript-4/dist/apis/admin/describe-delegation-token-v3.d.ts +4 -27
- package/dist/typescript-4/dist/apis/admin/describe-groups-v0.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/describe-groups-v1.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/describe-groups-v2.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/describe-groups-v3.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/describe-groups-v4.d.ts +28 -0
- package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v0.d.ts +30 -0
- package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v2.d.ts +3 -2
- package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v3.d.ts +3 -2
- package/dist/typescript-4/dist/apis/admin/describe-log-dirs-v4.d.ts +3 -2
- package/dist/typescript-4/dist/apis/admin/describe-quorum-v0.d.ts +13 -0
- package/dist/typescript-4/dist/apis/admin/describe-quorum-v1.d.ts +13 -0
- package/dist/typescript-4/dist/apis/admin/describe-topic-partitions-v0.d.ts +3 -3
- package/dist/typescript-4/dist/apis/admin/describe-user-scram-credentials-v0.d.ts +4 -3
- package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v0.d.ts +11 -0
- package/dist/typescript-4/dist/apis/admin/expire-delegation-token-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/incremental-alter-configs-v0.d.ts +26 -0
- package/dist/typescript-4/dist/apis/admin/index.d.ts +60 -0
- package/dist/typescript-4/dist/apis/admin/list-groups-v0.d.ts +18 -0
- package/dist/typescript-4/dist/apis/admin/list-groups-v1.d.ts +18 -0
- package/dist/typescript-4/dist/apis/admin/list-groups-v2.d.ts +18 -0
- package/dist/typescript-4/dist/apis/admin/list-groups-v3.d.ts +18 -0
- package/dist/typescript-4/dist/apis/admin/list-groups-v4.d.ts +4 -3
- package/dist/typescript-4/dist/apis/admin/list-groups-v5.d.ts +3 -3
- package/dist/typescript-4/dist/apis/admin/list-partition-reassignments-v0.d.ts +3 -3
- package/dist/typescript-4/dist/apis/admin/list-transactions-v0.d.ts +5 -3
- package/dist/typescript-4/dist/apis/admin/list-transactions-v1.d.ts +5 -3
- package/dist/typescript-4/dist/apis/admin/list-transactions-v2.d.ts +5 -4
- package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v0.d.ts +11 -0
- package/dist/typescript-4/dist/apis/admin/renew-delegation-token-v1.d.ts +4 -0
- package/dist/typescript-4/dist/apis/admin/update-features-v0.d.ts +24 -0
- package/dist/typescript-4/dist/apis/admin/update-features-v1.d.ts +2 -1
- package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v0.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/consumer-group-heartbeat-v1.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/fetch-v10.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v11.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v12.d.ts +20 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v13.d.ts +20 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v14.d.ts +20 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v15.d.ts +20 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v16.d.ts +27 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v17.d.ts +28 -4
- package/dist/typescript-4/dist/apis/consumer/fetch-v4.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v5.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v6.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v7.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v8.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/fetch-v9.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/heartbeat-v0.d.ts +11 -0
- package/dist/typescript-4/dist/apis/consumer/heartbeat-v1.d.ts +11 -0
- package/dist/typescript-4/dist/apis/consumer/heartbeat-v2.d.ts +11 -0
- package/dist/typescript-4/dist/apis/consumer/heartbeat-v3.d.ts +11 -0
- package/dist/typescript-4/dist/apis/consumer/index.d.ts +51 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v0.d.ts +27 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v1.d.ts +8 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v2.d.ts +27 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v3.d.ts +27 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v4.d.ts +27 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v5.d.ts +27 -0
- package/dist/typescript-4/dist/apis/consumer/join-group-v6.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/join-group-v7.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/join-group-v8.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/join-group-v9.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/leave-group-v0.d.ts +22 -0
- package/dist/typescript-4/dist/apis/consumer/leave-group-v1.d.ts +22 -0
- package/dist/typescript-4/dist/apis/consumer/leave-group-v2.d.ts +22 -0
- package/dist/typescript-4/dist/apis/consumer/leave-group-v3.d.ts +22 -0
- package/dist/typescript-4/dist/apis/consumer/leave-group-v4.d.ts +1 -1
- package/dist/typescript-4/dist/apis/consumer/leave-group-v5.d.ts +1 -1
- package/dist/typescript-4/dist/apis/consumer/list-offsets-v0.d.ts +30 -0
- package/dist/typescript-4/dist/apis/consumer/list-offsets-v1.d.ts +12 -0
- package/dist/typescript-4/dist/apis/consumer/list-offsets-v2.d.ts +30 -0
- package/dist/typescript-4/dist/apis/consumer/list-offsets-v3.d.ts +30 -0
- package/dist/typescript-4/dist/apis/consumer/list-offsets-v4.d.ts +30 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v0.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v1.d.ts +7 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v2.d.ts +8 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v3.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v4.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v5.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v6.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v7.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v8.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/offset-commit-v9.d.ts +2 -2
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v0.d.ts +40 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v1.d.ts +6 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v2.d.ts +7 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v3.d.ts +39 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v4.d.ts +39 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v5.d.ts +39 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v6.d.ts +39 -0
- package/dist/typescript-4/dist/apis/consumer/offset-fetch-v7.d.ts +39 -0
- package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v0.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v1.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v2.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v3.d.ts +29 -0
- package/dist/typescript-4/dist/apis/consumer/offset-for-leader-epoch-v4.d.ts +1 -1
- package/dist/typescript-4/dist/apis/consumer/sync-group-v0.d.ts +18 -0
- package/dist/typescript-4/dist/apis/consumer/sync-group-v1.d.ts +18 -0
- package/dist/typescript-4/dist/apis/consumer/sync-group-v2.d.ts +18 -0
- package/dist/typescript-4/dist/apis/consumer/sync-group-v3.d.ts +18 -0
- package/dist/typescript-4/dist/apis/definitions.d.ts +1 -1
- package/dist/typescript-4/dist/apis/enumerations.d.ts +21 -6
- package/dist/typescript-4/dist/apis/index.d.ts +1 -0
- package/dist/typescript-4/dist/apis/metadata/api-versions-v0.d.ts +17 -0
- package/dist/typescript-4/dist/apis/metadata/api-versions-v1.d.ts +17 -0
- package/dist/typescript-4/dist/apis/metadata/api-versions-v2.d.ts +17 -0
- package/dist/typescript-4/dist/apis/metadata/api-versions-v3.d.ts +16 -2
- package/dist/typescript-4/dist/apis/metadata/api-versions-v4.d.ts +16 -2
- package/dist/typescript-4/dist/apis/metadata/find-coordinator-v0.d.ts +18 -0
- package/dist/typescript-4/dist/apis/metadata/find-coordinator-v1.d.ts +18 -0
- package/dist/typescript-4/dist/apis/metadata/find-coordinator-v2.d.ts +18 -0
- package/dist/typescript-4/dist/apis/metadata/find-coordinator-v3.d.ts +18 -0
- package/dist/typescript-4/dist/apis/metadata/index.d.ts +16 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v0.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v1.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v10.d.ts +4 -2
- package/dist/typescript-4/dist/apis/metadata/metadata-v11.d.ts +3 -2
- package/dist/typescript-4/dist/apis/metadata/metadata-v12.d.ts +9 -2
- package/dist/typescript-4/dist/apis/metadata/metadata-v2.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v3.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v4.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v5.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v6.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v7.d.ts +38 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v8.d.ts +39 -0
- package/dist/typescript-4/dist/apis/metadata/metadata-v9.d.ts +5 -3
- package/dist/typescript-4/dist/apis/producer/add-offsets-to-txn-v0.d.ts +10 -0
- package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v0.d.ts +34 -0
- package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v1.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/add-partitions-to-txn-v2.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/end-txn-v0.d.ts +10 -0
- package/dist/typescript-4/dist/apis/producer/end-txn-v1.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/end-txn-v2.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/index.d.ts +17 -0
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v0.d.ts +13 -0
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v1.d.ts +5 -0
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v2.d.ts +13 -0
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v3.d.ts +2 -2
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v4.d.ts +2 -2
- package/dist/typescript-4/dist/apis/producer/init-producer-id-v5.d.ts +2 -2
- package/dist/typescript-4/dist/apis/producer/produce-v10.d.ts +13 -0
- package/dist/typescript-4/dist/apis/producer/produce-v11.d.ts +13 -0
- package/dist/typescript-4/dist/apis/producer/produce-v3.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/produce-v4.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/produce-v5.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/produce-v6.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/produce-v7.d.ts +1 -0
- package/dist/typescript-4/dist/apis/producer/produce-v8.d.ts +1 -0
- package/dist/typescript-4/dist/apis/producer/produce-v9.d.ts +1 -0
- package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v0.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v1.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/txn-offset-commit-v2.d.ts +29 -0
- package/dist/typescript-4/dist/apis/producer/utils.d.ts +11 -0
- package/dist/typescript-4/dist/apis/security/index.d.ts +3 -0
- package/dist/typescript-4/dist/apis/security/sasl-authenticate-v0.d.ts +15 -0
- package/dist/typescript-4/dist/apis/security/sasl-authenticate-v1.d.ts +15 -0
- package/dist/typescript-4/dist/apis/security/sasl-handshake-v0.d.ts +10 -0
- package/dist/typescript-4/dist/apis/tagged-fields.d.ts +7 -0
- package/dist/typescript-4/dist/apis/telemetry/compression-types.d.ts +8 -0
- package/dist/typescript-4/dist/apis/telemetry/get-telemetry-subscriptions-v0.d.ts +2 -1
- package/dist/typescript-4/dist/apis/telemetry/index.d.ts +3 -0
- package/dist/typescript-4/dist/apis/telemetry/list-client-metrics-resources-v0.d.ts +6 -4
- package/dist/typescript-4/dist/apis/telemetry/list-config-resources-v1.d.ts +16 -0
- package/dist/typescript-4/dist/apis/telemetry/push-telemetry-v0.d.ts +3 -2
- package/dist/typescript-4/dist/clients/admin/options.d.ts +4 -4
- package/dist/typescript-4/dist/clients/admin/types.d.ts +1 -1
- package/dist/typescript-4/dist/clients/base/base.d.ts +2 -2
- package/dist/typescript-4/dist/clients/base/options.d.ts +4 -0
- package/dist/typescript-4/dist/clients/base/types.d.ts +1 -0
- package/dist/typescript-4/dist/clients/consumer/consumer-protocol.d.ts +32 -0
- package/dist/typescript-4/dist/clients/consumer/consumer.d.ts +3 -2
- package/dist/typescript-4/dist/clients/consumer/index.d.ts +2 -0
- package/dist/typescript-4/dist/clients/consumer/messages-stream.d.ts +4 -2
- package/dist/typescript-4/dist/clients/consumer/partitions-assigners.d.ts +4 -1
- package/dist/typescript-4/dist/clients/consumer/types.d.ts +11 -0
- package/dist/typescript-4/dist/clients/producer/producer.d.ts +1 -1
- package/dist/typescript-4/dist/network/connection.d.ts +1 -1
- package/dist/typescript-4/dist/protocol/compression.d.ts +7 -1
- package/dist/typescript-4/dist/protocol/records.d.ts +1 -0
- package/dist/typescript-4/dist/registries/confluent-schema-registry.d.ts +2 -1
- package/dist/typescript-4/dist/symbols.d.ts +1 -0
- package/dist/version.js +1 -1
- package/package.json +6 -2
|
@@ -2,18 +2,17 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { createPromisifiedCallback, kCallbackPromise, runConcurrentCallbacks } from "../../apis/callbacks.js";
|
|
3
3
|
import { FetchIsolationLevels, FindCoordinatorKeyTypes } from "../../apis/enumerations.js";
|
|
4
4
|
import { consumerCommitsChannel, consumerConsumesChannel, consumerFetchesChannel, consumerGroupChannel, consumerHeartbeatChannel, consumerLagChannel, consumerOffsetsChannel, createDiagnosticContext } from "../../diagnostic.js";
|
|
5
|
-
import { findErrorBy, NetworkError, protocolErrors, UserError } from "../../errors.js";
|
|
6
|
-
import { INT32_SIZE } from "../../protocol/definitions.js";
|
|
7
|
-
import { Reader } from "../../protocol/reader.js";
|
|
5
|
+
import { findErrorBy, MultipleErrors, NetworkError, protocolErrors, UserError } from "../../errors.js";
|
|
8
6
|
import { IS_CONTROL } from "../../protocol/records.js";
|
|
9
7
|
import { Writer } from "../../protocol/writer.js";
|
|
10
|
-
import { kAutocommit, kGetFetchNode, kRefreshOffsetsAndFetch } from "../../symbols.js";
|
|
8
|
+
import { kAutocommit, kGetFetchNode, kRefreshOffsetsAndFetch, kUpdateCommittedOffset } from "../../symbols.js";
|
|
11
9
|
import { emitExperimentalApiWarning } from "../../utils.js";
|
|
12
10
|
import { Base, kAfterCreate, kCheckNotClosed, kClosed, kConnections, kCreateConnectionPool, kFormatValidationErrors, kGetApi, kGetBootstrapConnection, kGetConnection, kMetadata, kOptions, kPerformDeduplicated, kPerformWithRetry, kPrometheus, kValidateOptions } from "../base/base.js";
|
|
13
11
|
import { ensureMetric } from "../metrics.js";
|
|
14
12
|
import { MessagesStream } from "./messages-stream.js";
|
|
13
|
+
import { CONSUMER_PROTOCOL_HIGHEST_VERSION, decodeCooperativeStickyGeneration, decodeConsumerProtocolAssignment, decodeConsumerProtocolSubscription, encodeConsumerProtocolAssignment, encodeConsumerProtocolSubscription } from "./consumer-protocol.js";
|
|
15
14
|
import { commitOptionsValidator, consumeOptionsValidator, consumerOptionsValidator, defaultConsumerOptions, fetchOptionsValidator, getLagOptionsValidator, groupIdAndOptionsValidator, groupOptionsValidator, listCommitsOptionsValidator, listOffsetsOptionsValidator } from "./options.js";
|
|
16
|
-
import { roundRobinAssigner } from "./partitions-assigners.js";
|
|
15
|
+
import { COOPERATIVE_STICKY_ASSIGNOR, cooperativeStickyAssigner, roundRobinAssigner } from "./partitions-assigners.js";
|
|
17
16
|
import { TopicsMap } from "./topics-map.js";
|
|
18
17
|
import { nextFetchEpoch, partitionKey } from "./utils.js";
|
|
19
18
|
export class Consumer extends Base {
|
|
@@ -170,7 +169,7 @@ export class Consumer extends Base {
|
|
|
170
169
|
return false;
|
|
171
170
|
}
|
|
172
171
|
if (this.#useConsumerGroupProtocol) {
|
|
173
|
-
return !!this.memberId && this.#memberEpoch
|
|
172
|
+
return !!this.memberId && this.#memberEpoch > 0;
|
|
174
173
|
}
|
|
175
174
|
// We consider the group ready if we have a groupId, a memberId and heartbeat interval
|
|
176
175
|
return this.#membershipActive && Boolean(this.groupId) && Boolean(this.memberId) && this.#heartbeatInterval !== null;
|
|
@@ -362,6 +361,13 @@ export class Consumer extends Base {
|
|
|
362
361
|
throw validationError;
|
|
363
362
|
}
|
|
364
363
|
this.#lagMonitoring = setTimeout(() => {
|
|
364
|
+
// Skip this tick while mid-(re)join: listOffsets adds load to a coordinator/cluster that
|
|
365
|
+
// may already be struggling, and any lag figure computed against stale/absent assignments
|
|
366
|
+
// would be meaningless anyway. Just reschedule and try again next tick.
|
|
367
|
+
if (!this.isActive()) {
|
|
368
|
+
this.#lagMonitoring.refresh();
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
365
371
|
this.getLag(options, () => this.#lagMonitoring.refresh());
|
|
366
372
|
}, interval);
|
|
367
373
|
}
|
|
@@ -592,7 +598,36 @@ export class Consumer extends Base {
|
|
|
592
598
|
}
|
|
593
599
|
}
|
|
594
600
|
}
|
|
601
|
+
// Fetch v12 identifies topics by name, while later versions use UUIDs.
|
|
602
|
+
const useTopicNames = api.version <= 12;
|
|
603
|
+
let topicIdsByName;
|
|
604
|
+
if (useTopicNames) {
|
|
605
|
+
// Built here rather than in the response callback so that the fetch loop allocates
|
|
606
|
+
// it once per request instead of once per request and once per response.
|
|
607
|
+
topicIdsByName = new Map();
|
|
608
|
+
for (const [id, name] of topicIds) {
|
|
609
|
+
topicIdsByName.set(name, id);
|
|
610
|
+
}
|
|
611
|
+
requestTopics = requestTopics.map(topic => ({
|
|
612
|
+
...topic,
|
|
613
|
+
topicId: topicIds.get(topic.topicId) ?? topic.topicId
|
|
614
|
+
}));
|
|
615
|
+
for (const forgotten of forgottenTopicsData) {
|
|
616
|
+
const topicId = forgotten.topicId ?? forgotten.topic;
|
|
617
|
+
forgotten.topicId = topicIds.get(topicId) ?? topicId;
|
|
618
|
+
delete forgotten.topic;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
595
621
|
api(connection, options.maxWaitTime ?? this[kOptions].maxWaitTime, options.minBytes ?? this[kOptions].minBytes, options.maxBytes ?? this[kOptions].maxBytes, isolationLevel, sessionId, sessionEpoch, requestTopics, forgottenTopicsData, this.#clientRack, (error, result) => {
|
|
622
|
+
const response = result ?? error?.response;
|
|
623
|
+
if (response && !response.nodeEndpoints) {
|
|
624
|
+
response.nodeEndpoints = [];
|
|
625
|
+
}
|
|
626
|
+
if (useTopicNames && response) {
|
|
627
|
+
for (const topic of response.responses) {
|
|
628
|
+
topic.topicId = topicIdsByName.get(topic.topicId) ?? topic.topicId;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
596
631
|
if (error) {
|
|
597
632
|
refreshMetadata = NetworkError.isRetryable(error);
|
|
598
633
|
this.#clearPreferredReadReplicas(options.topics, topicIds);
|
|
@@ -601,7 +636,14 @@ export class Consumer extends Base {
|
|
|
601
636
|
findErrorBy(error, 'apiId', 'FETCH_SESSION_TOPIC_ID_ERROR')) {
|
|
602
637
|
this.#fetchSessions.delete(node);
|
|
603
638
|
}
|
|
604
|
-
|
|
639
|
+
// NOT_LEADER_OR_FOLLOWER/LEADER_NOT_AVAILABLE mean leadership just moved (broker
|
|
640
|
+
// rebalance/leader election); without a refresh here, kPerformWithRetry repeats
|
|
641
|
+
// the same request against the stale cached leader until retries exhaust.
|
|
642
|
+
// UNKNOWN_TOPIC_OR_PARTITION also carries hasStaleMetadata but is deliberately
|
|
643
|
+
// excluded: broadening this to it breaks deleted-topic handling (see git history).
|
|
644
|
+
if (findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH') ||
|
|
645
|
+
findErrorBy(error, 'apiId', 'NOT_LEADER_OR_FOLLOWER') ||
|
|
646
|
+
findErrorBy(error, 'apiId', 'LEADER_NOT_AVAILABLE')) {
|
|
605
647
|
this.#fetchSessions.delete(node);
|
|
606
648
|
this.clearMetadata();
|
|
607
649
|
for (const topic of options.topics) {
|
|
@@ -681,6 +723,16 @@ export class Consumer extends Base {
|
|
|
681
723
|
});
|
|
682
724
|
return;
|
|
683
725
|
}
|
|
726
|
+
if (!error) {
|
|
727
|
+
for (const { topic, partition, offset } of options.offsets) {
|
|
728
|
+
const key = partitionKey(topic, partition);
|
|
729
|
+
for (const stream of this.#streams) {
|
|
730
|
+
if (stream.offsetsCommitted.has(key)) {
|
|
731
|
+
stream[kUpdateCommittedOffset](topic, partition, offset);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
684
736
|
callback(error);
|
|
685
737
|
});
|
|
686
738
|
}
|
|
@@ -744,7 +796,16 @@ export class Consumer extends Base {
|
|
|
744
796
|
}, concurrentCallback, 0);
|
|
745
797
|
}, (error, responses) => {
|
|
746
798
|
if (error) {
|
|
747
|
-
|
|
799
|
+
// Mirrors the fetch() handling: right after a topic is created or its leadership moves,
|
|
800
|
+
// the cached leader is briefly stale and the broker answers with one of these three
|
|
801
|
+
// errors. Retrying once against fresh metadata clears the race instead of surfacing it.
|
|
802
|
+
// UNKNOWN_TOPIC_OR_PARTITION also carries hasStaleMetadata but is deliberately excluded,
|
|
803
|
+
// same as in fetch(), to avoid masking deleted-topic handling.
|
|
804
|
+
if (!forceUpdateMetadata &&
|
|
805
|
+
(NetworkError.isRetryable(error) ||
|
|
806
|
+
findErrorBy(error, 'apiId', 'FENCED_LEADER_EPOCH') ||
|
|
807
|
+
findErrorBy(error, 'apiId', 'NOT_LEADER_OR_FOLLOWER') ||
|
|
808
|
+
findErrorBy(error, 'apiId', 'LEADER_NOT_AVAILABLE'))) {
|
|
748
809
|
this.clearMetadata();
|
|
749
810
|
this.#listOffsets(withTimestamps, options, callback, true);
|
|
750
811
|
return;
|
|
@@ -805,7 +866,17 @@ export class Consumer extends Base {
|
|
|
805
866
|
memberEpoch: this.#useConsumerGroupProtocol ? this.#memberEpoch : -1,
|
|
806
867
|
topics
|
|
807
868
|
}
|
|
808
|
-
], false,
|
|
869
|
+
], false, (error, response) => {
|
|
870
|
+
if (error || api.version >= 8) {
|
|
871
|
+
groupCallback(error, response);
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
const legacyResponse = response;
|
|
875
|
+
groupCallback(null, {
|
|
876
|
+
throttleTimeMs: legacyResponse.throttleTimeMs,
|
|
877
|
+
groups: [{ groupId: this.groupId, topics: legacyResponse.topics, errorCode: legacyResponse.errorCode }]
|
|
878
|
+
});
|
|
879
|
+
});
|
|
809
880
|
});
|
|
810
881
|
}, (error, response) => {
|
|
811
882
|
if (error) {
|
|
@@ -885,9 +956,7 @@ export class Consumer extends Base {
|
|
|
885
956
|
// - a rejoin that never completes still surfaces as a stall
|
|
886
957
|
this.#resetHeartbeatStall();
|
|
887
958
|
this.#trackHeartbeatStall(options, error, options.rebalanceTimeout + this.#heartbeatStallTimeoutFor(options));
|
|
888
|
-
this
|
|
889
|
-
this.#joinGroup(options, retryCallback);
|
|
890
|
-
}, error => {
|
|
959
|
+
this.#joinGroup(options, error => {
|
|
891
960
|
if (error) {
|
|
892
961
|
this.emitWithDebug(null, 'error', error);
|
|
893
962
|
if (!this.#heartbeatStalled) {
|
|
@@ -903,7 +972,7 @@ export class Consumer extends Base {
|
|
|
903
972
|
this.#resetHeartbeatStall();
|
|
904
973
|
}
|
|
905
974
|
this.emitWithDebug('consumer', 'rejoin');
|
|
906
|
-
}
|
|
975
|
+
});
|
|
907
976
|
return;
|
|
908
977
|
}
|
|
909
978
|
// The error was not group related, so we schedule another heartbeat.
|
|
@@ -1000,7 +1069,12 @@ export class Consumer extends Base {
|
|
|
1000
1069
|
this.assignments = [];
|
|
1001
1070
|
this.#syncPreferredReadReplicas();
|
|
1002
1071
|
this.#memberEpoch = 0;
|
|
1003
|
-
|
|
1072
|
+
// Retry after a delay, not immediately: if many members get fenced around the same
|
|
1073
|
+
// rebalance, resending ConsumerGroupHeartbeat with no delay at all can flood the
|
|
1074
|
+
// coordinator faster than the group can converge.
|
|
1075
|
+
this.#heartbeatInterval = setTimeout(() => {
|
|
1076
|
+
this.#consumerGroupHeartbeat(options, () => { });
|
|
1077
|
+
}, this.#lastHeartbeatIntervalMs || 1000);
|
|
1004
1078
|
callback(error);
|
|
1005
1079
|
return;
|
|
1006
1080
|
}
|
|
@@ -1056,6 +1130,22 @@ export class Consumer extends Base {
|
|
|
1056
1130
|
}
|
|
1057
1131
|
return result;
|
|
1058
1132
|
}
|
|
1133
|
+
#diffGroupAssignments(A, B) {
|
|
1134
|
+
const result = [];
|
|
1135
|
+
for (const a of A) {
|
|
1136
|
+
const b = B.find(assignment => assignment.topic === a.topic);
|
|
1137
|
+
if (!b) {
|
|
1138
|
+
result.push({ topic: a.topic, partitions: [...a.partitions] });
|
|
1139
|
+
}
|
|
1140
|
+
else {
|
|
1141
|
+
const diff = a.partitions.filter(partition => !b.partitions.includes(partition));
|
|
1142
|
+
if (diff.length > 0) {
|
|
1143
|
+
result.push({ topic: a.topic, partitions: diff });
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
return result;
|
|
1148
|
+
}
|
|
1059
1149
|
#revokePartitions(newAssignment) {
|
|
1060
1150
|
const toRevoke = this.#diffAssignments(this.#assignments, newAssignment);
|
|
1061
1151
|
if (toRevoke.length === 0) {
|
|
@@ -1081,6 +1171,14 @@ export class Consumer extends Base {
|
|
|
1081
1171
|
#assignPartitions(newAssignment) {
|
|
1082
1172
|
const toAssign = this.#diffAssignments(newAssignment, this.#assignments);
|
|
1083
1173
|
if (toAssign.length === 0) {
|
|
1174
|
+
// An explicit empty initial assignment confirms an idle member, even though
|
|
1175
|
+
// there are no partitions to add. An omitted assignment must remain unknown.
|
|
1176
|
+
if (this.assignments === null && newAssignment.length === 0) {
|
|
1177
|
+
this.assignments = [];
|
|
1178
|
+
for (const stream of this.#streams) {
|
|
1179
|
+
stream[kRefreshOffsetsAndFetch]();
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1084
1182
|
return;
|
|
1085
1183
|
}
|
|
1086
1184
|
this.#updateAssignments(newAssignment, error => {
|
|
@@ -1159,9 +1257,18 @@ export class Consumer extends Base {
|
|
|
1159
1257
|
});
|
|
1160
1258
|
return;
|
|
1161
1259
|
}
|
|
1260
|
+
const finish = () => {
|
|
1261
|
+
this.emitWithDebug('consumer', 'group:leave', { groupId: this.groupId, memberId: this.memberId });
|
|
1262
|
+
this.memberId = null;
|
|
1263
|
+
this.#memberEpoch = -1;
|
|
1264
|
+
this.#assignments = [];
|
|
1265
|
+
this.assignments = [];
|
|
1266
|
+
this.#syncPreferredReadReplicas();
|
|
1267
|
+
callback(null);
|
|
1268
|
+
};
|
|
1162
1269
|
// Leave by sending a heartbeat with memberEpoch = -1
|
|
1163
1270
|
this.#cancelHeartbeat();
|
|
1164
|
-
|
|
1271
|
+
const operation = (connection, groupCallback) => {
|
|
1165
1272
|
this[kGetApi]('ConsumerGroupHeartbeat', (error, api) => {
|
|
1166
1273
|
if (error) {
|
|
1167
1274
|
groupCallback(error);
|
|
@@ -1175,15 +1282,18 @@ export class Consumer extends Base {
|
|
|
1175
1282
|
this.#groupRemoteAssignor, [], // topicPartitions
|
|
1176
1283
|
groupCallback);
|
|
1177
1284
|
});
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1285
|
+
};
|
|
1286
|
+
if (this[kClosed]) {
|
|
1287
|
+
const connection = this.#getGroupCoordinatorConnection();
|
|
1288
|
+
if (connection) {
|
|
1289
|
+
operation(connection, finish);
|
|
1290
|
+
}
|
|
1291
|
+
else {
|
|
1292
|
+
finish();
|
|
1293
|
+
}
|
|
1294
|
+
return;
|
|
1295
|
+
}
|
|
1296
|
+
this.#performDeduplicateGroupOperaton('leaveGroupConsumerProtocol', operation, finish);
|
|
1187
1297
|
}
|
|
1188
1298
|
#getConsumerGroupHeartbeatMemberId(apiVersion) {
|
|
1189
1299
|
if (this.memberId) {
|
|
@@ -1251,7 +1361,12 @@ export class Consumer extends Base {
|
|
|
1251
1361
|
retryCallback(error);
|
|
1252
1362
|
return;
|
|
1253
1363
|
}
|
|
1254
|
-
api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId],
|
|
1364
|
+
api(connection, FindCoordinatorKeyTypes.GROUP, [this.groupId], (error, response) => {
|
|
1365
|
+
if (response && api.version < 4) {
|
|
1366
|
+
response.coordinators[0].key = this.groupId;
|
|
1367
|
+
}
|
|
1368
|
+
retryCallback(error, response);
|
|
1369
|
+
});
|
|
1255
1370
|
});
|
|
1256
1371
|
});
|
|
1257
1372
|
}, (error, response) => {
|
|
@@ -1266,6 +1381,13 @@ export class Consumer extends Base {
|
|
|
1266
1381
|
}, callback);
|
|
1267
1382
|
}
|
|
1268
1383
|
#performJoinGroup(options, callback) {
|
|
1384
|
+
if (!this.#membershipActive) {
|
|
1385
|
+
callback(null);
|
|
1386
|
+
return;
|
|
1387
|
+
}
|
|
1388
|
+
this.#performJoinGroupAttempt(options, callback, 0, []);
|
|
1389
|
+
}
|
|
1390
|
+
#performJoinGroupAttempt(options, callback, attempt, attemptErrors) {
|
|
1269
1391
|
if (!this.#membershipActive) {
|
|
1270
1392
|
callback(null);
|
|
1271
1393
|
return;
|
|
@@ -1273,7 +1395,7 @@ export class Consumer extends Base {
|
|
|
1273
1395
|
this.#cancelHeartbeat();
|
|
1274
1396
|
this.#createJoinGroupProtocols(options, (error, protocols) => {
|
|
1275
1397
|
if (error) {
|
|
1276
|
-
callback
|
|
1398
|
+
this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
|
|
1277
1399
|
return;
|
|
1278
1400
|
}
|
|
1279
1401
|
this.#performDeduplicateGroupOperaton('joinGroup', (connection, groupCallback) => {
|
|
@@ -1290,11 +1412,7 @@ export class Consumer extends Base {
|
|
|
1290
1412
|
return;
|
|
1291
1413
|
}
|
|
1292
1414
|
if (error) {
|
|
1293
|
-
|
|
1294
|
-
this.#performJoinGroup(options, callback);
|
|
1295
|
-
return;
|
|
1296
|
-
}
|
|
1297
|
-
callback(error);
|
|
1415
|
+
this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
|
|
1298
1416
|
return;
|
|
1299
1417
|
}
|
|
1300
1418
|
// This is for Azure Event Hubs compatibility, which does not respond with an error on the first join
|
|
@@ -1313,31 +1431,120 @@ export class Consumer extends Base {
|
|
|
1313
1431
|
return;
|
|
1314
1432
|
}
|
|
1315
1433
|
if (error) {
|
|
1316
|
-
|
|
1317
|
-
this.#performJoinGroup(options, callback);
|
|
1318
|
-
return;
|
|
1319
|
-
}
|
|
1320
|
-
callback(error);
|
|
1434
|
+
this.#retryJoinGroup(options, callback, attempt, attemptErrors, error);
|
|
1321
1435
|
return;
|
|
1322
1436
|
}
|
|
1323
|
-
this
|
|
1324
|
-
this.#syncPreferredReadReplicas();
|
|
1325
|
-
this.#cancelHeartbeat();
|
|
1326
|
-
this.#heartbeatInterval = setTimeout(() => {
|
|
1327
|
-
this.#heartbeat(options);
|
|
1328
|
-
}, options.heartbeatInterval);
|
|
1329
|
-
this.emitWithDebug('consumer', 'group:join', {
|
|
1330
|
-
groupId: this.groupId,
|
|
1331
|
-
memberId: this.memberId,
|
|
1332
|
-
generationId: this.generationId,
|
|
1333
|
-
isLeader: this.#isLeader,
|
|
1334
|
-
assignments: this.assignments
|
|
1335
|
-
});
|
|
1336
|
-
callback(null, this.memberId);
|
|
1437
|
+
this.#completeClassicSyncGroup(options, response, callback);
|
|
1337
1438
|
});
|
|
1338
1439
|
});
|
|
1339
1440
|
});
|
|
1340
1441
|
}
|
|
1442
|
+
#retryJoinGroup(options, callback, attempt, attemptErrors, error) {
|
|
1443
|
+
const retries = this[kOptions].retries;
|
|
1444
|
+
const memberId = this.memberId;
|
|
1445
|
+
const rejoinError = this.#getRejoinError(error);
|
|
1446
|
+
// MEMBER_ID_REQUIRED is the normal first-join handshake. The broker assigns a member ID and
|
|
1447
|
+
// expects the JoinGroup request to be sent again; this progress must not consume a retry.
|
|
1448
|
+
if (rejoinError?.apiId === 'MEMBER_ID_REQUIRED' && this.memberId !== memberId) {
|
|
1449
|
+
this.#performJoinGroupAttempt(options, callback, attempt, attemptErrors);
|
|
1450
|
+
return;
|
|
1451
|
+
}
|
|
1452
|
+
attemptErrors.push(error);
|
|
1453
|
+
if (!rejoinError) {
|
|
1454
|
+
if (error instanceof MultipleErrors && error.errors.length > 0) {
|
|
1455
|
+
const nestedMessages = error.errors.map(error => error.message).join(' ');
|
|
1456
|
+
callback(new MultipleErrors(`${error.message} ${nestedMessages}`, error.errors));
|
|
1457
|
+
}
|
|
1458
|
+
else {
|
|
1459
|
+
callback(error);
|
|
1460
|
+
}
|
|
1461
|
+
return;
|
|
1462
|
+
}
|
|
1463
|
+
if (attempt >= retries) {
|
|
1464
|
+
callback(attempt > 0 ? new MultipleErrors(`joinGroup failed ${attempt + 1} times.`, attemptErrors) : error);
|
|
1465
|
+
return;
|
|
1466
|
+
}
|
|
1467
|
+
let delay = this[kOptions].retryDelay;
|
|
1468
|
+
if (typeof delay === 'function') {
|
|
1469
|
+
delay = delay(this, 'joinGroup', attempt + 1, retries, error);
|
|
1470
|
+
}
|
|
1471
|
+
function onClose() {
|
|
1472
|
+
clearTimeout(timeout);
|
|
1473
|
+
attemptErrors.push(new UserError('Client closed while retrying joinGroup.'));
|
|
1474
|
+
callback(new MultipleErrors(`joinGroup failed ${attempt + 1} times.`, attemptErrors));
|
|
1475
|
+
}
|
|
1476
|
+
const timeout = setTimeout(() => {
|
|
1477
|
+
this.removeListener('client:close', onClose);
|
|
1478
|
+
this.#performJoinGroupAttempt(options, callback, attempt + 1, attemptErrors);
|
|
1479
|
+
}, delay);
|
|
1480
|
+
this.once('client:close', onClose);
|
|
1481
|
+
}
|
|
1482
|
+
#completeClassicSyncGroup(options, assignments, callback) {
|
|
1483
|
+
if (this.#isCooperativeProtocol()) {
|
|
1484
|
+
const previousAssignments = this.assignments ?? [];
|
|
1485
|
+
const revoked = this.#diffGroupAssignments(previousAssignments, assignments);
|
|
1486
|
+
const addedOnRevokeRound = this.#diffGroupAssignments(assignments, previousAssignments);
|
|
1487
|
+
if (revoked.length > 0) {
|
|
1488
|
+
for (const stream of this.#streams) {
|
|
1489
|
+
stream.pause();
|
|
1490
|
+
}
|
|
1491
|
+
// Snapshot the set: a failing autocommit destroys its stream, which removes it from
|
|
1492
|
+
// #streams while the concurrent callbacks are still iterating.
|
|
1493
|
+
runConcurrentCallbacks('Autocommit before cooperative rebalance failed.', [...this.#streams], (stream, concurrentCallback) => {
|
|
1494
|
+
// A destroyed stream never settles an autocommit, so do not wait on one.
|
|
1495
|
+
if (stream.destroyed || stream.closed) {
|
|
1496
|
+
concurrentCallback(null);
|
|
1497
|
+
return;
|
|
1498
|
+
}
|
|
1499
|
+
stream[kAutocommit](concurrentCallback);
|
|
1500
|
+
}, autocommitError => {
|
|
1501
|
+
// Mirror Kafka's reference client: capture autocommit errors but
|
|
1502
|
+
// continue the rebalance so the group does not get stuck mid-cycle.
|
|
1503
|
+
// Per-stream autocommit errors are already surfaced through the
|
|
1504
|
+
// `autocommit` event on each MessagesStream.
|
|
1505
|
+
if (autocommitError) {
|
|
1506
|
+
this.emitWithDebug('consumer', 'group:autocommit:error', {
|
|
1507
|
+
groupId: this.groupId,
|
|
1508
|
+
error: autocommitError
|
|
1509
|
+
});
|
|
1510
|
+
}
|
|
1511
|
+
this.assignments = assignments;
|
|
1512
|
+
this.#syncPreferredReadReplicas();
|
|
1513
|
+
for (const stream of this.#streams) {
|
|
1514
|
+
stream.resume();
|
|
1515
|
+
}
|
|
1516
|
+
if (addedOnRevokeRound.length > 0) {
|
|
1517
|
+
for (const stream of this.#streams) {
|
|
1518
|
+
stream[kRefreshOffsetsAndFetch]();
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
this.emitWithDebug('consumer', 'group:rebalance', { groupId: this.groupId });
|
|
1522
|
+
this.#performJoinGroup(options, callback);
|
|
1523
|
+
});
|
|
1524
|
+
return;
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
const added = this.#diffGroupAssignments(assignments, this.assignments ?? []);
|
|
1528
|
+
this.assignments = assignments;
|
|
1529
|
+
this.#syncPreferredReadReplicas();
|
|
1530
|
+
this.#cancelHeartbeat();
|
|
1531
|
+
this.#heartbeatInterval = setTimeout(() => {
|
|
1532
|
+
this.#heartbeat(options);
|
|
1533
|
+
}, options.heartbeatInterval);
|
|
1534
|
+
this.emitWithDebug('consumer', 'group:join', {
|
|
1535
|
+
groupId: this.groupId,
|
|
1536
|
+
memberId: this.memberId,
|
|
1537
|
+
generationId: this.generationId,
|
|
1538
|
+
isLeader: this.#isLeader,
|
|
1539
|
+
assignments: this.assignments
|
|
1540
|
+
});
|
|
1541
|
+
if (this.#isCooperativeProtocol() && added.length > 0) {
|
|
1542
|
+
for (const stream of this.#streams) {
|
|
1543
|
+
stream[kRefreshOffsetsAndFetch]();
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
callback(null, this.memberId);
|
|
1547
|
+
}
|
|
1341
1548
|
#performLeaveGroup(force, callback) {
|
|
1342
1549
|
if (!this.memberId) {
|
|
1343
1550
|
callback(null);
|
|
@@ -1366,8 +1573,20 @@ export class Consumer extends Base {
|
|
|
1366
1573
|
});
|
|
1367
1574
|
return;
|
|
1368
1575
|
}
|
|
1576
|
+
const finish = () => {
|
|
1577
|
+
this.emitWithDebug('consumer', 'group:leave', {
|
|
1578
|
+
groupId: this.groupId,
|
|
1579
|
+
memberId: this.memberId,
|
|
1580
|
+
generationId: this.generationId
|
|
1581
|
+
});
|
|
1582
|
+
this.memberId = null;
|
|
1583
|
+
this.generationId = 0;
|
|
1584
|
+
this.assignments = null;
|
|
1585
|
+
this.#syncPreferredReadReplicas();
|
|
1586
|
+
callback(null);
|
|
1587
|
+
};
|
|
1369
1588
|
this.#cancelHeartbeat();
|
|
1370
|
-
|
|
1589
|
+
const operation = (connection, groupCallback) => {
|
|
1371
1590
|
this[kGetApi]('LeaveGroup', (error, api) => {
|
|
1372
1591
|
if (error) {
|
|
1373
1592
|
groupCallback(error);
|
|
@@ -1375,26 +1594,30 @@ export class Consumer extends Base {
|
|
|
1375
1594
|
}
|
|
1376
1595
|
api(connection, this.groupId, [{ memberId: this.memberId }], groupCallback);
|
|
1377
1596
|
});
|
|
1378
|
-
}
|
|
1597
|
+
};
|
|
1598
|
+
const onLeave = (error) => {
|
|
1379
1599
|
if (error) {
|
|
1380
1600
|
const unknownMemberError = findErrorBy(error, 'unknownMemberId', true);
|
|
1601
|
+
const unavailableBrokerWhileClosing = this[kClosed] && NetworkError.isRetryable(error);
|
|
1381
1602
|
// This is to avoid throwing an error if a group join was cancelled.
|
|
1382
|
-
if (!unknownMemberError) {
|
|
1603
|
+
if (!unknownMemberError && !unavailableBrokerWhileClosing) {
|
|
1383
1604
|
callback(error);
|
|
1384
1605
|
return;
|
|
1385
1606
|
}
|
|
1386
1607
|
}
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1608
|
+
finish();
|
|
1609
|
+
};
|
|
1610
|
+
if (this[kClosed]) {
|
|
1611
|
+
const connection = this.#getGroupCoordinatorConnection();
|
|
1612
|
+
if (connection) {
|
|
1613
|
+
operation(connection, onLeave);
|
|
1614
|
+
}
|
|
1615
|
+
else {
|
|
1616
|
+
finish();
|
|
1617
|
+
}
|
|
1618
|
+
return;
|
|
1619
|
+
}
|
|
1620
|
+
this.#performDeduplicateGroupOperaton('leaveGroup', operation, onLeave);
|
|
1398
1621
|
}
|
|
1399
1622
|
#performSyncGroup(partitionsAssigner, assignments, callback) {
|
|
1400
1623
|
if (!this.#membershipActive) {
|
|
@@ -1485,7 +1708,7 @@ export class Consumer extends Base {
|
|
|
1485
1708
|
});
|
|
1486
1709
|
}, (error, result) => {
|
|
1487
1710
|
callback(this.#handleError(error), result);
|
|
1488
|
-
});
|
|
1711
|
+
}, 0, [], () => this[kClosed]);
|
|
1489
1712
|
}
|
|
1490
1713
|
#validateGroupOptions(options, validator) {
|
|
1491
1714
|
validator ??= groupOptionsValidator;
|
|
@@ -1554,19 +1777,37 @@ export class Consumer extends Base {
|
|
|
1554
1777
|
https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/ConsumerProtocolSubscription.json
|
|
1555
1778
|
*/
|
|
1556
1779
|
#encodeProtocolSubscriptionMetadata(metadata, topics) {
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
.
|
|
1780
|
+
const cooperative = metadata.name === COOPERATIVE_STICKY_ASSIGNOR;
|
|
1781
|
+
const ownedPartitions = cooperative ? this.#ownedPartitionsForSubscription(topics) : [];
|
|
1782
|
+
let userData = typeof metadata.metadata === 'string' ? Buffer.from(metadata.metadata) : metadata.metadata;
|
|
1783
|
+
if (cooperative && !userData && metadata.version < 2) {
|
|
1784
|
+
userData = Writer.create()
|
|
1785
|
+
.appendInt32(this.memberId && ownedPartitions.length > 0 ? this.generationId : -1)
|
|
1786
|
+
.buffer;
|
|
1787
|
+
}
|
|
1788
|
+
return encodeConsumerProtocolSubscription({
|
|
1789
|
+
version: metadata.version,
|
|
1790
|
+
topics,
|
|
1791
|
+
userData,
|
|
1792
|
+
ownedPartitions,
|
|
1793
|
+
generationId: cooperative && this.memberId && ownedPartitions.length > 0 ? this.generationId : -1,
|
|
1794
|
+
rackId: cooperative ? this.#clientRack || null : null
|
|
1795
|
+
});
|
|
1562
1796
|
}
|
|
1563
1797
|
#decodeProtocolSubscriptionMetadata(memberId, buffer) {
|
|
1564
|
-
const
|
|
1798
|
+
const subscription = decodeConsumerProtocolSubscription(buffer);
|
|
1799
|
+
const cooperative = this.#protocol === COOPERATIVE_STICKY_ASSIGNOR;
|
|
1800
|
+
const generationId = cooperative && subscription.version < 2
|
|
1801
|
+
? decodeCooperativeStickyGeneration(subscription.userData)
|
|
1802
|
+
: subscription.generationId;
|
|
1565
1803
|
return {
|
|
1566
1804
|
memberId,
|
|
1567
|
-
version:
|
|
1568
|
-
topics:
|
|
1569
|
-
metadata:
|
|
1805
|
+
version: subscription.version,
|
|
1806
|
+
topics: subscription.topics,
|
|
1807
|
+
metadata: subscription.userData,
|
|
1808
|
+
ownedPartitions: subscription.ownedPartitions,
|
|
1809
|
+
generationId,
|
|
1810
|
+
rackId: subscription.rackId
|
|
1570
1811
|
};
|
|
1571
1812
|
}
|
|
1572
1813
|
/*
|
|
@@ -1574,27 +1815,14 @@ export class Consumer extends Base {
|
|
|
1574
1815
|
https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/ConsumerProtocolAssignment.json
|
|
1575
1816
|
*/
|
|
1576
1817
|
#encodeProtocolAssignment(assignments) {
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
.
|
|
1581
|
-
|
|
1582
|
-
}, false, false);
|
|
1583
|
-
writer.appendBytes(userData ?? null, false);
|
|
1584
|
-
return writer.buffer;
|
|
1818
|
+
return encodeConsumerProtocolAssignment({
|
|
1819
|
+
version: this.#isCooperativeProtocol() ? CONSUMER_PROTOCOL_HIGHEST_VERSION : 0,
|
|
1820
|
+
assignedPartitions: assignments,
|
|
1821
|
+
userData: this[kOptions].assignmentUserData ?? null
|
|
1822
|
+
});
|
|
1585
1823
|
}
|
|
1586
1824
|
#decodeProtocolAssignment(buffer) {
|
|
1587
|
-
|
|
1588
|
-
reader.skip(2); // Ignore Version information
|
|
1589
|
-
if (reader.remaining < INT32_SIZE) {
|
|
1590
|
-
return [];
|
|
1591
|
-
}
|
|
1592
|
-
return reader.readArray(r => {
|
|
1593
|
-
return {
|
|
1594
|
-
topic: r.readString(false),
|
|
1595
|
-
partitions: r.readArray(r => r.readInt32(), false, false)
|
|
1596
|
-
};
|
|
1597
|
-
}, false, false);
|
|
1825
|
+
return decodeConsumerProtocolAssignment(buffer).assignedPartitions;
|
|
1598
1826
|
}
|
|
1599
1827
|
#createAssignments(partitionsAssigner, metadata) {
|
|
1600
1828
|
const partitionTracker = new Map();
|
|
@@ -1617,7 +1845,7 @@ export class Consumer extends Base {
|
|
|
1617
1845
|
return [{ memberId: this.memberId, assignment: this.#encodeProtocolAssignment(assignments) }];
|
|
1618
1846
|
}
|
|
1619
1847
|
const encodedAssignments = [];
|
|
1620
|
-
partitionsAssigner ??= this
|
|
1848
|
+
partitionsAssigner ??= this.#defaultPartitionsAssigner();
|
|
1621
1849
|
for (const member of partitionsAssigner(this.memberId, this.#members, new Set(this.topics.current), metadata)) {
|
|
1622
1850
|
encodedAssignments.push({
|
|
1623
1851
|
memberId: member.memberId,
|
|
@@ -1626,24 +1854,50 @@ export class Consumer extends Base {
|
|
|
1626
1854
|
}
|
|
1627
1855
|
return encodedAssignments;
|
|
1628
1856
|
}
|
|
1857
|
+
#defaultPartitionsAssigner() {
|
|
1858
|
+
const configuredAssigner = this[kOptions].partitionAssigner;
|
|
1859
|
+
if (configuredAssigner) {
|
|
1860
|
+
return configuredAssigner;
|
|
1861
|
+
}
|
|
1862
|
+
if (this.#isCooperativeProtocol()) {
|
|
1863
|
+
return cooperativeStickyAssigner;
|
|
1864
|
+
}
|
|
1865
|
+
return roundRobinAssigner;
|
|
1866
|
+
}
|
|
1867
|
+
#isCooperativeProtocol() {
|
|
1868
|
+
return this.#protocol === COOPERATIVE_STICKY_ASSIGNOR;
|
|
1869
|
+
}
|
|
1870
|
+
#ownedPartitionsForSubscription(topics) {
|
|
1871
|
+
if (!this.assignments) {
|
|
1872
|
+
return [];
|
|
1873
|
+
}
|
|
1874
|
+
const currentTopics = new Set(topics);
|
|
1875
|
+
return this.assignments
|
|
1876
|
+
.filter(assignment => currentTopics.has(assignment.topic))
|
|
1877
|
+
.map(assignment => ({ topic: assignment.topic, partitions: [...assignment.partitions] }));
|
|
1878
|
+
}
|
|
1629
1879
|
#filterUncommittedMessages(response) {
|
|
1630
1880
|
for (const topic of response.responses) {
|
|
1631
1881
|
for (const partition of topic.partitions) {
|
|
1632
1882
|
if (!partition.records) {
|
|
1633
1883
|
continue;
|
|
1634
1884
|
}
|
|
1635
|
-
|
|
1885
|
+
const abortedTransactions = partition.abortedTransactions ?? [];
|
|
1886
|
+
if (abortedTransactions.length) {
|
|
1636
1887
|
const abortedRanges = new Map();
|
|
1637
1888
|
// Find first offsets
|
|
1638
1889
|
// For last offsets we set -1n as special value. It allows us to detect open ranges, whichs means
|
|
1639
1890
|
// that Kafka has not sent the control marker. In that case we ignore the range for safety.
|
|
1640
|
-
for (const aborted of
|
|
1891
|
+
for (const aborted of abortedTransactions) {
|
|
1641
1892
|
abortedRanges.set(aborted.producerId, [aborted.firstOffset, -1n]);
|
|
1642
1893
|
}
|
|
1643
1894
|
// Now find last offsets
|
|
1644
1895
|
for (const batch of partition.records) {
|
|
1645
1896
|
if (batch.attributes & IS_CONTROL && batch.records[0].key?.readInt16BE(2) === 0) {
|
|
1646
|
-
abortedRanges.get(batch.producerId)
|
|
1897
|
+
const abortedRange = abortedRanges.get(batch.producerId);
|
|
1898
|
+
if (abortedRange) {
|
|
1899
|
+
abortedRange[1] = batch.firstOffset;
|
|
1900
|
+
}
|
|
1647
1901
|
}
|
|
1648
1902
|
}
|
|
1649
1903
|
// Filter all records in the aborted ranges
|
|
@@ -1665,7 +1919,14 @@ export class Consumer extends Base {
|
|
|
1665
1919
|
if (protocolError.rebalanceInProgress) {
|
|
1666
1920
|
this.emitWithDebug('consumer', 'group:rebalance', { groupId: this.groupId });
|
|
1667
1921
|
}
|
|
1668
|
-
|
|
1922
|
+
// A cooperative member which lost its membership or generation no longer owns anything:
|
|
1923
|
+
// clear the assignments so the next JoinGroup advertises an empty ownedPartitions set
|
|
1924
|
+
// instead of re-claiming partitions the group has already reassigned elsewhere.
|
|
1925
|
+
if (this.#isCooperativeProtocol() && ['UNKNOWN_MEMBER_ID', 'ILLEGAL_GENERATION'].includes(protocolError.apiId)) {
|
|
1926
|
+
this.assignments = [];
|
|
1927
|
+
this.#syncPreferredReadReplicas();
|
|
1928
|
+
}
|
|
1929
|
+
if (protocolError.unknownMemberId || protocolError.fencedInstanceId) {
|
|
1669
1930
|
this.memberId = null;
|
|
1670
1931
|
}
|
|
1671
1932
|
else if (protocolError.memberId && !this.memberId) {
|
|
@@ -1755,4 +2016,12 @@ export class Consumer extends Base {
|
|
|
1755
2016
|
}
|
|
1756
2017
|
return error;
|
|
1757
2018
|
}
|
|
2019
|
+
#getGroupCoordinatorConnection() {
|
|
2020
|
+
if (this.#coordinatorId === null) {
|
|
2021
|
+
return null;
|
|
2022
|
+
}
|
|
2023
|
+
const broker = this.currentMetadata?.brokers.get(this.#coordinatorId);
|
|
2024
|
+
const connection = broker ? this[kConnections].getEstablishedConnection(broker) : undefined;
|
|
2025
|
+
return connection?.isConnected() === true ? connection : null;
|
|
2026
|
+
}
|
|
1758
2027
|
}
|