@ohos-ports/confluentinc-kafka-javascript 1.10.0-beta.1
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/CHANGELOG.md +457 -0
- package/LICENSE.kafkajs +31 -0
- package/LICENSE.node-rdkafka +25 -0
- package/LICENSE.txt +20 -0
- package/README.md +133 -0
- package/binding.gyp +184 -0
- package/build/Release/confluent-kafka-javascript.node +0 -0
- package/build/deps/librdkafka++.so.1 +0 -0
- package/build/deps/librdkafka.Makefile +6 -0
- package/build/deps/librdkafka.so.1 +0 -0
- package/build/deps/librdkafka.target.mk +55 -0
- package/deps/librdkafka/.clang-format +136 -0
- package/deps/librdkafka/.clang-format-cpp +103 -0
- package/deps/librdkafka/.dir-locals.el +10 -0
- package/deps/librdkafka/.formatignore +35 -0
- package/deps/librdkafka/.gdbmacros +19 -0
- package/deps/librdkafka/CHANGELOG.md +2477 -0
- package/deps/librdkafka/CMakeLists.txt +291 -0
- package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
- package/deps/librdkafka/CONFIGURATION.md +212 -0
- package/deps/librdkafka/CONTRIBUTING.md +431 -0
- package/deps/librdkafka/Doxyfile +2375 -0
- package/deps/librdkafka/INTRODUCTION.md +2752 -0
- package/deps/librdkafka/LICENSE +26 -0
- package/deps/librdkafka/LICENSE.cjson +22 -0
- package/deps/librdkafka/LICENSE.crc32c +28 -0
- package/deps/librdkafka/LICENSE.fnv1a +18 -0
- package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
- package/deps/librdkafka/LICENSE.lz4 +26 -0
- package/deps/librdkafka/LICENSE.murmur2 +25 -0
- package/deps/librdkafka/LICENSE.nanopb +22 -0
- package/deps/librdkafka/LICENSE.opentelemetry +203 -0
- package/deps/librdkafka/LICENSE.pycrc +23 -0
- package/deps/librdkafka/LICENSE.queue +31 -0
- package/deps/librdkafka/LICENSE.regexp +5 -0
- package/deps/librdkafka/LICENSE.snappy +36 -0
- package/deps/librdkafka/LICENSE.tinycthread +26 -0
- package/deps/librdkafka/LICENSE.wingetopt +49 -0
- package/deps/librdkafka/LICENSES.txt +625 -0
- package/deps/librdkafka/Makefile +125 -0
- package/deps/librdkafka/README.md +201 -0
- package/deps/librdkafka/README.win32 +26 -0
- package/deps/librdkafka/STATISTICS.md +624 -0
- package/deps/librdkafka/configure +214 -0
- package/deps/librdkafka/configure.self +341 -0
- package/deps/librdkafka/dev-conf.sh +123 -0
- package/deps/librdkafka/lds-gen.py +73 -0
- package/deps/librdkafka/mainpage.doxy +40 -0
- package/deps/librdkafka/mklove/Makefile.base +329 -0
- package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
- package/deps/librdkafka/mklove/modules/configure.base +2484 -0
- package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
- package/deps/librdkafka/mklove/modules/configure.cc +186 -0
- package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
- package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
- package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
- package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
- package/deps/librdkafka/mklove/modules/configure.host +132 -0
- package/deps/librdkafka/mklove/modules/configure.lib +49 -0
- package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
- package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
- package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
- package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
- package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
- package/deps/librdkafka/mklove/modules/configure.pic +16 -0
- package/deps/librdkafka/mklove/modules/configure.socket +20 -0
- package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
- package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
- package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
- package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
- package/deps/librdkafka/service.yml +182 -0
- package/deps/librdkafka/src/CMakeLists.txt +379 -0
- package/deps/librdkafka/src/Makefile +105 -0
- package/deps/librdkafka/src/README.lz4.md +30 -0
- package/deps/librdkafka/src/cJSON.c +3191 -0
- package/deps/librdkafka/src/cJSON.h +306 -0
- package/deps/librdkafka/src/crc32c.c +430 -0
- package/deps/librdkafka/src/crc32c.h +38 -0
- package/deps/librdkafka/src/generate_proto.sh +66 -0
- package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
- package/deps/librdkafka/src/lz4.c +2727 -0
- package/deps/librdkafka/src/lz4.h +842 -0
- package/deps/librdkafka/src/lz4frame.c +2078 -0
- package/deps/librdkafka/src/lz4frame.h +692 -0
- package/deps/librdkafka/src/lz4frame_static.h +47 -0
- package/deps/librdkafka/src/lz4hc.c +1631 -0
- package/deps/librdkafka/src/lz4hc.h +413 -0
- package/deps/librdkafka/src/nanopb/pb.h +917 -0
- package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
- package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
- package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
- package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
- package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
- package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
- package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
- package/deps/librdkafka/src/queue.h +850 -0
- package/deps/librdkafka/src/rd.h +592 -0
- package/deps/librdkafka/src/rdaddr.c +255 -0
- package/deps/librdkafka/src/rdaddr.h +202 -0
- package/deps/librdkafka/src/rdatomic.h +262 -0
- package/deps/librdkafka/src/rdavg.h +260 -0
- package/deps/librdkafka/src/rdavl.c +210 -0
- package/deps/librdkafka/src/rdavl.h +250 -0
- package/deps/librdkafka/src/rdbase64.c +200 -0
- package/deps/librdkafka/src/rdbase64.h +43 -0
- package/deps/librdkafka/src/rdbuf.c +1884 -0
- package/deps/librdkafka/src/rdbuf.h +375 -0
- package/deps/librdkafka/src/rdcrc32.c +114 -0
- package/deps/librdkafka/src/rdcrc32.h +170 -0
- package/deps/librdkafka/src/rddl.c +179 -0
- package/deps/librdkafka/src/rddl.h +43 -0
- package/deps/librdkafka/src/rdendian.h +175 -0
- package/deps/librdkafka/src/rdfloat.h +67 -0
- package/deps/librdkafka/src/rdfnv1a.c +113 -0
- package/deps/librdkafka/src/rdfnv1a.h +35 -0
- package/deps/librdkafka/src/rdgz.c +120 -0
- package/deps/librdkafka/src/rdgz.h +46 -0
- package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
- package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
- package/deps/librdkafka/src/rdhttp.c +831 -0
- package/deps/librdkafka/src/rdhttp.h +101 -0
- package/deps/librdkafka/src/rdinterval.h +177 -0
- package/deps/librdkafka/src/rdkafka.c +7287 -0
- package/deps/librdkafka/src/rdkafka.h +11795 -0
- package/deps/librdkafka/src/rdkafka_admin.c +10165 -0
- package/deps/librdkafka/src/rdkafka_admin.h +658 -0
- package/deps/librdkafka/src/rdkafka_assignment.c +1282 -0
- package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
- package/deps/librdkafka/src/rdkafka_assignor.c +1800 -0
- package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
- package/deps/librdkafka/src/rdkafka_aux.c +409 -0
- package/deps/librdkafka/src/rdkafka_aux.h +174 -0
- package/deps/librdkafka/src/rdkafka_background.c +222 -0
- package/deps/librdkafka/src/rdkafka_broker.c +6736 -0
- package/deps/librdkafka/src/rdkafka_broker.h +851 -0
- package/deps/librdkafka/src/rdkafka_buf.c +543 -0
- package/deps/librdkafka/src/rdkafka_buf.h +1525 -0
- package/deps/librdkafka/src/rdkafka_cert.c +576 -0
- package/deps/librdkafka/src/rdkafka_cert.h +62 -0
- package/deps/librdkafka/src/rdkafka_cgrp.c +8310 -0
- package/deps/librdkafka/src/rdkafka_cgrp.h +589 -0
- package/deps/librdkafka/src/rdkafka_conf.c +5177 -0
- package/deps/librdkafka/src/rdkafka_conf.h +746 -0
- package/deps/librdkafka/src/rdkafka_confval.h +97 -0
- package/deps/librdkafka/src/rdkafka_coord.c +623 -0
- package/deps/librdkafka/src/rdkafka_coord.h +132 -0
- package/deps/librdkafka/src/rdkafka_error.c +228 -0
- package/deps/librdkafka/src/rdkafka_error.h +80 -0
- package/deps/librdkafka/src/rdkafka_event.c +502 -0
- package/deps/librdkafka/src/rdkafka_event.h +126 -0
- package/deps/librdkafka/src/rdkafka_feature.c +898 -0
- package/deps/librdkafka/src/rdkafka_feature.h +104 -0
- package/deps/librdkafka/src/rdkafka_fetcher.c +3820 -0
- package/deps/librdkafka/src/rdkafka_fetcher.h +62 -0
- package/deps/librdkafka/src/rdkafka_header.c +220 -0
- package/deps/librdkafka/src/rdkafka_header.h +76 -0
- package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
- package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
- package/deps/librdkafka/src/rdkafka_int.h +1505 -0
- package/deps/librdkafka/src/rdkafka_interceptor.c +842 -0
- package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
- package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
- package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
- package/deps/librdkafka/src/rdkafka_metadata.c +2347 -0
- package/deps/librdkafka/src/rdkafka_metadata.h +350 -0
- package/deps/librdkafka/src/rdkafka_metadata_cache.c +1183 -0
- package/deps/librdkafka/src/rdkafka_mock.c +4514 -0
- package/deps/librdkafka/src/rdkafka_mock.h +867 -0
- package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1877 -0
- package/deps/librdkafka/src/rdkafka_mock_handlers.c +5255 -0
- package/deps/librdkafka/src/rdkafka_mock_int.h +1005 -0
- package/deps/librdkafka/src/rdkafka_mock_sharegrp.c +1207 -0
- package/deps/librdkafka/src/rdkafka_msg.c +2619 -0
- package/deps/librdkafka/src/rdkafka_msg.h +629 -0
- package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
- package/deps/librdkafka/src/rdkafka_msgset.h +105 -0
- package/deps/librdkafka/src/rdkafka_msgset_reader.c +2099 -0
- package/deps/librdkafka/src/rdkafka_msgset_writer.c +1474 -0
- package/deps/librdkafka/src/rdkafka_offset.c +1565 -0
- package/deps/librdkafka/src/rdkafka_offset.h +150 -0
- package/deps/librdkafka/src/rdkafka_op.c +1219 -0
- package/deps/librdkafka/src/rdkafka_op.h +1065 -0
- package/deps/librdkafka/src/rdkafka_partition.c +5109 -0
- package/deps/librdkafka/src/rdkafka_partition.h +1215 -0
- package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
- package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
- package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
- package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
- package/deps/librdkafka/src/rdkafka_proto.h +739 -0
- package/deps/librdkafka/src/rdkafka_protocol.h +131 -0
- package/deps/librdkafka/src/rdkafka_queue.c +1351 -0
- package/deps/librdkafka/src/rdkafka_queue.h +1235 -0
- package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
- package/deps/librdkafka/src/rdkafka_request.c +7298 -0
- package/deps/librdkafka/src/rdkafka_request.h +761 -0
- package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
- package/deps/librdkafka/src/rdkafka_sasl.c +589 -0
- package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
- package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
- package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1833 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1827 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
- package/deps/librdkafka/src/rdkafka_sasl_scram.c +858 -0
- package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
- package/deps/librdkafka/src/rdkafka_share_acknowledgement.c +1445 -0
- package/deps/librdkafka/src/rdkafka_share_acknowledgement.h +373 -0
- package/deps/librdkafka/src/rdkafka_ssl.c +2235 -0
- package/deps/librdkafka/src/rdkafka_ssl.h +86 -0
- package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4785 -0
- package/deps/librdkafka/src/rdkafka_subscription.c +411 -0
- package/deps/librdkafka/src/rdkafka_telemetry.c +761 -0
- package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1307 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.c +1309 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.h +459 -0
- package/deps/librdkafka/src/rdkafka_timer.c +407 -0
- package/deps/librdkafka/src/rdkafka_timer.h +117 -0
- package/deps/librdkafka/src/rdkafka_topic.c +2382 -0
- package/deps/librdkafka/src/rdkafka_topic.h +369 -0
- package/deps/librdkafka/src/rdkafka_transport.c +1309 -0
- package/deps/librdkafka/src/rdkafka_transport.h +99 -0
- package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.c +3256 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
- package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
- package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
- package/deps/librdkafka/src/rdlist.c +593 -0
- package/deps/librdkafka/src/rdlist.h +444 -0
- package/deps/librdkafka/src/rdlog.c +89 -0
- package/deps/librdkafka/src/rdlog.h +41 -0
- package/deps/librdkafka/src/rdmap.c +508 -0
- package/deps/librdkafka/src/rdmap.h +492 -0
- package/deps/librdkafka/src/rdmurmur2.c +167 -0
- package/deps/librdkafka/src/rdmurmur2.h +35 -0
- package/deps/librdkafka/src/rdports.c +61 -0
- package/deps/librdkafka/src/rdports.h +38 -0
- package/deps/librdkafka/src/rdposix.h +250 -0
- package/deps/librdkafka/src/rdrand.c +151 -0
- package/deps/librdkafka/src/rdrand.h +72 -0
- package/deps/librdkafka/src/rdregex.c +156 -0
- package/deps/librdkafka/src/rdregex.h +43 -0
- package/deps/librdkafka/src/rdsignal.h +57 -0
- package/deps/librdkafka/src/rdstring.c +645 -0
- package/deps/librdkafka/src/rdstring.h +98 -0
- package/deps/librdkafka/src/rdsysqueue.h +404 -0
- package/deps/librdkafka/src/rdtime.h +356 -0
- package/deps/librdkafka/src/rdtypes.h +86 -0
- package/deps/librdkafka/src/rdunittest.c +564 -0
- package/deps/librdkafka/src/rdunittest.h +232 -0
- package/deps/librdkafka/src/rdunittest_acknowledge.c +1177 -0
- package/deps/librdkafka/src/rdunittest_fetcher.c +1211 -0
- package/deps/librdkafka/src/rdunittest_msgset_errors.c +1521 -0
- package/deps/librdkafka/src/rdvarint.c +134 -0
- package/deps/librdkafka/src/rdvarint.h +165 -0
- package/deps/librdkafka/src/rdwin32.h +382 -0
- package/deps/librdkafka/src/rdxxhash.c +1030 -0
- package/deps/librdkafka/src/rdxxhash.h +328 -0
- package/deps/librdkafka/src/regexp.c +1352 -0
- package/deps/librdkafka/src/regexp.h +41 -0
- package/deps/librdkafka/src/snappy.c +1866 -0
- package/deps/librdkafka/src/snappy.h +62 -0
- package/deps/librdkafka/src/snappy_compat.h +138 -0
- package/deps/librdkafka/src/statistics_schema.json +444 -0
- package/deps/librdkafka/src/tinycthread.c +932 -0
- package/deps/librdkafka/src/tinycthread.h +503 -0
- package/deps/librdkafka/src/tinycthread_extra.c +210 -0
- package/deps/librdkafka/src/tinycthread_extra.h +218 -0
- package/deps/librdkafka/src/win32_config.h +58 -0
- package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
- package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
- package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
- package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
- package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
- package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
- package/deps/librdkafka/src-cpp/Makefile +55 -0
- package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
- package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
- package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
- package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
- package/deps/librdkafka/src-cpp/README.md +16 -0
- package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
- package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
- package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp.h +3797 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
- package/deps/librdkafka/tests/0000-unittests.c +72 -0
- package/deps/librdkafka/tests/0001-multiobj.c +102 -0
- package/deps/librdkafka/tests/0002-unkpart.c +244 -0
- package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
- package/deps/librdkafka/tests/0004-conf.c +934 -0
- package/deps/librdkafka/tests/0005-order.c +133 -0
- package/deps/librdkafka/tests/0006-symbols.c +163 -0
- package/deps/librdkafka/tests/0007-autotopic.c +136 -0
- package/deps/librdkafka/tests/0008-reqacks.c +179 -0
- package/deps/librdkafka/tests/0009-mock_cluster.c +272 -0
- package/deps/librdkafka/tests/0011-produce_batch.c +753 -0
- package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
- package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
- package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
- package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
- package/deps/librdkafka/tests/0016-client_swname.c +181 -0
- package/deps/librdkafka/tests/0017-compression.c +140 -0
- package/deps/librdkafka/tests/0018-cgrp_term.c +444 -0
- package/deps/librdkafka/tests/0019-list_groups.c +289 -0
- package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
- package/deps/librdkafka/tests/0021-rkt_destroy.c +72 -0
- package/deps/librdkafka/tests/0022-consume_batch.c +331 -0
- package/deps/librdkafka/tests/0025-timers.c +147 -0
- package/deps/librdkafka/tests/0026-consume_pause.c +547 -0
- package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
- package/deps/librdkafka/tests/0029-assign_offset.c +202 -0
- package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
- package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
- package/deps/librdkafka/tests/0033-regex_subscribe.c +536 -0
- package/deps/librdkafka/tests/0034-offset_reset.c +398 -0
- package/deps/librdkafka/tests/0035-api_version.c +73 -0
- package/deps/librdkafka/tests/0036-partial_fetch.c +87 -0
- package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
- package/deps/librdkafka/tests/0038-performance.c +121 -0
- package/deps/librdkafka/tests/0039-event.c +284 -0
- package/deps/librdkafka/tests/0040-io_event.c +257 -0
- package/deps/librdkafka/tests/0041-fetch_max_bytes.c +97 -0
- package/deps/librdkafka/tests/0042-many_topics.c +252 -0
- package/deps/librdkafka/tests/0043-no_connection.c +77 -0
- package/deps/librdkafka/tests/0044-partition_cnt.c +94 -0
- package/deps/librdkafka/tests/0045-subscribe_update.c +1010 -0
- package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
- package/deps/librdkafka/tests/0047-partial_buf_tmout.c +98 -0
- package/deps/librdkafka/tests/0048-partitioner.c +283 -0
- package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
- package/deps/librdkafka/tests/0050-subscribe_adds.c +145 -0
- package/deps/librdkafka/tests/0051-assign_adds.c +126 -0
- package/deps/librdkafka/tests/0052-msg_timestamps.c +238 -0
- package/deps/librdkafka/tests/0053-stats_cb.cpp +527 -0
- package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
- package/deps/librdkafka/tests/0055-producer_latency.c +539 -0
- package/deps/librdkafka/tests/0056-balanced_group_mt.c +315 -0
- package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
- package/deps/librdkafka/tests/0058-log.cpp +123 -0
- package/deps/librdkafka/tests/0059-bsearch.cpp +241 -0
- package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
- package/deps/librdkafka/tests/0061-consumer_lag.cpp +295 -0
- package/deps/librdkafka/tests/0062-stats_event.c +126 -0
- package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
- package/deps/librdkafka/tests/0064-interceptors.c +529 -0
- package/deps/librdkafka/tests/0065-yield.cpp +140 -0
- package/deps/librdkafka/tests/0066-plugins.cpp +143 -0
- package/deps/librdkafka/tests/0067-empty_topic.cpp +151 -0
- package/deps/librdkafka/tests/0068-produce_timeout.c +136 -0
- package/deps/librdkafka/tests/0069-consumer_add_parts.c +119 -0
- package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
- package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
- package/deps/librdkafka/tests/0073-headers.c +381 -0
- package/deps/librdkafka/tests/0074-producev.c +87 -0
- package/deps/librdkafka/tests/0075-retry.c +290 -0
- package/deps/librdkafka/tests/0076-produce_retry.c +452 -0
- package/deps/librdkafka/tests/0077-compaction.c +366 -0
- package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
- package/deps/librdkafka/tests/0079-fork.c +93 -0
- package/deps/librdkafka/tests/0080-admin_ut.c +3095 -0
- package/deps/librdkafka/tests/0081-admin.c +5633 -0
- package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +137 -0
- package/deps/librdkafka/tests/0083-cb_event.c +233 -0
- package/deps/librdkafka/tests/0084-destroy_flags.c +208 -0
- package/deps/librdkafka/tests/0085-headers.cpp +392 -0
- package/deps/librdkafka/tests/0086-purge.c +368 -0
- package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
- package/deps/librdkafka/tests/0089-max_poll_interval.c +511 -0
- package/deps/librdkafka/tests/0090-idempotence.c +171 -0
- package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +295 -0
- package/deps/librdkafka/tests/0092-mixed_msgver.c +103 -0
- package/deps/librdkafka/tests/0093-holb.c +200 -0
- package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +231 -0
- package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
- package/deps/librdkafka/tests/0097-ssl_verify.cpp +674 -0
- package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
- package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
- package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
- package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
- package/deps/librdkafka/tests/0102-static_group_rebalance.c +836 -0
- package/deps/librdkafka/tests/0103-transactions.c +1383 -0
- package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +625 -0
- package/deps/librdkafka/tests/0105-transactions_mock.c +3930 -0
- package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +318 -0
- package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
- package/deps/librdkafka/tests/0109-auto_create_topics.cpp +278 -0
- package/deps/librdkafka/tests/0110-batch_size.cpp +182 -0
- package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
- package/deps/librdkafka/tests/0112-assign_unknown_part.c +87 -0
- package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3473 -0
- package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
- package/deps/librdkafka/tests/0115-producer_auth.cpp +182 -0
- package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +216 -0
- package/deps/librdkafka/tests/0117-mock_errors.c +331 -0
- package/deps/librdkafka/tests/0118-commit_rebalance.c +154 -0
- package/deps/librdkafka/tests/0119-consumer_auth.cpp +167 -0
- package/deps/librdkafka/tests/0120-asymmetric_subscription.c +185 -0
- package/deps/librdkafka/tests/0121-clusterid.c +115 -0
- package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
- package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
- package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
- package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
- package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +1164 -0
- package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
- package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +217 -0
- package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +79 -0
- package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
- package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
- package/deps/librdkafka/tests/0132-strategy_ordering.c +179 -0
- package/deps/librdkafka/tests/0133-ssl_keys.c +150 -0
- package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
- package/deps/librdkafka/tests/0135-sasl_credentials.cpp +279 -0
- package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
- package/deps/librdkafka/tests/0137-barrier_batch_consume.c +752 -0
- package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
- package/deps/librdkafka/tests/0139-offset_validation_mock.c +950 -0
- package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
- package/deps/librdkafka/tests/0142-reauthentication.c +931 -0
- package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +552 -0
- package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
- package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
- package/deps/librdkafka/tests/0146-metadata_mock.c +505 -0
- package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +1210 -0
- package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +569 -0
- package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
- package/deps/librdkafka/tests/0150-telemetry_mock.c +651 -0
- package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
- package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
- package/deps/librdkafka/tests/0153-memberid.c +128 -0
- package/deps/librdkafka/tests/0155-share_group_heartbeat_mock.c +2695 -0
- package/deps/librdkafka/tests/0156-share_consumer_fetch_mock.c +1551 -0
- package/deps/librdkafka/tests/0157-share_consumer_ack_mock.c +1788 -0
- package/deps/librdkafka/tests/0158-share_consumer_transactions_mock.c +467 -0
- package/deps/librdkafka/tests/0170-share_consumer_subscription.c +2192 -0
- package/deps/librdkafka/tests/0171-share_consumer_consume.c +2150 -0
- package/deps/librdkafka/tests/0172-share_consumer_acknowledge.c +1919 -0
- package/deps/librdkafka/tests/0173-share_consumer_commit_async.c +2735 -0
- package/deps/librdkafka/tests/0174-share_consumer_concurrency.c +1434 -0
- package/deps/librdkafka/tests/0175-share_consumer_groups.c +574 -0
- package/deps/librdkafka/tests/0176-share_consumer_commit_sync.c +2986 -0
- package/deps/librdkafka/tests/0177-share_consumer_transactions.c +1815 -0
- package/deps/librdkafka/tests/0178-share_consumer_close.c +2102 -0
- package/deps/librdkafka/tests/0179-share_consumer_destroy.c +2482 -0
- package/deps/librdkafka/tests/0180-share_consumer_config.c +1677 -0
- package/deps/librdkafka/tests/0181-share_consumer_topic_delete.c +354 -0
- package/deps/librdkafka/tests/0182-share_consumer_error_handling_mock.c +3358 -0
- package/deps/librdkafka/tests/0183-share_consumer_leader_change_mock.c +1234 -0
- package/deps/librdkafka/tests/0184-share_consumer_topic_recreate.c +1356 -0
- package/deps/librdkafka/tests/0185-share_consumer_max_poll_interval.c +557 -0
- package/deps/librdkafka/tests/0186-share_consumer_fatal_error.c +360 -0
- package/deps/librdkafka/tests/0190-share_consumer_telemetry.c +387 -0
- package/deps/librdkafka/tests/1000-unktopic.c +164 -0
- package/deps/librdkafka/tests/8000-idle.cpp +60 -0
- package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
- package/deps/librdkafka/tests/CMakeLists.txt +193 -0
- package/deps/librdkafka/tests/LibrdkafkaTestApp.py +291 -0
- package/deps/librdkafka/tests/Makefile +182 -0
- package/deps/librdkafka/tests/README.md +514 -0
- package/deps/librdkafka/tests/autotest.sh +33 -0
- package/deps/librdkafka/tests/backtrace.gdb +30 -0
- package/deps/librdkafka/tests/broker_version_tests.py +315 -0
- package/deps/librdkafka/tests/buildbox.sh +17 -0
- package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
- package/deps/librdkafka/tests/cluster_testing.py +203 -0
- package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
- package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
- package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
- package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +50 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +168 -0
- package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
- package/deps/librdkafka/tests/fuzzers/README.md +31 -0
- package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
- package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
- package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
- package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
- package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
- package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
- package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
- package/deps/librdkafka/tests/java/Makefile +13 -0
- package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
- package/deps/librdkafka/tests/java/README.md +14 -0
- package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
- package/deps/librdkafka/tests/java/run-class.sh +11 -0
- package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
- package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
- package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
- package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
- package/deps/librdkafka/tests/performance_plot.py +115 -0
- package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
- package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
- package/deps/librdkafka/tests/requirements.txt +2 -0
- package/deps/librdkafka/tests/run-all-tests.sh +81 -0
- package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-test-batches.py +157 -0
- package/deps/librdkafka/tests/run-test.sh +141 -0
- package/deps/librdkafka/tests/rusage.c +249 -0
- package/deps/librdkafka/tests/sasl_test.py +289 -0
- package/deps/librdkafka/tests/scenarios/README.md +6 -0
- package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
- package/deps/librdkafka/tests/scenarios/default.json +5 -0
- package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
- package/deps/librdkafka/tests/share_telemetry_verify/share-otel-collector-config.yaml +28 -0
- package/deps/librdkafka/tests/sockem.c +801 -0
- package/deps/librdkafka/tests/sockem.h +85 -0
- package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
- package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
- package/deps/librdkafka/tests/test.c +8376 -0
- package/deps/librdkafka/tests/test.conf.example +27 -0
- package/deps/librdkafka/tests/test.h +1150 -0
- package/deps/librdkafka/tests/testcpp.cpp +131 -0
- package/deps/librdkafka/tests/testcpp.h +388 -0
- package/deps/librdkafka/tests/testshared.h +416 -0
- package/deps/librdkafka/tests/tools/README.md +4 -0
- package/deps/librdkafka/tests/tools/stats/README.md +21 -0
- package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
- package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
- package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
- package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
- package/deps/librdkafka/tests/trivup/trivup-0.15.0.tar.gz +0 -0
- package/deps/librdkafka/tests/until-fail.sh +87 -0
- package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
- package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
- package/deps/librdkafka/vcpkg.json +23 -0
- package/deps/librdkafka/win32/README.md +5 -0
- package/deps/librdkafka/win32/build-package.bat +3 -0
- package/deps/librdkafka/win32/build.bat +19 -0
- package/deps/librdkafka/win32/common.vcxproj +84 -0
- package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
- package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
- package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
- package/deps/librdkafka/win32/librdkafka.sln +226 -0
- package/deps/librdkafka/win32/librdkafka.vcxproj +282 -0
- package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
- package/deps/librdkafka/win32/msbuild.ps1 +58 -0
- package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
- package/deps/librdkafka/win32/package-zip.ps1 +46 -0
- package/deps/librdkafka/win32/packages/repositories.config +4 -0
- package/deps/librdkafka/win32/push-package.bat +4 -0
- package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
- package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
- package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
- package/deps/librdkafka/win32/setup-msys2.ps1 +47 -0
- package/deps/librdkafka/win32/setup-vcpkg.ps1 +34 -0
- package/deps/librdkafka/win32/tests/test.conf.example +25 -0
- package/deps/librdkafka/win32/tests/tests.vcxproj +278 -0
- package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
- package/deps/librdkafka/win32/wingetopt.c +564 -0
- package/deps/librdkafka/win32/wingetopt.h +101 -0
- package/deps/librdkafka/win32/wintime.h +33 -0
- package/deps/librdkafka.gyp +83 -0
- package/deps/windows-install.py +80 -0
- package/index.d.ts +3 -0
- package/lib/admin.js +732 -0
- package/lib/client.js +679 -0
- package/lib/error.js +501 -0
- package/lib/index.js +8 -0
- package/lib/kafka-consumer-stream.js +399 -0
- package/lib/kafka-consumer.js +798 -0
- package/lib/kafkajs/_admin.js +1052 -0
- package/lib/kafkajs/_common.js +887 -0
- package/lib/kafkajs/_consumer.js +2156 -0
- package/lib/kafkajs/_consumer_cache.js +310 -0
- package/lib/kafkajs/_error.js +298 -0
- package/lib/kafkajs/_kafka.js +125 -0
- package/lib/kafkajs/_linked-list.js +220 -0
- package/lib/kafkajs/_producer.js +863 -0
- package/lib/kafkajs/index.js +5 -0
- package/lib/producer/high-level-producer.js +400 -0
- package/lib/producer-stream.js +337 -0
- package/lib/producer.js +405 -0
- package/lib/rdkafka.js +44 -0
- package/lib/tools/ref-counter.js +53 -0
- package/lib/topic-partition.js +91 -0
- package/lib/topic.js +43 -0
- package/lib/util.js +55 -0
- package/librdkafka.js +12 -0
- package/package.json +85 -0
- package/shim/source_location +54 -0
- package/src/admin.cc +1597 -0
- package/src/admin.h +112 -0
- package/src/binding.cc +76 -0
- package/src/binding.h +25 -0
- package/src/callbacks.cc +676 -0
- package/src/callbacks.h +302 -0
- package/src/common.cc +1628 -0
- package/src/common.h +192 -0
- package/src/config.cc +219 -0
- package/src/config.h +61 -0
- package/src/connection.cc +703 -0
- package/src/connection.h +117 -0
- package/src/errors.cc +119 -0
- package/src/errors.h +60 -0
- package/src/kafka-consumer.cc +1539 -0
- package/src/kafka-consumer.h +147 -0
- package/src/producer.cc +917 -0
- package/src/producer.h +124 -0
- package/src/topic.cc +173 -0
- package/src/topic.h +54 -0
- package/src/workers.cc +1714 -0
- package/src/workers.h +690 -0
- package/types/config.d.ts +1269 -0
- package/types/errors.d.ts +373 -0
- package/types/kafkajs.d.ts +568 -0
- package/types/rdkafka.d.ts +571 -0
- package/util/configure.js +32 -0
- package/util/generate-docs.sh +18 -0
- package/util/get-env.js +6 -0
- package/util/test-compile.js +11 -0
- package/util/test-producer-delivery.js +100 -0
package/lib/admin.js
ADDED
|
@@ -0,0 +1,732 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* confluent-kafka-javascript - Node.js wrapper for RdKafka C/C++ library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2016-2023 Blizzard Entertainment
|
|
5
|
+
* (c) 2024 Confluent, Inc
|
|
6
|
+
*
|
|
7
|
+
* This software may be modified and distributed under the terms
|
|
8
|
+
* of the MIT license. See the LICENSE.txt file for details.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
/* TODO: Think of a way to fetch these from within librdkafka instead of this
|
|
13
|
+
* hardcoded list.
|
|
14
|
+
* New additions won't be automatically added to this list.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A list of consumer group states.
|
|
19
|
+
* @enum {number}
|
|
20
|
+
* @readonly
|
|
21
|
+
* @memberof RdKafka
|
|
22
|
+
*/
|
|
23
|
+
const ConsumerGroupStates = {
|
|
24
|
+
UNKNOWN: 0,
|
|
25
|
+
PREPARING_REBALANCE: 1,
|
|
26
|
+
COMPLETING_REBALANCE: 2,
|
|
27
|
+
STABLE: 3,
|
|
28
|
+
DEAD: 4,
|
|
29
|
+
EMPTY: 5,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const ConsumerGroupTypes = {
|
|
33
|
+
UNKNOWN: 0,
|
|
34
|
+
CONSUMER: 1,
|
|
35
|
+
CLASSIC: 2,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A list of ACL operation types.
|
|
40
|
+
* @enum {number}
|
|
41
|
+
* @readonly
|
|
42
|
+
* @memberof RdKafka
|
|
43
|
+
*/
|
|
44
|
+
const AclOperationTypes = {
|
|
45
|
+
UNKNOWN: 0,
|
|
46
|
+
ANY: 1,
|
|
47
|
+
ALL: 2,
|
|
48
|
+
READ: 3,
|
|
49
|
+
WRITE: 4,
|
|
50
|
+
CREATE: 5,
|
|
51
|
+
DELETE: 6,
|
|
52
|
+
ALTER: 7,
|
|
53
|
+
DESCRIBE: 8,
|
|
54
|
+
CLUSTER_ACTION: 9,
|
|
55
|
+
DESCRIBE_CONFIGS: 10,
|
|
56
|
+
ALTER_CONFIGS: 11,
|
|
57
|
+
IDEMPOTENT_WRITE: 12,
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* A list of isolation levels.
|
|
62
|
+
* @enum {number}
|
|
63
|
+
* @readonly
|
|
64
|
+
* @memberof RdKafka
|
|
65
|
+
*/
|
|
66
|
+
const IsolationLevel = {
|
|
67
|
+
READ_UNCOMMITTED: 0,
|
|
68
|
+
READ_COMMITTED: 1,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Define an OffsetSpec to list offsets at.
|
|
73
|
+
* Either a timestamp can be used, or else, one of the special, pre-defined values
|
|
74
|
+
* (EARLIEST, LATEST, MAX_TIMESTAMP) can be used while passing an OffsetSpec to listOffsets.
|
|
75
|
+
* @param {number} timestamp - The timestamp to list offsets at.
|
|
76
|
+
* @memberof RdKafka
|
|
77
|
+
* @constructor
|
|
78
|
+
*/
|
|
79
|
+
function OffsetSpec(timestamp) {
|
|
80
|
+
this.timestamp = timestamp;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Specific OffsetSpec value used to retrieve the offset with the largest timestamp of a partition
|
|
85
|
+
* as message timestamps can be specified client side this may not match
|
|
86
|
+
* the log end offset returned by OffsetSpec.LATEST.
|
|
87
|
+
*/
|
|
88
|
+
OffsetSpec.MAX_TIMESTAMP = new OffsetSpec(-3);
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Special OffsetSpec value denoting the earliest offset for a topic partition.
|
|
92
|
+
*/
|
|
93
|
+
OffsetSpec.EARLIEST = new OffsetSpec(-2);
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Special OffsetSpec value denoting the latest offset for a topic partition.
|
|
97
|
+
*/
|
|
98
|
+
OffsetSpec.LATEST = new OffsetSpec(-1);
|
|
99
|
+
|
|
100
|
+
module.exports = {
|
|
101
|
+
create: createAdminClient,
|
|
102
|
+
createFrom: createAdminClientFrom,
|
|
103
|
+
ConsumerGroupStates: Object.freeze(ConsumerGroupStates),
|
|
104
|
+
ConsumerGroupTypes: Object.freeze(ConsumerGroupTypes),
|
|
105
|
+
AclOperationTypes: Object.freeze(AclOperationTypes),
|
|
106
|
+
IsolationLevel: Object.freeze(IsolationLevel),
|
|
107
|
+
OffsetSpec,
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
var Client = require('./client');
|
|
111
|
+
var util = require('util');
|
|
112
|
+
var Kafka = require('../librdkafka');
|
|
113
|
+
var LibrdKafkaError = require('./error');
|
|
114
|
+
var { shallowCopy } = require('./util');
|
|
115
|
+
|
|
116
|
+
util.inherits(AdminClient, Client);
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Create a new AdminClient using the provided configuration.
|
|
120
|
+
*
|
|
121
|
+
* This is a factory method because it immediately starts an
|
|
122
|
+
* active handle with the brokers.
|
|
123
|
+
*
|
|
124
|
+
* @param {object} conf - Key value pairs to configure the admin client.
|
|
125
|
+
* @param {object?} eventHandlers - Optional key value pairs of event handlers to attach to the client.
|
|
126
|
+
* @memberof RdKafka
|
|
127
|
+
* @alias RdKafka.AdminClient.create
|
|
128
|
+
*/
|
|
129
|
+
function createAdminClient(conf, eventHandlers) {
|
|
130
|
+
var client = new AdminClient(conf);
|
|
131
|
+
|
|
132
|
+
if (eventHandlers && typeof eventHandlers === 'object') {
|
|
133
|
+
for (const key in eventHandlers) {
|
|
134
|
+
client.on(key, eventHandlers[key]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Wrap the error so we throw if it failed with some context
|
|
139
|
+
LibrdKafkaError.wrap(client.connect(), true);
|
|
140
|
+
|
|
141
|
+
// Return the client if we succeeded
|
|
142
|
+
return client;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Create a new AdminClient from an existing producer or consumer.
|
|
147
|
+
*
|
|
148
|
+
* This is a factory method because it immediately starts an
|
|
149
|
+
* active handle with the brokers.
|
|
150
|
+
*
|
|
151
|
+
* The producer or consumer being used must be connected before creating the admin client,
|
|
152
|
+
* and the admin client can only be used while the producer or consumer is connected.
|
|
153
|
+
*
|
|
154
|
+
* Logging and other events from this client will be emitted on the producer or consumer.
|
|
155
|
+
* @param {RdKafka.Producer | RdKafka.KafkaConsumer} existingClient - A producer or consumer to create the admin client from.
|
|
156
|
+
* @param {object?} eventHandlers - Optional key value pairs of event handlers to attach to the client.
|
|
157
|
+
* @memberof RdKafka
|
|
158
|
+
* @alias RdKafka.AdminClient.createFrom
|
|
159
|
+
*/
|
|
160
|
+
function createAdminClientFrom(existingClient, eventHandlers) {
|
|
161
|
+
var client = new AdminClient(null, existingClient);
|
|
162
|
+
|
|
163
|
+
if (eventHandlers && typeof eventHandlers === 'object') {
|
|
164
|
+
for (const key in eventHandlers) {
|
|
165
|
+
client.on(key, eventHandlers[key]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
LibrdKafkaError.wrap(client.connect(), true);
|
|
170
|
+
|
|
171
|
+
// Return the client if we succeeded
|
|
172
|
+
return client;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* AdminClient class for administering Kafka clusters (promise-based, async API).
|
|
177
|
+
*
|
|
178
|
+
* This client is the way you can interface with the Kafka Admin APIs.
|
|
179
|
+
* This class should not be made using the constructor, but instead
|
|
180
|
+
* should be made using the factory methods (see {@link RdKafka.AdminClient.create}
|
|
181
|
+
* and {@link RdKafka.AdminClient.createFrom}).
|
|
182
|
+
*
|
|
183
|
+
* Once you instantiate this object, it will have a handle to the kafka broker.
|
|
184
|
+
* Unlike the other confluent-kafka-javascript classes, this class does not ensure that
|
|
185
|
+
* it is connected to the upstream broker. Instead, making an action will
|
|
186
|
+
* validate that.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* var client = AdminClient.create({ ... }); // From configuration
|
|
190
|
+
* var client = AdminClient.createFrom(existingClient); // From existing producer or consumer
|
|
191
|
+
*
|
|
192
|
+
* @param {object|null} conf - Key value pairs to configure the admin client
|
|
193
|
+
* @param {RdKafka.Producer | RdKafka.KafkaConsumer | null} existingClient - An existing producer or consumer to create the admin client from (optional).
|
|
194
|
+
* @memberof RdKafka
|
|
195
|
+
* @constructor
|
|
196
|
+
*/
|
|
197
|
+
function AdminClient(conf, existingClient) {
|
|
198
|
+
if (!(this instanceof AdminClient)) {
|
|
199
|
+
return new AdminClient(conf);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (conf) {
|
|
203
|
+
conf = shallowCopy(conf);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
Client.call(this, conf, Kafka.AdminClient, null, existingClient);
|
|
207
|
+
|
|
208
|
+
if (existingClient) {
|
|
209
|
+
this._isConnected = true;
|
|
210
|
+
this._hasUnderlyingClient = true;
|
|
211
|
+
} else {
|
|
212
|
+
this._isConnected = false;
|
|
213
|
+
this._hasUnderlyingClient = false;
|
|
214
|
+
}
|
|
215
|
+
this.globalConfig = conf;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Connect using the admin client.
|
|
220
|
+
*
|
|
221
|
+
* Should be run using the factory method, so should never
|
|
222
|
+
* need to be called outside.
|
|
223
|
+
*
|
|
224
|
+
* Unlike the other connect methods, this one is synchronous.
|
|
225
|
+
* @private
|
|
226
|
+
*/
|
|
227
|
+
AdminClient.prototype.connect = function () {
|
|
228
|
+
if (!this._hasUnderlyingClient) {
|
|
229
|
+
this._client.configureCallbacks(true, this._cb_configs);
|
|
230
|
+
LibrdKafkaError.wrap(this._client.connect(), true);
|
|
231
|
+
}
|
|
232
|
+
// While this could be a no-op for an existing client, we still emit the event
|
|
233
|
+
// to have a consistent API.
|
|
234
|
+
this._isConnected = true;
|
|
235
|
+
this.emit('ready', { name: this._client.name() });
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Disconnect the admin client.
|
|
240
|
+
*
|
|
241
|
+
* This is a synchronous method, but all it does is clean up
|
|
242
|
+
* some memory and shut some threads down.
|
|
243
|
+
*/
|
|
244
|
+
AdminClient.prototype.disconnect = function () {
|
|
245
|
+
if (this._hasUnderlyingClient) {
|
|
246
|
+
// no-op if we're from an existing client, we're just reusing the handle.
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
LibrdKafkaError.wrap(this._client.disconnect(), true);
|
|
251
|
+
// The AdminClient doesn't provide a callback. So we can't
|
|
252
|
+
// wait for completion.
|
|
253
|
+
this._client.configureCallbacks(false, this._cb_configs);
|
|
254
|
+
this._isConnected = false;
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Create a topic with a given config.
|
|
259
|
+
*
|
|
260
|
+
* @param {object} topic - Topic to create.
|
|
261
|
+
* @param {string} topic.topic - The name of the topic to create.
|
|
262
|
+
* @param {number} topic.num_partitions - The number of partitions for the topic.
|
|
263
|
+
* @param {number} topic.replication_factor - The replication factor for the topic.
|
|
264
|
+
* @param {object?} topic.config - The topic configuration. The keys of this object denote the keys of the configuration.
|
|
265
|
+
* @param {number?} timeout - Number of milliseconds to wait while trying to create the topic. Set to 5000 by default.
|
|
266
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
267
|
+
*/
|
|
268
|
+
AdminClient.prototype.createTopic = function (topic, timeout, cb) {
|
|
269
|
+
if (!this._isConnected) {
|
|
270
|
+
throw new Error('Client is disconnected');
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (typeof timeout === 'function') {
|
|
274
|
+
cb = timeout;
|
|
275
|
+
timeout = 5000;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (!timeout) {
|
|
279
|
+
timeout = 5000;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
this._client.createTopic(topic, timeout, function (err) {
|
|
283
|
+
if (err) {
|
|
284
|
+
if (cb) {
|
|
285
|
+
cb(LibrdKafkaError.create(err));
|
|
286
|
+
}
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (cb) {
|
|
291
|
+
cb();
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Delete a topic.
|
|
298
|
+
*
|
|
299
|
+
* @param {string} topic - The topic to delete, by name.
|
|
300
|
+
* @param {number?} timeout - Number of milliseconds to wait while trying to delete the topic. Set to 5000 by default.
|
|
301
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
302
|
+
*/
|
|
303
|
+
AdminClient.prototype.deleteTopic = function (topic, timeout, cb) {
|
|
304
|
+
if (!this._isConnected) {
|
|
305
|
+
throw new Error('Client is disconnected');
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if (typeof timeout === 'function') {
|
|
309
|
+
cb = timeout;
|
|
310
|
+
timeout = 5000;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (!timeout) {
|
|
314
|
+
timeout = 5000;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
this._client.deleteTopic(topic, timeout, function (err) {
|
|
318
|
+
if (err) {
|
|
319
|
+
if (cb) {
|
|
320
|
+
cb(LibrdKafkaError.create(err));
|
|
321
|
+
}
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
if (cb) {
|
|
326
|
+
cb();
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Create new partitions for a topic.
|
|
333
|
+
*
|
|
334
|
+
* @param {string} topic - The topic to add partitions to, by name.
|
|
335
|
+
* @param {number} totalPartitions - The total number of partitions the topic should have
|
|
336
|
+
* after the request.
|
|
337
|
+
* @param {number?} timeout - Number of milliseconds to wait while trying to create the partitions. Set to 5000 by default.
|
|
338
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
339
|
+
*/
|
|
340
|
+
AdminClient.prototype.createPartitions = function (topic, totalPartitions, timeout, cb) {
|
|
341
|
+
if (!this._isConnected) {
|
|
342
|
+
throw new Error('Client is disconnected');
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
if (typeof timeout === 'function') {
|
|
346
|
+
cb = timeout;
|
|
347
|
+
timeout = 5000;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (!timeout) {
|
|
351
|
+
timeout = 5000;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
this._client.createPartitions(topic, totalPartitions, timeout, function (err) {
|
|
355
|
+
if (err) {
|
|
356
|
+
if (cb) {
|
|
357
|
+
cb(LibrdKafkaError.create(err));
|
|
358
|
+
}
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
if (cb) {
|
|
363
|
+
cb();
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* List consumer groups.
|
|
370
|
+
*
|
|
371
|
+
* @param {any} options
|
|
372
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
373
|
+
* May be unset (default: 5000).
|
|
374
|
+
* @param {Array<RdKafka.ConsumerGroupStates>?} options.matchConsumerGroupStates -
|
|
375
|
+
* A list of consumer group states to match. May be unset, fetches all states (default: unset).
|
|
376
|
+
* @param {Array<RdKafka.ConsumerGroupTypes>?} options.matchConsumerGroupTypes -
|
|
377
|
+
* A list of consumer group types to match. May be unset, fetches all types (default: unset).
|
|
378
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
379
|
+
* @example
|
|
380
|
+
* // Valid ways to call this function:
|
|
381
|
+
* listGroups(cb);
|
|
382
|
+
* listGroups(options, cb);
|
|
383
|
+
*/
|
|
384
|
+
AdminClient.prototype.listGroups = function (options, cb) {
|
|
385
|
+
if (!this._isConnected) {
|
|
386
|
+
throw new Error('Client is disconnected');
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
if (typeof options === 'function') {
|
|
390
|
+
cb = options;
|
|
391
|
+
options = {};
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (!options) {
|
|
395
|
+
options = {};
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
this._client.listGroups(options, function (err, groups) {
|
|
399
|
+
if (err) {
|
|
400
|
+
if (cb) {
|
|
401
|
+
cb(LibrdKafkaError.create(err));
|
|
402
|
+
}
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
if (cb) {
|
|
407
|
+
cb(null, groups);
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
};
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Describe consumer groups.
|
|
414
|
+
* @param {Array<string>} groups - The names of the groups to describe.
|
|
415
|
+
* @param {object} options
|
|
416
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
417
|
+
* May be unset (default: 5000).
|
|
418
|
+
* @param {boolean?} options.includeAuthorizedOperations - If true, include operations allowed on the group by the calling client (default: false).
|
|
419
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
420
|
+
*
|
|
421
|
+
* @example
|
|
422
|
+
* // Valid ways to call this function:
|
|
423
|
+
* describeGroups(groups, cb)
|
|
424
|
+
* describeGroups(groups, options, cb)
|
|
425
|
+
*/
|
|
426
|
+
AdminClient.prototype.describeGroups = function (groups, options, cb) {
|
|
427
|
+
if (!this._isConnected) {
|
|
428
|
+
throw new Error('Client is disconnected');
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
if (typeof options === 'function') {
|
|
432
|
+
cb = options;
|
|
433
|
+
options = {};
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
if (!options) {
|
|
437
|
+
options = {};
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
this._client.describeGroups(groups, options, function (err, descriptions) {
|
|
441
|
+
if (err) {
|
|
442
|
+
if (cb) {
|
|
443
|
+
cb(LibrdKafkaError.create(err));
|
|
444
|
+
}
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
if (cb) {
|
|
449
|
+
cb(null, descriptions);
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* Delete consumer groups.
|
|
456
|
+
* @param {string[]} groups - The names of the groups to delete.
|
|
457
|
+
* @param {object} options
|
|
458
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
459
|
+
* May be unset (default: 5000).
|
|
460
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* // Valid ways to call this function:
|
|
464
|
+
* deleteGroups(groups, cb)
|
|
465
|
+
* deleteGroups(groups, options, cb)
|
|
466
|
+
*/
|
|
467
|
+
AdminClient.prototype.deleteGroups = function (groups, options, cb) {
|
|
468
|
+
if (!this._isConnected) {
|
|
469
|
+
throw new Error('Client is disconnected');
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
if (typeof options === 'function') {
|
|
473
|
+
cb = options;
|
|
474
|
+
options = {};
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
if (!options) {
|
|
478
|
+
options = {};
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
this._client.deleteGroups(groups, options, function (err, reports) {
|
|
482
|
+
if (err) {
|
|
483
|
+
if (cb) {
|
|
484
|
+
cb(LibrdKafkaError.create(err));
|
|
485
|
+
}
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
if (cb) {
|
|
490
|
+
cb(null, reports);
|
|
491
|
+
}
|
|
492
|
+
});
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* List topics.
|
|
497
|
+
*
|
|
498
|
+
* @param {object} options
|
|
499
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
500
|
+
* May be unset (default: 5000).
|
|
501
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* // Valid ways to call this function:
|
|
505
|
+
* listTopics(cb)
|
|
506
|
+
* listTopics(options, cb)
|
|
507
|
+
*/
|
|
508
|
+
AdminClient.prototype.listTopics = function (options, cb) {
|
|
509
|
+
if (!this._isConnected) {
|
|
510
|
+
throw new Error('Client is disconnected');
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
if (typeof options === 'function') {
|
|
514
|
+
cb = options;
|
|
515
|
+
options = {};
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
if (!options) {
|
|
519
|
+
options = {};
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// Always set allTopics to true, since we need a list.
|
|
523
|
+
options.allTopics = true;
|
|
524
|
+
if (!Object.hasOwn(options, 'timeout')) {
|
|
525
|
+
options.timeout = 5000;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// This definitely isn't the fastest way to list topics as
|
|
529
|
+
// this makes a pretty large metadata request. But for the sake
|
|
530
|
+
// of AdminAPI, this is okay.
|
|
531
|
+
this._client.getMetadata(options, function (err, metadata) {
|
|
532
|
+
if (err) {
|
|
533
|
+
if (cb) {
|
|
534
|
+
cb(LibrdKafkaError.create(err));
|
|
535
|
+
}
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
const topics = [];
|
|
540
|
+
if (metadata.topics) {
|
|
541
|
+
for (const topic of metadata.topics) {
|
|
542
|
+
topics.push(topic.name);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
if (cb) {
|
|
547
|
+
cb(null, topics);
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* List offsets for topic partition(s) for consumer group(s).
|
|
554
|
+
*
|
|
555
|
+
* @param {{groupId: string, partitions: Array<number>|null}} listGroupOffsets
|
|
556
|
+
* The list of groupId, partitions to fetch offsets for. If partitions is null, list offsets for all partitions
|
|
557
|
+
* in the group.
|
|
558
|
+
* @param {object} options
|
|
559
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
560
|
+
* May be unset (default: 5000).
|
|
561
|
+
* @param {boolean?} options.requireStableOffsets - Whether broker should return stable offsets
|
|
562
|
+
* (transaction-committed). (default: false).
|
|
563
|
+
*
|
|
564
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
565
|
+
*/
|
|
566
|
+
AdminClient.prototype.listConsumerGroupOffsets = function (listGroupOffsets, options, cb) {
|
|
567
|
+
|
|
568
|
+
if (!this._isConnected) {
|
|
569
|
+
throw new Error('Client is disconnected');
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
if (!listGroupOffsets[0].groupId) {
|
|
573
|
+
throw new Error('groupId must be provided');
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
if(!options) {
|
|
577
|
+
options = {};
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
if (!Object.hasOwn(options, 'timeout')) {
|
|
581
|
+
options.timeout = 5000;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
if (!Object.hasOwn(options, 'requireStableOffsets')) {
|
|
585
|
+
options.requireStableOffsets = false;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
this._client.listConsumerGroupOffsets(listGroupOffsets, options, function (err, offsets) {
|
|
589
|
+
if (err) {
|
|
590
|
+
if (cb) {
|
|
591
|
+
cb(LibrdKafkaError.create(err));
|
|
592
|
+
}
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
if (cb) {
|
|
597
|
+
cb(null, offsets);
|
|
598
|
+
}
|
|
599
|
+
});
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Deletes records (messages) in topic partitions older than the offsets provided.
|
|
604
|
+
* Provide Topic.OFFSET_END or -1 as the offset to delete all records.
|
|
605
|
+
*
|
|
606
|
+
* @param {Array<{topic: string, partition: number, offset: number}>} delRecords
|
|
607
|
+
* The list of topic partitions and offsets to delete records up to.
|
|
608
|
+
* @param {object} options
|
|
609
|
+
* @param {number?} options.operationTimeout - The operation timeout in milliseconds.
|
|
610
|
+
* May be unset (default: 60000).
|
|
611
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
612
|
+
* May be unset (default: 5000).
|
|
613
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
614
|
+
*/
|
|
615
|
+
AdminClient.prototype.deleteRecords = function (delRecords, options, cb) {
|
|
616
|
+
if (!this._isConnected) {
|
|
617
|
+
throw new Error('Client is disconnected');
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
if(!options) {
|
|
621
|
+
options = {};
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
if (!Object.hasOwn(options, 'timeout')) {
|
|
625
|
+
options.timeout = 5000;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
if (!Object.hasOwn(options, 'operationTimeout')) {
|
|
629
|
+
options.operationTimeout = 60000;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
if (!Array.isArray(delRecords) || delRecords.length === 0) {
|
|
633
|
+
throw new Error('delRecords must be a non-empty array');
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
this._client.deleteRecords(delRecords, options, function (err, results) {
|
|
637
|
+
if (err) {
|
|
638
|
+
if (cb) {
|
|
639
|
+
cb(LibrdKafkaError.create(err));
|
|
640
|
+
}
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
if (cb) {
|
|
645
|
+
cb(null, results);
|
|
646
|
+
}
|
|
647
|
+
});
|
|
648
|
+
};
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* Describe topics.
|
|
652
|
+
*
|
|
653
|
+
* @param {Array<string>} topics - The names of the topics to describe.
|
|
654
|
+
* @param {object} options
|
|
655
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
656
|
+
* May be unset (default: 5000).
|
|
657
|
+
* @param {boolean?} options.includeAuthorizedOperations - If true, include operations allowed on the topic by the calling client.
|
|
658
|
+
* (default: false).
|
|
659
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
660
|
+
*/
|
|
661
|
+
AdminClient.prototype.describeTopics = function (topics, options, cb) {
|
|
662
|
+
if (!this._isConnected) {
|
|
663
|
+
throw new Error('Client is disconnected');
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
if(!options) {
|
|
667
|
+
options = {};
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if(!Object.hasOwn(options, 'timeout')) {
|
|
671
|
+
options.timeout = 5000;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
if(!Object.hasOwn(options, 'includeAuthorizedOperations')) {
|
|
675
|
+
options.includeAuthorizedOperations = false;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
this._client.describeTopics(topics, options, function (err, descriptions) {
|
|
679
|
+
if (err) {
|
|
680
|
+
if (cb) {
|
|
681
|
+
cb(LibrdKafkaError.create(err));
|
|
682
|
+
}
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
if (cb) {
|
|
687
|
+
cb(null, descriptions);
|
|
688
|
+
}
|
|
689
|
+
});
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* List offsets for topic partition(s).
|
|
694
|
+
*
|
|
695
|
+
* @param {Array<{topic: string, partition: number, offset: OffsetSpec}>} partitions - The list of partitions to fetch offsets for.
|
|
696
|
+
* @param {any?} options
|
|
697
|
+
* @param {number?} options.timeout - The request timeout in milliseconds.
|
|
698
|
+
* May be unset (default: 5000)
|
|
699
|
+
* @param {RdKafka.IsolationLevel?} options.isolationLevel - The isolation level for reading the offsets.
|
|
700
|
+
* (default: READ_UNCOMMITTED)
|
|
701
|
+
* @param {function} cb - The callback to be executed when finished.
|
|
702
|
+
*/
|
|
703
|
+
AdminClient.prototype.listOffsets = function (partitions, options, cb) {
|
|
704
|
+
if (!this._isConnected) {
|
|
705
|
+
throw new Error('Client is disconnected');
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
if(!options) {
|
|
709
|
+
options = {};
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
if (!Object.hasOwn(options, 'timeout')) {
|
|
713
|
+
options.timeout = 5000;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
if(!Object.hasOwn(options, 'isolationLevel')) {
|
|
717
|
+
options.isolationLevel = IsolationLevel.READ_UNCOMMITTED;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
this._client.listOffsets(partitions, options, function (err, offsets) {
|
|
721
|
+
if (err) {
|
|
722
|
+
if (cb) {
|
|
723
|
+
cb(LibrdKafkaError.create(err));
|
|
724
|
+
}
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
if (cb) {
|
|
729
|
+
cb(null, offsets);
|
|
730
|
+
}
|
|
731
|
+
});
|
|
732
|
+
};
|