!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).emnapi={})}(this,(function(t){var e=[],n=function(){function t(t,e,n,i,r,o,s){this.id=t,this.parent=e,this.child=n,this.thiz=i,this.data=r,this.args=o,this.fn=s}return t.prototype.getNewTarget=function(t){var e=this.thiz;return null==e||null==e.constructor?0:e instanceof this.fn?t.ensureHandleId(e.constructor):0},t.prototype.dispose=function(){void 0!==this.thiz&&(this.thiz=void 0),this.args=e,this.fn=null},t}(),i=new n(0,null,null,null,0,null,null),r=function(){function t(){this.current=i}return t.prototype.get=function(t){if(1===t)return i.child;for(var e=i,n=0;n=this.end)return null;this.handleStore.swap(t,this.start);var e=this.handleStore.get(this.start);return this.start++,this.parent.end++,e},t.prototype.escapeCalled=function(){return this._escapeCalled},t}(),I=function(){function t(){this._rootScope=new x(null,0,null,1,m.MIN_ID),this.currentScope=this._rootScope}return t.prototype.get=function(t){t=Number(t);for(var e=this.currentScope;e!==this._rootScope;){if(e.id===t)return e;e=e.parent}},t.prototype.openScope=function(t){var e=this.currentScope,n=e.child;return null!==n?(n.start=n.end=e.end,n._escapeCalled=!1):n=new x(t.ctx.handleStore,e.id+1,e,e.end),this.currentScope=n,t.openHandleScopes++,n},t.prototype.closeScope=function(t){if(0!==t.openHandleScopes){var e=this.currentScope;this.currentScope=e.parent,e.dispose(),t.openHandleScopes--}},t.prototype.dispose=function(){for(var t=this.currentScope;null!==t;){t.handleStore=null,t.id=0,t.parent=null,t.start=m.MIN_ID,t.end=m.MIN_ID,t._escapeCalled=!1;var e=t.child;t.child=null,t=e}this.currentScope=null},t}(),O=function(){function t(){this._next=null,this._prev=null}return t.prototype.finalize=function(){},t.prototype.link=function(t){this._prev=t,this._next=t._next,null!==this._next&&(this._next._prev=this),t._next=this},t.prototype.unlink=function(){null!==this._prev&&(this._prev._next=this._next),null!==this._next&&(this._next._prev=this._prev),this._prev=null,this._next=null},t.finalizeAll=function(t){for(;null!==t._next;)t._next.finalize()},t}(),F=function(){function t(t,e,n,i){void 0===e&&(e=0),void 0===n&&(n=0),void 0===i&&(i=0),this.envObject=t,this._finalizeCallback=e,this._finalizeData=n,this._finalizeHint=i}return t.prototype.callback=function(){return this._finalizeCallback},t.prototype.data=function(){return this._finalizeData},t.prototype.hint=function(){return this._finalizeHint},t.prototype.resetFinalizer=function(){this._finalizeCallback=0,this._finalizeData=0,this._finalizeHint=0},t.prototype.dispose=function(){this.envObject=void 0},t}(),D=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i,r)||this;return o._next=null,o._prev=null,o.link(n?e.finalizing_reflist:e.reflist),o}return s(e,t),e.finalizeAll=function(t){O.finalizeAll(t)},e.prototype.link=function(t){O.prototype.link.call(this,t)},e.prototype.unlink=function(){O.prototype.unlink.call(this)},e.create=function(t,n,i,r){return new e(t,n,i,r)},e.prototype.dispose=function(){this.unlink(),this.envObject.dequeueFinalizer(this),t.prototype.dispose.call(this)},e.prototype.finalize=function(){this.finalizeCore(!0)},e.prototype.finalizeCore=function(t){var e,n=this._finalizeCallback,i=this._finalizeData,r=this._finalizeHint;this.resetFinalizer(),this.unlink();var o=!1;if(n){var s=Number(n);try{this.envObject.callFinalizer(s,i,r)}catch(t){o=!0,e=t}}if(t&&this.dispose(),o)throw e},e}(F),N=function(t){function e(e,n,i,r,o,s){var u=t.call(this,e,r,o,s)||this;return u._refcount=n,u._ownership=i,u}return s(e,t),e.prototype.data=function(){return this._finalizeData},e.prototype.ref=function(){return++this._refcount},e.prototype.unref=function(){return 0===this._refcount?0:--this._refcount},e.prototype.refCount=function(){return this._refcount},e.prototype.ownership=function(){return this._ownership},e.prototype.finalize=function(){this.finalizeCore(0===this._ownership)},e}(D);function A(t,e){if(!t.terminatedOrTerminating())throw e}var R=function(){function t(t,e,n,i,r){this.ctx=t,this.moduleApiVersion=e,this.makeDynCall_vppp=n,this.makeDynCall_vp=i,this.abort=r,this.openHandleScopes=0,this.instanceData=null,this.tryCatch=new c,this.refs=1,this.reflist=new O,this.finalizing_reflist=new O,this.pendingFinalizers=[],this.lastError={errorCode:0,engineErrorCode:0,engineReserved:0},this.inGcFinalizer=!1,this._bindingMap=new WeakMap,this.id=0}return t.prototype.canCallIntoJs=function(){return!0},t.prototype.terminatedOrTerminating=function(){return!this.canCallIntoJs()},t.prototype.ref=function(){this.refs++},t.prototype.unref=function(){this.refs--,0===this.refs&&this.dispose()},t.prototype.ensureHandle=function(t){return this.ctx.ensureHandle(t)},t.prototype.ensureHandleId=function(t){return this.ensureHandle(t).id},t.prototype.clearLastError=function(){var t=this.lastError;return 0!==t.errorCode&&(t.errorCode=0),0!==t.engineErrorCode&&(t.engineErrorCode=0),0!==t.engineReserved&&(t.engineReserved=0),0},t.prototype.setLastError=function(t,e,n){void 0===e&&(e=0),void 0===n&&(n=0);var i=this.lastError;return i.errorCode!==t&&(i.errorCode=t),i.engineErrorCode!==e&&(i.engineErrorCode=e),i.engineReserved!==n&&(i.engineReserved=n),t},t.prototype.getReturnStatus=function(){return this.tryCatch.hasCaught()?this.setLastError(10):0},t.prototype.callIntoModule=function(t,e){void 0===e&&(e=A);var n=this.openHandleScopes;this.clearLastError();var i=t(this);(n!==this.openHandleScopes&&this.abort("open_handle_scopes != open_handle_scopes_before"),this.tryCatch.hasCaught())&&e(this,this.tryCatch.extractException());return i},t.prototype.callFinalizer=function(t,e,n){var i=this.makeDynCall_vppp(t),r=this.id,o=this.ctx.openScope(this);try{this.callIntoModule((function(){i(r,e,n)}))}finally{this.ctx.closeScope(this,o)}},t.prototype.invokeFinalizerFromGC=function(t){if(this.moduleApiVersion!==E)this.enqueueFinalizer(t);else{var e=this.inGcFinalizer;this.inGcFinalizer=!0;try{t.finalize()}finally{this.inGcFinalizer=e}}},t.prototype.checkGCAccess=function(){this.moduleApiVersion===E&&this.inGcFinalizer&&this.abort("Finalizer is calling a function that may affect GC state.\nThe finalizers are run directly from GC and must not affect GC state.\nUse `node_api_post_finalizer` from inside of the finalizer to work around this issue.\nIt schedules the call as a new task in the event loop.")},t.prototype.enqueueFinalizer=function(t){-1===this.pendingFinalizers.indexOf(t)&&this.pendingFinalizers.push(t)},t.prototype.dequeueFinalizer=function(t){var e=this.pendingFinalizers.indexOf(t);-1!==e&&this.pendingFinalizers.splice(e,1)},t.prototype.deleteMe=function(){N.finalizeAll(this.finalizing_reflist),N.finalizeAll(this.reflist),this.tryCatch.extractException(),this.ctx.envStore.remove(this.id)},t.prototype.dispose=function(){0!==this.id&&(this.deleteMe(),this.id=0)},t.prototype.initObjectBinding=function(t){var e={wrapped:0,tag:null,data:0};return this._bindingMap.set(t,e),e},t.prototype.getObjectBinding=function(t){return this._bindingMap.has(t)?this._bindingMap.get(t):this.initObjectBinding(t)},t.prototype.setInstanceData=function(t,e,n){this.instanceData&&this.instanceData.dispose(),this.instanceData=new N(this,0,0,e,t,n)},t.prototype.getInstanceData=function(){return this.instanceData?this.instanceData.data():0},t}(),H=function(t){function e(e,n,i,r,o,s,u){var a=t.call(this,e,i,r,o,s)||this;return a.filename=n,a.nodeBinding=u,a.destructing=!1,a.finalizationScheduled=!1,a}return s(e,t),e.prototype.deleteMe=function(){this.destructing=!0,this.drainFinalizerQueue(),t.prototype.deleteMe.call(this)},e.prototype.canCallIntoJs=function(){return t.prototype.canCallIntoJs.call(this)&&this.ctx.canCallIntoJs()},e.prototype.triggerFatalException=function(t){if(this.nodeBinding)this.nodeBinding.napi.fatalException(t);else{if("object"!=typeof process||null===process||"function"!=typeof process._fatalException)throw t;process._fatalException(t)||(console.error(t),process.exit(1))}},e.prototype.callbackIntoModule=function(t,e){return this.callIntoModule(e,(function(e,n){if(!e.terminatedOrTerminating()){var i="object"==typeof process&&null!==process,r=!!i&&Boolean(process.execArgv&&-1!==process.execArgv.indexOf("--force-node-api-uncaught-exceptions-policy"));if(e.moduleApiVersion0;){this.pendingFinalizers.shift().finalize()}},e}(R);function j(t,e,n,i,r,o,s){(n="number"!=typeof n?8:n)<8?n=8:n>w&&n!==E&&function(t,e){var n="".concat(t," requires Node-API version ").concat(e,", but this version of Node.js only supports version ").concat(w," add-ons.");throw new Error(n)}(e,n);var u=new H(t,e,n,i,r,o,s);return t.envStore.add(u),t.addCleanupHook(u,(function(){u.unref()}),0),u}var B=function(t){function e(n){var i=this.constructor,r=t.call(this,n)||this,o=i,s=o.prototype;if(!(r instanceof e)){var u=Object.setPrototypeOf;"function"==typeof u?u.call(Object,r,s):r.__proto__=s,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(r,o)}return r}return s(e,t),e}(Error);Object.defineProperty(B.prototype,"name",{configurable:!0,writable:!0,value:"EmnapiError"});var T=function(t){function e(e,n){return t.call(this,"".concat(e,': The current runtime does not support "FinalizationRegistry" and "WeakRef".').concat(n?" ".concat(n):""))||this}return s(e,t),e}(B);Object.defineProperty(T.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportWeakRefError"});var M=function(t){function e(e,n){return t.call(this,"".concat(e,': The current runtime does not support "Buffer". Consider using buffer polyfill to make sure `globalThis.Buffer` is defined.').concat(n?" ".concat(n):""))||this}return s(e,t),e}(B);Object.defineProperty(M.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportBufferError"});var P=function(){function t(t){this._value=t}return t.prototype.deref=function(){return this._value},t.prototype.dispose=function(){this._value=void 0},t}(),L=function(){function t(t){this._ref=new P(t)}return t.prototype.setWeak=function(e,n){if(f&&void 0!==this._ref&&!(this._ref instanceof WeakRef)){var i=this._ref.deref();try{t._registry.register(i,this,this);var r=new WeakRef(i);this._ref.dispose(),this._ref=r,this._param=e,this._callback=n}catch(t){if("symbol"!=typeof i)throw t}}},t.prototype.clearWeak=function(){if(f&&void 0!==this._ref&&this._ref instanceof WeakRef){try{t._registry.unregister(this)}catch(t){}this._param=void 0,this._callback=void 0;var e=this._ref.deref();this._ref=void 0===e?e:new P(e)}},t.prototype.reset=function(){if(f)try{t._registry.unregister(this)}catch(t){}this._param=void 0,this._callback=void 0,this._ref instanceof P&&this._ref.dispose(),this._ref=void 0},t.prototype.isEmpty=function(){return void 0===this._ref},t.prototype.deref=function(){if(void 0!==this._ref)return this._ref.deref()},t._registry=f?new FinalizationRegistry((function(t){t._ref=void 0;var e=t._callback,n=t._param;t._callback=void 0,t._param=void 0,"function"==typeof e&&e(n)})):void 0,t}();function W(t){t.persistent.reset(),t.envObject.invokeFinalizerFromGC(t)}var U,V=function(t){function e(e,n,i,r,o,s){void 0===r&&(r=0),void 0===o&&(o=0),void 0===s&&(s=0);var u=t.call(this,e,n>>>0,i,r,o,s)||this;return u.id=0,u}return s(e,t),e.create=function(t,n,i,r,o,s,u){void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=0);var a,c=t.ctx.handleStore.get(n),p=new e(t,i,r,o,s,u);return t.ctx.refStore.add(p),p.canBeWeak=(a=c).isObject()||a.isFunction()||a.isSymbol(),p.persistent=new L(c.value),0===i&&p._setWeak(),p},e.prototype.ref=function(){if(this.persistent.isEmpty())return 0;var e=t.prototype.ref.call(this);return 1===e&&this.canBeWeak&&this.persistent.clearWeak(),e},e.prototype.unref=function(){if(this.persistent.isEmpty())return 0;var e=this.refCount(),n=t.prototype.unref.call(this);return 1===e&&0===n&&this._setWeak(),n},e.prototype.get=function(){if(this.persistent.isEmpty())return 0;var t=this.persistent.deref();return this.envObject.ensureHandle(t).id},e.prototype._setWeak=function(){this.canBeWeak?this.persistent.setWeak(this,W):this.persistent.reset()},e.prototype.finalize=function(){this.persistent.reset(),t.prototype.finalize.call(this)},e.prototype.dispose=function(){0!==this.id&&(this.persistent.reset(),this.envObject.ctx.refStore.remove(this.id),t.prototype.dispose.call(this),this.id=0)},e}(N),G=function(){function t(t,e){this.id=0,this.ctx=t,this.value=e}return t.create=function(e,n){var i=new t(e,n);return e.deferredStore.add(i),i},t.prototype.resolve=function(t){this.value.resolve(t),this.dispose()},t.prototype.reject=function(t){this.value.reject(t),this.dispose()},t.prototype.dispose=function(){this.ctx.deferredStore.remove(this.id),this.id=0,this.value=null,this.ctx=null},t}(),q=function(){function t(){this._values=[void 0],this._values.length=4,this._size=1,this._freeList=[]}return t.prototype.add=function(t){var e;if(this._freeList.length)e=this._freeList.shift();else{e=this._size,this._size++;var n=this._values.length;e>=n&&(this._values.length=n+(n>>1)+16)}t.id=e,this._values[e]=t},t.prototype.get=function(t){return this._values[t]},t.prototype.has=function(t){return void 0!==this._values[t]},t.prototype.remove=function(t){var e=this._values[t];e&&(e.id=0,this._values[t]=void 0,this._freeList.push(Number(t)))},t.prototype.dispose=function(){for(var t=1;t0)throw new Error("Can not add same fn and arg twice");this._cleanupHooks.push(new J(t,e,n,this._cleanupHookCounter++))},t.prototype.remove=function(t,e,n){for(var i=0;i