@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/client.js
ADDED
|
@@ -0,0 +1,679 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* confluent-kafka-javascript - Node.js wrapper for RdKafka C/C++ library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2016-2023 Blizzard Entertainment
|
|
5
|
+
* (c) 2023 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
|
+
|
|
11
|
+
module.exports = Client;
|
|
12
|
+
|
|
13
|
+
var Emitter = require('events').EventEmitter;
|
|
14
|
+
var util = require('util');
|
|
15
|
+
var Kafka = require('../librdkafka.js');
|
|
16
|
+
|
|
17
|
+
const { bindingVersion, dictToStringList } = require('./util');
|
|
18
|
+
|
|
19
|
+
var LibrdKafkaError = require('./error');
|
|
20
|
+
|
|
21
|
+
util.inherits(Client, Emitter);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Base class for Consumer and Producer.
|
|
25
|
+
*
|
|
26
|
+
* This should not be created independently, but rather is
|
|
27
|
+
* the base class on which both producer and consumer
|
|
28
|
+
* get their common functionality.
|
|
29
|
+
*
|
|
30
|
+
* @param {object} globalConf - Global configuration in key value pairs.
|
|
31
|
+
* @param {function} SubClientType - The function representing the subclient
|
|
32
|
+
* type. In C++ land this needs to be a class that inherits from Connection.
|
|
33
|
+
* @param {object} topicConf - Topic configuration in key value pairs
|
|
34
|
+
* @param {object?} existingClient - a producer or a consumer to derive this client from.
|
|
35
|
+
* Only used by the AdminClient. Must be connected.
|
|
36
|
+
* @constructor
|
|
37
|
+
* @extends Emitter
|
|
38
|
+
* @memberof RdKafka
|
|
39
|
+
* @package
|
|
40
|
+
*/
|
|
41
|
+
function Client(globalConf, SubClientType, topicConf, existingClient) {
|
|
42
|
+
if (!(this instanceof Client)) {
|
|
43
|
+
return new Client(globalConf, SubClientType, topicConf, existingClient);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Throw an error early - this allows us to set confs to {} and avoid all
|
|
47
|
+
// the null-checking in case of existingClient being set.
|
|
48
|
+
if (!existingClient && !globalConf) {
|
|
49
|
+
throw new Error('Global configuration data must be specified');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (existingClient && globalConf) {
|
|
53
|
+
throw new Error('Global configuration data must not be specified when creating a client from an existing client');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (existingClient && topicConf) {
|
|
57
|
+
throw new Error('Topic configuration data must not be specified when creating a client from an existing client');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (existingClient && !(existingClient._client instanceof Kafka.Producer) && !(existingClient._client instanceof Kafka.KafkaConsumer)) {
|
|
61
|
+
throw new Error('Existing client must be a Producer or Consumer instance');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (existingClient && !existingClient._isConnected) {
|
|
65
|
+
throw new Error('Existing client must be connected before creating a new client from it');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
let existingInternalClient;
|
|
69
|
+
if (existingClient) {
|
|
70
|
+
globalConf = {};
|
|
71
|
+
topicConf = {};
|
|
72
|
+
existingInternalClient = existingClient.getClient();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
Emitter.call(this);
|
|
76
|
+
|
|
77
|
+
// This superclass must be initialized with the Kafka.{Producer,Consumer}
|
|
78
|
+
// @example var client = new Client({}, Kafka.Producer);
|
|
79
|
+
// remember this is a superclass so this will get taken care of in
|
|
80
|
+
// the producer and consumer main wrappers
|
|
81
|
+
|
|
82
|
+
var no_event_cb = globalConf.event_cb === false;
|
|
83
|
+
|
|
84
|
+
// delete this because librdkafka will complain since this particular
|
|
85
|
+
// key is a real conf value
|
|
86
|
+
delete globalConf.event_cb;
|
|
87
|
+
|
|
88
|
+
// These properties are not meant to be user-set.
|
|
89
|
+
// Clients derived from this might want to change them, but for
|
|
90
|
+
// now we override them.
|
|
91
|
+
globalConf['client.software.name'] = 'confluent-kafka-javascript';
|
|
92
|
+
globalConf['client.software.version'] = `${bindingVersion}-librdkafka-${Kafka.librdkafkaVersion}`;
|
|
93
|
+
|
|
94
|
+
this._client = new SubClientType(globalConf, topicConf, existingInternalClient);
|
|
95
|
+
|
|
96
|
+
// We should not modify the globalConf object. We have cloned it already.
|
|
97
|
+
delete globalConf['client.software.name'];
|
|
98
|
+
delete globalConf['client.software.version'];
|
|
99
|
+
|
|
100
|
+
var extractFunctions = function(obj) {
|
|
101
|
+
obj = obj || {};
|
|
102
|
+
var obj2 = {};
|
|
103
|
+
for (var p in obj) {
|
|
104
|
+
if (typeof obj[p] === "function") {
|
|
105
|
+
obj2[p] = obj[p];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return obj2;
|
|
109
|
+
};
|
|
110
|
+
this._cb_configs = {
|
|
111
|
+
global: extractFunctions(globalConf),
|
|
112
|
+
topic: extractFunctions(topicConf),
|
|
113
|
+
event: {},
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
if (!existingClient && !no_event_cb) {
|
|
117
|
+
this._cb_configs.event.event_cb = function(eventType, eventData) {
|
|
118
|
+
switch (eventType) {
|
|
119
|
+
case 'error':
|
|
120
|
+
this.emit('event.error', LibrdKafkaError.create(eventData));
|
|
121
|
+
break;
|
|
122
|
+
case 'stats':
|
|
123
|
+
this.emit('event.stats', eventData);
|
|
124
|
+
break;
|
|
125
|
+
case 'log':
|
|
126
|
+
this.emit('event.log', eventData);
|
|
127
|
+
break;
|
|
128
|
+
default:
|
|
129
|
+
this.emit('event.event', eventData);
|
|
130
|
+
this.emit('event.' + eventType, eventData);
|
|
131
|
+
}
|
|
132
|
+
}.bind(this);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (Object.hasOwn(this._cb_configs.global, 'oauthbearer_token_refresh_cb')) {
|
|
136
|
+
const savedCallback = this._cb_configs.global.oauthbearer_token_refresh_cb;
|
|
137
|
+
this._cb_configs.global.oauthbearer_token_refresh_cb = (oauthbearer_config) => {
|
|
138
|
+
if (this._isDisconnecting) {
|
|
139
|
+
// Don't call the callback if we're in the middle of disconnecting.
|
|
140
|
+
// This is especially important when the credentials are wrong, and
|
|
141
|
+
// we might want to disconnect without ever completing connection.
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// This sets the token or error within librdkafka, and emits any
|
|
146
|
+
// errors on the emitter.
|
|
147
|
+
const postProcessTokenRefresh = (err, token) => {
|
|
148
|
+
try {
|
|
149
|
+
if (err) {
|
|
150
|
+
throw err;
|
|
151
|
+
}
|
|
152
|
+
let { tokenValue, lifetime, principal, extensions } = token;
|
|
153
|
+
|
|
154
|
+
// If the principal isn't there, set an empty principal.
|
|
155
|
+
if (!principal) {
|
|
156
|
+
principal = '';
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Convert extensions from a Map/object to a list that librdkafka expects.
|
|
160
|
+
extensions = dictToStringList(extensions);
|
|
161
|
+
|
|
162
|
+
this._client.setOAuthBearerToken(tokenValue, lifetime, principal, extensions);
|
|
163
|
+
} catch (e) {
|
|
164
|
+
e.message = "oauthbearer_token_refresh_cb: " + e.message;
|
|
165
|
+
this._client.setOAuthBearerTokenFailure(e.message);
|
|
166
|
+
this.emit('error', e);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const returnPromise = savedCallback(oauthbearer_config, postProcessTokenRefresh);
|
|
170
|
+
|
|
171
|
+
// If it looks like a promise, and quacks like a promise, it is a promise
|
|
172
|
+
// (or an async function). We expect the callback NOT to have been called
|
|
173
|
+
// in such a case.
|
|
174
|
+
if (returnPromise && (typeof returnPromise.then === 'function')) {
|
|
175
|
+
returnPromise.then((token) => {
|
|
176
|
+
postProcessTokenRefresh(null, token);
|
|
177
|
+
}).catch(err => {
|
|
178
|
+
postProcessTokenRefresh(err);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
this.metrics = {};
|
|
185
|
+
this._isConnected = false;
|
|
186
|
+
this.errorCounter = 0;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Metadata object. Starts out empty but will be filled with information after
|
|
190
|
+
* the initial connect.
|
|
191
|
+
*
|
|
192
|
+
* @type {RdKafka.Client~Metadata}
|
|
193
|
+
* @private
|
|
194
|
+
*/
|
|
195
|
+
this._metadata = {};
|
|
196
|
+
|
|
197
|
+
var self = this;
|
|
198
|
+
|
|
199
|
+
this.on('ready', function(info) {
|
|
200
|
+
self.metrics.connectionOpened = Date.now();
|
|
201
|
+
self.name = info.name;
|
|
202
|
+
})
|
|
203
|
+
.on('disconnected', function() {
|
|
204
|
+
// reset metrics
|
|
205
|
+
self.metrics = {};
|
|
206
|
+
self._isConnected = false;
|
|
207
|
+
// keep the metadata. it still may be useful
|
|
208
|
+
})
|
|
209
|
+
.on('event.error', function(err) {
|
|
210
|
+
self.lastError = err;
|
|
211
|
+
++self.errorCounter;
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Connect to the broker and receive its metadata.
|
|
218
|
+
*
|
|
219
|
+
* Connects to a broker by establishing the client and fetches its metadata.
|
|
220
|
+
*
|
|
221
|
+
* @param {object?} metadataOptions - Options to be sent to the metadata.
|
|
222
|
+
* @param {string} metadataOptions.topic - Topic to fetch metadata for. Empty string is treated as empty.
|
|
223
|
+
* @param {boolean} metadataOptions.allTopics - Fetch metadata for all topics, not just the ones we know about.
|
|
224
|
+
* @param {int} metadataOptions.timeout - The timeout, in ms, to allow for fetching metadata. Defaults to 30000ms
|
|
225
|
+
* @param {RdKafka.Client~connectionCallback?} cb - Callback that indicates we are
|
|
226
|
+
* done connecting.
|
|
227
|
+
* @fires RdKafka.Client#ready
|
|
228
|
+
* @return {RdKafka.Client} - Returns itself.
|
|
229
|
+
*/
|
|
230
|
+
Client.prototype.connect = function(metadataOptions, cb) {
|
|
231
|
+
if (this._hasUnderlyingClient) {
|
|
232
|
+
// This is a derived client. We don't want to connect it, it's already connected.
|
|
233
|
+
// No one should be reaching this method in the first place if they use the
|
|
234
|
+
// API correctly, but it is possible to do so accidentally.
|
|
235
|
+
throw new Error('Cannot connect an existing client');
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
var self = this;
|
|
239
|
+
|
|
240
|
+
var next = function(err, data) {
|
|
241
|
+
self._isConnecting = false;
|
|
242
|
+
if (cb) {
|
|
243
|
+
cb(err, data);
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
if (this._isConnected) {
|
|
248
|
+
setImmediate(next);
|
|
249
|
+
return self;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (this._isConnecting) {
|
|
253
|
+
this.once('ready', function() {
|
|
254
|
+
next(null, this._metadata);
|
|
255
|
+
});
|
|
256
|
+
return self;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
this._isConnecting = true;
|
|
260
|
+
|
|
261
|
+
var fail = function(err) {
|
|
262
|
+
var callbackCalled = false;
|
|
263
|
+
var t;
|
|
264
|
+
|
|
265
|
+
if (self._isConnected) {
|
|
266
|
+
self._isConnected = false;
|
|
267
|
+
self._client.disconnect(function() {
|
|
268
|
+
if (callbackCalled) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
clearTimeout(t);
|
|
272
|
+
callbackCalled = true;
|
|
273
|
+
|
|
274
|
+
next(err); return;
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
// don't take too long. this is a failure, after all
|
|
278
|
+
t = setTimeout(function() {
|
|
279
|
+
if (callbackCalled) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
callbackCalled = true;
|
|
283
|
+
|
|
284
|
+
next(err); return;
|
|
285
|
+
}, 10000).unref();
|
|
286
|
+
|
|
287
|
+
self.emit('connection.failure', err, self.metrics);
|
|
288
|
+
} else {
|
|
289
|
+
|
|
290
|
+
next(err);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
this._client.configureCallbacks(true, this._cb_configs);
|
|
295
|
+
|
|
296
|
+
this._client.connect(function(err, info) {
|
|
297
|
+
if (err) {
|
|
298
|
+
fail(LibrdKafkaError.create(err)); return;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
self._isConnected = true;
|
|
302
|
+
|
|
303
|
+
// Otherwise we are successful
|
|
304
|
+
self.getMetadata(metadataOptions || {}, function(err, metadata) {
|
|
305
|
+
if (err) {
|
|
306
|
+
// We are connected so we need to disconnect
|
|
307
|
+
fail(LibrdKafkaError.create(err)); return;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
self._isConnecting = false;
|
|
311
|
+
// We got the metadata otherwise. It is set according to above param
|
|
312
|
+
// Set it here as well so subsequent ready callbacks
|
|
313
|
+
// can check it
|
|
314
|
+
self._isConnected = true;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Ready event. Called when the Client connects successfully
|
|
318
|
+
*
|
|
319
|
+
* @event RdKafka.Client#ready
|
|
320
|
+
* @type {object}
|
|
321
|
+
* @property {string} name - the name of the client.
|
|
322
|
+
*/
|
|
323
|
+
self.emit('ready', info, metadata);
|
|
324
|
+
next(null, metadata); return;
|
|
325
|
+
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
return self;
|
|
331
|
+
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Get the native Kafka client.
|
|
336
|
+
*
|
|
337
|
+
* You probably shouldn't use this, but if you want to execute methods directly
|
|
338
|
+
* on the C++ wrapper you can do it here.
|
|
339
|
+
*
|
|
340
|
+
* @see connection.cc
|
|
341
|
+
* @return {Connection} - The native Kafka client.
|
|
342
|
+
*/
|
|
343
|
+
Client.prototype.getClient = function() {
|
|
344
|
+
return this._client;
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Find out how long we have been connected to Kafka.
|
|
349
|
+
*
|
|
350
|
+
* @return {number} - Milliseconds since the connection has been established.
|
|
351
|
+
*/
|
|
352
|
+
Client.prototype.connectedTime = function() {
|
|
353
|
+
if (!this.isConnected()) {
|
|
354
|
+
return 0;
|
|
355
|
+
}
|
|
356
|
+
return Date.now() - this.metrics.connectionOpened;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Whether or not we are connected to Kafka.
|
|
361
|
+
*
|
|
362
|
+
* @return {boolean} - Whether we are connected.
|
|
363
|
+
*/
|
|
364
|
+
Client.prototype.isConnected = function() {
|
|
365
|
+
return !!(this._isConnected && this._client);
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Get the last error emitted if it exists.
|
|
370
|
+
*
|
|
371
|
+
* @return {LibrdKafkaError?} - Returns the LibrdKafkaError or null if
|
|
372
|
+
* one hasn't been thrown.
|
|
373
|
+
*/
|
|
374
|
+
Client.prototype.getLastError = function() {
|
|
375
|
+
return this.lastError || null;
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Disconnect from the Kafka client.
|
|
380
|
+
*
|
|
381
|
+
* This method will disconnect us from Kafka unless we are already in a
|
|
382
|
+
* disconnecting state. Use this when you're done reading or producing messages
|
|
383
|
+
* on a given client.
|
|
384
|
+
*
|
|
385
|
+
* It will also emit the disconnected event.
|
|
386
|
+
*
|
|
387
|
+
* @fires RdKafka.Client#disconnected
|
|
388
|
+
* @param {function} cb - Callback to call when disconnection is complete.
|
|
389
|
+
*/
|
|
390
|
+
Client.prototype.disconnect = function(cb) {
|
|
391
|
+
if (this._hasUnderlyingClient) {
|
|
392
|
+
// This is a derived client.
|
|
393
|
+
// We don't want to disconnect it as it's controlled by the underlying client.
|
|
394
|
+
// No one should be reaching this method in the first place if they use the
|
|
395
|
+
// API correctly, but it is possible to do so accidentally.
|
|
396
|
+
throw new Error('Cannot disconnect an existing client');
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
var self = this;
|
|
400
|
+
|
|
401
|
+
if (!this._isDisconnecting && this._client) {
|
|
402
|
+
this._isDisconnecting = true;
|
|
403
|
+
this._client.disconnect(function() {
|
|
404
|
+
// this take 5000 milliseconds. Librdkafka needs to make sure the memory
|
|
405
|
+
// has been cleaned up before we delete things. @see RdKafka::wait_destroyed
|
|
406
|
+
self._client.configureCallbacks(false, self._cb_configs);
|
|
407
|
+
|
|
408
|
+
// Broadcast metrics. Gives people one last chance to do something with them
|
|
409
|
+
self._isDisconnecting = false;
|
|
410
|
+
var metricsCopy = Object.assign({}, self.metrics);
|
|
411
|
+
/**
|
|
412
|
+
* Disconnect event. Called after disconnection is finished.
|
|
413
|
+
*
|
|
414
|
+
* @event RdKafka.Client#disconnected
|
|
415
|
+
* @type {object}
|
|
416
|
+
* @property {date} connectionOpened - when the connection was opened.
|
|
417
|
+
* @memberof RdKafka
|
|
418
|
+
*/
|
|
419
|
+
self.emit('disconnected', metricsCopy);
|
|
420
|
+
if (cb) {
|
|
421
|
+
cb(null, metricsCopy);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
});
|
|
425
|
+
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return self;
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Get client metadata.
|
|
433
|
+
*
|
|
434
|
+
* Use {@link RdKafka.AdminClient#describeTopics} instead for fetching metadata for specific
|
|
435
|
+
* topics.
|
|
436
|
+
*
|
|
437
|
+
* Note: using a `metadataOptions.topic` parameter has a potential side-effect.
|
|
438
|
+
* A Topic object will be created, if it did not exist yet, with default options
|
|
439
|
+
* and it will be cached by librdkafka.
|
|
440
|
+
*
|
|
441
|
+
* A subsequent call to create the topic object with specific options (e.g. `acks`) will return
|
|
442
|
+
* the previous instance and the specific options will be silently ignored.
|
|
443
|
+
*
|
|
444
|
+
* To avoid this side effect, the topic object can be created with the expected options before requesting metadata,
|
|
445
|
+
* or the metadata request can be performed for all topics (by omitting `metadataOptions.topic`).
|
|
446
|
+
*
|
|
447
|
+
* @param {object} metadataOptions - Metadata options to pass to the client.
|
|
448
|
+
* @param {string} metadataOptions.topic - Topic string for which to fetch
|
|
449
|
+
* metadata
|
|
450
|
+
* @param {number} metadataOptions.timeout - Max time, in ms, to try to fetch
|
|
451
|
+
* metadata before timing out. Defaults to 3000.
|
|
452
|
+
* @param {function} cb - Callback to fire with the metadata.
|
|
453
|
+
*/
|
|
454
|
+
Client.prototype.getMetadata = function(metadataOptions, cb) {
|
|
455
|
+
if (!this.isConnected()) {
|
|
456
|
+
return cb(new Error('Client is disconnected'));
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
var self = this;
|
|
460
|
+
|
|
461
|
+
this._client.getMetadata(metadataOptions || {}, function(err, metadata) {
|
|
462
|
+
if (err) {
|
|
463
|
+
if (cb) {
|
|
464
|
+
cb(LibrdKafkaError.create(err));
|
|
465
|
+
}
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// No error otherwise
|
|
470
|
+
self._metadata = metadata;
|
|
471
|
+
|
|
472
|
+
if (cb) {
|
|
473
|
+
cb(null, metadata);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
};
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Query offsets from the broker.
|
|
482
|
+
*
|
|
483
|
+
* This function makes a call to the broker to get the current low (oldest/beginning)
|
|
484
|
+
* and high (newest/end) offsets for a topic partition.
|
|
485
|
+
*
|
|
486
|
+
* @param {string} topic - Topic to recieve offsets from.
|
|
487
|
+
* @param {number} partition - Partition of the provided topic to recieve offsets from
|
|
488
|
+
* @param {number} timeout - Number of ms to wait to recieve a response.
|
|
489
|
+
* @param {RdKafka.ClientClient~watermarkOffsetsCallback} cb - Callback to fire with the offsets.
|
|
490
|
+
*/
|
|
491
|
+
Client.prototype.queryWatermarkOffsets = function(topic, partition, timeout, cb) {
|
|
492
|
+
if (!this.isConnected()) {
|
|
493
|
+
if (cb) {
|
|
494
|
+
return cb(new Error('Client is disconnected'));
|
|
495
|
+
} else {
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
if (typeof timeout === 'function') {
|
|
501
|
+
cb = timeout;
|
|
502
|
+
timeout = 1000;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (!timeout) {
|
|
506
|
+
timeout = 1000;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
this._client.queryWatermarkOffsets(topic, partition, timeout, function(err, offsets) {
|
|
510
|
+
if (err) {
|
|
511
|
+
if (cb) {
|
|
512
|
+
cb(LibrdKafkaError.create(err));
|
|
513
|
+
}
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
if (cb) {
|
|
518
|
+
cb(null, offsets);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Query offsets for times from the broker.
|
|
526
|
+
*
|
|
527
|
+
* This function makes a call to the broker to get the offsets for times specified.
|
|
528
|
+
*
|
|
529
|
+
* @param {TopicPartition[]} toppars - Array of topic partitions. The offset in these
|
|
530
|
+
* should instead refer to a timestamp you want
|
|
531
|
+
* offsets for
|
|
532
|
+
* @param {number} timeout - Number of ms to wait to recieve a response.
|
|
533
|
+
* @param {RdKafka.Client~offsetsForTimesCallback} cb - Callback to fire with the filled in offsets.
|
|
534
|
+
*/
|
|
535
|
+
Client.prototype.offsetsForTimes = function(toppars, timeout, cb) {
|
|
536
|
+
if (!this.isConnected()) {
|
|
537
|
+
if (cb) {
|
|
538
|
+
return cb(new Error('Client is disconnected'));
|
|
539
|
+
} else {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
if (typeof timeout === 'function') {
|
|
545
|
+
cb = timeout;
|
|
546
|
+
timeout = 1000;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
if (!timeout) {
|
|
550
|
+
timeout = 1000;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
this._client.offsetsForTimes(toppars, timeout, function(err, toppars) {
|
|
554
|
+
if (err) {
|
|
555
|
+
if (cb) {
|
|
556
|
+
cb(LibrdKafkaError.create(err));
|
|
557
|
+
}
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (cb) {
|
|
562
|
+
cb(null, toppars);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
});
|
|
566
|
+
};
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Change SASL credentials to be sent on the next authentication attempt.
|
|
570
|
+
*
|
|
571
|
+
* Only applicable if SASL authentication is being used.
|
|
572
|
+
* @param {string} username
|
|
573
|
+
* @param {string} password
|
|
574
|
+
*/
|
|
575
|
+
Client.prototype.setSaslCredentials = function(username, password) {
|
|
576
|
+
if (!this.isConnected()) {
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
this._client.setSaslCredentials(username, password);
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* Wrap a potential RdKafka error.
|
|
585
|
+
*
|
|
586
|
+
* This internal method is meant to take a return value
|
|
587
|
+
* from a function that returns an RdKafka error code, throw if it
|
|
588
|
+
* is an error (Making it a proper librdkafka error object), or
|
|
589
|
+
* return the appropriate value otherwise.
|
|
590
|
+
*
|
|
591
|
+
* It is intended to be used in a return statement,
|
|
592
|
+
*
|
|
593
|
+
* @private
|
|
594
|
+
* @param {number} errorCode - Error code returned from a native method
|
|
595
|
+
* @param {bool} intIsError - If specified true, any non-number return type will be classified as a success
|
|
596
|
+
* @return {boolean} - Returns true or the method return value unless it throws.
|
|
597
|
+
*/
|
|
598
|
+
Client.prototype._errorWrap = function(errorCode, intIsError) {
|
|
599
|
+
var returnValue = true;
|
|
600
|
+
if (intIsError) {
|
|
601
|
+
returnValue = errorCode;
|
|
602
|
+
errorCode = typeof errorCode === 'number' ? errorCode : 0;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
if (errorCode !== LibrdKafkaError.codes.ERR_NO_ERROR) {
|
|
606
|
+
var e = LibrdKafkaError.create(errorCode);
|
|
607
|
+
throw e;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
return returnValue;
|
|
611
|
+
};
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* This callback is used to pass metadata or an error after a successful
|
|
615
|
+
* connection
|
|
616
|
+
*
|
|
617
|
+
* @callback RdKafka.Client~connectionCallback
|
|
618
|
+
* @param {Error} err - An error, if one occurred while connecting.
|
|
619
|
+
* @param {RdKafka.Client~Metadata} metadata - Metadata object.
|
|
620
|
+
*/
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* This callback is used to pass offsets or an error after a successful
|
|
624
|
+
* query
|
|
625
|
+
*
|
|
626
|
+
* @callback RdKafka.Client~watermarkOffsetsCallback
|
|
627
|
+
* @param {Error} err - An error, if one occurred while connecting.
|
|
628
|
+
* @param {RdKafka.Client~watermarkOffsets} offsets - Watermark offsets
|
|
629
|
+
*/
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* This callback is used to pass toppars or an error after a successful
|
|
633
|
+
* times query
|
|
634
|
+
*
|
|
635
|
+
* @callback RdKafka.Client~offsetsForTimesCallback
|
|
636
|
+
* @param {Error} err - An error, if one occurred while connecting.
|
|
637
|
+
* @param {TopicPartition[]} toppars - Topic partitions with offsets filled in
|
|
638
|
+
*/
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* @typedef {object} RdKafka.Client~watermarkOffsets
|
|
642
|
+
* @property {number} high - High (newest/end) offset
|
|
643
|
+
* @property {number} low - Low (oldest/beginning) offset
|
|
644
|
+
*/
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* @typedef {object} RdKafka.Client~MetadataBroker
|
|
648
|
+
* @property {number} id - Broker ID
|
|
649
|
+
* @property {string} host - Broker host
|
|
650
|
+
* @property {number} port - Broker port.
|
|
651
|
+
*/
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* @typedef {object} RdKafka.Client~MetadataTopic
|
|
655
|
+
* @property {string} name - Topic name
|
|
656
|
+
* @property {RdKafka.Client~MetadataPartition[]} partitions - Array of partitions
|
|
657
|
+
*/
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* @typedef {object} RdKafka.Client~MetadataPartition
|
|
661
|
+
* @property {number} id - Partition id
|
|
662
|
+
* @property {number} leader - Broker ID for the partition leader
|
|
663
|
+
* @property {number[]} replicas - Array of replica IDs
|
|
664
|
+
* @property {number[]} isrs - Array of ISRS ids
|
|
665
|
+
*/
|
|
666
|
+
|
|
667
|
+
/**
|
|
668
|
+
* Metadata object.
|
|
669
|
+
*
|
|
670
|
+
* This is the representation of Kafka metadata in JavaScript.
|
|
671
|
+
*
|
|
672
|
+
* @typedef {object} RdKafka.Client~Metadata
|
|
673
|
+
* @property {number} orig_broker_id - The broker ID of the original bootstrap
|
|
674
|
+
* broker.
|
|
675
|
+
* @property {string} orig_broker_name - The name of the original bootstrap
|
|
676
|
+
* broker.
|
|
677
|
+
* @property {RdKafka.Client~MetadataBroker[]} brokers - An array of broker objects
|
|
678
|
+
* @property {RdKafka.Client~MetadataTopic[]} topics - An array of topics.
|
|
679
|
+
*/
|