mediawiki/services/eventstreams: main (log #310914)

sourcepatches

This run took 1179 seconds.

$ date
Sat Jun  5 10:42:50 UTC 2021

$ git clone file:///srv/git/mediawiki-services-eventstreams.git repo --depth=1 -b master
Cloning into 'repo'...

$ git config user.name libraryupgrader

$ git config user.email tools.libraryupgrader@tools.wmflabs.org

$ git submodule update --init

$ grr init
Installed commit-msg hook.

$ git show-ref refs/heads/master
c4a972a0e16ba384206b3b1a40027779f7e366a9 refs/heads/master

$ npm i --package-lock-only
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated kad-fs@0.0.4: Please upgrade to @kadenceproject/kadence - See https://kadence.github.io
npm WARN deprecated kad-memstore@0.0.1: Please upgrade to @kadenceproject/kadence - See https://kadence.github.io
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN notsup Unsupported engine for node-rdkafka@2.4.2: wanted: {"npm":"^2.7.3"} (current: {"node":"10.24.0","npm":"6.14.5"})
npm WARN notsup Not compatible with your version of node/npm: node-rdkafka@2.4.2

added 488 packages from 25 contributors and audited 492 packages in 376.656s
found 5 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

$ package-lock-lint package-lock.json
0 issues found in: package-lock.json

Editing .gitignore to remove package-lock.json
$ npm install
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated kad-fs@0.0.4: Please upgrade to @kadenceproject/kadence - See https://kadence.github.io
npm WARN deprecated kad-memstore@0.0.1: Please upgrade to @kadenceproject/kadence - See https://kadence.github.io

> dtrace-provider@0.8.8 install /src/repo/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: Entering directory '/src/repo/node_modules/dtrace-provider/build'
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: Leaving directory '/src/repo/node_modules/dtrace-provider/build'

> gc-stats@1.4.0 install /src/repo/node_modules/gc-stats
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
[gc-stats] Success: "/src/repo/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node-v64-linux-x64/gcstats.node" is installed via remote

> heapdump@0.3.15 install /src/repo/node_modules/heapdump
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/heapdump/build'
  CXX(target) Release/obj.target/addon/src/heapdump.o
In file included from ../src/heapdump.cc:15:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/heapdump.cc:136:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../src/heapdump.cc:15:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/addon.node
  COPY Release/addon.node
make: Leaving directory '/src/repo/node_modules/heapdump/build'

> node-rdkafka@2.4.2 install /src/repo/node_modules/node-rdkafka
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/node-rdkafka/build'
  ACTION deps_librdkafka_gyp_librdkafka_target_configure deps/librdkafka/config.h
checking for OS or distribution... ok (Linux)
checking for C compiler from CC env... failed
checking for gcc (by command)... ok
checking for C++ compiler from CXX env... failed
checking for C++ compiler (g++)... ok
checking executable ld... ok
checking executable nm... ok
checking executable objdump... ok
checking executable strip... ok
checking for pkgconfig (by command)... ok
checking for install (by command)... ok
checking for PIC (by compile)... ok
checking for GNU-compatible linker options... ok
checking for GNU linker-script ld flag... ok
checking for __atomic_32 (by compile)... ok
checking for __atomic_64 (by compile)... ok
checking for socket (by compile)... ok
parsing version '0x000b05ff'... ok (0.11.5)
checking for librt (by pkg-config)... failed
checking for librt (by compile)... ok
checking for libpthread (by pkg-config)... failed
checking for libpthread (by compile)... ok
checking for libdl (by pkg-config)... failed
checking for libdl (by compile)... ok
checking for zlib (by pkg-config)... ok
checking for zlib (by compile)... ok (cached)
checking for libcrypto (by pkg-config)... failed
checking for libcrypto (by compile)... failed (disable)
checking for libm (by pkg-config)... failed
checking for libm (by compile)... ok
checking for liblz4 (by pkg-config)... failed
checking for liblz4 (by compile)... failed (disable)
checking for rapidjson (by compile)... failed (disable)
checking for libssl (by pkg-config)... failed
checking for libssl (by compile)... failed (disable)
checking for libsasl2 (by pkg-config)... failed
checking for libsasl2 (by compile)... failed (disable)
checking for libsasl (by pkg-config)... failed
checking for libsasl (by compile)... failed (disable)
checking for crc32chw (by compile)... ok
checking for regex (by compile)... ok
checking for strndup (by compile)... ok
checking for strerror_r (by compile)... ok
checking for pthread_setname_gnu (by compile)... ok
checking for nm (by env NM)... ok (cached)
checking for python (by command)... ok
Generated Makefile.config
Generated config.h

Configuration summary:
  prefix                   /src/repo/node_modules/node-rdkafka/build/deps
  ARCH                     x86_64
  CPU                      generic
  GEN_PKG_CONFIG           y
  ENABLE_DEVEL             n
  ENABLE_VALGRIND          n
  ENABLE_REFCNT_DEBUG      n
  ENABLE_SHAREDPTR_DEBUG   n
  ENABLE_LZ4_EXT           y
  ENABLE_SSL               y
  ENABLE_SASL              y
  libdir                   /src/repo/node_modules/node-rdkafka/build/deps
  MKL_APP_NAME             librdkafka
  MKL_APP_DESC_ONELINE     The Apache Kafka C/C++ library
  LDFLAGS                  -L/src/repo/node_modules/node-rdkafka/build/deps
  MKL_DISTRO               Linux
  SOLIB_EXT                .so
  CC                       gcc
  CXX                      g++
  LD                       ld
  NM                       nm
  OBJDUMP                  objdump
  STRIP                    strip
  CPPFLAGS                 -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align
  PKG_CONFIG               pkg-config
  INSTALL                  install
  LIB_LDFLAGS              -shared -Wl,-soname,$(LIBFILENAME)
  LDFLAG_LINKERSCRIPT      -Wl,--version-script=
  RDKAFKA_VERSION_STR      0.11.5
  MKL_APP_VERSION          0.11.5
  LIBS                     -lm -lz -ldl -lpthread -lrt
  CFLAGS                   
  CXXFLAGS                 -Wno-non-virtual-dtor
  SYMDUMPER                $(NM) -D
  exec_prefix              /src/repo/node_modules/node-rdkafka/build/deps
  bindir                   /src/repo/node_modules/node-rdkafka/build/deps/bin
  sbindir                  /src/repo/node_modules/node-rdkafka/build/deps/sbin
  libexecdir               /src/repo/node_modules/node-rdkafka/build/deps/libexec
  datadir                  /src/repo/node_modules/node-rdkafka/build/deps/share
  sysconfdir               /src/repo/node_modules/node-rdkafka/build/deps/etc
  sharedstatedir           /src/repo/node_modules/node-rdkafka/build/deps/com
  localstatedir            /src/repo/node_modules/node-rdkafka/build/deps/var
  includedir               /src/repo/node_modules/node-rdkafka/build/deps/include
  infodir                  /src/repo/node_modules/node-rdkafka/build/deps/info
  mandir                   /src/repo/node_modules/node-rdkafka/build/deps/man
Generated config.cache

Now type 'make' to build
  TOUCH 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
  ACTION deps_librdkafka_gyp_librdkafka_target_build_dependencies 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
make[1]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka.c -o rdkafka.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_broker.c -o rdkafka_broker.o
rdkafka_broker.c: In function ‘rd_kafka_broker_update’:
rdkafka_broker.c:4172:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rko->rko_u.node.nodename, nodename,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     sizeof(rko->rko_u.node.nodename)-1);
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rdkafka_broker.c: In function ‘rd_kafka_broker_op_serve’:
rdkafka_broker.c:2194:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rkb->rkb_nodename,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                 rko->rko_u.node.nodename,
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~
                                 sizeof(rkb->rkb_nodename)-1);
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rdkafka_broker.c:2237:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rkb->rkb_name, brokername,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 sizeof(rkb->rkb_name)-1);
                                 ~~~~~~~~~~~~~~~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msg.c -o rdkafka_msg.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_topic.c -o rdkafka_topic.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_conf.c -o rdkafka_conf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_timer.c -o rdkafka_timer.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_offset.c -o rdkafka_offset.o
In file included from rd.h:68,
                 from rdkafka_int.h:44,
                 from rdkafka_offset.c:51:
rdkafka_offset.c: In function ‘rd_kafka_offset_file_init’:
rdkafka_offset.c:918:51: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
                 rd_snprintf(spath, sizeof(spath), "%s%s%s",
                                                   ^~~~~~~~
rdposix.h:85:36: note: in definition of macro ‘rd_snprintf’
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                                    ^~~~~~~~~~~
rdposix.h:85:27: note: ‘snprintf’ output 1 or more bytes (assuming 4097) into a destination of size 4096
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                           ^~~~~~~~~~~~~~~~~~~~~
rdkafka_offset.c:918:17: note: in expansion of macro ‘rd_snprintf’
                 rd_snprintf(spath, sizeof(spath), "%s%s%s",
                 ^~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_transport.c -o rdkafka_transport.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_buf.c -o rdkafka_buf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_queue.c -o rdkafka_queue.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_op.c -o rdkafka_op.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_request.c -o rdkafka_request.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_cgrp.c -o rdkafka_cgrp.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_pattern.c -o rdkafka_pattern.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_partition.c -o rdkafka_partition.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_subscription.c -o rdkafka_subscription.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_assignor.c -o rdkafka_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_range_assignor.c -o rdkafka_range_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_roundrobin_assignor.c -o rdkafka_roundrobin_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_feature.c -o rdkafka_feature.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdcrc32.c -o rdcrc32.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c crc32c.c -o crc32c.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdmurmur2.c -o rdmurmur2.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdaddr.c -o rdaddr.o
In file included from rd.h:68,
                 from rdaddr.c:30:
rdaddr.c: In function ‘rd_sockaddr2str’:
rdaddr.c:77:6: warning: ‘%s’ directive output may be truncated writing up to 63 bytes into a region of size between 60 and 61 [-Wformat-truncation=]
      "%s:%s",
      ^~~~~~~
rdaddr.c:79:6:
      portstr);
      ~~~~~~~
rdposix.h:85:36: note: in definition of macro ‘rd_snprintf’
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                                    ^~~~~~~~~~~
rdposix.h:85:27: note: ‘snprintf’ output between 2 and 66 bytes into a destination of size 62
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                           ^~~~~~~~~~~~~~~~~~~~~
rdaddr.c:76:4: note: in expansion of macro ‘rd_snprintf’
    rd_snprintf(ret[reti]+len, sizeof(ret[reti])-len,
    ^~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdrand.c -o rdrand.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdlist.c -o rdlist.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c tinycthread.c -o tinycthread.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdlog.c -o rdlog.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdstring.c -o rdstring.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_event.c -o rdkafka_event.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_metadata.c -o rdkafka_metadata.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdregex.c -o rdregex.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdports.c -o rdports.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_metadata_cache.c -o rdkafka_metadata_cache.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdavl.c -o rdavl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_sasl.c -o rdkafka_sasl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_sasl_plain.c -o rdkafka_sasl_plain.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_interceptor.c -o rdkafka_interceptor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msgset_writer.c -o rdkafka_msgset_writer.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msgset_reader.c -o rdkafka_msgset_reader.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_header.c -o rdkafka_header.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_admin.c -o rdkafka_admin.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_aux.c -o rdkafka_aux.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_background.c -o rdkafka_background.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdvarint.c -o rdvarint.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdbuf.c -o rdbuf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdunittest.c -o rdunittest.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c snappy.c -o snappy.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdgz.c -o rdgz.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdhdrhistogram.c -o rdhdrhistogram.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_lz4.c -o rdkafka_lz4.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c xxhash.c -o xxhash.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4.c -o lz4.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4frame.c -o lz4frame.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4hc.c -o lz4hc.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rddl.c -o rddl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_plugin.c -o rdkafka_plugin.o
Generating linker script librdkafka.lds from rdkafka.h
Creating shared library librdkafka.so.1
gcc -L/src/repo/node_modules/node-rdkafka/build/deps -shared -Wl,-soname,librdkafka.so.1 -Wl,--version-script=librdkafka.lds rdkafka.o rdkafka_broker.o rdkafka_msg.o rdkafka_topic.o rdkafka_conf.o rdkafka_timer.o rdkafka_offset.o rdkafka_transport.o rdkafka_buf.o rdkafka_queue.o rdkafka_op.o rdkafka_request.o rdkafka_cgrp.o rdkafka_pattern.o rdkafka_partition.o rdkafka_subscription.o rdkafka_assignor.o rdkafka_range_assignor.o rdkafka_roundrobin_assignor.o rdkafka_feature.o rdcrc32.o crc32c.o rdmurmur2.o rdaddr.o rdrand.o rdlist.o tinycthread.o rdlog.o rdstring.o rdkafka_event.o rdkafka_metadata.o rdregex.o rdports.o rdkafka_metadata_cache.o rdavl.o rdkafka_sasl.o rdkafka_sasl_plain.o rdkafka_interceptor.o rdkafka_msgset_writer.o rdkafka_msgset_reader.o rdkafka_header.o rdkafka_admin.o rdkafka_aux.o rdkafka_background.o rdvarint.o rdbuf.o rdunittest.o snappy.o rdgz.o rdhdrhistogram.o rdkafka_lz4.o xxhash.o lz4.o lz4frame.o lz4hc.o rddl.o rdkafka_plugin.o -o librdkafka.so.1 -lm -lz -ldl -lpthread -lrt
Creating static library librdkafka.a
ar rcs librdkafka.a rdkafka.o rdkafka_broker.o rdkafka_msg.o rdkafka_topic.o rdkafka_conf.o rdkafka_timer.o rdkafka_offset.o rdkafka_transport.o rdkafka_buf.o rdkafka_queue.o rdkafka_op.o rdkafka_request.o rdkafka_cgrp.o rdkafka_pattern.o rdkafka_partition.o rdkafka_subscription.o rdkafka_assignor.o rdkafka_range_assignor.o rdkafka_roundrobin_assignor.o rdkafka_feature.o rdcrc32.o crc32c.o rdmurmur2.o rdaddr.o rdrand.o rdlist.o tinycthread.o rdlog.o rdstring.o rdkafka_event.o rdkafka_metadata.o rdregex.o rdports.o rdkafka_metadata_cache.o rdavl.o rdkafka_sasl.o rdkafka_sasl_plain.o rdkafka_interceptor.o rdkafka_msgset_writer.o rdkafka_msgset_reader.o rdkafka_header.o rdkafka_admin.o rdkafka_aux.o rdkafka_background.o rdvarint.o rdbuf.o rdunittest.o snappy.o rdgz.o rdhdrhistogram.o rdkafka_lz4.o xxhash.o lz4.o lz4frame.o lz4hc.o rddl.o rdkafka_plugin.o
Creating librdkafka.so symlink
rm -f "librdkafka.so" && ln -s "librdkafka.so.1" "librdkafka.so"
Generating pkg-config file rdkafka.pc
Generating pkg-config file rdkafka-static.pc
Checking librdkafka integrity
librdkafka.so.1                OK
librdkafka.a                   OK
Symbol visibility              OK
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c RdKafka.cpp -o RdKafka.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ConfImpl.cpp -o ConfImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c HandleImpl.cpp -o HandleImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ConsumerImpl.cpp -o ConsumerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ProducerImpl.cpp -o ProducerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c KafkaConsumerImpl.cpp -o KafkaConsumerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c TopicImpl.cpp -o TopicImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c TopicPartitionImpl.cpp -o TopicPartitionImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c MessageImpl.cpp -o MessageImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c QueueImpl.cpp -o QueueImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c MetadataImpl.cpp -o MetadataImpl.o
Creating shared library librdkafka++.so.1
gcc -L/src/repo/node_modules/node-rdkafka/build/deps -shared -Wl,-soname,librdkafka++.so.1 RdKafka.o ConfImpl.o HandleImpl.o ConsumerImpl.o ProducerImpl.o KafkaConsumerImpl.o TopicImpl.o TopicPartitionImpl.o MessageImpl.o QueueImpl.o MetadataImpl.o -o librdkafka++.so.1 -L../src -lrdkafka -lstdc++
Creating static library librdkafka++.a
ar rcs librdkafka++.a RdKafka.o ConfImpl.o HandleImpl.o ConsumerImpl.o ProducerImpl.o KafkaConsumerImpl.o TopicImpl.o TopicPartitionImpl.o MessageImpl.o QueueImpl.o MetadataImpl.o
Creating librdkafka++.so symlink
rm -f "librdkafka++.so" && ln -s "librdkafka++.so.1" "librdkafka++.so"
Generating pkg-config file rdkafka++.pc
Generating pkg-config file rdkafka++-static.pc
Checking librdkafka++ integrity
librdkafka++.so.1              OK
librdkafka++.a                 OK
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
Install librdkafka to /src/repo/node_modules/node-rdkafka/build/deps
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install rdkafka.h $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install librdkafka.a $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install librdkafka.so.1 $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
[ -f "rdkafka.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
[ -f "rdkafka-static.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka-static.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
(cd $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps && ln -sf librdkafka.so.1 librdkafka.so)
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
Install librdkafka++ to /src/repo/node_modules/node-rdkafka/build/deps
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install rdkafkacpp.h $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install librdkafka++.a $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install librdkafka++.so.1 $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
[ -f "rdkafka++.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka++.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
[ -f "rdkafka++-static.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka++-static.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
(cd $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps && ln -sf librdkafka++.so.1 librdkafka++.so)
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
make[1]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka'
  TOUCH Release/obj.target/deps/librdkafka.stamp
  CXX(target) Release/obj.target/node-librdkafka/src/binding.o
In file included from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/binding.h:13,
                 from ../src/binding.cc:11:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/binding.cc:164:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(kafka, Init)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/binding.h:13,
                 from ../src/binding.cc:11:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/callbacks.o
../src/callbacks.cc: In member function ‘void NodeKafka::Callbacks::Dispatcher::Dispatch(int, v8::Local<v8::Value>*)’:
../src/callbacks.cc:102:25: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     cb.Call(_argc, _argv);
                         ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/callbacks.cc: In member function ‘virtual int32_t NodeKafka::Callbacks::Partitioner::partitioner_cb(const RdKafka::Topic*, const string*, int32_t, void*)’:
../src/callbacks.cc:564:60: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   v8::Local<v8::Value> return_value = callback.Call(3, argv);
                                                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/callbacks.cc: In member function ‘void NodeKafka::Callbacks::Partitioner::SetCallback(v8::Local<v8::Function>)’:
../src/callbacks.cc:601:14: warning: ‘v8::Local<v8::Value> Nan::Callback::operator()(v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback(cb);
              ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1640:46: note: declared here
   NAN_DEPRECATED inline v8::Local<v8::Value> operator()(
                                              ^~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/common.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/common.h:13,
                 from ../src/common.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/config.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/config.h:13,
                 from ../src/config.cc:14:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/connection.o
In file included from ../src/connection.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/connection.h:13,
                 from ../src/connection.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/connection.h:13,
                 from ../src/connection.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/errors.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/errors.h:13,
                 from ../src/errors.cc:12:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/kafka-consumer.o
In file included from ../src/kafka-consumer.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/kafka-consumer.cc: In static member function ‘static void NodeKafka::KafkaConsumer::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/kafka-consumer.cc:560:64: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_GLOBAL, info[0]->ToObject(), errstr);
                                                                ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/kafka-consumer.cc:567:63: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);
                                                               ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/producer.o
In file included from ../src/producer.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/producer.cc: In static member function ‘static void NodeKafka::Producer::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/producer.cc:115:64: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_GLOBAL, info[0]->ToObject(), errstr);
                                                                ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc:122:63: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);
                                                               ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE NodeKafka::Producer::NodeProduce(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/producer.cc:373:69: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Object> message_buffer_object = info[2]->ToObject();
                                                                     ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc:396:65: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Object> key_buffer_object = info[3]->ToObject();
                                                                 ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/topic.o
../src/topic.cc: In static member function ‘static void NodeKafka::Topic::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/topic.cc:118:72: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     config = Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);  // NOLINT
                                                                        ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/common.h:13,
                 from ../src/topic.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/workers.o
In file included from ../src/workers.cc:13:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::Handle::OffsetsForTimes::HandleOKCallback()’:
../src/workers.cc:69:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::Handle::OffsetsForTimes::HandleErrorCallback()’:
../src/workers.cc:78:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionMetadata::HandleOKCallback()’:
../src/workers.cc:116:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionMetadata::HandleErrorCallback()’:
../src/workers.cc:127:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionQueryWatermarkOffsets::HandleOKCallback()’:
../src/workers.cc:174:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionQueryWatermarkOffsets::HandleErrorCallback()’:
../src/workers.cc:183:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerConnect::HandleOKCallback()’:
../src/workers.cc:223:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerConnect::HandleErrorCallback()’:
../src/workers.cc:232:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerDisconnect::HandleOKCallback()’:
../src/workers.cc:261:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerFlush::HandleOKCallback()’:
../src/workers.cc:301:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConnect::HandleOKCallback()’:
../src/workers.cc:342:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConnect::HandleErrorCallback()’:
../src/workers.cc:351:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerDisconnect::HandleOKCallback()’:
../src/workers.cc:386:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerDisconnect::HandleErrorCallback()’:
../src/workers.cc:397:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeLoop::HandleMessageCallback(RdKafka::Message*)’:
../src/workers.cc:484:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeLoop::HandleErrorCallback()’:
../src/workers.cc:498:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeNum::HandleOKCallback()’:
../src/workers.cc:580:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeNum::HandleErrorCallback()’:
../src/workers.cc:597:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsume::HandleOKCallback()’:
../src/workers.cc:644:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsume::HandleErrorCallback()’:
../src/workers.cc:653:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerCommitted::HandleOKCallback()’:
../src/workers.cc:696:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerCommitted::HandleErrorCallback()’:
../src/workers.cc:705:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerSeek::HandleOKCallback()’:
../src/workers.cc:758:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerSeek::HandleErrorCallback()’:
../src/workers.cc:767:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/node-librdkafka.node
  COPY Release/node-librdkafka.node
rm 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
make: Leaving directory '/src/repo/node_modules/node-rdkafka/build'

> unix-dgram@2.0.4 install /src/repo/node_modules/unix-dgram
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/unix-dgram/build'
  CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o
In file included from ../../nan/nan.h:56,
                 from ../src/unix_dgram.cc:5:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/unix_dgram.cc:404:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(unix_dgram, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from ../src/unix_dgram.cc:5:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/unix_dgram.node
  COPY Release/unix_dgram.node
make: Leaving directory '/src/repo/node_modules/unix-dgram/build'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN notsup Unsupported engine for node-rdkafka@2.4.2: wanted: {"npm":"^2.7.3"} (current: {"node":"10.24.0","npm":"6.14.5"})
npm WARN notsup Not compatible with your version of node/npm: node-rdkafka@2.4.2

added 478 packages from 726 contributors and audited 482 packages in 457.483s

7 packages are looking for funding
  run `npm fund` for details

found 5 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

$ package-lock-lint package-lock.json
0 issues found in: package-lock.json

Upgrading n:eslint from ^5.9.0 -> 7.16.0
Upgrading n:eslint-config-wikimedia from ^0.10.1 -> 0.20.0
$ npm install

> core-js@3.14.0 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

npm WARN notsup Unsupported engine for eslint-plugin-wdio@7.4.2: wanted: {"node":">=12.0.0"} (current: {"node":"10.24.0","npm":"6.14.5"})
npm WARN notsup Not compatible with your version of node/npm: eslint-plugin-wdio@7.4.2

added 92 packages from 66 contributors, removed 27 packages, updated 27 packages and audited 547 packages in 237.712s

26 packages are looking for funding
  run `npm fund` for details

found 5 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

$ package-lock-lint package-lock.json
0 issues found in: package-lock.json

$ npm update eslint -depth 10

$ package-lock-lint package-lock.json
0 issues found in: package-lock.json

$ ./node_modules/.bin/eslint . --fix

/src/repo/app.js
   22:0  warning  The type 'bluebird' is undefined                                            jsdoc/no-undefined-types
   42:9  warning  Unused eslint-disable directive (no problems were reported from 'max-len')
  142:0  warning  The type 'Application' is undefined                                         jsdoc/no-undefined-types
  144:0  warning  The type 'bluebird' is undefined                                            jsdoc/no-undefined-types
  196:0  warning  The type 'Application' is undefined                                         jsdoc/no-undefined-types
  197:0  warning  The type 'bluebird' is undefined                                            jsdoc/no-undefined-types
  235:0  warning  The type 'bluebird' is undefined                                            jsdoc/no-undefined-types

/src/repo/lib/util.js
   41:0  warning  The type 'Request' is undefined      jsdoc/no-undefined-types
   99:0  warning  The type 'Application' is undefined  jsdoc/no-undefined-types
  143:0  warning  The type 'Application' is undefined  jsdoc/no-undefined-types
  223:0  warning  The type 'Router' is undefined       jsdoc/no-undefined-types
  243:0  warning  The type 'Application' is undefined  jsdoc/no-undefined-types

/src/repo/routes/stream.js
   28:1   warning  Missing JSDoc @return declaration                                           jsdoc/require-returns
  247:1   warning  Missing JSDoc @return declaration                                           jsdoc/require-returns
  381:17  warning  Unused eslint-disable directive (no problems were reported from 'max-len')

/src/repo/test/features/app/spec.js
   70:25  error    'spec' is already declared in the upper scope                                       no-shadow
  249:26  warning  Unused eslint-disable directive (no problems were reported from 'no-invalid-this')
  265:16  error    'spec' is already declared in the upper scope                                       no-shadow

/src/repo/test/features/info/info.js
  1:11  error  'describe' is already defined as a built-in global variable  no-redeclare
  1:21  error  'it' is already defined as a built-in global variable        no-redeclare
  1:25  error  'before' is already defined as a built-in global variable    no-redeclare
  1:33  error  'after' is already defined as a built-in global variable     no-redeclare

/src/repo/test/utils/assert.js
   1:1  warning  Unused eslint-disable directive (no problems were reported from 'no-console')
  23:0  warning  The type 'integer' is undefined                                                jsdoc/no-undefined-types

/src/repo/test/utils/server.js
   9:9   error  Unexpected dangling '_' in '_spec'     no-underscore-dangle
  13:14  error  Unexpected dangling '_' in '_running'  no-underscore-dangle
  19:30  error  Unexpected dangling '_' in '_impl'     no-underscore-dangle
  19:30  error  Unexpected dangling '_' in '_runner'   no-underscore-dangle
  20:27  error  Unexpected dangling '_' in '_impl'     no-underscore-dangle
  20:27  error  Unexpected dangling '_' in '_runner'   no-underscore-dangle
  22:14  error  Unexpected dangling '_' in '_spec'     no-underscore-dangle
  30:17  error  Unexpected dangling '_' in '_spec'     no-underscore-dangle
  34:17  error  Unexpected dangling '_' in '_spec'     no-underscore-dangle
  40:27  error  Unexpected dangling '_' in '_impl'     no-underscore-dangle
  40:27  error  Unexpected dangling '_' in '_runner'   no-underscore-dangle
  41:27  error  Unexpected dangling '_' in '_spec'     no-underscore-dangle
  49:19  error  Unexpected dangling '_' in '_impl'     no-underscore-dangle
  49:19  error  Unexpected dangling '_' in '_runner'   no-underscore-dangle
  50:19  error  Unexpected dangling '_' in '_spec'     no-underscore-dangle

/src/repo/ui/src/apis/EventStreamsApi.js
  1:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

/src/repo/ui/src/config/index.js
  1:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

/src/repo/ui/src/main.js
  1:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

/src/repo/ui/src/router/index.js
  1:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

/src/repo/ui/src/utils/index.js
  57:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

✖ 44 problems (26 errors, 18 warnings)


$ ./node_modules/.bin/eslint . -f json
[{"filePath":"/src/repo/.eslintrc.json","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/app.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'bluebird' is undefined.","line":22,"column":null,"nodeType":"Block","endLine":22,"endColumn":null},{"ruleId":null,"message":"Unused eslint-disable directive (no problems were reported from 'max-len').","line":42,"column":9,"severity":1,"nodeType":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Application' is undefined.","line":142,"column":null,"nodeType":"Block","endLine":142,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'bluebird' is undefined.","line":144,"column":null,"nodeType":"Block","endLine":144,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Application' is undefined.","line":196,"column":null,"nodeType":"Block","endLine":196,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'bluebird' is undefined.","line":197,"column":null,"nodeType":"Block","endLine":197,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'bluebird' is undefined.","line":235,"column":null,"nodeType":"Block","endLine":235,"endColumn":null}],"errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst http = require('http');\nconst BBPromise = require('bluebird');\nconst express = require('express');\n// === EventStreams modification ===\n// const compression = require('compression');\n// === End EventStreams modification ===\nconst bodyParser = require('body-parser');\nconst fs = BBPromise.promisifyAll(require('fs'));\nconst sUtil = require('./lib/util');\nconst packageInfo = require('./package.json');\nconst yaml = require('js-yaml');\nconst addShutdown = require('http-shutdown');\nconst path = require('path');\n\n\n/**\n * Creates an express app and initialises it\n *\n * @param {Object} options the options to initialise the app with\n * @return {bluebird} the promise resolving to the app object\n */\nfunction initApp(options) {\n\n    // the main application object\n    const app = express();\n\n    // get the options and make them available in the app\n    app.logger = options.logger;    // the logging device\n    app.metrics = options.metrics;  // the metrics\n    app.conf = options.config;      // this app's config options\n    app.info = packageInfo;         // this app's package info\n\n    // ensure some sane defaults\n    app.conf.port = app.conf.port || 8888;\n    app.conf.interface = app.conf.interface || '0.0.0.0';\n    // eslint-disable-next-line max-len\n    app.conf.compression_level = app.conf.compression_level === undefined ? 3 : app.conf.compression_level;\n    app.conf.cors = app.conf.cors === undefined ? '*' : app.conf.cors;\n    if (app.conf.csp === undefined) {\n        // eslint-disable-next-line max-len\n        app.conf.csp = \"default-src 'self'; object-src 'none'; media-src *; img-src *; style-src *; frame-ancestors 'self'\";\n    }\n\n    // set outgoing proxy\n    if (app.conf.proxy) {\n        process.env.HTTP_PROXY = app.conf.proxy;\n        // if there is a list of domains which should\n        // not be proxied, set it\n        if (app.conf.no_proxy_list) {\n            if (Array.isArray(app.conf.no_proxy_list)) {\n                process.env.NO_PROXY = app.conf.no_proxy_list.join(',');\n            } else {\n                process.env.NO_PROXY = app.conf.no_proxy_list;\n            }\n        }\n    }\n\n    // set up header whitelisting for logging\n    if (!app.conf.log_header_whitelist) {\n        app.conf.log_header_whitelist = [\n            'cache-control', 'content-type', 'content-length', 'if-match',\n            'user-agent', 'x-request-id'\n        ];\n    }\n    app.conf.log_header_whitelist = new RegExp(`^(?:${app.conf.log_header_whitelist.map((item) => {\n        return item.trim();\n    }).join('|')})$`, 'i');\n\n    // set up the spec\n    if (!app.conf.spec) {\n        app.conf.spec = `${__dirname}/spec.yaml`;\n    }\n    if (app.conf.spec.constructor !== Object) {\n        try {\n            app.conf.spec = yaml.safeLoad(fs.readFileSync(app.conf.spec));\n        } catch (e) {\n            app.logger.log('warn/spec', `Could not load the spec: ${e}`);\n            app.conf.spec = {};\n        }\n    }\n    if (!app.conf.spec.openapi) {\n        app.conf.spec.openapi = '3.0.0';\n    }\n    if (!app.conf.spec.info) {\n        app.conf.spec.info = {\n            version: app.info.version,\n            title: app.info.name,\n            description: app.info.description\n        };\n    }\n    app.conf.spec.info.version = app.info.version;\n    if (!app.conf.spec.paths) {\n        app.conf.spec.paths = {};\n    }\n\n    // set the CORS and CSP headers\n    app.all('*', (req, res, next) => {\n        if (app.conf.cors !== false) {\n            res.header('access-control-allow-origin', app.conf.cors);\n            res.header('access-control-allow-headers', 'accept, x-requested-with, content-type');\n            res.header('access-control-expose-headers', 'etag');\n        }\n        if (app.conf.csp !== false) {\n            res.header('x-xss-protection', '1; mode=block');\n            res.header('x-content-type-options', 'nosniff');\n            res.header('x-frame-options', 'SAMEORIGIN');\n            res.header('content-security-policy', app.conf.csp);\n            res.header('x-content-security-policy', app.conf.csp);\n            res.header('x-webkit-csp', app.conf.csp);\n        }\n        sUtil.initAndLogRequest(req, app);\n        next();\n    });\n\n    // set up the user agent header string to use for requests\n    app.conf.user_agent = app.conf.user_agent || app.info.name;\n\n    // disable the X-Powered-By header\n    app.set('x-powered-by', false);\n    // disable the ETag header - users should provide them!\n    app.set('etag', false);\n\n    // === EventStreams modification ===\n    // Don't use compression, streams never end.\n    // app.use(compression({ level: app.conf.compression_level }));\n    // === End EventStreams modification ===\n\n    // use the JSON body parser\n    app.use(bodyParser.json({ limit: app.conf.max_body_size || '100kb' }));\n    // use the application/x-www-form-urlencoded parser\n    app.use(bodyParser.urlencoded({ extended: true }));\n\n    return BBPromise.resolve(app);\n\n}\n\n/**\n * Loads all routes declared in routes/ into the app\n *\n * @param {Application} app the application object to load routes into\n * @param {string} dir routes folder\n * @return {bluebird} a promise resolving to the app object\n */\nfunction loadRoutes(app, dir) {\n\n    // recursively load routes from .js files under routes/\n    return fs.readdirAsync(dir).map((fname) => {\n        return BBPromise.try(() => {\n            const resolvedPath = path.resolve(dir, fname);\n            const isDirectory = fs.statSync(resolvedPath).isDirectory();\n            if (isDirectory) {\n                loadRoutes(app, resolvedPath);\n            } else if (/\\.js$/.test(fname)) {\n                // import the route file\n                const route = require(`${dir}/${fname}`);\n                return route(app);\n            }\n        }).then((route) => {\n            if (route === undefined) {\n                return undefined;\n            }\n            // check that the route exports the object we need\n            if (route.constructor !== Object || !route.path || !route.router ||\n                !(route.api_version || route.skip_domain)) {\n                throw new TypeError(`routes/${fname} does not export the correct object!`);\n            }\n            // normalise the path to be used as the mount point\n            if (route.path[0] !== '/') {\n                route.path = `/${route.path}`;\n            }\n            if (route.path[route.path.length - 1] !== '/') {\n                route.path = `${route.path}/`;\n            }\n            if (!route.skip_domain) {\n                route.path = `/:domain/v${route.api_version}${route.path}`;\n            }\n            // wrap the route handlers with Promise.try() blocks\n            sUtil.wrapRouteHandlers(route, app);\n            // all good, use that route\n            app.use(route.path, route.router);\n        });\n    }).then(() => {\n        // catch errors\n        sUtil.setErrorHandler(app);\n        // route loading is now complete, return the app object\n        return BBPromise.resolve(app);\n    });\n\n}\n\n/**\n * Creates and start the service's web server\n *\n * @param {Application} app the app object to use in the service\n * @return {bluebird} a promise creating the web server\n */\nfunction createServer(app) {\n\n    // return a promise which creates an HTTP server,\n    // attaches the app to it, and starts accepting\n    // incoming client requests\n    let server;\n    return new BBPromise((resolve) => {\n        server = http.createServer(app).listen(\n            app.conf.port,\n            app.conf.interface,\n            resolve\n        );\n        server = addShutdown(server);\n    }).then(() => {\n        app.logger.log('info',\n            `Worker ${process.pid} listening on ${app.conf.interface || '*'}:${app.conf.port}`);\n\n        // Don't delay incomplete packets for 40ms (Linux default) on\n        // pipelined HTTP sockets. We write in large chunks or buffers, so\n        // lack of coalescing should not be an issue here.\n        server.on('connection', (socket) => {\n            socket.setNoDelay(true);\n        });\n\n        return server;\n    });\n\n}\n\n/**\n * The service's entry point. It takes over the configuration\n * options and the logger- and metrics-reporting objects from\n * service-runner and starts an HTTP server, attaching the application\n * object to it.\n *\n * @param {Object} options the options to initialise the app with\n * @return {bluebird} HTTP server\n */\nmodule.exports = (options) => {\n\n    return initApp(options)\n    .then((app) => loadRoutes(app, `${__dirname}/routes`))\n    .then((app) => {\n        // serve static files from static/\n        app.use('/static', express.static(`${__dirname}/static`));\n        return app;\n    }).then(createServer);\n\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/lib/eventstreams-util.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/lib/swagger-ui.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/lib/util.js","messages":[{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Request' is undefined.","line":41,"column":null,"nodeType":"Block","endLine":41,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Application' is undefined.","line":99,"column":null,"nodeType":"Block","endLine":99,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Application' is undefined.","line":143,"column":null,"nodeType":"Block","endLine":143,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Router' is undefined.","line":223,"column":null,"nodeType":"Block","endLine":223,"endColumn":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'Application' is undefined.","line":243,"column":null,"nodeType":"Block","endLine":243,"endColumn":null}],"errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst BBPromise = require('bluebird');\nconst preq = require('preq');\nconst express = require('express');\nconst uuidv1 = require('uuid/v1');\nconst bunyan = require('bunyan');\n\n/**\n * Error instance wrapping HTTP error responses\n */\nclass HTTPError extends Error {\n\n    constructor(response) {\n        super();\n        Error.captureStackTrace(this, HTTPError);\n\n        if (response.constructor !== Object) {\n            // just assume this is just the error message\n            response = {\n                status: 500,\n                type: 'internal_error',\n                title: 'InternalError',\n                detail: response\n            };\n        }\n\n        this.name = this.constructor.name;\n        this.message = `${response.status}`;\n        if (response.type) {\n            this.message += `: ${response.type}`;\n        }\n\n        Object.assign(this, response);\n    }\n}\n\n/**\n * Generates an object suitable for logging out of a request object\n *\n * @param {!Request} req          the request\n * @param {?RegExp}  whitelistRE  the RegExp used to filter headers\n * @return {!Object} an object containing the key components of the request\n */\nfunction reqForLog(req, whitelistRE) {\n\n    const ret = {\n        url: req.originalUrl,\n        headers: {},\n        method: req.method,\n        params: req.params,\n        query: req.query,\n        body: req.body,\n        remoteAddress: req.connection.remoteAddress,\n        remotePort: req.connection.remotePort\n    };\n\n    if (req.headers && whitelistRE) {\n        Object.keys(req.headers).forEach((hdr) => {\n            if (whitelistRE.test(hdr)) {\n                ret.headers[hdr] = req.headers[hdr];\n            }\n        });\n    }\n\n    return ret;\n\n}\n\n/**\n * Serialises an error object in a form suitable for logging.\n *\n * @param {!Error} err error to serialise\n * @return {!Object} the serialised version of the error\n */\nfunction errForLog(err) {\n\n    const ret = bunyan.stdSerializers.err(err);\n    ret.status = err.status;\n    ret.type = err.type;\n    ret.detail = err.detail;\n\n    // log the stack trace only for 500 errors\n    if (Number.parseInt(ret.status, 10) !== 500) {\n        ret.stack = undefined;\n    }\n\n    return ret;\n\n}\n\n/**\n * Wraps all of the given router's handler functions with\n * promised try blocks so as to allow catching all errors,\n * regardless of whether a handler returns/uses promises\n * or not.\n *\n * @param {!Object} route the object containing the router and path to bind it to\n * @param {!Application} app the application object\n */\nfunction wrapRouteHandlers(route, app) {\n\n    route.router.stack.forEach((routerLayer) => {\n        const path = (route.path + routerLayer.route.path.slice(1))\n            .replace(/\\/:/g, '/--')\n            .replace(/^\\//, '')\n            .replace(/[/?]+$/, '');\n        routerLayer.route.stack.forEach((layer) => {\n            const origHandler = layer.handle;\n            const metric = app.metrics.makeMetric({\n                type: 'Gauge',\n                name: 'router',\n                prometheus: {\n                    name: 'express_router_request_duration_seconds',\n                    help: 'request duration handled by router in seconds',\n                    staticLabels: { service: app.metrics.getServiceName() }\n                },\n                labels: {\n                    names: ['path', 'method', 'status'],\n                    omitLabelNames: true\n                }\n            });\n            layer.handle = (req, res, next) => {\n                const startTime = Date.now();\n                BBPromise.try(() => origHandler(req, res, next))\n                .catch(next)\n                .finally(() => {\n                    let statusCode = parseInt(res.statusCode, 10) || 500;\n                    if (statusCode < 100 || statusCode > 599) {\n                        statusCode = 500;\n                    }\n                    metric.set(Date.now() - startTime, [path || 'root', req.method, statusCode]);\n                });\n            };\n        });\n    });\n\n}\n\n/**\n * Generates an error handler for the given applications and installs it.\n *\n * @param {!Application} app the application object to add the handler to\n */\nfunction setErrorHandler(app) {\n\n    app.use((err, req, res, next) => {\n        let errObj;\n        // ensure this is an HTTPError object\n        if (err.constructor === HTTPError) {\n            errObj = err;\n        } else if (err instanceof Error) {\n            // is this an HTTPError defined elsewhere? (preq)\n            if (err.constructor.name === 'HTTPError') {\n                const o = { status: err.status };\n                if (err.body && err.body.constructor === Object) {\n                    Object.keys(err.body).forEach((key) => {\n                        o[key] = err.body[key];\n                    });\n                } else {\n                    o.detail = err.body;\n                }\n                o.message = err.message;\n                errObj = new HTTPError(o);\n            } else {\n                // this is a standard error, convert it\n                errObj = new HTTPError({\n                    status: 500,\n                    type: 'internal_error',\n                    title: err.name,\n                    detail: err.detail || err.message,\n                    stack: err.stack\n                });\n            }\n        } else if (err.constructor === Object) {\n            // this is a regular object, suppose it's a response\n            errObj = new HTTPError(err);\n        } else {\n            // just assume this is just the error message\n            errObj = new HTTPError({\n                status: 500,\n                type: 'internal_error',\n                title: 'InternalError',\n                detail: err\n            });\n        }\n        // ensure some important error fields are present\n        errObj.status = errObj.status || 500;\n        errObj.type = errObj.type || 'internal_error';\n        // add the offending URI and method as well\n        errObj.method = errObj.method || req.method;\n        errObj.uri = errObj.uri || req.url;\n        // some set 'message' or 'description' instead of 'detail'\n        errObj.detail = errObj.detail || errObj.message || errObj.description || '';\n        // adjust the log level based on the status code\n        let level = 'error';\n        if (Number.parseInt(errObj.status, 10) < 400) {\n            level = 'trace';\n        } else if (Number.parseInt(errObj.status, 10) < 500) {\n            level = 'info';\n        }\n        // log the error\n        const component = (errObj.component ? errObj.component : errObj.status);\n        (req.logger || app.logger).log(`${level}/${component}`, errForLog(errObj));\n        // let through only non-sensitive info\n        const respBody = {\n            status: errObj.status,\n            type: errObj.type,\n            title: errObj.title,\n            detail: errObj.detail,\n            method: errObj.method,\n            uri: errObj.uri\n        };\n        res.status(errObj.status).json(respBody);\n    });\n\n}\n\n/**\n * Creates a new router with some default options.\n *\n * @param {?Object} [opts] additional options to pass to express.Router()\n * @return {!Router} a new router object\n */\nfunction createRouter(opts) {\n\n    const options = {\n        mergeParams: true\n    };\n\n    if (opts && opts.constructor === Object) {\n        Object.assign(options, opts);\n    }\n\n    return new express.Router(options);\n\n}\n\n/**\n * Adds logger to the request and logs it.\n *\n * @param {!*} req request object\n * @param {!Application} app application object\n */\nfunction initAndLogRequest(req, app) {\n    req.headers = req.headers || {};\n    req.headers['x-request-id'] = req.headers['x-request-id'] || uuidv1();\n    req.logger = app.logger.child({\n        request_id: req.headers['x-request-id'],\n        request: reqForLog(req, app.conf.log_header_whitelist)\n    });\n    req.context = { reqId: req.headers['x-request-id'] };\n    req.issueRequest = (request) => {\n        if (!(request.constructor === Object)) {\n            request = { uri: request };\n        }\n        if (request.url) {\n            request.uri = request.url;\n            delete request.url;\n        }\n        if (!request.uri) {\n            return BBPromise.reject(new HTTPError({\n                status: 500,\n                type: 'internal_error',\n                title: 'No request to issue',\n                detail: 'No request has been specified'\n            }));\n        }\n        request.method = request.method || 'get';\n        request.headers = request.headers || {};\n        Object.assign(request.headers, {\n            'user-agent': app.conf.user_agent,\n            'x-request-id': req.context.reqId\n        });\n        req.logger.log('trace/req', { msg: 'Outgoing request', out_request: request });\n        return preq(request);\n    };\n    req.logger.log('trace/req', { msg: 'Incoming request' });\n}\n\nmodule.exports = {\n    HTTPError,\n    initAndLogRequest,\n    wrapRouteHandlers,\n    setErrorHandler,\n    router: createRouter\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/package-lock.json","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/package.json","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/routes/info.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/routes/root.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/routes/stream.js","messages":[{"ruleId":"jsdoc/require-returns","severity":1,"message":"Missing JSDoc @return declaration.","line":28,"column":1,"nodeType":"Block","endLine":62,"endColumn":4},{"ruleId":"jsdoc/require-returns","severity":1,"message":"Missing JSDoc @return declaration.","line":247,"column":1,"nodeType":"Block","endLine":251,"endColumn":4},{"ruleId":null,"message":"Unused eslint-disable directive (no problems were reported from 'max-len').","line":381,"column":17,"severity":1,"nodeType":null}],"errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst fs = require('fs');\nconst _ = require('lodash');\nconst kafkaSse = require('kafka-sse');\nconst express = require('express');\n\nconst {\n    urlGetObject,\n    uriGetFirstObject,\n} = require('@wikimedia/url-get');\n\nconst sUtil = require('../lib/util');\nconst eUtil = require('../lib/eventstreams-util');\nconst HTTPError = sUtil.HTTPError;\n\n/**\n * This file exports a function that configures the ExpressJS router to\n * serve /v2/stream/{stream} using information about streams to expose\n * obtained from stream_config_uri.\n */\n\n/**\n * The main router object\n */\nconst router = sUtil.router();\n\n/**\n * Loads stream configs from app.conf.stream_config_uri.\n * Regex stream names are not supported and will be removed.\n * Streams without a topics setting will be removed.\n * If a stream_aliases setting is found for a stream, that stream\n * config will be duplicated and also keyed by each stream alias.\n *\n * Some stream config settings will be used to augment the OpenAPI spec.\n * See updateSpec below.\n *\n * @param {Object} app\n * @param {Object} app.conf\n * @param {string} app.conf.stream_config_uri\n *  A URI from which stream configs will be requested. This URI should resolve to a JSON\n *  object keyed by stream name with stream config settings.\n * @param {string} app.conf.stream_config_object_path\n *  If set, the stream configs are expected to live in a subobject\n *  of the result object returned from stream_config_uri at this dotted path.\n * @param {Object} app.conf.stream_config_uri_options\n * @param {string} app.conf.stream_config_ttl\n *  How long in seconds stream configs live in cache before being recached.\n *  0 or unset means no expiration.\n * @param {string} app.conf.stream_config_defaults\n *  Defaults to use for stream configs.  This will be applied to the object fetched\n *  from stream_config_uri like _.defaultsDeep(streamConfigs, app.conf.stream_config_defaults)\n * @param {Array<string>} app.conf.allowed_streams\n *  If provided, stream configs will be filtered for streams that are in this list.\n * @param {string} app.conf.schema_latest_version\n *  If given, and no $schema is found in a stream config, a schema URI will\n *  attempt to be constructed a /${schema_title}/${schema_latest_version}.\n *  If this is not set, no schema URU will be inferred using schema_title.\n * @param {Array<string>} app.conf.schema_base_uris\n *  If provided, relative $schema urls for a stream will attempt to be resolved from these.\n * @param {Object} app.conf.schema_uri_options\n */\nasync function loadStreamConfigs(app) {\n    let streamConfigs;\n    if (_.isUndefined(app.conf.stream_config_uri)) {\n        throw new Error('Must set stream_config_uri with URI of streams to expose.');\n    }\n\n    app.logger.log('info', `Loading stream configs from ${app.conf.stream_config_uri}`);\n    streamConfigs = await urlGetObject(\n        app.conf.stream_config_uri,\n        app.conf.stream_config_uri_options || {}\n    );\n\n    // If stream_config_object_path was configured,\n    // expect the config settings for stream to exist at that path.\n    if (app.conf.stream_config_object_path) {\n        streamConfigs = _.get(streamConfigs, app.conf.stream_config_object_path);\n    }\n\n    // Merge any stream_config_extra overides with fetched stream config\n    _.defaultsDeep(streamConfigs, app.conf.stream_config_defaults);\n\n    streamConfigs = _.pickBy(streamConfigs, (streamConfig, streamName) => {\n        // eventstreams does not support regex stream keys, so remove those.\n        if (streamName.startsWith('/')) {\n            app.logger.log(\n                'trace',\n                `Regex stream names are not supported, removing ${streamName}.`\n            );\n            return false;\n        }\n\n        // We need defined topics in order to consume from a stream.\n        if (_.isUndefined(streamConfig.topics)) {\n            app.logger.log('trace', `${streamName} does not have configured topics, removing.`);\n            return false;\n        }\n\n        // Also if allowed_streams is an array, remove any non allowed streams.\n        if (\n            app.conf.allowed_streams &&\n            !app.conf.allowed_streams.includes(streamName)\n        ) {\n            app.logger.log(\n                'trace',\n                `${streamName} is not in the list of allowed_streams, removing.`\n            );\n            return false;\n        }\n\n        // Else this stream is allowed.\n        return true;\n    });\n\n    // Augment streamConfigs with extra info from defaults and schema.\n    await Promise.all(_.keys(streamConfigs).map(async (streamName) => {\n        const streamConfig = streamConfigs[streamName];\n\n        // Add a nice default description.\n        if (_.isUndefined(streamConfig.description)) {\n            streamConfig.description = `${streamName} events.`;\n        }\n\n        if (_.isUndefined(streamConfig.schema)) {\n            if (\n                _.isUndefined(streamConfig.$schema) &&\n                streamConfig.schema_title &&\n                app.conf.schema_base_uris &&\n                app.conf.schema_latest_version\n            ) {\n                streamConfig.$schema =\n                    `/${streamConfig.schema_title}/${app.conf.schema_latest_version}`;\n            }\n\n            if (streamConfig.$schema) {\n                try {\n                    app.logger.log(\n                        'debug',\n                        `Fetching schema for ${streamName} at ${streamConfig.$schema}`\n                    );\n                    streamConfig.schema = await uriGetFirstObject(\n                        streamConfig.$schema,\n                        app.conf.schema_base_uris,\n                        undefined,\n                        app.conf.schema_uri_options\n                    );\n                } catch (error) {\n                    app.logger.log('warn', {\n                        msg: `Failed fetching schema for ${streamName} at ` +\n                            `${streamConfig.$schema}, not augmenting OpenAPI spec with schema.`,\n                        error,\n                    });\n                }\n            }\n        }\n\n        // If this stream has stream_aliases defined, duplicate this stream config\n        // keyed by this name. When updating the dynamic spec below, and when\n        // figuring out what streams are subscribed to, this alias can be used\n        // as a shortcut route for a stream name, but the original stream name is\n        // still exposed as a route too.\n        if (streamConfig.stream_aliases) {\n            streamConfig.stream_aliases.forEach(stream_alias => {\n                streamConfigs[stream_alias] = _.cloneDeep(streamConfig);\n                streamConfigs[stream_alias].description +=\n                    `\\n\\n(NOTE: This stream is an alias of ${streamName})`;\n                // Remove the stream_aliases from this copied stream config.\n                // stream_aliases should only be set on the canonical stream config.\n                delete streamConfigs[stream_alias].stream_aliases;\n            });\n        }\n    }));\n\n    // 'sort' streamConfigs by stream name and then return it.\n    // streamConfigs are used to generated the dynamic OpenAPI spec,\n    // and it is nice to see the routes in order in /?doc.\n    return Object.keys(streamConfigs).sort().reduce((r, k) => {\n        r[k] = streamConfigs[k];\n        return r;\n    }, {});\n}\n\n/**\n * Updates the OpenAPI spec at app.conf.spec with path routes exposing\n * the streams declared in streamConfigs.\n *\n * streamConfig.description will be used for the route path description.\n * If streamConfig.schema is given, it will be\n * used as the route path responses schema and example.\n *\n * @param {Object} app\n * @param {Object} streamConfigs\n */\nfunction updateSpec(app, streamConfigs) {\n    // Update the /v2/stream/{stream} path spec with the list of available streams.\n    app.conf.spec.paths['/v2/stream/{streams}'].get.parameters[0].schema.items.enum =\n        _.keys(streamConfigs);\n\n    // Make an OpenAPI spec paths entry for each stream declared in streamConfigs.\n    _.forOwn(streamConfigs, (streamConfig, streamName) => {\n        // The /v2/stream/{streams} route is the only 'real' route, the stream specific ones\n        // are maintained for API clarity and documentation.  Use the /v2/stream/{streams}\n        // route as a base for each of the stream specific routes.\n        const streamRouteSpec = _.cloneDeep(app.conf.spec.paths['/v2/stream/{streams}']);\n        // The stream specific routes do not take a {streams} parameter.  It is the first\n        // listed, so shift the parameters array to remove it.\n        streamRouteSpec.get.parameters.shift();\n        streamRouteSpec.get.summary = `${streamName} events`;\n\n        if (streamConfig.description) {\n            // Use the streamConfig description in the route description.\n            streamRouteSpec.get.description = streamConfig.description;\n        }\n        if (streamConfig.schema_title) {\n            streamRouteSpec.get.description += `\\n\\nSchema title: ${streamConfig.schema_title}`;\n        }\n\n        if (streamConfig.schema) {\n            const schema  = _.cloneDeep(streamConfig.schema);\n            const examples = schema.examples;\n            // Remove OpenAPI unsupported JSONSchema keywords.\n            // See: https://swagger.io/docs/specification/data-models/keywords/\n            delete schema.$schema;\n            delete schema.$id;\n            delete schema.examples;\n\n            // Use the schema in the route response\n            streamRouteSpec.get.responses['200'].content['application/json'].schema = schema;\n            streamRouteSpec.get.responses['200'].content['text/event-stream'].schema = schema;\n\n            if (!_.isEmpty(examples)) {\n                // Use the schema examples in the route response.\n                streamRouteSpec.get.responses['200'].content['application/json'].example =\n                    examples[0];\n                streamRouteSpec.get.responses['200'].content['text/event-stream'].example =\n                    examples[0];\n            }\n        }\n\n        // Add the stream specific route to the OpenAPI spec.\n        app.conf.spec.paths[`/v2/stream/${streamName}`] = streamRouteSpec;\n    });\n\n}\n\n/**\n * Set up the /v2/stream/{stream} route using stream config.\n *\n * @param {Object} app\n */\nmodule.exports = async (app) => {\n    let streamConfigs = await loadStreamConfigs(app);\n    updateSpec(app, streamConfigs);\n    app.logger.log('trace', { msg: 'Loaded stream configs', streamConfigs });\n\n    if (_.isEmpty(streamConfigs)) {\n        throw new Error(\n            `No stream configs were configuerd to be exposed in ${app.conf.stream_config_uri}`\n        );\n    }\n\n    // If we loaded stream_config_uri and it should have a TTL, referesh it every TTL seconds.\n    if (!app.conf.streams && app.conf.stream_config_uri && app.conf.stream_config_ttl) {\n        setInterval(async () => {\n            try {\n                streamConfigs = await loadStreamConfigs(app);\n                updateSpec(app, streamConfigs);\n                app.logger.log('trace', {\n                    msg: `Reloaded stream configs after ${app.conf.stream_config_ttl} seconds`,\n                    streamConfigs\n                });\n            } catch (error) {\n                app.logger.log('warn', {\n                    msg: 'Caught error while reloading stream configs. ' +\n                        'Keeping previous stream configs and routes.',\n                    error\n                });\n            }\n        }, app.conf.stream_config_ttl * 1000);\n    }\n\n    // Connected clients per stream and client IP service-runner metric.\n    // This is a guage and indicates the current number of connected clients.\n    const connectedClientsMetric = app.metrics.makeMetric({\n        type: 'Gauge',\n        name: 'connected-clients',\n        prometheus: {\n            name: 'eventstreams_connected_clients',\n            help: 'Connected clients per stream guage',\n            staticLabels: { service: app.metrics.getServiceName() },\n        },\n        labels: {\n            names: ['stream', 'client_ip'],\n            omitLabelNames: true,\n        }\n    });\n\n    // This is a counter of the total number of client connections ever made.\n    // We don't care so much about the totals by client IP here, so it is not a label.\n    // Also, since clients can connect to multiple streams at once, we keep track\n    // of total connections per list of streams, not individual streams.\n    // This helps us keep track of how folks connect and use streams together over time.\n    // The streams label will be a sorted comma separated string list\n    // of streams the client has subscribed to.\n    // https://phabricator.wikimedia.org/T238658#5947574\n    const clientConnectionsTotalMetric = app.metrics.makeMetric({\n        type: 'Counter',\n        name: 'client-connections-total',\n        prometheus: {\n            name: 'eventstreams_client_connections_total',\n            help: 'Client connections total per combination of subscribed streams',\n            staticLabels: { service: app.metrics.getServiceName() },\n        },\n        labels: {\n            names: ['streams'],\n            omitLabelNames: true,\n        }\n    });\n\n    // Keep track of currently connected client IPs for poor-man's rate limiting.\n    const connectionCountPerIp = {};\n\n    router.get('/stream/:streams', (req, res) => {\n        const clientIp = req.headers['x-client-ip'] || 'UNKNOWN';\n\n        // ensure the requesting client hasn't gone over the concurrent connection limits.\n        if (app.conf.client_ip_connection_limit) {\n            if (!req.headers['x-client-ip']) {\n                throw new HTTPError({\n                    status: 400,\n                    type: 'bad_request',\n                    title: 'Missing Required X-Client-IP Header',\n                    detail: 'X-Client-IP is a required request header'\n                });\n            }\n\n            const clientIpConnectionCount = connectionCountPerIp[clientIp] || 0;\n            if (clientIpConnectionCount >= app.conf.client_ip_connection_limit) {\n                throw new HTTPError({\n                    status: 429,\n                    type: 'too_many_requests',\n                    title: 'Too Many Concurrent Connections From Your Client IP',\n                    detail: 'Your HTTP client is likely opening too many concurrent connections.'\n                });\n            }\n        }\n\n        const requestedStreams = req.params.streams.split(',');\n        // Ensure all requested streams are available.\n        const invalidStreams = requestedStreams.filter(s => !_.includes(_.keys(streamConfigs), s));\n        if (invalidStreams.length > 0) {\n            throw new HTTPError({\n                status: 400,\n                type: 'not_found',\n                title: 'Stream Not Found',\n                detail: `Invalid streams: ${invalidStreams.join(',')}`\n            });\n        }\n\n        const topics = _.uniq(_.flatMap(\n            _.pick(streamConfigs, requestedStreams),\n            streamConfig => streamConfig.topics\n        ));\n\n        // If since param is provided, it will be used to consume from\n        // a point in time in the past, if Last-Event-ID doesn't already\n        // have assignments in it.\n        let atTimestamp = req.query.since;\n        // If not a milliseconds timestamp, attempt to parse it into one.\n        if (atTimestamp && isNaN(atTimestamp)) {\n            atTimestamp = Date.parse(atTimestamp);\n        }\n        // If atTimestamp is defined but is still not a number milliseconds timestamp,\n        // throw HTTPError.\n        if (atTimestamp !== undefined && isNaN(atTimestamp)) {\n            throw new HTTPError({\n                status: 400,\n                type: 'invalid_timestamp',\n                title: 'Invalid timestamp',\n                // eslint-disable-next-line max-len\n                detail: `since timestamp is not a UTC milliseconds unix epoch and was not parseable: '${req.query.since}'`\n            });\n        }\n\n        requestedStreams.forEach((stream) => {\n            // Increment the number of current connections for this stream using this key.\n            // NOTE: This is a guage so we have to decrement it when the client is disconnected too.\n            connectedClientsMetric.increment(1, [stream, clientIp]);\n        });\n        // Increment the total counter of clients ever connected to this combination of streams.\n        clientConnectionsTotalMetric.increment(1, [requestedStreams.sort().join(',')]);\n\n        // Increment the number of connctions for this clientIp\n        connectionCountPerIp[clientIp] = (connectionCountPerIp[clientIp] || 0) + 1;\n\n        // After the connection is closed, decrement the number\n        // of current connections for these streams.\n        function decrementConnectionCount() {\n            app.logger.log('debug/stats', `Decrementing connection counters for ${clientIp}`);\n            requestedStreams.forEach((stream) => {\n                connectedClientsMetric.decrement(1, [stream, clientIp]);\n            });\n            // Decrement the number of concurrent connections for this client ip\n            // (never going below 0).\n            connectionCountPerIp[clientIp] = Math.max(connectionCountPerIp[clientIp] - 1, 0);\n        }\n        // I'm not sure why, but the 'close' event is fired when the client closes the connection,\n        // and the 'finish' event is fired when KafkaSSE closes the connection (due to an error).\n        // Regsiter them both.\n        res.on('close', decrementConnectionCount);\n        res.on('finish', decrementConnectionCount);\n\n        // Start the SSE EventStream connection with topics.\n        return kafkaSse(req, res, topics,\n            {\n                // Using topics for allowedTopics may seem redundant, but it\n                // prevents requests for /stream/streamA from consuming from topics\n                // that are not configured for streamA by setting other topics\n                // in the Last-Event-ID header.  Last-Event-ID topic, partition, offset\n                // assignments will take precedence over topics parameter.\n                allowedTopics:          topics,\n                // Support multi DC Kafka clusters by using message timestamps\n                // in Last-Event-ID instead of offsets.\n                useTimestampForId:      true,\n                // Give kafkaSse the request bunyan logger to use.\n                // eslint-disable-next-line no-underscore-dangle\n                logger:                 req.logger._logger,\n                kafkaConfig:            app.conf.kafka,\n                // Use the eventstreams custom deserializer to include\n                // kafka message meta data in the deserialized message.meta object\n                // that will be sent to the client as an event.\n                deserializer:           eUtil.deserializer\n            },\n            atTimestamp\n        );\n    });\n\n    const uiEnabled = app.conf.stream_ui_enabled || true;\n    if (uiEnabled) {\n        if (!fs.existsSync(`${__dirname}/../ui/dist`)) {\n            throw new Error(\n                'Cannot enable HTML stream GUI at /v2/ui: The ui/dist directory does not exist.' +\n                ' Run `npm run build-ui`.'\n            );\n        }\n\n        app.logger.log('debug', 'Enabling HTML stream GUI at /v2/ui');\n        app.use('/v2/ui', express.static(`${__dirname}/../ui/dist`));\n        app.use(express.static(`${__dirname}/../ui/dist`));\n    }\n\n    return {\n        path: '/v2',\n        api_version: 2,\n        skip_domain: true,\n        router\n    };\n};\n\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/server.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/test/.eslintrc.json","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/test/features/app/app.js","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/test/features/app/spec.js","messages":[{"ruleId":"no-shadow","severity":2,"message":"'spec' is already declared in the upper scope.","line":70,"column":25,"nodeType":"Identifier","messageId":"noShadow","endLine":70,"endColumn":29},{"ruleId":null,"message":"Unused eslint-disable directive (no problems were reported from 'no-invalid-this').","line":249,"column":26,"severity":1,"nodeType":null},{"ruleId":"no-shadow","severity":2,"message":"'spec' is already declared in the upper scope.","line":265,"column":16,"nodeType":"Identifier","messageId":"noShadow","endLine":265,"endColumn":20}],"errorCount":2,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst parallel = require('mocha.parallel');\nconst preq   = require('preq');\nconst assert = require('../../utils/assert.js');\nconst Server = require('../../utils/server.js');\nconst URI    = require('swagger-router').URI;\nconst OpenAPISchemaValidator = require('openapi-schema-validator').default;\nconst validator = new OpenAPISchemaValidator({ version: 3 });\n\nlet spec = null;\nlet baseUrl = null;\nconst server = new Server();\n\nfunction validateExamples(pathStr, defParams, mSpec) {\n\n    const uri = new URI(pathStr, {}, true);\n\n    if (!mSpec) {\n        try {\n            uri.expand(defParams);\n            return true;\n        } catch (e) {\n            throw new Error(`Missing parameter for route ${pathStr} : ${e.message}`);\n        }\n    }\n\n    if (!Array.isArray(mSpec)) {\n        throw new Error(`Route ${pathStr} : x-amples must be an array!`);\n    }\n\n    mSpec.forEach((ex, idx) => {\n        if (!ex.title) {\n            throw new Error(`Route ${pathStr}, example ${idx}: title missing!`);\n        }\n        ex.request = ex.request || {};\n        try {\n            uri.expand(Object.assign({}, defParams, ex.request.params || {}));\n        } catch (e) {\n            throw new Error(\n                `Route ${pathStr}, example ${idx} (${ex.title}): missing parameter: ${e.message}`\n            );\n        }\n    });\n\n    return true;\n\n}\n\nfunction constructTestCase(title, path, method, request, response) {\n    return {\n        title,\n        request: {\n            uri: (baseUrl || server.config.uri) + (path[0] === '/' ? path.substr(1) : path),\n            method,\n            headers: request.headers || {},\n            query: request.query,\n            body: request.body,\n            followRedirect: false\n        },\n        response: {\n            status: response.status || 200,\n            headers: response.headers || {},\n            body: response.body\n        }\n    };\n\n}\n\nfunction constructTests(spec) {\n    const ret = [];\n    const paths = spec.paths;\n    const defParams = spec['x-default-params'] || {};\n\n    Object.keys(paths).forEach((pathStr) => {\n        Object.keys(paths[pathStr]).forEach((method) => {\n            const p = paths[pathStr][method];\n            if ({}.hasOwnProperty.call(p, 'x-monitor') && !p['x-monitor']) {\n                return;\n            }\n            const uri = new URI(pathStr, {}, true);\n            if (!p['x-amples']) {\n                ret.push(constructTestCase(\n                    pathStr,\n                    uri.toString({ params: defParams }),\n                    method,\n                    {},\n                    {}\n                ));\n                return;\n            }\n            p['x-amples'].forEach((ex) => {\n                ex.request = ex.request || {};\n                ret.push(constructTestCase(\n                    ex.title,\n                    uri.toString({\n                        params: Object.assign({},\n                            defParams,\n                            ex.request.params || {})\n                    }),\n                    method,\n                    ex.request,\n                    ex.response || {}\n                ));\n            });\n        });\n    });\n\n    return ret;\n}\n\nfunction cmp(result, expected, errMsg) {\n\n    if (expected === null || expected === undefined) {\n        // nothing to expect, so we can return\n        return true;\n    }\n    if (result === null || result === undefined) {\n        result = '';\n    }\n\n    if (expected.constructor === Object) {\n        Object.keys(expected).forEach((key) => {\n            const val = expected[key];\n            assert.deepEqual({}.hasOwnProperty.call(result, key), true,\n                `Body field ${key} not found in response!`);\n            cmp(result[key], val, `${key} body field mismatch!`);\n        });\n        return true;\n    } else if (expected.constructor === Array) {\n        if (result.constructor !== Array) {\n            assert.deepEqual(result, expected, errMsg);\n            return true;\n        }\n        // only one item in expected - compare them all\n        if (expected.length === 1 && result.length > 1) {\n            result.forEach((item) => {\n                cmp(item, expected[0], errMsg);\n            });\n            return true;\n        }\n        // more than one item expected, check them one by one\n        if (expected.length !== result.length) {\n            assert.deepEqual(result, expected, errMsg);\n            return true;\n        }\n        expected.forEach((item, idx) => {\n            cmp(result[idx], item, errMsg);\n        });\n        return true;\n    }\n\n    if (expected.length > 1 && expected[0] === '/' && expected[expected.length - 1] === '/') {\n        if ((new RegExp(expected.slice(1, -1))).test(result)) {\n            return true;\n        }\n    } else if (expected.length === 0 && result.length === 0) {\n        return true;\n    } else if (result === expected || result.startsWith(expected)) {\n        return true;\n    }\n\n    assert.deepEqual(result, expected, errMsg);\n    return true;\n\n}\n\nfunction validateArray(val, resVal, key) {\n    assert.deepEqual(Array.isArray(resVal), true, `Body field ${key} is not an array!`);\n    let arrVal;\n    if (val.length === 1) {\n        // special case: we have specified only one item in the expected body,\n        // but what we really want is to check all of the returned items so\n        // fill the expected array with as many items as the returned one\n        if (resVal.length < 1) {\n            throw new assert.AssertionError({\n                message: `Expected more then one element in the field: ${key}`\n            });\n        }\n        arrVal = [];\n        while (arrVal.length < resVal.length) {\n            arrVal.push(val[0]);\n        }\n    } else {\n        arrVal = val;\n    }\n    assert.deepEqual(arrVal.length, resVal.length,\n        `Different size of array for field ${key}, expected ${arrVal.length\n        } actual ${resVal.length}`);\n    arrVal.forEach((item, index) => {\n        validateBody(resVal[index], item); // eslint-disable-line\n    });\n}\n\nfunction validateBody(resBody, expBody) {\n    if (!expBody) { return true; } // eslint-disable-line\n    if (!resBody) { return false; } // eslint-disable-line\n\n    if (Buffer.isBuffer(resBody)) {\n        resBody = resBody.toString();\n    }\n    if (expBody.constructor !== resBody.constructor) {\n        if (expBody.constructor === String) {\n            resBody = JSON.stringify(resBody);\n        } else {\n            resBody = JSON.parse(resBody);\n        }\n    }\n    if (expBody.constructor === Object) {\n        Object.keys(expBody).forEach((key) => {\n            const val = expBody[key];\n            // eslint-disable-next-line\n            assert.deepEqual(resBody.hasOwnProperty(key), true, `Body field ${key} not found in response!`);\n            if (val.constructor === Object) {\n                validateBody(resBody[key], val);\n            } else if (val.constructor === Array) {\n                validateArray(val, resBody[key], key);\n            } else {\n                cmp(resBody[key], val, `${key} body field mismatch!`);\n            }\n        });\n    } else if (Array.isArray(expBody)) {\n        validateArray(expBody, resBody, 'body');\n    } else {\n        cmp(resBody, expBody, 'Body mismatch!');\n    }\n    return true;\n}\n\nfunction validateTestResponse(testCase, res) {\n    const expRes = testCase.response;\n\n    assert.deepEqual(res.status, expRes.status);\n\n    if (expRes.headers && !res.headers) {return false; } // eslint-disable-line\n\n    Object.keys(expRes.headers).forEach((key) => {\n        const val = expRes.headers[key];\n        // eslint-disable-next-line\n        assert.deepEqual(res.headers.hasOwnProperty(key), true, `Header ${key} not found in response!`);\n        cmp(res.headers[key], val, `${key} header mismatch!`);\n    });\n\n    validateBody(res.body || '', expRes.body);\n}\n\ndescribe('Swagger spec', function () {\n\n    this.timeout(20000); // eslint-disable-line no-invalid-this\n\n    before(() => server.start());\n    after(() => server.stop());\n\n    it('get the spec', () => {\n        baseUrl = server.config.uri;\n        return preq.get(`${baseUrl}?spec`)\n        .then((res) => {\n            assert.status(200);\n            assert.contentType(res, 'application/json');\n            assert.notDeepEqual(res.body, undefined, 'No body received!');\n            // save a copy\n            spec = res.body;\n            return spec;\n        })\n        .then((spec) => {\n            const routeTests = () => {\n                before(() => server.start());\n                after(() => server.stop());\n\n                constructTests(spec).forEach((testCase) => {\n                    it(testCase.title, function (done) {\n                        return preq(testCase.request)\n                        .then((res) => {\n                            assert.status(res, testCase.response.status);\n                            validateTestResponse(testCase, res);\n                        }, (err) => {\n                            assert.status(err, testCase.response.status);\n                            validateTestResponse(testCase, err);\n                        });\n                    });\n                });\n            };\n            parallel('Monitoring routes', routeTests);\n        });\n    });\n\n    it('should expose valid OpenAPI spec', () => {\n        return preq.get({ uri: `${server.config.uri}?spec` })\n        .then((res) =>  {\n            assert.deepEqual({ errors: [] }, validator.validate(res.body), 'Spec must have no validation errors');\n        });\n    });\n\n    it('spec validation', () => {\n        // check the high-level attributes\n        [ 'info', 'openapi', 'paths' ].forEach((prop) => {\n            assert.deepEqual(!!spec[prop], true, `No ${prop} field present!`);\n        });\n        // no paths - no love\n        assert.deepEqual(!!Object.keys(spec.paths), true, 'No paths given in the spec!');\n        // now check each path\n        Object.keys(spec.paths).forEach((pathStr) => {\n            assert.deepEqual(!!pathStr, true, 'A path cannot have a length of zero!');\n            const path = spec.paths[pathStr];\n            assert.deepEqual(!!Object.keys(path), true, `No methods defined for path: ${pathStr}`);\n            Object.keys(path).forEach((method) => {\n                const mSpec = path[method];\n                if ({}.hasOwnProperty.call(mSpec, 'x-monitor') && !mSpec['x-monitor']) {\n                    return;\n                }\n                validateExamples(pathStr, spec['x-default-params'] || {}, mSpec['x-amples']);\n            });\n        });\n    });\n});\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/test/features/info/info.js","messages":[{"ruleId":"no-redeclare","severity":2,"message":"'describe' is already defined as a built-in global variable.","line":1,"column":11,"nodeType":"Block","messageId":"redeclaredAsBuiltin","endLine":1,"endColumn":19},{"ruleId":"no-redeclare","severity":2,"message":"'it' is already defined as a built-in global variable.","line":1,"column":21,"nodeType":"Block","messageId":"redeclaredAsBuiltin","endLine":1,"endColumn":23},{"ruleId":"no-redeclare","severity":2,"message":"'before' is already defined as a built-in global variable.","line":1,"column":25,"nodeType":"Block","messageId":"redeclaredAsBuiltin","endLine":1,"endColumn":31},{"ruleId":"no-redeclare","severity":2,"message":"'after' is already defined as a built-in global variable.","line":1,"column":33,"nodeType":"Block","messageId":"redeclaredAsBuiltin","endLine":1,"endColumn":38}],"errorCount":4,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global describe, it, before, after */\n\n'use strict';\n\nconst preq   = require('preq');\nconst assert = require('../../utils/assert.js');\nconst Server = require('../../utils/server.js');\n\ndescribe('service information', function () {\n\n    this.timeout(20000);\n\n    let infoUri = null;\n\n    const server = new Server();\n\n    before(() => {\n        return server.start()\n        .then(() => {\n            infoUri = `${server.config.uri}_info/`;\n        });\n    });\n\n    after(() => server.stop());\n\n    // common function used for generating requests\n    // and checking their return values\n    function checkRet(fieldName) {\n        return preq.get({\n            uri: infoUri + fieldName\n        }).then((res) => {\n            // check the returned Content-Type header\n            assert.contentType(res, 'application/json');\n            // the status as well\n            assert.status(res, 200);\n            // finally, check the body has the specified field\n            assert.notDeepEqual(res.body, undefined, 'No body returned!');\n            assert.notDeepEqual(res.body[fieldName], undefined, `No ${fieldName} field returned!`);\n        });\n    }\n\n    it('should get the service name', () => {\n        return checkRet('name');\n    });\n\n    it('should get the service version', () => {\n        return checkRet('version');\n    });\n\n    it('should redirect to the service home page', () => {\n        return preq.get({\n            uri: `${infoUri}home`,\n            followRedirect: false\n        }).then((res) => {\n            // check the status\n            assert.status(res, 301);\n        });\n    });\n\n    it('should get the service info', () => {\n        return preq.get({\n            uri: infoUri\n        }).then((res) => {\n            // check the status\n            assert.status(res, 200);\n            // check the returned Content-Type header\n            assert.contentType(res, 'application/json');\n            // inspect the body\n            assert.notDeepEqual(res.body, undefined, 'No body returned!');\n            assert.notDeepEqual(res.body.name, undefined, 'No name field returned!');\n            assert.notDeepEqual(res.body.version, undefined, 'No version field returned!');\n            assert.notDeepEqual(res.body.description, undefined, 'No description field returned!');\n            assert.notDeepEqual(res.body.home, undefined, 'No home field returned!');\n        });\n    });\n});\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/test/utils/assert.js","messages":[{"ruleId":null,"message":"Unused eslint-disable directive (no problems were reported from 'no-console').","line":1,"column":1,"severity":1,"nodeType":null},{"ruleId":"jsdoc/no-undefined-types","severity":1,"message":"The type 'integer' is undefined.","line":23,"column":null,"nodeType":"Block","endLine":23,"endColumn":null}],"errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* eslint-disable no-console */\n\n'use strict';\n\nconst assert = require('assert');\n\nfunction deepEqual(result, expected, message) {\n\n    try {\n        assert.deepEqual(result, expected, message);\n    } catch (e) {\n        console.log(`Expected:\\n${JSON.stringify(expected, null, 2)}`);\n        console.log(`Result:\\n${JSON.stringify(result, null, 2)}`);\n        throw e;\n    }\n\n}\n\n/**\n * Asserts whether the return status was as expected\n *\n * @param {Object} res\n * @param {integer} expected\n */\nfunction status(res, expected) {\n\n    deepEqual(res.status, expected,\n        `Expected status to be ${expected}, but was ${res.status}`);\n\n}\n\n/**\n * Asserts whether content type was as expected\n *\n * @param {Object} res\n * @param {string} expectedRegexString\n */\nfunction contentType(res, expectedRegexString) {\n\n    const actual = res.headers['content-type'];\n    assert.ok(RegExp(expectedRegexString).test(actual),\n        `Expected content-type to match ${expectedRegexString}, but was ${actual}`);\n\n}\n\nfunction isDeepEqual(result, expected, message) {\n\n    try {\n        assert.deepEqual(result, expected, message);\n        return true;\n    } catch (e) {\n        return false;\n    }\n\n}\n\nfunction notDeepEqual(result, expected, message) {\n\n    try {\n        assert.notDeepEqual(result, expected, message);\n    } catch (e) {\n        console.log(`Not expected:\\n${JSON.stringify(expected, null, 2)}`);\n        console.log(`Result:\\n${JSON.stringify(result, null, 2)}`);\n        throw e;\n    }\n\n}\n\nfunction fails(promise, onRejected) {\n\n    let failed = false;\n\n    function trackFailure(e) {\n        failed = true;\n        return onRejected(e);\n    }\n\n    function check() {\n        if (!failed) {\n            throw new Error('expected error was not thrown');\n        }\n    }\n\n    return promise.catch(trackFailure).then(check);\n\n}\n\nmodule.exports.ok             = assert.ok;\nmodule.exports.fails          = fails;\nmodule.exports.deepEqual      = deepEqual;\nmodule.exports.isDeepEqual    = isDeepEqual;\nmodule.exports.notDeepEqual   = notDeepEqual;\nmodule.exports.contentType    = contentType;\nmodule.exports.status         = status;\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/test/utils/server.js","messages":[{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":9,"column":9,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":9,"endColumn":19},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_running'.","line":13,"column":14,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":13,"endColumn":27},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_impl'.","line":19,"column":30,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":19,"endColumn":48},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_runner'.","line":19,"column":30,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":19,"endColumn":42},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_impl'.","line":20,"column":27,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":20,"endColumn":45},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_runner'.","line":20,"column":27,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":20,"endColumn":39},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":22,"column":14,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":22,"endColumn":24},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":30,"column":17,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":30,"endColumn":27},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":34,"column":17,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":34,"endColumn":27},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_impl'.","line":40,"column":27,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":40,"endColumn":45},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_runner'.","line":40,"column":27,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":40,"endColumn":39},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":41,"column":27,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":41,"endColumn":37},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_impl'.","line":49,"column":19,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":49,"endColumn":37},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_runner'.","line":49,"column":19,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":49,"endColumn":31},{"ruleId":"no-underscore-dangle","severity":2,"message":"Unexpected dangling '_' in '_spec'.","line":50,"column":19,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":50,"endColumn":29}],"errorCount":15,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"'use strict';\n\nconst preq   = require('preq');\nconst TestRunner = require('service-runner/test/TestServer');\n\nclass TestServiceTemplateNodeRunner extends TestRunner {\n    constructor(configPath = `${__dirname}/../../config.yaml`) {\n        super(configPath);\n        this._spec = null;\n    }\n\n    get config() {\n        if (!this._running) {\n            throw new Error('Accessing test service config before starting the service');\n        }\n\n        // build the API endpoint URI by supposing the actual service\n        // is the last one in the 'services' list in the config file\n        const myServiceIdx = this._runner._impl.config.services.length - 1;\n        const myService = this._runner._impl.config.services[myServiceIdx];\n        const uri = `http://localhost:${myService.conf.port}/`;\n        if (!this._spec) {\n            // We only want to load this once.\n            preq.get(`${uri}?spec`)\n            .then((res) => {\n                if (!res.body) {\n                    throw new Error('Failed to get spec');\n                }\n                // save a copy\n                this._spec = res.body;\n            })\n            .catch((err) => {\n                // this error will be detected later, so ignore it\n                this._spec = { paths: {}, 'x-default-params': {} };\n            })\n            .then(() => {\n                return {\n                    uri,\n                    service: myService,\n                    conf: this._runner._impl.config,\n                    spec: this._spec\n                };\n            });\n        }\n\n        return {\n            uri,\n            service: myService,\n            conf: this._runner._impl.config,\n            spec: this._spec\n        };\n\n    }\n}\n\nmodule.exports = TestServiceTemplateNodeRunner;\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/package.json","messages":[],"errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/src/apis/EventStreamsApi.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: 'import' and 'export' may appear only with 'sourceType: module'","line":1,"column":1}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Config from '@/config';\n\n/**\n * Gets the list of stream names that can be consumed\n * from the configured EventStreams instance.\n * @return {promise} When resolved, will contain the list of stream names\n *                   that can be consumed from the configured EventStreams.\n */\nfunction getAvailableStreams () {\n  return new Promise(function (resolve) {\n    fetch(Config.eventStreamsUri + '?spec')\n      .then(function (response) { return response.json(); })\n      .then(function (data) { resolve(formatAvailableStreams(data)); });\n  });\n}\n\n// Extracts the stream names from the EventStreams spec.\nfunction formatAvailableStreams (spec) {\n  // /v2/stream/{streams} endpoint spec has a list of all available streams.\n  return spec.paths['/v2/stream/{streams}'].get.parameters[0].schema.items.enum;\n}\n\n/**\n * Opens an SSE EventSource that consumes the passed stream names.\n * Subscribes the passed callback to be called whenever an event is consumed.\n * Finally, returns the EventSource object, so it can be closed.\n * @param streamList {array} List of stream names to be consumed.\n * @param onMessage {function} To be called whenever an event is consumed.\n * @returns {object} Corresponding EventSource object.\n */\nfunction consumeStreams (streamList, onMessage) {\n   const streamCSV = streamList.join(',');\n   const streamUrl = Config.eventStreamsUri + \"v2/stream/\" + streamCSV;\n   const eventSource = new EventSource(streamUrl);\n   eventSource.onmessage = onMessage;\n   return eventSource;\n}\n\nexport default {\n  getAvailableStreams,\n  consumeStreams\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/src/config/index.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: 'import' and 'export' may appear only with 'sourceType: module'","line":1,"column":1}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"export default {\n  // Set eventStreamsUri to the base URI of the EventStreams server\n  // you want to view streams of.\n  // A value of '/' will work with the locally running EventStreams service.\n  // If you use this for development, don't use 'npm run serve', but rather\n  // 'npm run build' and browse the ui from 'http://locahost:8092/v2/ui'\n  // (port might change, depending on how you ran EventStreams server.js).\n  // Caveat: You won't be able to consume streams this way locally.\n  eventStreamsUri: '/'\n  // eventStreamsUri: 'https://stream-beta.wmflabs.org/'\n  // eventStreamsUri: 'https://stream.wikimedia.org/'\n};\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/src/main.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: 'import' and 'export' may appear only with 'sourceType: module'","line":1,"column":1}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\n\n// Import element-ui.\nimport ElementUI from 'element-ui';\nimport 'element-ui/lib/theme-chalk/index.css';\nimport locale from 'element-ui/lib/locale/lang/en';\nVue.use(ElementUI, {locale});\n\nVue.config.productionTip = false;\n\nnew Vue({\n  router,\n  render: h => h(App)\n}).$mount('#app');\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/src/router/index.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: 'import' and 'export' may appear only with 'sourceType: module'","line":1,"column":1}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Home from '../views/Home.vue'\n\nVue.use(VueRouter)\n\nconst routes = [\n  {\n    path: '/',\n    name: 'Home',\n    component: Home\n  }\n]\n\nconst router = new VueRouter({\n  routes\n})\n\nexport default router\n","usedDeprecatedRules":[]},{"filePath":"/src/repo/ui/src/utils/index.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: 'import' and 'export' may appear only with 'sourceType: module'","line":57,"column":1}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Returns an HTML blob that represents the passed yaml text.\n * The values will be color-highlighted, depending on type.\n */\nfunction yamlToHtml (yamlText) {\n  const lines = yamlText.trim().split('\\n');\n\n  const formattedLines = lines.map(function (line) {\n    if (/^\\s*-/.test(line)) {\n      // Line is a list item, thus is entirely a value (no label).\n      const indentation = line.indexOf('-');\n      const value = line.substr(indentation + 1).trim();\n      return '&nbsp;'.repeat(indentation) + '- ' + valueToHtml(value);\n    } else {\n      // Line has a label and optionally a value.\n      const indentation = /^(\\s*)/g.exec(line)[1].length;\n      const colonIndex = line.indexOf(':');\n      const label = line.substr(indentation, colonIndex - indentation);\n      const value = line.substr(colonIndex + 1).trim();\n      return '&nbsp;'.repeat(indentation) + label + ': ' + valueToHtml(value);\n    }\n  });\n  return formattedLines.join('<br>');\n}\n\n// Returns the passed value withing an HTML span,\n// color-highlighting it depending on type.\nfunction valueToHtml (value) {\n  var color;\n\n  if (value === 'true' || value === 'false') {\n    color = 'blue';\n  } else if (isNaN(Number(value))) {\n    color = 'green';\n  } else {\n    color = 'red';\n  }\n\n  const htmlValue = value.replaceAll('<', '&lt;').replaceAll('>', '&gt;');\n  return `<span style=\"color:${color}\">${htmlValue}</span>`;\n}\n\n/**\n * Triggers a download of the given text\n * within a file with the specified filename.\n */\nfunction downloadText (text, filename) {\n  const element = document.createElement('a');\n  element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));\n  element.setAttribute('download', filename);\n  element.style.display = 'none';\n  document.body.appendChild(element);\n  element.click();\n  document.body.removeChild(element);\n}\n\nexport default {\n  yamlToHtml,\n  downloadText\n};\n","usedDeprecatedRules":[]}]

Removing eslint-disable-line (x1) from /src/repo/app.js
Removing eslint-disable-line (x1) from /src/repo/routes/stream.js
Removing eslint-disable-line (x1) from /src/repo/test/features/app/spec.js
Removing eslint-disable-line (x1) from /src/repo/test/utils/assert.js
$ npm ci
npm WARN prepare removing existing node_modules/ before installation

> node-rdkafka@2.4.2 install /src/repo/node_modules/node-rdkafka
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/node-rdkafka/build'
  ACTION deps_librdkafka_gyp_librdkafka_target_configure deps/librdkafka/config.h
checking for OS or distribution... ok (Linux)
checking for C compiler from CC env... failed
checking for gcc (by command)... ok
checking for C++ compiler from CXX env... failed
checking for C++ compiler (g++)... ok
checking executable ld... ok
checking executable nm... ok
checking executable objdump... ok
checking executable strip... ok
checking for pkgconfig (by command)... ok
checking for install (by command)... ok
checking for PIC (by compile)... ok
checking for GNU-compatible linker options... ok
checking for GNU linker-script ld flag... ok
checking for __atomic_32 (by compile)... ok
checking for __atomic_64 (by compile)... ok
checking for socket (by compile)... ok
parsing version '0x000b05ff'... ok (0.11.5)
checking for librt (by pkg-config)... failed
checking for librt (by compile)... ok
checking for libpthread (by pkg-config)... failed
checking for libpthread (by compile)... ok
checking for libdl (by pkg-config)... failed
checking for libdl (by compile)... ok
checking for zlib (by pkg-config)... ok
checking for zlib (by compile)... ok (cached)
checking for libcrypto (by pkg-config)... failed
checking for libcrypto (by compile)... failed (disable)
checking for libm (by pkg-config)... failed
checking for libm (by compile)... ok
checking for liblz4 (by pkg-config)... failed
checking for liblz4 (by compile)... failed (disable)
checking for rapidjson (by compile)... failed (disable)
checking for libssl (by pkg-config)... failed
checking for libssl (by compile)... failed (disable)
checking for libsasl2 (by pkg-config)... failed
checking for libsasl2 (by compile)... failed (disable)
checking for libsasl (by pkg-config)... failed
checking for libsasl (by compile)... failed (disable)
checking for crc32chw (by compile)... ok
checking for regex (by compile)... ok
checking for strndup (by compile)... ok
checking for strerror_r (by compile)... ok
checking for pthread_setname_gnu (by compile)... ok
checking for nm (by env NM)... ok (cached)
checking for python (by command)... ok
Generated Makefile.config
Generated config.h

Configuration summary:
  prefix                   /src/repo/node_modules/node-rdkafka/build/deps
  ARCH                     x86_64
  CPU                      generic
  GEN_PKG_CONFIG           y
  ENABLE_DEVEL             n
  ENABLE_VALGRIND          n
  ENABLE_REFCNT_DEBUG      n
  ENABLE_SHAREDPTR_DEBUG   n
  ENABLE_LZ4_EXT           y
  ENABLE_SSL               y
  ENABLE_SASL              y
  libdir                   /src/repo/node_modules/node-rdkafka/build/deps
  MKL_APP_NAME             librdkafka
  MKL_APP_DESC_ONELINE     The Apache Kafka C/C++ library
  LDFLAGS                  -L/src/repo/node_modules/node-rdkafka/build/deps
  MKL_DISTRO               Linux
  SOLIB_EXT                .so
  CC                       gcc
  CXX                      g++
  LD                       ld
  NM                       nm
  OBJDUMP                  objdump
  STRIP                    strip
  CPPFLAGS                 -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align
  PKG_CONFIG               pkg-config
  INSTALL                  install
  LIB_LDFLAGS              -shared -Wl,-soname,$(LIBFILENAME)
  LDFLAG_LINKERSCRIPT      -Wl,--version-script=
  RDKAFKA_VERSION_STR      0.11.5
  MKL_APP_VERSION          0.11.5
  LIBS                     -lm -lz -ldl -lpthread -lrt
  CFLAGS                   
  CXXFLAGS                 -Wno-non-virtual-dtor
  SYMDUMPER                $(NM) -D
  exec_prefix              /src/repo/node_modules/node-rdkafka/build/deps
  bindir                   /src/repo/node_modules/node-rdkafka/build/deps/bin
  sbindir                  /src/repo/node_modules/node-rdkafka/build/deps/sbin
  libexecdir               /src/repo/node_modules/node-rdkafka/build/deps/libexec
  datadir                  /src/repo/node_modules/node-rdkafka/build/deps/share
  sysconfdir               /src/repo/node_modules/node-rdkafka/build/deps/etc
  sharedstatedir           /src/repo/node_modules/node-rdkafka/build/deps/com
  localstatedir            /src/repo/node_modules/node-rdkafka/build/deps/var
  includedir               /src/repo/node_modules/node-rdkafka/build/deps/include
  infodir                  /src/repo/node_modules/node-rdkafka/build/deps/info
  mandir                   /src/repo/node_modules/node-rdkafka/build/deps/man
Generated config.cache

Now type 'make' to build
  TOUCH 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
  ACTION deps_librdkafka_gyp_librdkafka_target_build_dependencies 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
make[1]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka.c -o rdkafka.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_broker.c -o rdkafka_broker.o
rdkafka_broker.c: In function ‘rd_kafka_broker_update’:
rdkafka_broker.c:4172:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rko->rko_u.node.nodename, nodename,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     sizeof(rko->rko_u.node.nodename)-1);
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rdkafka_broker.c: In function ‘rd_kafka_broker_op_serve’:
rdkafka_broker.c:2194:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rkb->rkb_nodename,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                 rko->rko_u.node.nodename,
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~
                                 sizeof(rkb->rkb_nodename)-1);
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rdkafka_broker.c:2237:25: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
                         strncpy(rkb->rkb_name, brokername,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 sizeof(rkb->rkb_name)-1);
                                 ~~~~~~~~~~~~~~~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msg.c -o rdkafka_msg.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_topic.c -o rdkafka_topic.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_conf.c -o rdkafka_conf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_timer.c -o rdkafka_timer.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_offset.c -o rdkafka_offset.o
In file included from rd.h:68,
                 from rdkafka_int.h:44,
                 from rdkafka_offset.c:51:
rdkafka_offset.c: In function ‘rd_kafka_offset_file_init’:
rdkafka_offset.c:918:51: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
                 rd_snprintf(spath, sizeof(spath), "%s%s%s",
                                                   ^~~~~~~~
rdposix.h:85:36: note: in definition of macro ‘rd_snprintf’
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                                    ^~~~~~~~~~~
rdposix.h:85:27: note: ‘snprintf’ output 1 or more bytes (assuming 4097) into a destination of size 4096
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                           ^~~~~~~~~~~~~~~~~~~~~
rdkafka_offset.c:918:17: note: in expansion of macro ‘rd_snprintf’
                 rd_snprintf(spath, sizeof(spath), "%s%s%s",
                 ^~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_transport.c -o rdkafka_transport.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_buf.c -o rdkafka_buf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_queue.c -o rdkafka_queue.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_op.c -o rdkafka_op.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_request.c -o rdkafka_request.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_cgrp.c -o rdkafka_cgrp.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_pattern.c -o rdkafka_pattern.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_partition.c -o rdkafka_partition.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_subscription.c -o rdkafka_subscription.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_assignor.c -o rdkafka_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_range_assignor.c -o rdkafka_range_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_roundrobin_assignor.c -o rdkafka_roundrobin_assignor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_feature.c -o rdkafka_feature.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdcrc32.c -o rdcrc32.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c crc32c.c -o crc32c.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdmurmur2.c -o rdmurmur2.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdaddr.c -o rdaddr.o
In file included from rd.h:68,
                 from rdaddr.c:30:
rdaddr.c: In function ‘rd_sockaddr2str’:
rdaddr.c:77:6: warning: ‘%s’ directive output may be truncated writing up to 63 bytes into a region of size between 60 and 61 [-Wformat-truncation=]
      "%s:%s",
      ^~~~~~~
rdaddr.c:79:6:
      portstr);
      ~~~~~~~
rdposix.h:85:36: note: in definition of macro ‘rd_snprintf’
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                                    ^~~~~~~~~~~
rdposix.h:85:27: note: ‘snprintf’ output between 2 and 66 bytes into a destination of size 62
 #define rd_snprintf(...)  snprintf(__VA_ARGS__)
                           ^~~~~~~~~~~~~~~~~~~~~
rdaddr.c:76:4: note: in expansion of macro ‘rd_snprintf’
    rd_snprintf(ret[reti]+len, sizeof(ret[reti])-len,
    ^~~~~~~~~~~
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdrand.c -o rdrand.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdlist.c -o rdlist.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c tinycthread.c -o tinycthread.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdlog.c -o rdlog.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdstring.c -o rdstring.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_event.c -o rdkafka_event.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_metadata.c -o rdkafka_metadata.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdregex.c -o rdregex.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdports.c -o rdports.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_metadata_cache.c -o rdkafka_metadata_cache.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdavl.c -o rdavl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_sasl.c -o rdkafka_sasl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_sasl_plain.c -o rdkafka_sasl_plain.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_interceptor.c -o rdkafka_interceptor.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msgset_writer.c -o rdkafka_msgset_writer.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_msgset_reader.c -o rdkafka_msgset_reader.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_header.c -o rdkafka_header.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_admin.c -o rdkafka_admin.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_aux.c -o rdkafka_aux.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_background.c -o rdkafka_background.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdvarint.c -o rdvarint.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdbuf.c -o rdbuf.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdunittest.c -o rdunittest.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c snappy.c -o snappy.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdgz.c -o rdgz.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdhdrhistogram.c -o rdhdrhistogram.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_lz4.c -o rdkafka_lz4.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c xxhash.c -o xxhash.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4.c -o lz4.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4frame.c -o lz4frame.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -O3 -c lz4hc.c -o lz4hc.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rddl.c -o rddl.o
gcc -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -DLIBRDKAFKA_GIT_VERSION="\"\""  -c rdkafka_plugin.c -o rdkafka_plugin.o
Generating linker script librdkafka.lds from rdkafka.h
Creating shared library librdkafka.so.1
gcc -L/src/repo/node_modules/node-rdkafka/build/deps -shared -Wl,-soname,librdkafka.so.1 -Wl,--version-script=librdkafka.lds rdkafka.o rdkafka_broker.o rdkafka_msg.o rdkafka_topic.o rdkafka_conf.o rdkafka_timer.o rdkafka_offset.o rdkafka_transport.o rdkafka_buf.o rdkafka_queue.o rdkafka_op.o rdkafka_request.o rdkafka_cgrp.o rdkafka_pattern.o rdkafka_partition.o rdkafka_subscription.o rdkafka_assignor.o rdkafka_range_assignor.o rdkafka_roundrobin_assignor.o rdkafka_feature.o rdcrc32.o crc32c.o rdmurmur2.o rdaddr.o rdrand.o rdlist.o tinycthread.o rdlog.o rdstring.o rdkafka_event.o rdkafka_metadata.o rdregex.o rdports.o rdkafka_metadata_cache.o rdavl.o rdkafka_sasl.o rdkafka_sasl_plain.o rdkafka_interceptor.o rdkafka_msgset_writer.o rdkafka_msgset_reader.o rdkafka_header.o rdkafka_admin.o rdkafka_aux.o rdkafka_background.o rdvarint.o rdbuf.o rdunittest.o snappy.o rdgz.o rdhdrhistogram.o rdkafka_lz4.o xxhash.o lz4.o lz4frame.o lz4hc.o rddl.o rdkafka_plugin.o -o librdkafka.so.1 -lm -lz -ldl -lpthread -lrt
Creating static library librdkafka.a
ar rcs librdkafka.a rdkafka.o rdkafka_broker.o rdkafka_msg.o rdkafka_topic.o rdkafka_conf.o rdkafka_timer.o rdkafka_offset.o rdkafka_transport.o rdkafka_buf.o rdkafka_queue.o rdkafka_op.o rdkafka_request.o rdkafka_cgrp.o rdkafka_pattern.o rdkafka_partition.o rdkafka_subscription.o rdkafka_assignor.o rdkafka_range_assignor.o rdkafka_roundrobin_assignor.o rdkafka_feature.o rdcrc32.o crc32c.o rdmurmur2.o rdaddr.o rdrand.o rdlist.o tinycthread.o rdlog.o rdstring.o rdkafka_event.o rdkafka_metadata.o rdregex.o rdports.o rdkafka_metadata_cache.o rdavl.o rdkafka_sasl.o rdkafka_sasl_plain.o rdkafka_interceptor.o rdkafka_msgset_writer.o rdkafka_msgset_reader.o rdkafka_header.o rdkafka_admin.o rdkafka_aux.o rdkafka_background.o rdvarint.o rdbuf.o rdunittest.o snappy.o rdgz.o rdhdrhistogram.o rdkafka_lz4.o xxhash.o lz4.o lz4frame.o lz4hc.o rddl.o rdkafka_plugin.o
Creating librdkafka.so symlink
rm -f "librdkafka.so" && ln -s "librdkafka.so.1" "librdkafka.so"
Generating pkg-config file rdkafka.pc
Generating pkg-config file rdkafka-static.pc
Checking librdkafka integrity
librdkafka.so.1                OK
librdkafka.a                   OK
Symbol visibility              OK
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c RdKafka.cpp -o RdKafka.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ConfImpl.cpp -o ConfImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c HandleImpl.cpp -o HandleImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ConsumerImpl.cpp -o ConsumerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c ProducerImpl.cpp -o ProducerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c KafkaConsumerImpl.cpp -o KafkaConsumerImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c TopicImpl.cpp -o TopicImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c TopicPartitionImpl.cpp -o TopicPartitionImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c MessageImpl.cpp -o MessageImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c QueueImpl.cpp -o QueueImpl.o
g++ -MD -MP -g -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c MetadataImpl.cpp -o MetadataImpl.o
Creating shared library librdkafka++.so.1
gcc -L/src/repo/node_modules/node-rdkafka/build/deps -shared -Wl,-soname,librdkafka++.so.1 RdKafka.o ConfImpl.o HandleImpl.o ConsumerImpl.o ProducerImpl.o KafkaConsumerImpl.o TopicImpl.o TopicPartitionImpl.o MessageImpl.o QueueImpl.o MetadataImpl.o -o librdkafka++.so.1 -L../src -lrdkafka -lstdc++
Creating static library librdkafka++.a
ar rcs librdkafka++.a RdKafka.o ConfImpl.o HandleImpl.o ConsumerImpl.o ProducerImpl.o KafkaConsumerImpl.o TopicImpl.o TopicPartitionImpl.o MessageImpl.o QueueImpl.o MetadataImpl.o
Creating librdkafka++.so symlink
rm -f "librdkafka++.so" && ln -s "librdkafka++.so.1" "librdkafka++.so"
Generating pkg-config file rdkafka++.pc
Generating pkg-config file rdkafka++-static.pc
Checking librdkafka++ integrity
librdkafka++.so.1              OK
librdkafka++.a                 OK
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
Install librdkafka to /src/repo/node_modules/node-rdkafka/build/deps
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install rdkafka.h $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install librdkafka.a $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install librdkafka.so.1 $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
[ -f "rdkafka.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
[ -f "rdkafka-static.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka-static.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
(cd $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps && ln -sf librdkafka.so.1 librdkafka.so)
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src'
make[2]: Entering directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
Install librdkafka++ to /src/repo/node_modules/node-rdkafka/build/deps
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install rdkafkacpp.h $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/include/librdkafka ; \
install librdkafka++.a $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
install librdkafka++.so.1 $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps ; \
[ -f "rdkafka++.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka++.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
[ -f "rdkafka++-static.pc" ] && ( \
	install -d $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig ; \
	install -m 0644 rdkafka++-static.pc $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps/pkgconfig \
) ; \
(cd $DESTDIR/src/repo/node_modules/node-rdkafka/build/deps && ln -sf librdkafka++.so.1 librdkafka++.so)
make[2]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
make[1]: Leaving directory '/src/repo/node_modules/node-rdkafka/deps/librdkafka'
  TOUCH Release/obj.target/deps/librdkafka.stamp
  CXX(target) Release/obj.target/node-librdkafka/src/binding.o
In file included from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/binding.h:13,
                 from ../src/binding.cc:11:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/binding.cc:164:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(kafka, Init)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/binding.h:13,
                 from ../src/binding.cc:11:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/callbacks.o
../src/callbacks.cc: In member function ‘void NodeKafka::Callbacks::Dispatcher::Dispatch(int, v8::Local<v8::Value>*)’:
../src/callbacks.cc:102:25: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     cb.Call(_argc, _argv);
                         ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/callbacks.cc: In member function ‘virtual int32_t NodeKafka::Callbacks::Partitioner::partitioner_cb(const RdKafka::Topic*, const string*, int32_t, void*)’:
../src/callbacks.cc:564:60: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   v8::Local<v8::Value> return_value = callback.Call(3, argv);
                                                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/callbacks.cc: In member function ‘void NodeKafka::Callbacks::Partitioner::SetCallback(v8::Local<v8::Function>)’:
../src/callbacks.cc:601:14: warning: ‘v8::Local<v8::Value> Nan::Callback::operator()(v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback(cb);
              ^
In file included from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
../../nan/nan.h:1640:46: note: declared here
   NAN_DEPRECATED inline v8::Local<v8::Value> operator()(
                                              ^~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/callbacks.h:13,
                 from ../src/callbacks.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/common.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/common.h:13,
                 from ../src/common.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/config.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/config.h:13,
                 from ../src/config.cc:14:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/connection.o
In file included from ../src/connection.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/connection.h:13,
                 from ../src/connection.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/connection.h:13,
                 from ../src/connection.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/errors.o
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/errors.h:13,
                 from ../src/errors.cc:12:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/kafka-consumer.o
In file included from ../src/kafka-consumer.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/kafka-consumer.cc: In static member function ‘static void NodeKafka::KafkaConsumer::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/kafka-consumer.cc:560:64: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_GLOBAL, info[0]->ToObject(), errstr);
                                                                ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/kafka-consumer.cc:567:63: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);
                                                               ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/kafka-consumer.h:13,
                 from ../src/kafka-consumer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/producer.o
In file included from ../src/producer.cc:14:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/producer.cc: In static member function ‘static void NodeKafka::Producer::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/producer.cc:115:64: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_GLOBAL, info[0]->ToObject(), errstr);
                                                                ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc:122:63: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);
                                                               ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE NodeKafka::Producer::NodeProduce(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/producer.cc:373:69: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Object> message_buffer_object = info[2]->ToObject();
                                                                     ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/producer.cc:396:65: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Object> key_buffer_object = info[3]->ToObject();
                                                                 ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/producer.h:13,
                 from ../src/producer.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/topic.o
../src/topic.cc: In static member function ‘static void NodeKafka::Topic::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../src/topic.cc:118:72: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     config = Conf::create(RdKafka::Conf::CONF_TOPIC, info[1]->ToObject(), errstr);  // NOLINT
                                                                        ^
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/common.h:13,
                 from ../src/topic.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/node-librdkafka/src/workers.o
In file included from ../src/workers.cc:13:
/src/repo/node_modules/node-rdkafka/src/workers.h: In member function ‘virtual void NodeKafka::Workers::ErrorAwareWorker::HandleErrorCallback()’:
/src/repo/node_modules/node-rdkafka/src/workers.h:40:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(argc, argv);
                              ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::Handle::OffsetsForTimes::HandleOKCallback()’:
../src/workers.cc:69:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::Handle::OffsetsForTimes::HandleErrorCallback()’:
../src/workers.cc:78:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionMetadata::HandleOKCallback()’:
../src/workers.cc:116:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionMetadata::HandleErrorCallback()’:
../src/workers.cc:127:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionQueryWatermarkOffsets::HandleOKCallback()’:
../src/workers.cc:174:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ConnectionQueryWatermarkOffsets::HandleErrorCallback()’:
../src/workers.cc:183:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerConnect::HandleOKCallback()’:
../src/workers.cc:223:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerConnect::HandleErrorCallback()’:
../src/workers.cc:232:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerDisconnect::HandleOKCallback()’:
../src/workers.cc:261:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::ProducerFlush::HandleOKCallback()’:
../src/workers.cc:301:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConnect::HandleOKCallback()’:
../src/workers.cc:342:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConnect::HandleErrorCallback()’:
../src/workers.cc:351:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerDisconnect::HandleOKCallback()’:
../src/workers.cc:386:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerDisconnect::HandleErrorCallback()’:
../src/workers.cc:397:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeLoop::HandleMessageCallback(RdKafka::Message*)’:
../src/workers.cc:484:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeLoop::HandleErrorCallback()’:
../src/workers.cc:498:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeNum::HandleOKCallback()’:
../src/workers.cc:580:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsumeNum::HandleErrorCallback()’:
../src/workers.cc:597:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsume::HandleOKCallback()’:
../src/workers.cc:644:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerConsume::HandleErrorCallback()’:
../src/workers.cc:653:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerCommitted::HandleOKCallback()’:
../src/workers.cc:696:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerCommitted::HandleErrorCallback()’:
../src/workers.cc:705:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerSeek::HandleOKCallback()’:
../src/workers.cc:758:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/workers.cc: In member function ‘virtual void NodeKafka::Workers::KafkaConsumerSeek::HandleErrorCallback()’:
../src/workers.cc:767:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(argc, argv);
                            ^
In file included from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from /src/repo/node_modules/node-rdkafka/src/workers.h:14,
                 from ../src/workers.cc:13:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/node-librdkafka.node
  COPY Release/node-librdkafka.node
rm 11a9e3388a67e1ca5c31c1d8da49cb6d2714eb41.intermediate
make: Leaving directory '/src/repo/node_modules/node-rdkafka/build'

> dtrace-provider@0.8.8 install /src/repo/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: Entering directory '/src/repo/node_modules/dtrace-provider/build'
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: Leaving directory '/src/repo/node_modules/dtrace-provider/build'

> unix-dgram@2.0.4 install /src/repo/node_modules/unix-dgram
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/unix-dgram/build'
  CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o
In file included from ../../nan/nan.h:56,
                 from ../src/unix_dgram.cc:5:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/unix_dgram.cc:404:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(unix_dgram, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../../nan/nan.h:56,
                 from ../src/unix_dgram.cc:5:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/unix_dgram.node
  COPY Release/unix_dgram.node
make: Leaving directory '/src/repo/node_modules/unix-dgram/build'

> heapdump@0.3.15 install /src/repo/node_modules/heapdump
> node-gyp rebuild

make: Entering directory '/src/repo/node_modules/heapdump/build'
  CXX(target) Release/obj.target/addon/src/heapdump.o
In file included from ../src/heapdump.cc:15:
/cache/node-gyp/10.24.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/cache/node-gyp/10.24.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/heapdump.cc:136:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, Initialize)
 ^~~~~~~~~~~
In file included from /cache/node-gyp/10.24.0/include/node/node.h:63,
                 from ../src/heapdump.cc:15:
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/cache/node-gyp/10.24.0/include/node/node_object_wrap.h:84:78:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cache/node-gyp/10.24.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/cache/node-gyp/10.24.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/addon.node
  COPY Release/addon.node
make: Leaving directory '/src/repo/node_modules/heapdump/build'

> gc-stats@1.4.0 install /src/repo/node_modules/gc-stats
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
[gc-stats] Success: "/src/repo/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node-v64-linux-x64/gcstats.node" is installed via remote

> core-js@3.14.0 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

added 477 packages in 71.118s

$ npm test

> eventstreams@0.7.3 test /src/repo
> npm run unit-test && npm run lint


> eventstreams@0.7.3 unit-test /src/repo
> PREQ_CONNECT_TIMEOUT=15 mocha



  express app
[2021-06-05T11:02:25.558Z] ERROR: eventstreams/4026 on bf3bff7a4c96: No such metrics client: 'undefined' (levelPath=error/metrics)
[2021-06-05T11:02:25.897Z]  INFO: eventstreams/4026 on bf3bff7a4c96: Loading stream configs from ./stream-config.yaml (levelPath=info)
[2021-06-05T11:02:25.906Z] FATAL: eventstreams/4026 on bf3bff7a4c96: Cannot enable HTML stream GUI at /v2/ui: The ui/dist directory does not exist. Run `npm run build-ui`.
    Error: Cannot enable HTML stream GUI at /v2/ui: The ui/dist directory does not exist. Run `npm run build-ui`.
        at module.exports (/src/repo/routes/stream.js:441:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! eventstreams@0.7.3 unit-test: `PREQ_CONNECT_TIMEOUT=15 mocha`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the eventstreams@0.7.3 unit-test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2021-06-05T11_02_26_045Z-debug.log
npm ERR! Test failed.  See above for more details.

Traceback (most recent call last):
  File "/venv/lib/python3.7/site-packages/runner-0.1.0-py3.7.egg/runner/__init__.py", line 1318, in main
    libup.run(args.repo, args.output, args.branch)
  File "/venv/lib/python3.7/site-packages/runner-0.1.0-py3.7.egg/runner/__init__.py", line 1257, in run
    self.npm_upgrade(plan)
  File "/venv/lib/python3.7/site-packages/runner-0.1.0-py3.7.egg/runner/__init__.py", line 965, in npm_upgrade
    self.npm_test()
  File "/venv/lib/python3.7/site-packages/runner-0.1.0-py3.7.egg/runner/__init__.py", line 255, in npm_test
    self.check_call(['npm', 'test'])
  File "/venv/lib/python3.7/site-packages/runner-0.1.0-py3.7.egg/runner/shell2.py", line 40, in check_call
    res.check_returncode()
  File "/usr/lib/python3.7/subprocess.py", line 428, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['npm', 'test']' returned non-zero exit status 1.
Source code is licensed under the AGPL.