Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there a way to not "inspect" the expected output when it fails? #1188

Closed
schneems opened this issue Jun 3, 2020 · 9 comments
Closed

Is there a way to not "inspect" the expected output when it fails? #1188

schneems opened this issue Jun 3, 2020 · 9 comments

Comments

@schneems
Copy link

schneems commented Jun 3, 2020

I'm using rspec to test build deploys which are very verbose. I want the full output when it fails because it's very valuable for debugging, but when an expectation fails it looks like it is "inspect"-ed so it shows up with newlines like this and is largely unreadable:

     Failure/Error: ]
       expected "remote: Compressing source files... done.        \nremote: Building source:        \nremote: \nremote: -----> Node.js app detected        \nremote:                \nremote: -----> Creating runtime environment        \nremote:                \nremote:        NPM_CONFIG_LOGLEVEL=error        \nremote:        NODE_ENV=production        \nremote:        NODE_MODULES_CACHE=true        \nremote:        NODE_VERBOSE=false        \nremote:                \nremote: -----> Installing binaries        \nremote:        engines.node (package.json):  unspecified        \nremote:        engines.npm (package.json):   unspecified (use default)        \nremote:        engines.yarn (package.json):  unspecified (use default)        \nremote:                \nremote:        Resolving node version 12.x...        \nremote:        Downloading and installing node 12.17.0...        \nremote:        Using default npm version: 6.14.4        \nremote:        Resolving yarn version 1.x...        \nremote:        Downloading and installing yarn (1.22.4)...        \nremote:        Installed yarn 1.22.4        \nremote:                \nremote: -----> Installing dependencies        \nremote:        Installing node modules (yarn.lock)        \nremote:        yarn install v1.22.4        \nremote:        [1/4] Resolving packages...        \nremote:        [2/4] Fetching packages...        \nremote:        info fsevents@1.1.1: The platform \"linux\" is incompatible with this module.        \nremote:        info \"fsevents@1.1.1\" is an optional dependency and failed compatibility check. Excluding it from installation.        \nremote:        [3/4] Linking dependencies...        \nremote:        [4/4] Building fresh packages...        \nremote:        warning Error running install script for optional dependency: \"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli: Command failed.        \nremote:        Exit code: 1        \nremote:        Command: node-pre-gyp install --fallback-to-build        \nremote:        Arguments:         \nremote:        Directory: /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli        \nremote:        Output:        \nremote:        node-pre-gyp ERR! Tried to download(403): https://node-zopfli.s3.amazonaws.com/Release/zopfli-v2.0.2-node-v72-linux-x64.tar.gz         \nremote:        node-pre-gyp ERR! Pre-built binaries not found for node-zopfli@2.0.2 and node@12.17.0 (node-v72 ABI) (falling back to source compile with node-gyp)         \nremote:        node-pre-gyp ERR! Tried to download(undefined): https://node-zopfli.s3.amazonaws.com/Release/zopfli-v2.0.2-node-v72-linux-x64.tar.gz         \nremote:        node-pre-gyp ERR! Pre-built binaries not found for node-zopfli@2.0.2 and node@12.17.0 (node-v72 ABI) (falling back to source compile with node-gyp)         \nremote:        make: Entering directory '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/build'        \nremote:        make: Entering directory '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/build'        \nremote:          CXX(target) Release/obj.target/zopfli/src/zopfli-binding.o        \nremote:          CXX(target) Release/obj.target/zopfli/src/zopfli-binding.o        \nremote:        In file included from ../../nan/nan.h:190:0,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)’:        \nremote:        ../../nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’        \nremote:           return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);        \nremote:                       ^~~~~~~~        \nremote:        In file included from ../../nan/nan_converters.h:59:0,        \nremote:                         from ../../nan/nan.h:195,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_converters_43_inl.h:18:69: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]        \nremote:               val->To ## TYPE(v8::Isolate::GetCurrent()->GetCurrentContext())          \\\\\\n                                                                     ^        \nremote:        ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’        \nremote:         X(Boolean)        \nremote:         ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2664:59: note: declared here        \nremote:                         V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(        \nremote:                                                                   ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../../nan/nan.h:190:0,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)’:        \nremote:        ../../nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’        \nremote:           return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);        \nremote:                       ^~~~~~~~        \nremote:        In file included from ../../nan/nan_converters.h:59:0,        \nremote:                         from ../../nan/nan.h:195,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]        \nremote:           return val->NAME ## Value(isolate->GetCurrentContext());                     \\\\\\n                                                         ^        \nremote:        ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’        \nremote:         X(bool, Boolean)        \nremote:         ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: declared here        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../../nan/nan_converters.h:59:0,        \nremote:                         from ../../nan/nan.h:195,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_converters_43_inl.h:18:69: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]        \nremote:               val->To ## TYPE(v8::Isolate::GetCurrent()->GetCurrentContext())          \\\\\\n                                                                     ^        \nremote:        ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’        \nremote:         X(Boolean)        \nremote:         ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2664:59: note: declared here        \nremote:                         V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(        \nremote:                                                                   ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Object>&)’        \nremote:                                   , obj));        \nremote:                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:4275:31: note: candidate: static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)        \nremote:           static MaybeLocal<Function> New(        \nremote:                                       ^~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:4275:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’        \nremote:        In file included from ../../nan/nan_converters.h:59:0,        \nremote:                         from ../../nan/nan.h:195,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]        \nremote:           return val->NAME ## Value(isolate->GetCurrentContext());                     \\\\\\n                                                         ^        \nremote:        ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’        \nremote:         X(bool, Boolean)        \nremote:         ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: declared here        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:        \nremote:        ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:5531:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)        \nremote:           static Local<Value> New(Isolate* isolate, Local<String> value);        \nremote:                               ^~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:5531:23: note:   candidate expects 2 arguments, 1 provided        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                                                  ^        \nremote:        ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                                                    ^        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Object>&)’        \nremote:                                   , obj));        \nremote:                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:4275:31: note: candidate: static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)        \nremote:           static MaybeLocal<Function> New(        \nremote:                                       ^~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:4275:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:        \nremote:        ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:5531:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)        \nremote:           static Local<Value> New(Isolate* isolate, Local<String> value);        \nremote:                               ^~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:5531:23: note:   candidate expects 2 arguments, 1 provided        \nremote:        In file included from ../../nan/nan_new.h:189:0,        \nremote:                         from ../../nan/nan.h:196,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:\nremote:        ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                                                  ^        \nremote:        ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token        \nremote:           return v8::StringObject::New(value).As<v8::StringObject>();        \nremote:                                                                    ^        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:833:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, func, argc, argv);        \nremote:                                                                    ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:182:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:848:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, symbol, argc, argv);        \nremote:                                                                      ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:175:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:863:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, method, argc, argv);        \nremote:                                                                      ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:168:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan.h:909:53: error: no matching function for call to ‘v8::Value::ToString()’        \nremote:               v8::Local<v8::String> string = from->ToString();        \nremote:                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2668:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2684:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const        \nremote:                         Local<String> ToString(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<String> ToString(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h:919:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’        \nremote:                 length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);        \nremote:                                                                                  ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2878:7: note: candidate: int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const        \nremote:           int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,        \nremote:               ^~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2878:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:        \nremote:        ../../nan/nan.h:1477:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:             ));        \nremote:             ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:182:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1531:64: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(New(key).ToLocalChecked(), value);        \nremote:                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1537:42: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(key, value);        \nremote:                                                  ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1543:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(index, value);        \nremote:                                                    ^        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:833:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, func, argc, argv);        \nremote:                                                                    ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3508:22: note: declared here        \nremote:                         bool Set(uint32_t index, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:182:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:848:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, symbol, argc, argv);        \nremote:                                                                      ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:175:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:        \nremote:        ../../nan/nan.h:863:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:                 v8::Isolate::GetCurrent(), target, method, argc, argv);        \nremote:                                                                      ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:168:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:        \nremote:        ../../nan/nan.h:1549:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:                 New(persistentHandle)->Get(New(key).ToLocalChecked()));        \nremote:                                                                     ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3553:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(Local<Value> key));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:        \nremote:        ../../nan/nan.h:1555:55: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             return scope.Escape(New(persistentHandle)->Get(key));        \nremote:                                                               ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3553:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(Local<Value> key));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:        \nremote:        ../../nan/nan.h:909:53: error: no matching function for call to ‘v8::Value::ToString()’        \nremote:               v8::Local<v8::String> string = from->ToString();        \nremote:                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2668:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2684:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const        \nremote:                         Local<String> ToString(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<String> ToString(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:        \nremote:        ../../nan/nan.h:1560:57: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             return scope.Escape(New(persistentHandle)->Get(index));        \nremote:                                                                 ^        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h:919:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’        \nremote:                 length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);        \nremote:                                                                                  ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2878:7: note: candidate: int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const        \nremote:           int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,        \nremote:               ^~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2878:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3557:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(uint32_t index));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:        \nremote:        ../../nan/nan.h:1477:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]        \nremote:             ));        \nremote:             ^        \nremote:        In file included from ../src/zopfli-binding.cc:1:0:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:182:50: note: declared here        \nremote:                         NODE_EXTERN v8::Local<v8::Value> MakeCallback(        \nremote:                                                          ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’        \nremote:             __attribute__((deprecated(message))) declarator        \nremote:                                                  ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1531:64: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(New(key).ToLocalChecked(), value);        \nremote:                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1537:42: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(key, value);        \nremote:                                                  ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:        \nremote:        ../../nan/nan.h:1543:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             New(persistentHandle)->Set(index, value);        \nremote:                                                    ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3508:22: note: declared here        \nremote:                         bool Set(uint32_t index, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:        \nremote:        ../../nan/nan.h:1549:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:                 New(persistentHandle)->Get(New(key).ToLocalChecked()));        \nremote:                                                                     ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3553:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(Local<Value> key));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:        \nremote:        ../../nan/nan.h:1555:55: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             return scope.Escape(New(persistentHandle)->Get(key));        \nremote:                                                               ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3553:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(Local<Value> key));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:        \nremote:        ../../nan/nan.h:1560:57: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:             return scope.Escape(New(persistentHandle)->Get(index));        \nremote:                                                                 ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3557:51: note: declared here        \nremote:           V8_DEPRECATED(\\\"Use maybe version\\\", Local<Value> Get(uint32_t index));        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))\nremote:           ^~~~~~~~~~        \nremote:        In file included from /usr/include/c++/7/cassert:44:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node_object_wrap.h:26,        \nremote:                         from ../../nan/nan.h:49,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:        \nremote:        ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’        \nremote:             assert(persistent().IsNearDeath());        \nremote:                                 ^        \nremote:        In file included from ../../nan/nan.h:2220:0,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:        \nremote:        ../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase<T>::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]        \nremote:             persistent().MarkIndependent();        \nremote:                                          ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:570:22: note: declared here        \nremote:               V8_INLINE void MarkIndependent());        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from /usr/include/c++/7/cassert:44:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node_object_wrap.h:26,        \nremote:                         from ../../nan/nan.h:49,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:        \nremote:        ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’        \nremote:             assert(wrap->handle_.IsNearDeath());        \nremote:                                  ^        \nremote:        ../src/zopfli-binding.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE nodezopfli::ParseArgs(const Nan::FunctionCallbackInfo<v8::Value>&, ZopfliFormat&, ZopfliOptions&)’:        \nremote:        ../src/zopfli-binding.cc:44:96: error: no matching function for call to ‘v8::Value::BooleanValue()’        \nremote:                 zopfli_options.verbose = Nan::Get(options, option_name).ToLocalChecked()->BooleanValue();        \nremote:                                                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note: candidate: bool v8::Value::BooleanValue(v8::Isolate*) const        \nremote:           bool BooleanValue(Isolate* isolate) const;        \nremote:                ^~~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: candidate: v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note:   candidate expects 1 argument, 0 provided        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:50:101: error: no matching function for call to ‘v8::Value::BooleanValue()’        \nremote:                 zopfli_options.verbose_more = Nan::Get(options, option_name).ToLocalChecked()->BooleanValue();        \nremote:                                                                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note: candidate: bool v8::Value::BooleanValue(v8::Isolate*) const        \nremote:           bool BooleanValue(Isolate* isolate) const;        \nremote:                ^~~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /usr/include/c++/7/cassert:44:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node_object_wrap.h:26,        \nremote:                         from ../../nan/nan.h:49,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:        \nremote:        ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’        \nremote:             assert(persistent().IsNearDeath());        \nremote:                                 ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: candidate: v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note:   candidate expects 1 argument, 0 provided        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:60:100: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.numiterations = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                            ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from ../../nan/nan.h:2220:0,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:        \nremote:        ../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase<T>::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]        \nremote:             persistent().MarkIndependent();        \nremote:                                          ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:570:22: note: declared here        \nremote:               V8_INLINE void MarkIndependent());        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’\nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:71:101: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blocksplitting = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /usr/include/c++/7/cassert:44:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node_object_wrap.h:26,        \nremote:                         from ../../nan/nan.h:49,        \nremote:                         from ../src/zopfli-binding.h:5,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:        \nremote:        ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’        \nremote:             assert(wrap->handle_.IsNearDeath());        \nremote:                                  ^        \nremote:        ../src/zopfli-binding.cc:82:105: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blocksplittinglast = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                                 ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:91:104: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blocksplittingmax = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                                ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc: At global scope:        \nremote:        ../src/zopfli-binding.cc:105:96: error: ‘Handle’ has not been declared        \nremote:           CompressWorker(Nan::Callback *callback, ZopfliFormat& format, ZopfliOptions& zopfli_options, Handle<Object> buffer)        \nremote:                                                                                                        ^~~~~~        \nremote:        ../src/zopfli-binding.cc:105:102: error: expected ‘,’ or ‘...’ before ‘<’ token        \nremote:           CompressWorker(Nan::Callback *callback, ZopfliFormat& format, ZopfliOptions& zopfli_options, Handle<Object> buffer)        \nremote:                                                                                                              ^        \nremote:        ../src/zopfli-binding.cc: In constructor ‘nodezopfli::CompressWorker::CompressWorker(Nan::Callback*, ZopfliFormat&, ZopfliOptions&, int)’:        \nremote:        ../src/zopfli-binding.cc:109:42: error: ‘buffer’ was not declared in this scope        \nremote:             size_t length = node::Buffer::Length(buffer);        \nremote:                                                  ^~~~~~        \nremote:        ../src/zopfli-binding.cc:109:42: note: suggested alternative: ‘setbuffer’        \nremote:             size_t length = node::Buffer::Length(buffer);        \nremote:                                                  ^~~~~~        \nremote:                                                  setbuffer        \nremote:        ../src/zopfli-binding.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE nodezopfli::CompressBinding::Async(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:159:96: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           Nan::AsyncQueueWorker(new CompressWorker(callback, format, zopfli_options, info[0]->ToObject()));        \nremote:                                                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE nodezopfli::ParseArgs(const Nan::FunctionCallbackInfo<v8::Value>&, ZopfliFormat&, ZopfliOptions&)’:        \nremote:        ../src/zopfli-binding.cc:44:96: error: no matching function for call to ‘v8::Value::BooleanValue()’        \nremote:                 zopfli_options.verbose = Nan::Get(options, option_name).ToLocalChecked()->BooleanValue();        \nremote:                                                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note: candidate: bool v8::Value::BooleanValue(v8::Isolate*) const        \nremote:           bool BooleanValue(Isolate* isolate) const;        \nremote:                ^~~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: candidate: v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note:   candidate expects 1 argument, 0 provided        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:50:101: error: no matching function for call to ‘v8::Value::BooleanValue()’        \nremote:                 zopfli_options.verbose_more = Nan::Get(options, option_name).ToLocalChecked()->BooleanValue();        \nremote:                                                                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note: candidate: bool v8::Value::BooleanValue(v8::Isolate*) const        \nremote:           bool BooleanValue(Isolate* isolate) const;        \nremote:                ^~~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2699:8: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note: candidate: v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2702:51: note:   candidate expects 1 argument, 0 provided        \nremote:                         V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(        \nremote:                                                           ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE nodezopfli::CompressBinding::Sync(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:167:46: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           Local<Object> inbuffer = info[0]->ToObject();        \nremote:                                                      ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:60:100: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.numiterations = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                            ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:71:101: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blocksplitting = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                             ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:82:105: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blocksplittinglast = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                                 ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:91:104: error: no matching function for call to ‘v8::Value::Int32Value()’        \nremote:                 zopfli_options.blockspinfo This module is OPTIONAL, you can safely ignore this error        \nremote:        littingmax = Nan::Get(options, option_name).ToLocalChecked()->Int32Value();        \nremote:                                                                                                                ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;        \nremote:                                                ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc: At global scope:        \nremote:        ../src/zopfli-binding.cc:105:96: error: ‘Handle’ has not been declared        \nremote:           CompressWorker(Nan::Callback *callback, ZopfliFormat& format, ZopfliOptions& zopfli_options, Handle<Object> buffer)        \nremote:                                                                                                        ^~~~~~        \nremote:        ../src/zopfli-binding.cc:105:102: error: expected ‘,’ or ‘...’ before ‘<’ token        \nremote:           CompressWorker(Nan::Callback *callback, ZopfliFormat& format, ZopfliOptions& zopfli_options, Handle<Object> buffer)        \nremote:                                                                                                              ^        \nremote:        ../src/zopfli-binding.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE nodezopfli::Adler32(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:203:45: error: no matching function for call to ‘v8::Value::Uint32Value()’        \nremote:           unsigned int adler = info[0]->Uint32Value();        \nremote:                                                     ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2707:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(        \nremote:                                                 ^~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2707:41: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:209:59: error: no matching function for call to ‘v8::Value::ToObject()’\nremote:           size_t inbuffersize = Buffer::Length(inbuffer->ToObject());        \nremote:                                                                   ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc: In constructor ‘nodezopfli::CompressWorker::CompressWorker(Nan::Callback*, ZopfliFormat&, ZopfliOptions&, int)’:        \nremote:        ../src/zopfli-binding.cc:109:42: error: ‘buffer’ was not declared in this scope        \nremote:             size_t length = node::Buffer::Length(buffer);        \nremote:                                                  ^~~~~~        \nremote:        ../src/zopfli-binding.cc:210:86: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           const unsigned char * data = (const unsigned char*)Buffer::Data(inbuffer->ToObject());        \nremote:                                                                                              ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/inclDone in 21.31s.        \nremote:        ude/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:109:42: note: suggested alternative: ‘setbuffer’        \nremote:             size_t length = node::Buffer::Length(buffer);        \nremote:                                                  ^~~~~~        \nremote:                                                  setbuffer        \nremote:        ../src/zopfli-binding.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE nodezopfli::CompressBinding::Async(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:159:96: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           Nan::AsyncQueueWorker(new CompressWorker(callback, format, zopfli_options, info[0]->ToObject()));        \nremote:                                                                                                        ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE nodezopfli::CompressBinding::Sync(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:167:46: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           Local<Object> inbuffer = info[0]->ToObject();        \nremote:                                                      ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE nodezopfli::Adler32(Nan::NAN_METHOD_ARGS_TYPE)’:        \nremote:        ../src/zopfli-binding.cc:203:45: error: no matching function for call to ‘v8::Value::Uint32Value()’        \nremote:           unsigned int adler = info[0]->Uint32Value();        \nremote:                                                     ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2707:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(        \nremote:                                                 ^~~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2707:41: note:   candidate expects 1 argument, 0 provided        \nremote:        ../src/zopfli-binding.cc:209:59: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           size_t inbuffersize = Buffer::Length(inbuffer->ToObject());        \nremote:                                                                   ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        ../src/zopfli-binding.cc:210:86: error: no matching function for call to ‘v8::Value::ToObject()’        \nremote:           const unsigned char * data = (const unsigned char*)Buffer::Data(inbuffer->ToObject());        \nremote:                                                                                              ^        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/node.h:67:0,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const        \nremote:           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(        \nremote:                                                    ^~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided        \nremote:                         Local<Object> ToObject(Isolate* isolate) const);        \nremote:                                       ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In instantiation of ‘void Nan::imp::SetMethodAux(T, v8::Local<v8::String>, v8::Local<v8::FunctionTemplate>, ...) [with T = v8::Local<v8::Object>]’:        \nremote:        ../../nan/nan.h:1916:20:   required from ‘void Nan::SetMethod(HandleType<T>, const char*, Nan::FunctionCallback) [with T = v8::Object; HandleType = v8::Local; Nan::FunctionCallback = void (*)(const Nan::FunctionCallbackInfo<v8::Value>&)]’        \nremote:        ../src/zopfli-binding.cc:220:59:   required from here        \nremote:        ../../nan/nan.h:1900:3: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:           recv->Set(name, GetFunction(tpl).ToLocalChecked());        \nremote:           ^~~~        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        In file included from ../src/zopfli-binding.h:5:0,        \nremote:                         from ../src/zopfli-binding.cc:3:        \nremote:        ../../nan/nan.h: In instantiation of ‘void Nan::imp::SetMethodAux(T, v8::Local<v8::String>, v8::Local<v8::FunctionTemplate>, ...) [with T = v8::Local<v8::Object>]’:        \nremote:        ../../nan/nan.h:1916:20:   required from ‘void Nan::SetMethod(HandleType<T>, const char*, Nan::FunctionCallback) [with T = v8::Object; HandleType = v8::Local; Nan::FunctionCallback = void (*)(const Nan::FunctionCallbackInfo<v8::Value>&)]’        \nremote:        ../src/zopfli-binding.cc:220:59:   required from here        \nremote:        ../../nan/nan.h:1900:3: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]        \nremote:           recv->Set(name, GetFunction(tpl).ToLocalChecked());        \nremote:           ^~~~        \nremote:        In file included from /app/.cache/node-gyp/12.17.0/include/node/v8-internal.h:14:0,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/v8.h:27,        \nremote:                         from /app/.cache/node-gyp/12.17.0/include/node/node.h:67,        \nremote:                         from ../src/zopfli-binding.cc:1:        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8.h:3499:22: note: declared here        \nremote:                         bool Set(Local<Value> key, Local<Value> value));        \nremote:                              ^        \nremote:        /app/.cache/node-gyp/12.17.0/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’        \nremote:           declarator __attribute__((deprecated(message)))        \nremote:           ^~~~~~~~~~        \nremote:        zopfli.target.mk:142: recipe for target 'Release/obj.target/zopfli/src/zopfli-binding.o' failed        \nremote:        make: Leaving directory '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/build'        \nremote:        make: *** [Release/obj.target/zopfli/src/zopfli-binding.o] Error 1\nremote:        gyp ERR! build error         \nremote:        gyp ERR! stack Error: `make` failed with exit code: 2        \nremote:        gyp ERR! stack     at ChildProcess.onExit (/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)        \nremote:        gyp ERR! stack     at ChildProcess.emit (events.js:315:20)        \nremote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)        \nremote:        make: *** [Release/obj.target/zopfli/src/zopfli-binding.o] Error 1        \nremote:        zopfli.target.mk:142: recipe for target 'Release/obj.target/zopfli/src/zopfli-binding.o' failed        \nremote:        make: Leaving directory '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/build'        \nremote:        gyp ERR! build error         \nremote:        gyp ERR! gyp ERR! stack Error: `make` failed with exit code: 2        \nremote:        gyp ERR! stack     at ChildProcess.onExit (/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)        \nremote:        gyp ERR! stack     at ChildProcess.emit (events.js:315:20)        \nremote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)        \nremote:        System Linux 4.4.0-1066-aws        \nremote:        gyp ERR! System Linux 4.4.0-1066-aws        \nremote:        gyp ERR! command \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/bin/node\\\" \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\\\" \\\"build\\\" \\\"--fallback-to-build\\\" \\\"--module=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64/zopfli.node\\\" \\\"--module_name=zopfli\\\" \\\"--module_path=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64\\\"        \nremote:        gyp ERR! cwd /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli        \nremote:        gyp ERR! node -v v12.17.0        \nremote:        gyp ERR! node-gyp -v v5.1.0        \nremote:        gyp ERR! not ok         \nremote:        gyp ERR! command \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/bin/node\\\" \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\\\" \\\"build\\\" \\\"--fallback-to-build\\\" \\\"--module=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64/zopfli.node\\\" \\\"--module_name=zopfli\\\" \\\"--module_path=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64\\\"        \nremote:        gyp ERR! cwd /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli        \nremote:        gyp ERR! node -v v12.17.0        \nremote:        gyp ERR! node-gyp -v v5.1.0\nremote:        gyp ERR! not ok         \nremote:        node-pre-gyp ERR! build error         \nremote:        node-pre-gyp ERR! stack Error: Failed to execute '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/bin/node /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64/zopfli.node --module_name=zopfli --module_path=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64' (1)        \nremote:        node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-pre-gyp/lib/util/compile.js:83:29)        \nremote:        node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:315:20)        \nremote:        node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)        \nremote:        node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)        \nremote:        node-pre-gyp ERR! System Linux 4.4.0-1066-aws        \nremote:        node-pre-gyp ERR! command \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/bin/node\\\" \\\"/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/node_modules/.bin/node-pre-gyp\\\" \\\"install\\\" \\\"--fallback-to-build\\\"        \nremote:        node-pre-gyp ERR! cwd /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli        \nremote:        node-pre-gyp ERR! node -v v12.17.0        \nremote:        node-pre-gyp ERR! node-pre-gyp -v v0.6.33        \nremote:        node-pre-gyp ERR! not ok         \nremote:        Failed to execute '/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/bin/node /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64/zopfli.node --module_name=zopfli --module_path=/tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/node_modules/node-zopfli/lib/binding/node-v72-linux-x64' (1)\"        \nremote:                \nremote: -----> Build        \nremote:                \nremote: -----> Pruning devDependencies        \nremote:        yarn install v1.22.4        \nremote:        [1/4] Resolving packages...        \nremote:        [2/4] Fetching packages...        \nremote:        info fsevents@1.1.1: The platform \"linux\" is incompatible with this module.        \nremote:        info \"fsevents@1.1.1\" is an optional dependency and failed compatibility check. Excluding it from installation.        \nremote:        [3/4] Linking dependencies...        \nremote:        [4/4] Building fresh packages...        \nremote:        warning Ignored scripts due to flag.        \nremote:        Done in 3.43s.        \nremote:                \nremote: -----> Caching build        \nremote:        - yarn cache        \nremote:                \nremote: -----> Build succeeded!        \nremote:  !     This app may not specify any way to start a node process        \nremote:        https://devcenter.heroku.com/articles/nodejs-support#default-web-process-type        \nremote: \nremote: -----> Ruby app detected        \nremote: -----> Installing bundler 1.17.3        \nremote: -----> Removing BUNDLED WITH version in the Gemfile.lock        \nremote: -----> Compiling Ruby/Rails        \nremote: -----> Using Ruby version: ruby-2.6.6        \nremote: -----> Installing dependencies using bundler 1.17.3        \nremote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment        \nremote:        The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.        \nremote:        Fetching gem metadata from https://rubygems.org/............        \nremote:        Fetching https://github.com/rails/sass-rails.git        \nremote:        Fetching https://github.com/rails/webpacker.git        \nremote:        Fetching rake 12.3.1        \nremote:        Installing rake 12.3.1        \nremote:        Fetching concurrent-ruby 1.0.5        \nremote:        Fetching thread_safe 0.3.6        \nremote:        Fetching minitest 5.11.3        \nremote:        Installing thread_safe 0.3.6        \nremote:        Installing concurrent-ruby 1.0.5        \nremote:        Installing minitest 5.11.3        \nremote:        Fetching builder 3.2.3        \nremote:        Installing builder 3.2.3        \nremote:        Fetching erubi 1.7.1        \nremote:        Installing erubi 1.7.1        \nremote:        Fetching mini_portile2 2.3.0        \nremote:        Fetching crass 1.0.4        \nremote:        Fetching rack 2.0.5        \nremote:        Installing mini_portile2 2.3.0        \nremote:        Installing crass 1.0.4        \nremote:        Installing rack 2.0.5        \nremote:        Fetching nio4r 2.3.0        \nremote:        Installing nio4r 2.3.0 with native extensions        \nremote:        Fetching websocket-extensions 0.1.3        \nremote:        Installing websocket-extensions 0.1.3        \nremote:        Fetching mini_mime 1.0.0        \nremote:        Installing mini_mime 1.0.0        \nremote:        Fetching arel 8.0.0        \nremote:        Installing arel 8.0.0        \nremote:        Using bundler 1.17.3        \nremote:        Fetching coffee-script-source 1.12.2        \nremote:        Installing coffee-script-source 1.12.2        \nremote:        Fetching method_source 0.9.0        \nremote:        Fetching execjs 2.7.0        \nremote:        Installing execjs 2.7.0        \nremote:        Installing method_source 0.9.0        \nremote:        Fetching thor 0.20.0        \nremote:        Fetching ffi 1.9.23        \nremote:        Installing thor 0.20.0        \nremote:        Installing ffi 1.9.23 with native extensions        \nremote:        Fetching multi_json 1.13.1        \nremote:        Installing multi_json 1.13.1        \nremote:        Fetching pg 0.21.0        \nremote:        Installing pg 0.21.0 with native extensions        \nremote:        Fetching puma 3.11.4        \nremote:        Installing puma 3.11.4 with native extensions        \nremote:        Fetching rb-fsevent 0.10.3        \nremote:        Installing rb-fsevent 0.10.3        \nremote:        Fetching turbolinks-source 5.1.0        \nremote:        Installing turbolinks-source 5.1.0        \nremote:        Fetching tzinfo 1.2.5        \nremote:        Installing tzinfo 1.2.5        \nremote:        Fetching i18n 1.0.1        \nremote:        Installing i18n 1.0.1        \nremote:        Fetching nokogiri 1.8.2        \nremote:        Installing nokogiri 1.8.2 with native extensions        \nremote:        Fetching websocket-driver 0.6.5        \nremote:        Installing websocket-driver 0.6.5 with native extensions        \nremote:        Fetching mail 2.7.0        \nremote:        Installing mail 2.7.0        \nremote:        Fetching rack-test 1.0.0        \nremote:        Installing rack-test 1.0.0        \nremote:        Fetching sprockets 4.0.0.beta7        \nremote:        Installing sprockets 4.0.0.beta7        \nremote:        Fetching coffee-script 2.4.1        \nremote:        Installing coffee-script 2.4.1        \nremote:        Fetching uglifier 4.1.10        \nremote:        Installing uglifier 4.1.10        \nremote:        Fetching turbolinks 5.1.1        \nremote:        Installing turbolinks 5.1.1        \nremote:        Fetching activesupport 5.1.6        \nremote:        Installing activesupport 5.1.6        \nremote:        Fetching rb-inotify 0.9.10        \nremote:        Installing rb-inotify 0.9.10        \nremote:        Fetching globalid 0.4.1        \nremote:        Installing globalid 0.4.1        \nremote:        Fetching activemodel 5.1.6        \nremote:        Installing activemodel 5.1.6        \nremote:        Fetching jbuilder 2.7.0        \nremote:        Installing jbuilder 2.7.0        \nremote:        Fetching sass-listen 4.0.0        \nremote:        Installing sass-listen 4.0.0        \nremote:        Fetching activejob 5.1.6        \nremote:        Installing activejob 5.1.6        \nremote:        Fetching activerecord 5.1.6        \nremote:        Installing activerecord 5.1.6        \nremote:        Fetching sass 3.5.6        \nremote:        Installing sass 3.5.6        \nremote:        Fetching rails-dom-testing 2.0.3        \nremote:        Fetching loofah 2.2.2        \nremote:        Installing rails-dom-testing 2.0.3        \nremote:        Installing loofah 2.2.2        \nremote:        Fetching rails-html-sanitizer 1.0.4        \nremote:        Installing rails-html-sanitizer 1.0.4        \nremote:        Fetching actionview 5.1.6        \nremote:        Installing actionview 5.1.6        \nremote:        Fetching actionpack 5.1.6        \nremote:        Installing actionpack 5.1.6        \nremote:        Fetching actioncable 5.1.6        \nremote:        Fetching actionmailer 5.1.6        \nremote:        Fetching railties 5.1.6        \nremote:        Installing actionmailer 5.1.6        \nremote:        Installing actioncable 5.1.6        \nremote:        Installing railties 5.1.6        \nremote:        Fetching sprockets-rails 3.2.1        \nremote:        Installing sprockets-rails 3.2.1        \nremote:        Fetching coffee-rails 4.2.2        \nremote:        Using sass-rails 6.0.0.beta1 from https://github.com/rails/sass-rails.git (at master@dd04a6a)        \nremote:        Fetching rails 5.1.6        \nremote:        Using webpacker 1.0 from https://github.com/rails/webpacker.git (at master@28d4531)        \nremote:        Installing rails 5.1.6        \nremote:        Installing coffee-rails 4.2.2        \nremote:        Bundle complete! 17 Gemfile dependencies, 56 gems now installed.        \nremote:        Gems in the groups development and test were not installed.        \nremote:        Bundled gems are installed into `./vendor/bundle`        \nremote:        Bundle completed (46.74s)        \nremote:        Cleaning up the bundler cache.        \nremote: -----> Detecting rake tasks        \nremote: -----> Preparing app for Rails asset pipeline        \nremote:        Running: rake assets:precompile        \nremote:        I, [2020-06-03T02:16:25.097329 #3264]  INFO -- : Didn't find any digests file at /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/packs/digests.json. You must first compile the packs via rails webpacker:compile        \nremote:        ./bin/yarn:3:in `<main>': bad yarn binstub (RuntimeError)        \nremote:        I, [2020-06-03T02:16:28.884733 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/manifest-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.js        \nremote:        I, [2020-06-03T02:16:28.885187 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/manifest-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.js.gz        \nremote:        I, [2020-06-03T02:16:28.885460 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/application-738a718fff37aeace847067a666310a4a373321a42e06827617958134292d49f.js        \nremote:        I, [2020-06-03T02:16:28.885682 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/application-738a718fff37aeace847067a666310a4a373321a42e06827617958134292d49f.js.gz        \nremote:        I, [2020-06-03T02:16:28.885954 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/cable-b97f556825620657b62a8a498a15854358d07834783276b6622dffab1a85361c.js        \nremote:        I, [2020-06-03T02:16:28.886154 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/cable-b97f556825620657b62a8a498a15854358d07834783276b6622dffab1a85361c.js.gz        \nremote:        I, [2020-06-03T02:16:28.886547 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/welcome-2f1bea9dc5c78fb87eaed8f1dadb6f55814877fe636ada13c22330d44631b955.js        \nremote:        I, [2020-06-03T02:16:28.886761 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/welcome-2f1bea9dc5c78fb87eaed8f1dadb6f55814877fe636ada13c22330d44631b955.js.gz        \nremote:        I, [2020-06-03T02:16:28.887089 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/application-5717e7c840171019a4eeab5b79a7f894a4986eaff93d04ec5b12c9a189f594bf.css        \nremote:        I, [2020-06-03T02:16:28.887337 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/application-5717e7c840171019a4eeab5b79a7f894a4986eaff93d04ec5b12c9a189f594bf.css.gz        \nremote:        I, [2020-06-03T02:16:28.887689 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/welcome-5717e7c840171019a4eeab5b79a7f894a4986eaff93d04ec5b12c9a189f594bf.css        \nremote:        I, [2020-06-03T02:16:28.887895 #3264]  INFO -- : Writing /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/assets/welcome-5717e7c840171019a4eeab5b79a7f894a4986eaff93d04ec5b12c9a189f594bf.css.gz        \nremote:        (node:3340) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56        \nremote:        parseQuery() will be replaced with getOptions() in the next major version of loader-utils.        \nremote:        Compiled digests for all packs in /tmp/build_a97d06ce186ae067d7b6126a66d9f1f2/public/packs/digests.json:         \nremote:        {\"application\":\"application-52d19136d5660afd39af.js\"}        \nremote:        Asset precompilation completed (6.51s)        \nremote:        Cleaning assets        \nremote:        Running: rake assets:clean        \nremote: -----> Detecting rails configuration        \nremote: \nremote: \e[1m\e[33m###### WARNING:\e[0m        \nremote: \nremote:        You have not declared a Ruby version in your Gemfile.        \nremote:        To set your Ruby version add this line to your Gemfile:        \nremote:        ruby '2.6.6'        \nremote:        # See https://devcenter.heroku.com/articles/ruby-versions for more information.        \nremote: \nremote: \e[1m\e[33m###### WARNING:\e[0m        \nremote: \nremote:        No Procfile detected, using the default web server.        \nremote:        We recommend explicitly declaring how to boot your server process via a Procfile.        \nremote:        https://devcenter.heroku.com/articles/ruby-default-web-server        \nremote: \nremote: \nremote: -----> I check that all paths are absolute app detected        \nremote: -----> Checking for absolute values in PATHs        \nremote:        Everything looks good to me        \nremote: -----> Updating release script in procfile        \nremote: -----> Discovering process types        \nremote:        Procfile declares types -> release        \nremote: \nremote: -----> Compressing...        \nremote:        Done: 52.1M        \nremote: -----> Launching...        \nremote:  !     Release command declared: this new release will not be available until the command succeeds.        \nremote:        Released v3        \nremote:        https://hatchet-t-ce466244f3.herokuapp.com/ deployed to Heroku        \nremote: \nremote: Verifying deploy... done.        \nremote: Running release command...\nremote: \nremote: -----> Checking for absolute values in PATHs        \nremote:        Everything looks good to me        \nTo https://git.heroku.com/hatchet-t-ce466244f3.git\n * [new branch]      master -> master\n" not to include "bad yarn binstub"

Is there a config for disabling calling inspect on the input?

@schneems
Copy link
Author

schneems commented Jun 3, 2020

@pirj
Copy link
Member

pirj commented Jun 3, 2020

Sorry for the delay, it took me a while to get to the response form through that log.

Would you agree to make a slight change in your spec?

- expect(output).not_to include "bad yarn binstub"
+ expect(output.include?("bad yarn binstub")).not_to be true

If it's not possible due to strict styling rules, you may give max_formatted_output_length option a shot.
We'll figure something out if neither of those options works for you.

@JonRowe
Copy link
Member

JonRowe commented Jun 3, 2020

👋 @schneems if turning off truncation (by setting nil as the max length), doesn't meet your needs, we use the a mechanism in rspec-support to format objects, we could allow you to insert your own inspector for printing outputs that are not inspect?

@schneems
Copy link
Author

schneems commented Jun 5, 2020

Sorry for the delay

Literally the shortest amount of time i've waiting on an OSS issue asking about a random thing. Thanks a ton!

The problem with:

+ expect(output.include?("bad yarn binstub")).not_to be true

Is then I get no ouput. It would say something like "expected true to be false". I want all the output, but instead of \n I want an actual newline.

we could allow you to insert your own inspector for printing outputs that are not inspect?

I would like the ability to tell rspec to give me the raw output rather than output.inspect. It's not a deal breaker right now as I have private access to deploy logs pretty easy through support tooling, but it is a bit of a pain to have to jump through that extra hoop. I poked at the options and didn't see anything obvious on disabling the functionality so figured I would ask in case there was something I missed.

I'm already using some other pretty deeply hooked plugins for this project like https://github.com/Shopify/ci-queue which have tended to interact with other plugins in a not-always-predictable-way. If a custom formatter wasn't too hard I would probably adopt that approach.

if turning off truncation (by setting nil as the max length)

Ahh, that's a good tip. I was setting it to Float::INFINITY.

Thanks for all your work here!

@pirj
Copy link
Member

pirj commented Jun 5, 2020

Ah, sorry, I've misread your original problem.
This is the confusing part, is that all?

Failure/Error: ]

For a spec:

RSpec.describe do
  it do
    long = <<~LONG

    not here

    neither here

    LONG
    expect(long).to include 'rare'
  end
end

I'm getting this failure locally:

  is expected to include "rare" (FAILED - 1)

Failures:

  1) is expected to include "rare"
     Failure/Error: expect(long).to include 'rare'

       expected "\nnot here... here\n\n" to include "rare"
       Diff:
       @@ -1,2 +1,5 @@
       -rare
       +
       +not here
       +
       +neither here

which includes an expectation, a formatted output and a diff.

I've intentionally set a low limit for the output:

RSpec.configure do |config|
  config.expect_with :rspec do |expectations|
    expectations.max_formatted_output_length = 20
  end
end

If you change

-    expect(long).to include 'rare'
+    expect(long * 100).to include 'rare'

the diff gets longer as well.

Do you have the diff part in your output?

@pirj
Copy link
Member

pirj commented Jun 5, 2020

If nothing else works you may pass the output as a custom error message:

expect(long).to(include('rare'), long)
# or
expect(output).not_to(include("bad yarn binstub"), output)

@benoittgt
Copy link
Member

While reading the code of benchmark-driver

I found this snippet that may help you Richard:

  def assert_execute(*command)
    stdout, stderr, status = Open3.capture3(*command)
    command_to_show = command.map { |c| c.gsub(Dir.pwd, '.') }.shelljoin

    on_failure = -> {
      # Show output directly since RSpec truncates long output
      puts "\n\n#{'=' * 100}"
      puts "Failed to execute:\n#{command_to_show}"
      puts "\nstdout:\n```\n#{stdout}```\n\nstderr:\n```\n#{stderr}```\n\n\n"

      "Failed to execute: #{command_to_show}"
    }
    expect(status.success?).to eq(true), on_failure

    if ENV.key?('VERBOSE')
      puts "\n```\n$ #{command_to_show}\n#{stdout}```\n\n"
    end
    unless stderr.empty?
      $stderr.puts "stderr:\n```\n#{stderr}```"
    end
  end

@pirj
Copy link
Member

pirj commented Jun 9, 2020

@schneems Have managed to solve the problem? Do you think there's anything we can help you with?

@pirj
Copy link
Member

pirj commented Jun 11, 2020

I guess we'll close this for now.
Please feel free to reopen if the problem is not solved for you.

@pirj pirj closed this as completed Jun 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants