mooz / node-icu-charset-detector

A simple binding of ICU character set detection for Node.js
MIT License
86 stars 22 forks source link

Does not build with Node.js 16 #37

Open sffc opened 1 year ago

sffc commented 1 year ago

Lots of errors like

npm ERR! ../node-icu-charset-detector.cpp:72:13: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
npm ERR!    72 |         v8::Handle<v8::Object> buffer = info[0]->ToObject();
npm ERR!       |             ^~~~~~
npm ERR!       |             JobHandle

Full build output:

npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR!                  from ../../nan/nan.h:202,
npm ERR!                  from ../node-icu-charset-detector.cpp:2:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Local)’:
npm ERR! ../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local’ to ‘v8::Isolate*’
npm ERR!    18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
npm ERR!       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                 |
npm ERR!       |                                                 v8::Local
npm ERR! ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
npm ERR!    22 | X(Boolean)
npm ERR!       | ^
npm ERR! In file included from /home/sffc/.cache/node-gyp/16.18.1/include/node/node.h:73,
npm ERR!                  from ../node-icu-charset-detector.cpp:1:
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3086:37: note:   initializing argument 1 of ‘v8::Local v8::Value::ToBoolean(v8::Isolate*) const’
npm ERR!  3086 |   Local ToBoolean(Isolate* isolate) const;
npm ERR!       |                            ~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Local)’:
npm ERR! ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local’ to ‘v8::Isolate*’
npm ERR!    37 |   return val->NAME ## Value(isolate->GetCurrentContext());                     \
npm ERR!       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR!       |                                                       |
npm ERR!       |                                                       v8::Local
npm ERR! ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
npm ERR!    40 | X(bool, Boolean)
npm ERR!       | ^
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3096:30: note:   initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
npm ERR!       |                     ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR!                  from ../../nan/nan.h:203:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase::return_t Nan::imp::Factory::New(Nan::FunctionCallback, v8::Local)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:103:42: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local’
npm ERR!   103 |   return scope.Escape(v8::Function::New( isolate
npm ERR!       |                                          ^~~~~~~
npm ERR!       |                                          |
npm ERR!       |                                          v8::Isolate*
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4754:22: note:   initializing argument 1 of ‘static v8::MaybeLocal v8::Function::New(v8::Local, v8::FunctionCallback, v8::Local, int, v8::ConstructorBehavior, v8::SideEffectType)’
npm ERR!  4754 |       Local context, FunctionCallback callback,
npm ERR!       |       ~~~~~~~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase::return_t Nan::imp::Factory::New(v8::Local)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:31: error: no matching function for call to ‘v8::StringObject::New(v8::Local&)’
npm ERR!   337 |   return v8::StringObject::New(value).As();
npm ERR!       |          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:6196:23: note: candidate: ‘static v8::Local v8::StringObject::New(v8::Isolate*, v8::Local)’
npm ERR!  6196 |   static Local New(Isolate* isolate, Local value);
npm ERR!       |                       ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:6196:23: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
npm ERR!   337 |   return v8::StringObject::New(value).As();
npm ERR!       |                                                          ^
npm ERR! ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
npm ERR!   337 |   return v8::StringObject::New(value).As();
npm ERR!       |                                                            ^
npm ERR! ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’:
npm ERR! ../../nan/nan.h:1034:52: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR!  1034 |       v8::Local string = from->ToString();
npm ERR!       |                                      ~~~~~~~~~~~~~~^~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToString(v8::Local) const’
npm ERR!  3048 |   V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3048:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../../nan/nan.h:1044:37: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR!  1044 |         length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
npm ERR!       |                                     ^~~~
npm ERR!       |                                     |
npm ERR!       |                                     char*
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3277:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR!  3277 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR!       |                 ~~~~~~~~~^~~~~~~
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local&)’:
npm ERR! ../../nan/nan.h:1818:31: error: no matching function for call to ‘v8::Object::Set(v8::Local, const v8::Local&)’
npm ERR!  1818 |     New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, v8::Local, v8::Local)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, uint32_t, v8::Local)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local&, const v8::Local&)’:
npm ERR! ../../nan/nan.h:1824:31: error: no matching function for call to ‘v8::Object::Set(const v8::Local&, const v8::Local&)’
npm ERR!  1824 |     New(persistentHandle)->Set(key, value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, v8::Local, v8::Local)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, uint32_t, v8::Local)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local&)’:
npm ERR! ../../nan/nan.h:1830:31: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Local&)’
npm ERR!  1830 |     New(persistentHandle)->Set(index, value);
npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, v8::Local, v8::Local)’
npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Local, uint32_t, v8::Local)’
npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR!       |                                     ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local Nan::AsyncWorker::GetFromPersistent(const char*) const’:
npm ERR! ../../nan/nan.h:1836:35: error: no matching function for call to ‘v8::Object::Get(v8::Local)’
npm ERR!  1836 |         New(persistentHandle)->Get(New(key).ToLocalChecked()));
npm ERR!       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, v8::Local)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local Nan::AsyncWorker::GetFromPersistent(const v8::Local&) const’:
npm ERR! ../../nan/nan.h:1842:51: error: no matching function for call to ‘v8::Object::Get(const v8::Local&)’
npm ERR!  1842 |     return scope.Escape(New(persistentHandle)->Get(key));
npm ERR!       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, v8::Local)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In member function ‘v8::Local Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
npm ERR! ../../nan/nan.h:1847:51: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
npm ERR!  1847 |     return scope.Escape(New(persistentHandle)->Get(index));
npm ERR!       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, v8::Local)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal v8::Object::Get(v8::Local, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR!       |                                           ^~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(AsyncWorker*)’:
npm ERR! ../../nan/nan.h:2167:7: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
npm ERR!  2167 |     , reinterpret_cast(AsyncExecuteComplete)
npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /usr/include/c++/12/cassert:44,
npm ERR!                  from /home/sffc/.cache/node-gyp/16.18.1/include/node/node_object_wrap.h:26,
npm ERR!                  from ../../nan/nan.h:53:
npm ERR! ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
npm ERR! ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent’ has no member named ‘IsNearDeath’
npm ERR!    24 |     assert(persistent().IsNearDeath());
npm ERR!       |                         ^~~~~~~~~~~
npm ERR! In file included from ../../nan/nan.h:2657:
npm ERR! ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
npm ERR! ../../nan/nan_object_wrap.h:67:18: error: ‘class Nan::Persistent’ has no member named ‘MarkIndependent’
npm ERR!    67 |     persistent().MarkIndependent();
npm ERR!       |                  ^~~~~~~~~~~~~~~
npm ERR! ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo&)’:
npm ERR! ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent’ has no member named ‘IsNearDeath’
npm ERR!   124 |     assert(wrap->handle_.IsNearDeath());
npm ERR!       |                          ^~~~~~~~~~~
npm ERR! ../node-icu-charset-detector.cpp: At global scope:
npm ERR! ../node-icu-charset-detector.cpp:17:29: error: ‘Handle’ in namespace ‘v8’ does not name a template type; did you mean ‘JobHandle’?
npm ERR!    17 |     RegisterClass(const v8::Handle target) {
npm ERR!       |                             ^~~~~~
npm ERR!       |                             JobHandle
npm ERR! ../node-icu-charset-detector.cpp:17:35: error: expected ‘,’ or ‘...’ before ‘<’ token
npm ERR!    17 |     RegisterClass(const v8::Handle target) {
npm ERR!       |                                   ^
npm ERR! ../node-icu-charset-detector.cpp:60:20: error: ‘v8::Handle’ has not been declared
npm ERR!    60 |     FromBuffer(v8::Handle bufferObject) {
npm ERR!       |                    ^~~~~~
npm ERR! ../node-icu-charset-detector.cpp:60:26: error: expected ‘,’ or ‘...’ before ‘<’ token
npm ERR!    60 |     FromBuffer(v8::Handle bufferObject) {
npm ERR!       |                          ^
npm ERR! ../node-icu-charset-detector.cpp: In static member function ‘static void CharsetMatch::RegisterClass(int)’:
npm ERR! ../node-icu-charset-detector.cpp:33:9: error: ‘target’ was not declared in this scope
npm ERR!    33 |         target->Set(Nan::New(ClassName).ToLocalChecked(), constructorTemplate->GetFunction());
npm ERR!       |         ^~~~~~
npm ERR! ../node-icu-charset-detector.cpp:33:91: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!    33 |         target->Set(Nan::New(ClassName).ToLocalChecked(), constructorTemplate->GetFunction());
npm ERR!       |                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal v8::FunctionTemplate::GetFunction(v8::Local)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! ../node-icu-charset-detector.cpp: In static member function ‘static CharsetMatch* CharsetMatch::FromBuffer(int)’:
npm ERR! ../node-icu-charset-detector.cpp:61:52: error: ‘bufferObject’ was not declared in this scope
npm ERR!    61 |         return new CharsetMatch(node::Buffer::Data(bufferObject),
npm ERR!       |                                                    ^~~~~~~~~~~~
npm ERR! ../node-icu-charset-detector.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE CharsetMatch::New(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../node-icu-charset-detector.cpp:72:13: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
npm ERR!    72 |         v8::Handle buffer = info[0]->ToObject();
npm ERR!       |             ^~~~~~
npm ERR!       |             JobHandle
npm ERR! ../node-icu-charset-detector.cpp:72:30: error: expected primary-expression before ‘>’ token
npm ERR!    72 |         v8::Handle buffer = info[0]->ToObject();
npm ERR!       |                              ^
npm ERR! ../node-icu-charset-detector.cpp:72:32: error: ‘buffer’ was not declared in this scope; did you mean ‘setbuffer’?
npm ERR!    72 |         v8::Handle buffer = info[0]->ToObject();
npm ERR!       |                                ^~~~~~
npm ERR!       |                                setbuffer
npm ERR! ../node-icu-charset-detector.cpp:72:58: error: no matching function for call to ‘v8::Value::ToObject()’
npm ERR!    72 |         v8::Handle buffer = info[0]->ToObject();
npm ERR!       |                                         ~~~~~~~~~~~~~~~~~^~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3060:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToObject(v8::Local) const’
npm ERR!  3060 |   V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
npm ERR!       |                                            ^~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/v8.h:3060:44: note:   candidate expects 1 argument, 0 provided
npm ERR! ../node-icu-charset-detector.cpp: In function ‘void RegisterModule(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
npm ERR! ../node-icu-charset-detector.cpp:125:33: error: cannot convert ‘Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE’ {aka ‘v8::Local’} to ‘int’
npm ERR!   125 |     CharsetMatch::RegisterClass(target);
npm ERR!       |                                 ^~~~~~
npm ERR!       |                                 |
npm ERR!       |                                 Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE {aka v8::Local}
npm ERR! ../node-icu-charset-detector.cpp:17:19: note:   initializing argument 1 of ‘static void CharsetMatch::RegisterClass(int)’
npm ERR!    17 |     RegisterClass(const v8::Handle target) {
npm ERR!       |                   ^~~~~~~~~~~~~~~~
npm ERR! ../node-icu-charset-detector.cpp: At global scope:
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/node.h:887:7: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local, v8::Local, void*)’} [-Wcast-function-type]
npm ERR!   887 |       (node::addon_register_func) (regfunc),                          \
npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/sffc/.cache/node-gyp/16.18.1/include/node/node.h:921:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR!   921 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
npm ERR!       |   ^~~~~~~~~~~~~
npm ERR! ../node-icu-charset-detector.cpp:128:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR!   128 | NODE_MODULE(node_icu_charset_detector, RegisterModule);
npm ERR!       | ^~~~~~~~~~~
npm ERR! make: *** [node-icu-charset-detector.target.mk:108: Release/obj.target/node-icu-charset-detector/node-icu-charset-detector.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:201:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
npm ERR! gyp ERR! System Linux 5.17.5-300.fc36.aarch64
npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/sffc/local/oo-projects/back-filesystem/node_modules/node-icu-charset-detector
npm ERR! gyp ERR! node -v v16.18.1
npm ERR! gyp ERR! node-gyp -v v9.1.0
npm ERR! gyp ERR! not ok