@tailwindcss/oxide-wasm32-wasi 0.0.0-insiders.bd9cf92 → 0.0.0-insiders.bdcd708

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.js +1469 -511
  2. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts +61 -5
  3. package/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js +1 -1
  4. package/node_modules/@emnapi/core/dist/emnapi-core.d.mts +61 -5
  5. package/node_modules/@emnapi/core/dist/emnapi-core.d.ts +61 -5
  6. package/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js +1628 -523
  7. package/node_modules/@emnapi/core/dist/emnapi-core.js +1705 -585
  8. package/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts +61 -5
  9. package/node_modules/@emnapi/core/dist/emnapi-core.min.js +1 -1
  10. package/node_modules/@emnapi/core/dist/emnapi-core.min.mjs +1 -1
  11. package/node_modules/@emnapi/core/dist/emnapi-core.mjs +1469 -511
  12. package/node_modules/@emnapi/core/package.json +2 -2
  13. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +44 -14
  14. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts +15 -7
  15. package/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -1
  16. package/node_modules/@emnapi/runtime/dist/emnapi.d.mts +15 -7
  17. package/node_modules/@emnapi/runtime/dist/emnapi.d.ts +15 -7
  18. package/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +45 -14
  19. package/node_modules/@emnapi/runtime/dist/emnapi.iife.d.ts +12 -6
  20. package/node_modules/@emnapi/runtime/dist/emnapi.iife.js +45 -14
  21. package/node_modules/@emnapi/runtime/dist/emnapi.js +45 -14
  22. package/node_modules/@emnapi/runtime/dist/emnapi.min.d.mts +15 -7
  23. package/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -1
  24. package/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -1
  25. package/node_modules/@emnapi/runtime/dist/emnapi.mjs +44 -14
  26. package/node_modules/@emnapi/runtime/package.json +1 -1
  27. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +67 -63
  28. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +59 -2
  29. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -1
  30. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +59 -2
  31. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +59 -2
  32. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +67 -63
  33. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +67 -63
  34. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +59 -2
  35. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -1
  36. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -1
  37. package/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +67 -63
  38. package/node_modules/@emnapi/wasi-threads/package.json +1 -1
  39. package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +299 -0
  40. package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +22125 -20726
  41. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +294 -0
  42. package/node_modules/@napi-rs/wasm-runtime/package.json +25 -16
  43. package/node_modules/@napi-rs/wasm-runtime/runtime.cjs +1 -1
  44. package/node_modules/@napi-rs/wasm-runtime/runtime.js +8 -0
  45. package/node_modules/@tybys/wasm-util/dist/wasm-util.d.ts +6 -0
  46. package/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js +215 -33
  47. package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.js +215 -33
  48. package/node_modules/@tybys/wasm-util/dist/wasm-util.esm.min.js +1 -1
  49. package/node_modules/@tybys/wasm-util/dist/wasm-util.js +215 -33
  50. package/node_modules/@tybys/wasm-util/dist/wasm-util.min.js +1 -1
  51. package/node_modules/@tybys/wasm-util/lib/cjs/wasi/index.js +12 -14
  52. package/node_modules/@tybys/wasm-util/lib/cjs/wasi/path.js +142 -0
  53. package/node_modules/@tybys/wasm-util/lib/cjs/wasi/preview1.js +61 -19
  54. package/node_modules/@tybys/wasm-util/lib/mjs/wasi/index.mjs +12 -14
  55. package/node_modules/@tybys/wasm-util/lib/mjs/wasi/path.mjs +142 -0
  56. package/node_modules/@tybys/wasm-util/lib/mjs/wasi/preview1.mjs +61 -19
  57. package/node_modules/@tybys/wasm-util/package.json +1 -1
  58. package/node_modules/tslib/package.json +1 -1
  59. package/node_modules/tslib/tslib.es6.js +10 -1
  60. package/node_modules/tslib/tslib.es6.mjs +10 -1
  61. package/node_modules/tslib/tslib.js +42 -33
  62. package/package.json +7 -7
  63. package/tailwindcss-oxide.wasi-browser.js +7 -3
  64. package/tailwindcss-oxide.wasi.cjs +27 -4
  65. package/tailwindcss-oxide.wasm32-wasi.wasm +0 -0
  66. package/wasi-worker-browser.mjs +2 -0
  67. package/node_modules/@napi-rs/wasm-runtime/LICENSE +0 -43
  68. package/node_modules/@napi-rs/wasm-runtime/dist/runtime.js +0 -12285
  69. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.cjs +0 -209
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emnapi/core",
3
- "version": "1.4.3",
3
+ "version": "1.11.1",
4
4
  "description": "emnapi core",
5
5
  "main": "index.js",
6
6
  "module": "./dist/emnapi-core.esm-bundler.js",
@@ -27,7 +27,7 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@emnapi/wasi-threads": "1.0.2",
30
+ "@emnapi/wasi-threads": "1.2.2",
31
31
  "tslib": "^2.4.0"
32
32
  },
33
33
  "scripts": {
@@ -154,7 +154,7 @@ const _Buffer = typeof Buffer === 'function'
154
154
  catch (_) { }
155
155
  return undefined;
156
156
  })();
157
- const version = "1.4.3";
157
+ const version = "1.11.1";
158
158
  const NODE_API_SUPPORTED_VERSION_MIN = 1;
159
159
  const NODE_API_SUPPORTED_VERSION_MAX = 10;
160
160
  const NAPI_VERSION_EXPERIMENTAL = 2147483647;
@@ -349,7 +349,7 @@ class ScopeStore {
349
349
  get(id) {
350
350
  return this._values[id];
351
351
  }
352
- openScope(envObject) {
352
+ openScope(handleStore) {
353
353
  const currentScope = this.currentScope;
354
354
  let scope = currentScope.child;
355
355
  if (scope !== null) {
@@ -357,20 +357,16 @@ class ScopeStore {
357
357
  }
358
358
  else {
359
359
  const id = currentScope.id + 1;
360
- scope = new HandleScope(envObject.ctx.handleStore, id, currentScope, currentScope.end);
360
+ scope = new HandleScope(handleStore, id, currentScope, currentScope.end);
361
361
  this._values[id] = scope;
362
362
  }
363
363
  this.currentScope = scope;
364
- envObject.openHandleScopes++;
365
364
  return scope;
366
365
  }
367
- closeScope(envObject) {
368
- if (envObject.openHandleScopes === 0)
369
- return;
366
+ closeScope() {
370
367
  const scope = this.currentScope;
371
368
  this.currentScope = scope.parent;
372
369
  scope.dispose();
373
- envObject.openHandleScopes--;
374
370
  }
375
371
  dispose() {
376
372
  this.currentScope = this._rootScope;
@@ -706,7 +702,7 @@ class NodeEnv extends Env {
706
702
  console.warn(`${prefix}${type || 'Warning'}: ${warning}`);
707
703
  }
708
704
  };
709
- warn('Uncaught N-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.', 'DeprecationWarning', 'DEP0168');
705
+ warn('Uncaught Node-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.', 'DeprecationWarning', 'DEP0168');
710
706
  return;
711
707
  }
712
708
  envObject.triggerFatalException(err);
@@ -1110,6 +1106,29 @@ class Store {
1110
1106
  }
1111
1107
  }
1112
1108
 
1109
+ const kMaxReasonableBytes = BigInt(1) << BigInt(60);
1110
+ const kMinReasonableBytes = -kMaxReasonableBytes;
1111
+ class ExternalMemory {
1112
+ constructor(onChange) {
1113
+ this.total = BigInt(0);
1114
+ this.onChange = onChange !== null && onChange !== void 0 ? onChange : null;
1115
+ }
1116
+ adjust(changeInBytes) {
1117
+ changeInBytes = BigInt(changeInBytes);
1118
+ if (!(kMinReasonableBytes <= changeInBytes && changeInBytes < kMaxReasonableBytes)) {
1119
+ throw new RangeError(`changeInBytes ${changeInBytes} is out of reasonable range`);
1120
+ }
1121
+ const old = this.total;
1122
+ this.total += changeInBytes;
1123
+ const amount = this.total;
1124
+ const onChange = this.onChange;
1125
+ if (changeInBytes) {
1126
+ onChange === null || onChange === void 0 ? void 0 : onChange(amount, old, changeInBytes);
1127
+ }
1128
+ return amount;
1129
+ }
1130
+ }
1131
+
1113
1132
  class CleanupHookCallback {
1114
1133
  constructor(envObject, fn, arg, order) {
1115
1134
  this.envObject = envObject;
@@ -1185,7 +1204,7 @@ class NodejsWaitingRequestCounter {
1185
1204
  }
1186
1205
  }
1187
1206
  class Context {
1188
- constructor() {
1207
+ constructor(options) {
1189
1208
  this._isStopping = false;
1190
1209
  this._canCallIntoJs = true;
1191
1210
  this._suppressDestroy = false;
@@ -1206,6 +1225,7 @@ class Context {
1206
1225
  MessageChannel: _MessageChannel
1207
1226
  };
1208
1227
  this.cleanupQueue = new CleanupQueue();
1228
+ this._externalMemory = new ExternalMemory(options === null || options === void 0 ? void 0 : options.onExternalMemoryChange);
1209
1229
  if (typeof process === 'object' && process !== null && typeof process.once === 'function') {
1210
1230
  this.refCounter = new NodejsWaitingRequestCounter();
1211
1231
  process.once('beforeExit', () => {
@@ -1244,6 +1264,9 @@ class Context {
1244
1264
  createDeferred(value) {
1245
1265
  return Deferred.create(this, value);
1246
1266
  }
1267
+ adjustAmountOfExternalAllocatedMemory(changeInBytes) {
1268
+ return this._externalMemory.adjust(changeInBytes);
1269
+ }
1247
1270
  createEnv(filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding) {
1248
1271
  return newEnv(this, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding);
1249
1272
  }
@@ -1257,10 +1280,17 @@ class Context {
1257
1280
  return this.scopeStore.currentScope.add(value);
1258
1281
  }
1259
1282
  openScope(envObject) {
1260
- return this.scopeStore.openScope(envObject);
1283
+ const scope = this.scopeStore.openScope(this.handleStore);
1284
+ if (envObject)
1285
+ envObject.openHandleScopes++;
1286
+ return scope;
1261
1287
  }
1262
1288
  closeScope(envObject, _scope) {
1263
- this.scopeStore.closeScope(envObject);
1289
+ if (envObject && envObject.openHandleScopes === 0)
1290
+ return;
1291
+ this.scopeStore.closeScope();
1292
+ if (envObject)
1293
+ envObject.openHandleScopes--;
1264
1294
  }
1265
1295
  ensureHandle(value) {
1266
1296
  switch (value) {
@@ -1307,8 +1337,8 @@ class Context {
1307
1337
  }
1308
1338
  }
1309
1339
  let defaultContext;
1310
- function createContext() {
1311
- return new Context();
1340
+ function createContext(options) {
1341
+ return new Context(options);
1312
1342
  }
1313
1343
  function getDefaultContext() {
1314
1344
  if (!defaultContext) {
@@ -199,7 +199,8 @@ export declare const enum napi_typedarray_type {
199
199
  napi_float32_array,
200
200
  napi_float64_array,
201
201
  napi_bigint64_array,
202
- napi_biguint64_array
202
+ napi_biguint64_array,
203
+ napi_float16_array,
203
204
  }
204
205
 
205
206
  export declare const enum napi_key_collection_mode {
@@ -233,6 +234,7 @@ export declare const enum emnapi_memory_view_type {
233
234
  emnapi_float64_array,
234
235
  emnapi_bigint64_array,
235
236
  emnapi_biguint64_array,
237
+ emnapi_float16_array,
236
238
  emnapi_data_view = -1,
237
239
  emnapi_buffer = -2
238
240
  }
@@ -264,6 +266,7 @@ export declare class Context {
264
266
  handleStore: HandleStore;
265
267
  private readonly refCounter?;
266
268
  private readonly cleanupQueue;
269
+ private readonly _externalMemory;
267
270
  feature: {
268
271
  supportReflect: boolean;
269
272
  supportFinalizer: boolean;
@@ -278,7 +281,7 @@ export declare class Context {
278
281
  prototype: MessageChannel;
279
282
  } | undefined;
280
283
  };
281
- constructor();
284
+ constructor(options?: ContextOptions);
282
285
  /**
283
286
  * Suppress the destroy on `beforeExit` event in Node.js.
284
287
  * Call this method if you want to keep the context and
@@ -300,12 +303,13 @@ export declare class Context {
300
303
  createReferenceWithData(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, data: void_p): Reference;
301
304
  createReferenceWithFinalizer(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, finalize_callback?: napi_finalize, finalize_data?: void_p, finalize_hint?: void_p): Reference;
302
305
  createDeferred<T = any>(value: IDeferrdValue<T>): Deferred<T>;
306
+ adjustAmountOfExternalAllocatedMemory(changeInBytes: number | bigint): bigint;
303
307
  createEnv(filename: string, moduleApiVersion: number, makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void, makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void, abort: (msg?: string) => never, nodeBinding?: any): Env;
304
308
  createTrackedFinalizer(envObject: Env, finalize_callback: napi_finalize, finalize_data: void_p, finalize_hint: void_p): TrackedFinalizer;
305
309
  getCurrentScope(): HandleScope | null;
306
310
  addToCurrentScope<V>(value: V): Handle<V>;
307
- openScope(envObject: Env): HandleScope;
308
- closeScope(envObject: Env, _scope?: HandleScope): void;
311
+ openScope(envObject?: Env): HandleScope;
312
+ closeScope(envObject?: Env, _scope?: HandleScope): void;
309
313
  ensureHandle<S>(value: S): Handle<S>;
310
314
  addCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
311
315
  removeCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
@@ -322,7 +326,11 @@ export declare class Context {
322
326
  destroy(): void;
323
327
  }
324
328
 
325
- export declare function createContext(): Context;
329
+ export declare interface ContextOptions {
330
+ onExternalMemoryChange?: (current: bigint, old: bigint, delta: bigint) => any;
331
+ }
332
+
333
+ export declare function createContext(options?: ContextOptions): Context;
326
334
 
327
335
  export declare class Deferred<T = any> implements IStoreValue {
328
336
  static create<T = any>(ctx: Context, value: IDeferrdValue<T>): Deferred;
@@ -621,8 +629,8 @@ export declare class ScopeStore {
621
629
  private readonly _values;
622
630
  constructor();
623
631
  get(id: number): HandleScope | undefined;
624
- openScope(envObject: Env): HandleScope;
625
- closeScope(envObject: Env): void;
632
+ openScope(handleStore: HandleStore): HandleScope;
633
+ closeScope(): void;
626
634
  dispose(): void;
627
635
  }
628
636
 
@@ -1 +1 @@
1
- const e=new WeakMap;function t(t){return e.has(t)}const i=(()=>{function t(t){Object.setPrototypeOf(this,null),e.set(this,t)}return t.prototype=null,t})();function s(i){if(!t(i))throw new TypeError("not external");return e.get(i)}const n=function(){let e;try{e=new Function}catch(e){return!1}return"function"==typeof e}(),r=function(){if("undefined"!=typeof globalThis)return globalThis;let e=function(){return this}();if(!e&&n)try{e=new Function("return this")()}catch(e){}if(!e){if("undefined"==typeof __webpack_public_path__&&"undefined"!=typeof global)return global;if("undefined"!=typeof window)return window;if("undefined"!=typeof self)return self}return e}();class o{constructor(){this._exception=void 0,this._caught=!1}isEmpty(){return!this._caught}hasCaught(){return this._caught}exception(){return this._exception}setError(e){this._caught=!0,this._exception=e}reset(){this._caught=!1,this._exception=void 0}extractException(){const e=this._exception;return this.reset(),e}}const a=function(){var e;try{return Boolean(null===(e=Object.getOwnPropertyDescriptor(Function.prototype,"name"))||void 0===e?void 0:e.configurable)}catch(e){return!1}}(),l="object"==typeof Reflect,c="undefined"!=typeof FinalizationRegistry&&"undefined"!=typeof WeakRef,h=function(){try{const e=Symbol();new WeakRef(e),(new WeakMap).set(e,void 0)}catch(e){return!1}return!0}(),u="undefined"!=typeof BigInt;const p=function(){let e;return e="undefined"!=typeof __webpack_public_path__||"undefined"!=typeof __webpack_public_path__?"undefined"!=typeof __non_webpack_require__?__non_webpack_require__:void 0:"undefined"!=typeof require?require:void 0,e}(),f="function"==typeof MessageChannel?MessageChannel:function(){try{return p("worker_threads").MessageChannel}catch(e){}}(),d="function"==typeof setImmediate?setImmediate:function(e){if("function"!=typeof e)throw new TypeError('The "callback" argument must be of type function');if(f){let t=new f;t.port1.onmessage=function(){t.port1.onmessage=null,t=void 0,e()},t.port2.postMessage(null)}else setTimeout(e,0)},_="function"==typeof Buffer?Buffer:function(){try{return p("buffer").Buffer}catch(e){}}(),v="1.4.3",g=2147483647;class y{constructor(e,t){this.id=e,this.value=t}data(){return s(this.value)}isNumber(){return"number"==typeof this.value}isBigInt(){return"bigint"==typeof this.value}isString(){return"string"==typeof this.value}isFunction(){return"function"==typeof this.value}isExternal(){return t(this.value)}isObject(){return"object"==typeof this.value&&null!==this.value}isArray(){return Array.isArray(this.value)}isArrayBuffer(){return this.value instanceof ArrayBuffer}isTypedArray(){return ArrayBuffer.isView(this.value)&&!(this.value instanceof DataView)}isBuffer(e){return!!ArrayBuffer.isView(this.value)||(null!=e||(e=_),"function"==typeof e&&e.isBuffer(this.value))}isDataView(){return this.value instanceof DataView}isDate(){return this.value instanceof Date}isPromise(){return this.value instanceof Promise}isBoolean(){return"boolean"==typeof this.value}isUndefined(){return void 0===this.value}isSymbol(){return"symbol"==typeof this.value}isNull(){return null===this.value}dispose(){this.value=void 0}}class x extends y{constructor(e,t){super(e,t)}dispose(){}}class z{constructor(){this._values=[void 0,z.UNDEFINED,z.NULL,z.FALSE,z.TRUE,z.GLOBAL],this._next=z.MIN_ID}push(e){let t;const i=this._next,s=this._values;return i<s.length?(t=s[i],t.value=e):(t=new y(i,e),s[i]=t),this._next++,t}erase(e,t){this._next=e;const i=this._values;for(let s=e;s<t;++s)i[s].dispose()}get(e){return this._values[e]}swap(e,t){const i=this._values,s=i[e];i[e]=i[t],i[e].id=Number(e),i[t]=s,s.id=Number(t)}dispose(){this._values.length=z.MIN_ID,this._next=z.MIN_ID}}z.UNDEFINED=new x(1,void 0),z.NULL=new x(2,null),z.FALSE=new x(3,!1),z.TRUE=new x(4,!0),z.GLOBAL=new x(5,r),z.MIN_ID=6;class k{constructor(e,t,i,s,n=s){this.handleStore=e,this.id=t,this.parent=i,this.child=null,null!==i&&(i.child=this),this.start=s,this.end=n,this._escapeCalled=!1,this.callbackInfo={thiz:void 0,data:0,args:void 0,fn:void 0}}add(e){const t=this.handleStore.push(e);return this.end++,t}addExternal(e){return this.add(new i(e))}dispose(){this._escapeCalled&&(this._escapeCalled=!1),this.start!==this.end&&this.handleStore.erase(this.start,this.end)}escape(e){if(this._escapeCalled)return null;if(this._escapeCalled=!0,e<this.start||e>=this.end)return null;this.handleStore.swap(e,this.start);const t=this.handleStore.get(this.start);return this.start++,this.parent.end++,t}escapeCalled(){return this._escapeCalled}}class b{constructor(){this._rootScope=new k(null,0,null,1,z.MIN_ID),this.currentScope=this._rootScope,this._values=[void 0]}get(e){return this._values[e]}openScope(e){const t=this.currentScope;let i=t.child;if(null!==i)i.start=i.end=t.end;else{const s=t.id+1;i=new k(e.ctx.handleStore,s,t,t.end),this._values[s]=i}return this.currentScope=i,e.openHandleScopes++,i}closeScope(e){if(0===e.openHandleScopes)return;const t=this.currentScope;this.currentScope=t.parent,t.dispose(),e.openHandleScopes--}dispose(){this.currentScope=this._rootScope,this._values.length=1}}class w{constructor(){this._next=null,this._prev=null}dispose(){}finalize(){}link(e){this._prev=e,this._next=e._next,null!==this._next&&(this._next._prev=this),e._next=this}unlink(){null!==this._prev&&(this._prev._next=this._next),null!==this._next&&(this._next._prev=this._prev),this._prev=null,this._next=null}static finalizeAll(e){for(;null!==e._next;)e._next.finalize()}}class S{constructor(e,t=0,i=0,s=0){this.envObject=e,this._finalizeCallback=t,this._finalizeData=i,this._finalizeHint=s,this._makeDynCall_vppp=e.makeDynCall_vppp}callback(){return this._finalizeCallback}data(){return this._finalizeData}hint(){return this._finalizeHint}resetEnv(){this.envObject=void 0}resetFinalizer(){this._finalizeCallback=0,this._finalizeData=0,this._finalizeHint=0}callFinalizer(){const e=this._finalizeCallback,t=this._finalizeData,i=this._finalizeHint;if(this.resetFinalizer(),!e)return;const s=Number(e);this.envObject?this.envObject.callFinalizer(s,t,i):this._makeDynCall_vppp(s)(0,t,i)}dispose(){this.envObject=void 0,this._makeDynCall_vppp=void 0}}class E extends w{static create(e,t,i,s){const n=new E(e,t,i,s);return n.link(e.finalizing_reflist),n}constructor(e,t,i,s){super(),this._finalizer=new S(e,t,i,s)}data(){return this._finalizer.data()}dispose(){this._finalizer&&(this.unlink(),this._finalizer.envObject.dequeueFinalizer(this),this._finalizer.dispose(),this._finalizer=void 0,super.dispose())}finalize(){let e;this.unlink();let t=!1;try{this._finalizer.callFinalizer()}catch(i){t=!0,e=i}if(this.dispose(),t)throw e}}function m(e,t){if(!e.terminatedOrTerminating())throw t}class C{constructor(e,t,i,s,n){this.ctx=e,this.moduleApiVersion=t,this.makeDynCall_vppp=i,this.makeDynCall_vp=s,this.abort=n,this.openHandleScopes=0,this.instanceData=null,this.tryCatch=new o,this.refs=1,this.reflist=new w,this.finalizing_reflist=new w,this.pendingFinalizers=[],this.lastError={errorCode:0,engineErrorCode:0,engineReserved:0},this.inGcFinalizer=!1,this._bindingMap=new WeakMap,this.id=0}canCallIntoJs(){return!0}terminatedOrTerminating(){return!this.canCallIntoJs()}ref(){this.refs++}unref(){this.refs--,0===this.refs&&this.dispose()}ensureHandle(e){return this.ctx.ensureHandle(e)}ensureHandleId(e){return this.ensureHandle(e).id}clearLastError(){const e=this.lastError;return 0!==e.errorCode&&(e.errorCode=0),0!==e.engineErrorCode&&(e.engineErrorCode=0),0!==e.engineReserved&&(e.engineReserved=0),0}setLastError(e,t=0,i=0){const s=this.lastError;return s.errorCode!==e&&(s.errorCode=e),s.engineErrorCode!==t&&(s.engineErrorCode=t),s.engineReserved!==i&&(s.engineReserved=i),e}getReturnStatus(){return this.tryCatch.hasCaught()?this.setLastError(10):0}callIntoModule(e,t=m){const i=this.openHandleScopes;this.clearLastError();const s=e(this);if(i!==this.openHandleScopes&&this.abort("open_handle_scopes != open_handle_scopes_before"),this.tryCatch.hasCaught()){t(this,this.tryCatch.extractException())}return s}invokeFinalizerFromGC(e){if(this.moduleApiVersion!==g)this.enqueueFinalizer(e);else{const t=this.inGcFinalizer;this.inGcFinalizer=!0;try{e.finalize()}finally{this.inGcFinalizer=t}}}checkGCAccess(){this.moduleApiVersion===g&&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.")}enqueueFinalizer(e){-1===this.pendingFinalizers.indexOf(e)&&this.pendingFinalizers.push(e)}dequeueFinalizer(e){const t=this.pendingFinalizers.indexOf(e);-1!==t&&this.pendingFinalizers.splice(t,1)}deleteMe(){w.finalizeAll(this.finalizing_reflist),w.finalizeAll(this.reflist),this.tryCatch.extractException(),this.ctx.envStore.remove(this.id)}dispose(){0!==this.id&&(this.deleteMe(),this.finalizing_reflist.dispose(),this.reflist.dispose(),this.id=0)}initObjectBinding(e){const t={wrapped:0,tag:null};return this._bindingMap.set(e,t),t}getObjectBinding(e){return this._bindingMap.has(e)?this._bindingMap.get(e):this.initObjectBinding(e)}setInstanceData(e,t,i){this.instanceData&&this.instanceData.dispose(),this.instanceData=E.create(this,t,e,i)}getInstanceData(){return this.instanceData?this.instanceData.data():0}}class F extends C{constructor(e,t,i,s,n,r,o){super(e,i,s,n,r),this.filename=t,this.nodeBinding=o,this.destructing=!1,this.finalizationScheduled=!1}deleteMe(){this.destructing=!0,this.drainFinalizerQueue(),super.deleteMe()}canCallIntoJs(){return super.canCallIntoJs()&&this.ctx.canCallIntoJs()}triggerFatalException(e){if(this.nodeBinding)this.nodeBinding.napi.fatalException(e);else{if("object"!=typeof process||null===process||"function"!=typeof process._fatalException)throw e;process._fatalException(e)||(console.error(e),process.exit(1))}}callbackIntoModule(e,t){return this.callIntoModule(t,((t,i)=>{if(t.terminatedOrTerminating())return;const s="object"==typeof process&&null!==process,n=!!s&&Boolean(process.execArgv&&-1!==process.execArgv.indexOf("--force-node-api-uncaught-exceptions-policy"));if(t.moduleApiVersion<10&&!n&&!e){(s&&"function"==typeof process.emitWarning?process.emitWarning:function(e,t,i){if(e instanceof Error)console.warn(e.toString());else{const s=i?`[${i}] `:"";console.warn(`${s}${t||"Warning"}: ${e}`)}})("Uncaught N-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.","DeprecationWarning","DEP0168")}else t.triggerFatalException(i)}))}callFinalizer(e,t,i){this.callFinalizerInternal(1,e,t,i)}callFinalizerInternal(e,t,i,s){const n=this.makeDynCall_vppp(t),r=this.id,o=this.ctx.openScope(this);try{this.callbackIntoModule(Boolean(e),(()=>{n(r,i,s)}))}finally{this.ctx.closeScope(this,o)}}enqueueFinalizer(e){super.enqueueFinalizer(e),this.finalizationScheduled||this.destructing||(this.finalizationScheduled=!0,this.ref(),d((()=>{this.finalizationScheduled=!1,this.unref(),this.drainFinalizerQueue()})))}drainFinalizerQueue(){for(;this.pendingFinalizers.length>0;){this.pendingFinalizers.shift().finalize()}}}function I(e,t,i,s,n,r,o){(i="number"!=typeof i?8:i)<8?i=8:i>10&&i!==g&&function(e,t){throw new Error(`${e} requires Node-API version ${t}, but this version of Node.js only supports version 10 add-ons.`)}(t,i);const a=new F(e,t,i,s,n,r,o);return e.envStore.add(a),e.addCleanupHook(a,(()=>{a.unref()}),0),a}class O extends Error{constructor(e){super(e);const t=new.target,i=t.prototype;if(!(this instanceof O)){const e=Object.setPrototypeOf;"function"==typeof e?e.call(Object,this,i):this.__proto__=i,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}}}Object.defineProperty(O.prototype,"name",{configurable:!0,writable:!0,value:"EmnapiError"});class D extends O{constructor(e,t){super(`${e}: The current runtime does not support "FinalizationRegistry" and "WeakRef".${t?` ${t}`:""}`)}}Object.defineProperty(D.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportWeakRefError"});class R extends O{constructor(e,t){super(`${e}: The current runtime does not support "Buffer". Consider using buffer polyfill to make sure \`globalThis.Buffer\` is defined.${t?` ${t}`:""}`)}}Object.defineProperty(R.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportBufferError"});class N{constructor(e){this._value=e}deref(){return this._value}dispose(){this._value=void 0}}class H{constructor(e){this._ref=new N(e)}setWeak(e,t){if(!c||void 0===this._ref||this._ref instanceof WeakRef)return;const i=this._ref.deref();try{H._registry.register(i,this,this);const s=new WeakRef(i);this._ref.dispose(),this._ref=s,this._param=e,this._callback=t}catch(e){if("symbol"!=typeof i)throw e}}clearWeak(){if(c&&void 0!==this._ref&&this._ref instanceof WeakRef){try{H._registry.unregister(this)}catch(e){}this._param=void 0,this._callback=void 0;const e=this._ref.deref();this._ref=void 0===e?e:new N(e)}}reset(){if(c)try{H._registry.unregister(this)}catch(e){}this._param=void 0,this._callback=void 0,this._ref instanceof N&&this._ref.dispose(),this._ref=void 0}isEmpty(){return void 0===this._ref}deref(){if(void 0!==this._ref)return this._ref.deref()}}var A;H._registry=c?new FinalizationRegistry((e=>{e._ref=void 0;const t=e._callback,i=e._param;e._callback=void 0,e._param=void 0,"function"==typeof t&&t(i)})):void 0,exports.ReferenceOwnership=void 0,(A=exports.ReferenceOwnership||(exports.ReferenceOwnership={}))[A.kRuntime=0]="kRuntime",A[A.kUserland=1]="kUserland";class j extends w{static weakCallback(e){e.persistent.reset(),e.invokeFinalizerFromGC()}static create(e,t,i,s,n,r,o){const a=new j(e,t,i,s);return e.ctx.refStore.add(a),a.link(e.reflist),a}constructor(e,t,i,s){super(),this.envObject=e,this._refcount=i,this._ownership=s;const n=e.ctx.handleStore.get(t);var r;this.canBeWeak=(r=n).isObject()||r.isFunction()||r.isSymbol(),this.persistent=new H(n.value),this.id=0,0===i&&this._setWeak()}ref(){return this.persistent.isEmpty()?0:(1==++this._refcount&&this.canBeWeak&&this.persistent.clearWeak(),this._refcount)}unref(){return this.persistent.isEmpty()||0===this._refcount?0:(0==--this._refcount&&this._setWeak(),this._refcount)}get(e=this.envObject){if(this.persistent.isEmpty())return 0;const t=this.persistent.deref();return e.ensureHandle(t).id}resetFinalizer(){}data(){return 0}refcount(){return this._refcount}ownership(){return this._ownership}callUserFinalizer(){}invokeFinalizerFromGC(){this.finalize()}_setWeak(){this.canBeWeak?this.persistent.setWeak(this,j.weakCallback):this.persistent.reset()}finalize(){this.persistent.reset();const e=this._ownership===exports.ReferenceOwnership.kRuntime;this.unlink(),this.callUserFinalizer(),e&&this.dispose()}dispose(){0!==this.id&&(this.unlink(),this.persistent.reset(),this.envObject.ctx.refStore.remove(this.id),super.dispose(),this.envObject=void 0,this.id=0)}}class B extends j{static create(e,t,i,s,n){const r=new B(e,t,i,s,n);return e.ctx.refStore.add(r),r.link(e.reflist),r}constructor(e,t,i,s,n){super(e,t,i,s),this._data=n}data(){return this._data}}class T extends j{static create(e,t,i,s,n,r,o){const a=new T(e,t,i,s,n,r,o);return e.ctx.refStore.add(a),a.link(e.finalizing_reflist),a}constructor(e,t,i,s,n,r,o){super(e,t,i,s),this._finalizer=new S(e,n,r,o)}resetFinalizer(){this._finalizer.resetFinalizer()}data(){return this._finalizer.data()}callUserFinalizer(){this._finalizer.callFinalizer()}invokeFinalizerFromGC(){this._finalizer.envObject.invokeFinalizerFromGC(this)}dispose(){this._finalizer&&(this._finalizer.envObject.dequeueFinalizer(this),this._finalizer.dispose(),super.dispose(),this._finalizer=void 0)}}class W{static create(e,t){const i=new W(e,t);return e.deferredStore.add(i),i}constructor(e,t){this.id=0,this.ctx=e,this.value=t}resolve(e){this.value.resolve(e),this.dispose()}reject(e){this.value.reject(e),this.dispose()}dispose(){this.ctx.deferredStore.remove(this.id),this.id=0,this.value=null,this.ctx=null}}class M{constructor(){this._values=[void 0],this._values.length=4,this._size=1,this._freeList=[]}add(e){let t;if(this._freeList.length)t=this._freeList.shift();else{t=this._size,this._size++;const e=this._values.length;t>=e&&(this._values.length=e+(e>>1)+16)}e.id=t,this._values[t]=e}get(e){return this._values[e]}has(e){return void 0!==this._values[e]}remove(e){const t=this._values[e];t&&(t.id=0,this._values[e]=void 0,this._freeList.push(Number(e)))}dispose(){for(let e=1;e<this._size;++e){const t=this._values[e];null==t||t.dispose()}this._values=[void 0],this._size=1,this._freeList=[]}}class L{constructor(e,t,i,s){this.envObject=e,this.fn=t,this.arg=i,this.order=s}}class P{constructor(){this._cleanupHooks=[],this._cleanupHookCounter=0}empty(){return 0===this._cleanupHooks.length}add(e,t,i){if(this._cleanupHooks.filter((s=>s.envObject===e&&s.fn===t&&s.arg===i)).length>0)throw new Error("Can not add same fn and arg twice");this._cleanupHooks.push(new L(e,t,i,this._cleanupHookCounter++))}remove(e,t,i){for(let s=0;s<this._cleanupHooks.length;++s){const n=this._cleanupHooks[s];if(n.envObject===e&&n.fn===t&&n.arg===i)return void this._cleanupHooks.splice(s,1)}}drain(){const e=this._cleanupHooks.slice();e.sort(((e,t)=>t.order-e.order));for(let t=0;t<e.length;++t){const i=e[t];"number"==typeof i.fn?i.envObject.makeDynCall_vp(i.fn)(i.arg):i.fn(i.arg),this._cleanupHooks.splice(this._cleanupHooks.indexOf(i),1)}}dispose(){this._cleanupHooks.length=0,this._cleanupHookCounter=0}}class U{constructor(){this.refHandle=(new f).port1,this.count=0}increase(){0===this.count&&this.refHandle.ref&&this.refHandle.ref(),this.count++}decrease(){0!==this.count&&(1===this.count&&this.refHandle.unref&&this.refHandle.unref(),this.count--)}}class V{constructor(){this._isStopping=!1,this._canCallIntoJs=!0,this._suppressDestroy=!1,this.envStore=new M,this.scopeStore=new b,this.refStore=new M,this.deferredStore=new M,this.handleStore=new z,this.feature={supportReflect:l,supportFinalizer:c,supportWeakSymbol:h,supportBigInt:u,supportNewFunction:n,canSetFunctionName:a,setImmediate:d,Buffer:_,MessageChannel:f},this.cleanupQueue=new P,"object"==typeof process&&null!==process&&"function"==typeof process.once&&(this.refCounter=new U,process.once("beforeExit",(()=>{this._suppressDestroy||this.destroy()})))}suppressDestroy(){this._suppressDestroy=!0}getRuntimeVersions(){return{version:v,NODE_API_SUPPORTED_VERSION_MAX:10,NAPI_VERSION_EXPERIMENTAL:g,NODE_API_DEFAULT_MODULE_API_VERSION:8}}createNotSupportWeakRefError(e,t){return new D(e,t)}createNotSupportBufferError(e,t){return new R(e,t)}createReference(e,t,i,s){return j.create(e,t,i,s)}createReferenceWithData(e,t,i,s,n){return B.create(e,t,i,s,n)}createReferenceWithFinalizer(e,t,i,s,n=0,r=0,o=0){return T.create(e,t,i,s,n,r,o)}createDeferred(e){return W.create(this,e)}createEnv(e,t,i,s,n,r){return I(this,e,t,i,s,n,r)}createTrackedFinalizer(e,t,i,s){return E.create(e,t,i,s)}getCurrentScope(){return this.scopeStore.currentScope}addToCurrentScope(e){return this.scopeStore.currentScope.add(e)}openScope(e){return this.scopeStore.openScope(e)}closeScope(e,t){this.scopeStore.closeScope(e)}ensureHandle(e){switch(e){case void 0:return z.UNDEFINED;case null:return z.NULL;case!0:return z.TRUE;case!1:return z.FALSE;case r:return z.GLOBAL}return this.addToCurrentScope(e)}addCleanupHook(e,t,i){this.cleanupQueue.add(e,t,i)}removeCleanupHook(e,t,i){this.cleanupQueue.remove(e,t,i)}runCleanup(){for(;!this.cleanupQueue.empty();)this.cleanupQueue.drain()}increaseWaitingRequestCounter(){var e;null===(e=this.refCounter)||void 0===e||e.increase()}decreaseWaitingRequestCounter(){var e;null===(e=this.refCounter)||void 0===e||e.decrease()}setCanCallIntoJs(e){this._canCallIntoJs=e}setStopping(e){this._isStopping=e}canCallIntoJs(){return this._canCallIntoJs&&!this._isStopping}destroy(){this.setStopping(!0),this.setCanCallIntoJs(!1),this.runCleanup()}}let G;function q(){return new V}exports.ConstHandle=x,exports.Context=V,exports.Deferred=W,exports.EmnapiError=O,exports.Env=C,exports.External=i,exports.Finalizer=S,exports.Handle=y,exports.HandleScope=k,exports.HandleStore=z,exports.NAPI_VERSION_EXPERIMENTAL=g,exports.NODE_API_DEFAULT_MODULE_API_VERSION=8,exports.NODE_API_SUPPORTED_VERSION_MAX=10,exports.NODE_API_SUPPORTED_VERSION_MIN=1,exports.NodeEnv=F,exports.NotSupportBufferError=R,exports.NotSupportWeakRefError=D,exports.Persistent=H,exports.RefTracker=w,exports.Reference=j,exports.ReferenceWithData=B,exports.ReferenceWithFinalizer=T,exports.ScopeStore=b,exports.Store=M,exports.TrackedFinalizer=E,exports.TryCatch=o,exports.createContext=q,exports.getDefaultContext=function(){return G||(G=q()),G},exports.getExternalValue=s,exports.isExternal=t,exports.isReferenceType=function(e){return"object"==typeof e&&null!==e||"function"==typeof e},exports.version=v;
1
+ const e=new WeakMap;function t(t){return e.has(t)}const i=(()=>{function t(t){Object.setPrototypeOf(this,null),e.set(this,t)}return t.prototype=null,t})();function s(i){if(!t(i))throw new TypeError("not external");return e.get(i)}const n=function(){let e;try{e=new Function}catch(e){return!1}return"function"==typeof e}(),r=function(){if("undefined"!=typeof globalThis)return globalThis;let e=function(){return this}();if(!e&&n)try{e=new Function("return this")()}catch(e){}if(!e){if("undefined"==typeof __webpack_public_path__&&"undefined"!=typeof global)return global;if("undefined"!=typeof window)return window;if("undefined"!=typeof self)return self}return e}();class o{constructor(){this._exception=void 0,this._caught=!1}isEmpty(){return!this._caught}hasCaught(){return this._caught}exception(){return this._exception}setError(e){this._caught=!0,this._exception=e}reset(){this._caught=!1,this._exception=void 0}extractException(){const e=this._exception;return this.reset(),e}}const a=function(){var e;try{return Boolean(null===(e=Object.getOwnPropertyDescriptor(Function.prototype,"name"))||void 0===e?void 0:e.configurable)}catch(e){return!1}}(),l="object"==typeof Reflect,c="undefined"!=typeof FinalizationRegistry&&"undefined"!=typeof WeakRef,h=function(){try{const e=Symbol();new WeakRef(e),(new WeakMap).set(e,void 0)}catch(e){return!1}return!0}(),u="undefined"!=typeof BigInt;const p=function(){let e;return e="undefined"!=typeof __webpack_public_path__||"undefined"!=typeof __webpack_public_path__?"undefined"!=typeof __non_webpack_require__?__non_webpack_require__:void 0:"undefined"!=typeof require?require:void 0,e}(),f="function"==typeof MessageChannel?MessageChannel:function(){try{return p("worker_threads").MessageChannel}catch(e){}}(),d="function"==typeof setImmediate?setImmediate:function(e){if("function"!=typeof e)throw new TypeError('The "callback" argument must be of type function');if(f){let t=new f;t.port1.onmessage=function(){t.port1.onmessage=null,t=void 0,e()},t.port2.postMessage(null)}else setTimeout(e,0)},_="function"==typeof Buffer?Buffer:function(){try{return p("buffer").Buffer}catch(e){}}(),v="1.11.1",g=2147483647;class y{constructor(e,t){this.id=e,this.value=t}data(){return s(this.value)}isNumber(){return"number"==typeof this.value}isBigInt(){return"bigint"==typeof this.value}isString(){return"string"==typeof this.value}isFunction(){return"function"==typeof this.value}isExternal(){return t(this.value)}isObject(){return"object"==typeof this.value&&null!==this.value}isArray(){return Array.isArray(this.value)}isArrayBuffer(){return this.value instanceof ArrayBuffer}isTypedArray(){return ArrayBuffer.isView(this.value)&&!(this.value instanceof DataView)}isBuffer(e){return!!ArrayBuffer.isView(this.value)||(null!=e||(e=_),"function"==typeof e&&e.isBuffer(this.value))}isDataView(){return this.value instanceof DataView}isDate(){return this.value instanceof Date}isPromise(){return this.value instanceof Promise}isBoolean(){return"boolean"==typeof this.value}isUndefined(){return void 0===this.value}isSymbol(){return"symbol"==typeof this.value}isNull(){return null===this.value}dispose(){this.value=void 0}}class x extends y{constructor(e,t){super(e,t)}dispose(){}}class z{constructor(){this._values=[void 0,z.UNDEFINED,z.NULL,z.FALSE,z.TRUE,z.GLOBAL],this._next=z.MIN_ID}push(e){let t;const i=this._next,s=this._values;return i<s.length?(t=s[i],t.value=e):(t=new y(i,e),s[i]=t),this._next++,t}erase(e,t){this._next=e;const i=this._values;for(let s=e;s<t;++s)i[s].dispose()}get(e){return this._values[e]}swap(e,t){const i=this._values,s=i[e];i[e]=i[t],i[e].id=Number(e),i[t]=s,s.id=Number(t)}dispose(){this._values.length=z.MIN_ID,this._next=z.MIN_ID}}z.UNDEFINED=new x(1,void 0),z.NULL=new x(2,null),z.FALSE=new x(3,!1),z.TRUE=new x(4,!0),z.GLOBAL=new x(5,r),z.MIN_ID=6;class k{constructor(e,t,i,s,n=s){this.handleStore=e,this.id=t,this.parent=i,this.child=null,null!==i&&(i.child=this),this.start=s,this.end=n,this._escapeCalled=!1,this.callbackInfo={thiz:void 0,data:0,args:void 0,fn:void 0}}add(e){const t=this.handleStore.push(e);return this.end++,t}addExternal(e){return this.add(new i(e))}dispose(){this._escapeCalled&&(this._escapeCalled=!1),this.start!==this.end&&this.handleStore.erase(this.start,this.end)}escape(e){if(this._escapeCalled)return null;if(this._escapeCalled=!0,e<this.start||e>=this.end)return null;this.handleStore.swap(e,this.start);const t=this.handleStore.get(this.start);return this.start++,this.parent.end++,t}escapeCalled(){return this._escapeCalled}}class b{constructor(){this._rootScope=new k(null,0,null,1,z.MIN_ID),this.currentScope=this._rootScope,this._values=[void 0]}get(e){return this._values[e]}openScope(e){const t=this.currentScope;let i=t.child;if(null!==i)i.start=i.end=t.end;else{const s=t.id+1;i=new k(e,s,t,t.end),this._values[s]=i}return this.currentScope=i,i}closeScope(){const e=this.currentScope;this.currentScope=e.parent,e.dispose()}dispose(){this.currentScope=this._rootScope,this._values.length=1}}class w{constructor(){this._next=null,this._prev=null}dispose(){}finalize(){}link(e){this._prev=e,this._next=e._next,null!==this._next&&(this._next._prev=this),e._next=this}unlink(){null!==this._prev&&(this._prev._next=this._next),null!==this._next&&(this._next._prev=this._prev),this._prev=null,this._next=null}static finalizeAll(e){for(;null!==e._next;)e._next.finalize()}}class m{constructor(e,t=0,i=0,s=0){this.envObject=e,this._finalizeCallback=t,this._finalizeData=i,this._finalizeHint=s,this._makeDynCall_vppp=e.makeDynCall_vppp}callback(){return this._finalizeCallback}data(){return this._finalizeData}hint(){return this._finalizeHint}resetEnv(){this.envObject=void 0}resetFinalizer(){this._finalizeCallback=0,this._finalizeData=0,this._finalizeHint=0}callFinalizer(){const e=this._finalizeCallback,t=this._finalizeData,i=this._finalizeHint;if(this.resetFinalizer(),!e)return;const s=Number(e);this.envObject?this.envObject.callFinalizer(s,t,i):this._makeDynCall_vppp(s)(0,t,i)}dispose(){this.envObject=void 0,this._makeDynCall_vppp=void 0}}class E extends w{static create(e,t,i,s){const n=new E(e,t,i,s);return n.link(e.finalizing_reflist),n}constructor(e,t,i,s){super(),this._finalizer=new m(e,t,i,s)}data(){return this._finalizer.data()}dispose(){this._finalizer&&(this.unlink(),this._finalizer.envObject.dequeueFinalizer(this),this._finalizer.dispose(),this._finalizer=void 0,super.dispose())}finalize(){let e;this.unlink();let t=!1;try{this._finalizer.callFinalizer()}catch(i){t=!0,e=i}if(this.dispose(),t)throw e}}function S(e,t){if(!e.terminatedOrTerminating())throw t}class C{constructor(e,t,i,s,n){this.ctx=e,this.moduleApiVersion=t,this.makeDynCall_vppp=i,this.makeDynCall_vp=s,this.abort=n,this.openHandleScopes=0,this.instanceData=null,this.tryCatch=new o,this.refs=1,this.reflist=new w,this.finalizing_reflist=new w,this.pendingFinalizers=[],this.lastError={errorCode:0,engineErrorCode:0,engineReserved:0},this.inGcFinalizer=!1,this._bindingMap=new WeakMap,this.id=0}canCallIntoJs(){return!0}terminatedOrTerminating(){return!this.canCallIntoJs()}ref(){this.refs++}unref(){this.refs--,0===this.refs&&this.dispose()}ensureHandle(e){return this.ctx.ensureHandle(e)}ensureHandleId(e){return this.ensureHandle(e).id}clearLastError(){const e=this.lastError;return 0!==e.errorCode&&(e.errorCode=0),0!==e.engineErrorCode&&(e.engineErrorCode=0),0!==e.engineReserved&&(e.engineReserved=0),0}setLastError(e,t=0,i=0){const s=this.lastError;return s.errorCode!==e&&(s.errorCode=e),s.engineErrorCode!==t&&(s.engineErrorCode=t),s.engineReserved!==i&&(s.engineReserved=i),e}getReturnStatus(){return this.tryCatch.hasCaught()?this.setLastError(10):0}callIntoModule(e,t=S){const i=this.openHandleScopes;this.clearLastError();const s=e(this);if(i!==this.openHandleScopes&&this.abort("open_handle_scopes != open_handle_scopes_before"),this.tryCatch.hasCaught()){t(this,this.tryCatch.extractException())}return s}invokeFinalizerFromGC(e){if(this.moduleApiVersion!==g)this.enqueueFinalizer(e);else{const t=this.inGcFinalizer;this.inGcFinalizer=!0;try{e.finalize()}finally{this.inGcFinalizer=t}}}checkGCAccess(){this.moduleApiVersion===g&&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.")}enqueueFinalizer(e){-1===this.pendingFinalizers.indexOf(e)&&this.pendingFinalizers.push(e)}dequeueFinalizer(e){const t=this.pendingFinalizers.indexOf(e);-1!==t&&this.pendingFinalizers.splice(t,1)}deleteMe(){w.finalizeAll(this.finalizing_reflist),w.finalizeAll(this.reflist),this.tryCatch.extractException(),this.ctx.envStore.remove(this.id)}dispose(){0!==this.id&&(this.deleteMe(),this.finalizing_reflist.dispose(),this.reflist.dispose(),this.id=0)}initObjectBinding(e){const t={wrapped:0,tag:null};return this._bindingMap.set(e,t),t}getObjectBinding(e){return this._bindingMap.has(e)?this._bindingMap.get(e):this.initObjectBinding(e)}setInstanceData(e,t,i){this.instanceData&&this.instanceData.dispose(),this.instanceData=E.create(this,t,e,i)}getInstanceData(){return this.instanceData?this.instanceData.data():0}}class F extends C{constructor(e,t,i,s,n,r,o){super(e,i,s,n,r),this.filename=t,this.nodeBinding=o,this.destructing=!1,this.finalizationScheduled=!1}deleteMe(){this.destructing=!0,this.drainFinalizerQueue(),super.deleteMe()}canCallIntoJs(){return super.canCallIntoJs()&&this.ctx.canCallIntoJs()}triggerFatalException(e){if(this.nodeBinding)this.nodeBinding.napi.fatalException(e);else{if("object"!=typeof process||null===process||"function"!=typeof process._fatalException)throw e;process._fatalException(e)||(console.error(e),process.exit(1))}}callbackIntoModule(e,t){return this.callIntoModule(t,(t,i)=>{if(t.terminatedOrTerminating())return;const s="object"==typeof process&&null!==process,n=!!s&&Boolean(process.execArgv&&-1!==process.execArgv.indexOf("--force-node-api-uncaught-exceptions-policy"));if(t.moduleApiVersion<10&&!n&&!e){return void(s&&"function"==typeof process.emitWarning?process.emitWarning:function(e,t,i){if(e instanceof Error)console.warn(e.toString());else{const s=i?`[${i}] `:"";console.warn(`${s}${t||"Warning"}: ${e}`)}})("Uncaught Node-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.","DeprecationWarning","DEP0168")}t.triggerFatalException(i)})}callFinalizer(e,t,i){this.callFinalizerInternal(1,e,t,i)}callFinalizerInternal(e,t,i,s){const n=this.makeDynCall_vppp(t),r=this.id,o=this.ctx.openScope(this);try{this.callbackIntoModule(Boolean(e),()=>{n(r,i,s)})}finally{this.ctx.closeScope(this,o)}}enqueueFinalizer(e){super.enqueueFinalizer(e),this.finalizationScheduled||this.destructing||(this.finalizationScheduled=!0,this.ref(),d(()=>{this.finalizationScheduled=!1,this.unref(),this.drainFinalizerQueue()}))}drainFinalizerQueue(){for(;this.pendingFinalizers.length>0;){this.pendingFinalizers.shift().finalize()}}}function I(e,t,i,s,n,r,o){(i="number"!=typeof i?8:i)<8?i=8:i>10&&i!==g&&function(e,t){throw new Error(`${e} requires Node-API version ${t}, but this version of Node.js only supports version 10 add-ons.`)}(t,i);const a=new F(e,t,i,s,n,r,o);return e.envStore.add(a),e.addCleanupHook(a,()=>{a.unref()},0),a}class O extends Error{constructor(e){super(e);const t=new.target,i=t.prototype;if(!(this instanceof O)){const e=Object.setPrototypeOf;"function"==typeof e?e.call(Object,this,i):this.__proto__=i,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}}}Object.defineProperty(O.prototype,"name",{configurable:!0,writable:!0,value:"EmnapiError"});class D extends O{constructor(e,t){super(`${e}: The current runtime does not support "FinalizationRegistry" and "WeakRef".${t?` ${t}`:""}`)}}Object.defineProperty(D.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportWeakRefError"});class R extends O{constructor(e,t){super(`${e}: The current runtime does not support "Buffer". Consider using buffer polyfill to make sure \`globalThis.Buffer\` is defined.${t?` ${t}`:""}`)}}Object.defineProperty(R.prototype,"name",{configurable:!0,writable:!0,value:"NotSupportBufferError"});class N{constructor(e){this._value=e}deref(){return this._value}dispose(){this._value=void 0}}class A{constructor(e){this._ref=new N(e)}setWeak(e,t){if(!c||void 0===this._ref||this._ref instanceof WeakRef)return;const i=this._ref.deref();try{A._registry.register(i,this,this);const s=new WeakRef(i);this._ref.dispose(),this._ref=s,this._param=e,this._callback=t}catch(e){if("symbol"!=typeof i)throw e}}clearWeak(){if(c&&void 0!==this._ref&&this._ref instanceof WeakRef){try{A._registry.unregister(this)}catch(e){}this._param=void 0,this._callback=void 0;const e=this._ref.deref();this._ref=void 0===e?e:new N(e)}}reset(){if(c)try{A._registry.unregister(this)}catch(e){}this._param=void 0,this._callback=void 0,this._ref instanceof N&&this._ref.dispose(),this._ref=void 0}isEmpty(){return void 0===this._ref}deref(){if(void 0!==this._ref)return this._ref.deref()}}var H;A._registry=c?new FinalizationRegistry(e=>{e._ref=void 0;const t=e._callback,i=e._param;e._callback=void 0,e._param=void 0,"function"==typeof t&&t(i)}):void 0,exports.ReferenceOwnership=void 0,(H=exports.ReferenceOwnership||(exports.ReferenceOwnership={}))[H.kRuntime=0]="kRuntime",H[H.kUserland=1]="kUserland";class j extends w{static weakCallback(e){e.persistent.reset(),e.invokeFinalizerFromGC()}static create(e,t,i,s,n,r,o){const a=new j(e,t,i,s);return e.ctx.refStore.add(a),a.link(e.reflist),a}constructor(e,t,i,s){super(),this.envObject=e,this._refcount=i,this._ownership=s;const n=e.ctx.handleStore.get(t);var r;this.canBeWeak=(r=n).isObject()||r.isFunction()||r.isSymbol(),this.persistent=new A(n.value),this.id=0,0===i&&this._setWeak()}ref(){return this.persistent.isEmpty()?0:(1===++this._refcount&&this.canBeWeak&&this.persistent.clearWeak(),this._refcount)}unref(){return this.persistent.isEmpty()||0===this._refcount?0:(0===--this._refcount&&this._setWeak(),this._refcount)}get(e=this.envObject){if(this.persistent.isEmpty())return 0;const t=this.persistent.deref();return e.ensureHandle(t).id}resetFinalizer(){}data(){return 0}refcount(){return this._refcount}ownership(){return this._ownership}callUserFinalizer(){}invokeFinalizerFromGC(){this.finalize()}_setWeak(){this.canBeWeak?this.persistent.setWeak(this,j.weakCallback):this.persistent.reset()}finalize(){this.persistent.reset();const e=this._ownership===exports.ReferenceOwnership.kRuntime;this.unlink(),this.callUserFinalizer(),e&&this.dispose()}dispose(){0!==this.id&&(this.unlink(),this.persistent.reset(),this.envObject.ctx.refStore.remove(this.id),super.dispose(),this.envObject=void 0,this.id=0)}}class B extends j{static create(e,t,i,s,n){const r=new B(e,t,i,s,n);return e.ctx.refStore.add(r),r.link(e.reflist),r}constructor(e,t,i,s,n){super(e,t,i,s),this._data=n}data(){return this._data}}class M extends j{static create(e,t,i,s,n,r,o){const a=new M(e,t,i,s,n,r,o);return e.ctx.refStore.add(a),a.link(e.finalizing_reflist),a}constructor(e,t,i,s,n,r,o){super(e,t,i,s),this._finalizer=new m(e,n,r,o)}resetFinalizer(){this._finalizer.resetFinalizer()}data(){return this._finalizer.data()}callUserFinalizer(){this._finalizer.callFinalizer()}invokeFinalizerFromGC(){this._finalizer.envObject.invokeFinalizerFromGC(this)}dispose(){this._finalizer&&(this._finalizer.envObject.dequeueFinalizer(this),this._finalizer.dispose(),super.dispose(),this._finalizer=void 0)}}class T{static create(e,t){const i=new T(e,t);return e.deferredStore.add(i),i}constructor(e,t){this.id=0,this.ctx=e,this.value=t}resolve(e){this.value.resolve(e),this.dispose()}reject(e){this.value.reject(e),this.dispose()}dispose(){this.ctx.deferredStore.remove(this.id),this.id=0,this.value=null,this.ctx=null}}class W{constructor(){this._values=[void 0],this._values.length=4,this._size=1,this._freeList=[]}add(e){let t;if(this._freeList.length)t=this._freeList.shift();else{t=this._size,this._size++;const e=this._values.length;t>=e&&(this._values.length=e+(e>>1)+16)}e.id=t,this._values[t]=e}get(e){return this._values[e]}has(e){return void 0!==this._values[e]}remove(e){const t=this._values[e];t&&(t.id=0,this._values[e]=void 0,this._freeList.push(Number(e)))}dispose(){for(let e=1;e<this._size;++e){const t=this._values[e];null==t||t.dispose()}this._values=[void 0],this._size=1,this._freeList=[]}}const L=BigInt(1)<<BigInt(60),P=-L;class U{constructor(e){this.total=BigInt(0),this.onChange=null!=e?e:null}adjust(e){if(e=BigInt(e),!(P<=e&&e<L))throw new RangeError(`changeInBytes ${e} is out of reasonable range`);const t=this.total;this.total+=e;const i=this.total,s=this.onChange;return e&&(null==s||s(i,t,e)),i}}class V{constructor(e,t,i,s){this.envObject=e,this.fn=t,this.arg=i,this.order=s}}class G{constructor(){this._cleanupHooks=[],this._cleanupHookCounter=0}empty(){return 0===this._cleanupHooks.length}add(e,t,i){if(this._cleanupHooks.filter(s=>s.envObject===e&&s.fn===t&&s.arg===i).length>0)throw new Error("Can not add same fn and arg twice");this._cleanupHooks.push(new V(e,t,i,this._cleanupHookCounter++))}remove(e,t,i){for(let s=0;s<this._cleanupHooks.length;++s){const n=this._cleanupHooks[s];if(n.envObject===e&&n.fn===t&&n.arg===i)return void this._cleanupHooks.splice(s,1)}}drain(){const e=this._cleanupHooks.slice();e.sort((e,t)=>t.order-e.order);for(let t=0;t<e.length;++t){const i=e[t];"number"==typeof i.fn?i.envObject.makeDynCall_vp(i.fn)(i.arg):i.fn(i.arg),this._cleanupHooks.splice(this._cleanupHooks.indexOf(i),1)}}dispose(){this._cleanupHooks.length=0,this._cleanupHookCounter=0}}class q{constructor(){this.refHandle=(new f).port1,this.count=0}increase(){0===this.count&&this.refHandle.ref&&this.refHandle.ref(),this.count++}decrease(){0!==this.count&&(1===this.count&&this.refHandle.unref&&this.refHandle.unref(),this.count--)}}class ${constructor(e){this._isStopping=!1,this._canCallIntoJs=!0,this._suppressDestroy=!1,this.envStore=new W,this.scopeStore=new b,this.refStore=new W,this.deferredStore=new W,this.handleStore=new z,this.feature={supportReflect:l,supportFinalizer:c,supportWeakSymbol:h,supportBigInt:u,supportNewFunction:n,canSetFunctionName:a,setImmediate:d,Buffer:_,MessageChannel:f},this.cleanupQueue=new G,this._externalMemory=new U(null==e?void 0:e.onExternalMemoryChange),"object"==typeof process&&null!==process&&"function"==typeof process.once&&(this.refCounter=new q,process.once("beforeExit",()=>{this._suppressDestroy||this.destroy()}))}suppressDestroy(){this._suppressDestroy=!0}getRuntimeVersions(){return{version:v,NODE_API_SUPPORTED_VERSION_MAX:10,NAPI_VERSION_EXPERIMENTAL:g,NODE_API_DEFAULT_MODULE_API_VERSION:8}}createNotSupportWeakRefError(e,t){return new D(e,t)}createNotSupportBufferError(e,t){return new R(e,t)}createReference(e,t,i,s){return j.create(e,t,i,s)}createReferenceWithData(e,t,i,s,n){return B.create(e,t,i,s,n)}createReferenceWithFinalizer(e,t,i,s,n=0,r=0,o=0){return M.create(e,t,i,s,n,r,o)}createDeferred(e){return T.create(this,e)}adjustAmountOfExternalAllocatedMemory(e){return this._externalMemory.adjust(e)}createEnv(e,t,i,s,n,r){return I(this,e,t,i,s,n,r)}createTrackedFinalizer(e,t,i,s){return E.create(e,t,i,s)}getCurrentScope(){return this.scopeStore.currentScope}addToCurrentScope(e){return this.scopeStore.currentScope.add(e)}openScope(e){const t=this.scopeStore.openScope(this.handleStore);return e&&e.openHandleScopes++,t}closeScope(e,t){e&&0===e.openHandleScopes||(this.scopeStore.closeScope(),e&&e.openHandleScopes--)}ensureHandle(e){switch(e){case void 0:return z.UNDEFINED;case null:return z.NULL;case!0:return z.TRUE;case!1:return z.FALSE;case r:return z.GLOBAL}return this.addToCurrentScope(e)}addCleanupHook(e,t,i){this.cleanupQueue.add(e,t,i)}removeCleanupHook(e,t,i){this.cleanupQueue.remove(e,t,i)}runCleanup(){for(;!this.cleanupQueue.empty();)this.cleanupQueue.drain()}increaseWaitingRequestCounter(){var e;null===(e=this.refCounter)||void 0===e||e.increase()}decreaseWaitingRequestCounter(){var e;null===(e=this.refCounter)||void 0===e||e.decrease()}setCanCallIntoJs(e){this._canCallIntoJs=e}setStopping(e){this._isStopping=e}canCallIntoJs(){return this._canCallIntoJs&&!this._isStopping}destroy(){this.setStopping(!0),this.setCanCallIntoJs(!1),this.runCleanup()}}let J;function Q(e){return new $(e)}exports.ConstHandle=x,exports.Context=$,exports.Deferred=T,exports.EmnapiError=O,exports.Env=C,exports.External=i,exports.Finalizer=m,exports.Handle=y,exports.HandleScope=k,exports.HandleStore=z,exports.NAPI_VERSION_EXPERIMENTAL=g,exports.NODE_API_DEFAULT_MODULE_API_VERSION=8,exports.NODE_API_SUPPORTED_VERSION_MAX=10,exports.NODE_API_SUPPORTED_VERSION_MIN=1,exports.NodeEnv=F,exports.NotSupportBufferError=R,exports.NotSupportWeakRefError=D,exports.Persistent=A,exports.RefTracker=w,exports.Reference=j,exports.ReferenceWithData=B,exports.ReferenceWithFinalizer=M,exports.ScopeStore=b,exports.Store=W,exports.TrackedFinalizer=E,exports.TryCatch=o,exports.createContext=Q,exports.getDefaultContext=function(){return J||(J=Q()),J},exports.getExternalValue=s,exports.isExternal=t,exports.isReferenceType=function(e){return"object"==typeof e&&null!==e||"function"==typeof e},exports.version=v;
@@ -199,7 +199,8 @@ export declare const enum napi_typedarray_type {
199
199
  napi_float32_array,
200
200
  napi_float64_array,
201
201
  napi_bigint64_array,
202
- napi_biguint64_array
202
+ napi_biguint64_array,
203
+ napi_float16_array,
203
204
  }
204
205
 
205
206
  export declare const enum napi_key_collection_mode {
@@ -233,6 +234,7 @@ export declare const enum emnapi_memory_view_type {
233
234
  emnapi_float64_array,
234
235
  emnapi_bigint64_array,
235
236
  emnapi_biguint64_array,
237
+ emnapi_float16_array,
236
238
  emnapi_data_view = -1,
237
239
  emnapi_buffer = -2
238
240
  }
@@ -264,6 +266,7 @@ export declare class Context {
264
266
  handleStore: HandleStore;
265
267
  private readonly refCounter?;
266
268
  private readonly cleanupQueue;
269
+ private readonly _externalMemory;
267
270
  feature: {
268
271
  supportReflect: boolean;
269
272
  supportFinalizer: boolean;
@@ -278,7 +281,7 @@ export declare class Context {
278
281
  prototype: MessageChannel;
279
282
  } | undefined;
280
283
  };
281
- constructor();
284
+ constructor(options?: ContextOptions);
282
285
  /**
283
286
  * Suppress the destroy on `beforeExit` event in Node.js.
284
287
  * Call this method if you want to keep the context and
@@ -300,12 +303,13 @@ export declare class Context {
300
303
  createReferenceWithData(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, data: void_p): Reference;
301
304
  createReferenceWithFinalizer(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, finalize_callback?: napi_finalize, finalize_data?: void_p, finalize_hint?: void_p): Reference;
302
305
  createDeferred<T = any>(value: IDeferrdValue<T>): Deferred<T>;
306
+ adjustAmountOfExternalAllocatedMemory(changeInBytes: number | bigint): bigint;
303
307
  createEnv(filename: string, moduleApiVersion: number, makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void, makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void, abort: (msg?: string) => never, nodeBinding?: any): Env;
304
308
  createTrackedFinalizer(envObject: Env, finalize_callback: napi_finalize, finalize_data: void_p, finalize_hint: void_p): TrackedFinalizer;
305
309
  getCurrentScope(): HandleScope | null;
306
310
  addToCurrentScope<V>(value: V): Handle<V>;
307
- openScope(envObject: Env): HandleScope;
308
- closeScope(envObject: Env, _scope?: HandleScope): void;
311
+ openScope(envObject?: Env): HandleScope;
312
+ closeScope(envObject?: Env, _scope?: HandleScope): void;
309
313
  ensureHandle<S>(value: S): Handle<S>;
310
314
  addCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
311
315
  removeCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
@@ -322,7 +326,11 @@ export declare class Context {
322
326
  destroy(): void;
323
327
  }
324
328
 
325
- export declare function createContext(): Context;
329
+ export declare interface ContextOptions {
330
+ onExternalMemoryChange?: (current: bigint, old: bigint, delta: bigint) => any;
331
+ }
332
+
333
+ export declare function createContext(options?: ContextOptions): Context;
326
334
 
327
335
  export declare class Deferred<T = any> implements IStoreValue {
328
336
  static create<T = any>(ctx: Context, value: IDeferrdValue<T>): Deferred;
@@ -621,8 +629,8 @@ export declare class ScopeStore {
621
629
  private readonly _values;
622
630
  constructor();
623
631
  get(id: number): HandleScope | undefined;
624
- openScope(envObject: Env): HandleScope;
625
- closeScope(envObject: Env): void;
632
+ openScope(handleStore: HandleStore): HandleScope;
633
+ closeScope(): void;
626
634
  dispose(): void;
627
635
  }
628
636
 
@@ -199,7 +199,8 @@ export declare const enum napi_typedarray_type {
199
199
  napi_float32_array,
200
200
  napi_float64_array,
201
201
  napi_bigint64_array,
202
- napi_biguint64_array
202
+ napi_biguint64_array,
203
+ napi_float16_array,
203
204
  }
204
205
 
205
206
  export declare const enum napi_key_collection_mode {
@@ -233,6 +234,7 @@ export declare const enum emnapi_memory_view_type {
233
234
  emnapi_float64_array,
234
235
  emnapi_bigint64_array,
235
236
  emnapi_biguint64_array,
237
+ emnapi_float16_array,
236
238
  emnapi_data_view = -1,
237
239
  emnapi_buffer = -2
238
240
  }
@@ -264,6 +266,7 @@ export declare class Context {
264
266
  handleStore: HandleStore;
265
267
  private readonly refCounter?;
266
268
  private readonly cleanupQueue;
269
+ private readonly _externalMemory;
267
270
  feature: {
268
271
  supportReflect: boolean;
269
272
  supportFinalizer: boolean;
@@ -278,7 +281,7 @@ export declare class Context {
278
281
  prototype: MessageChannel;
279
282
  } | undefined;
280
283
  };
281
- constructor();
284
+ constructor(options?: ContextOptions);
282
285
  /**
283
286
  * Suppress the destroy on `beforeExit` event in Node.js.
284
287
  * Call this method if you want to keep the context and
@@ -300,12 +303,13 @@ export declare class Context {
300
303
  createReferenceWithData(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, data: void_p): Reference;
301
304
  createReferenceWithFinalizer(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, finalize_callback?: napi_finalize, finalize_data?: void_p, finalize_hint?: void_p): Reference;
302
305
  createDeferred<T = any>(value: IDeferrdValue<T>): Deferred<T>;
306
+ adjustAmountOfExternalAllocatedMemory(changeInBytes: number | bigint): bigint;
303
307
  createEnv(filename: string, moduleApiVersion: number, makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void, makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void, abort: (msg?: string) => never, nodeBinding?: any): Env;
304
308
  createTrackedFinalizer(envObject: Env, finalize_callback: napi_finalize, finalize_data: void_p, finalize_hint: void_p): TrackedFinalizer;
305
309
  getCurrentScope(): HandleScope | null;
306
310
  addToCurrentScope<V>(value: V): Handle<V>;
307
- openScope(envObject: Env): HandleScope;
308
- closeScope(envObject: Env, _scope?: HandleScope): void;
311
+ openScope(envObject?: Env): HandleScope;
312
+ closeScope(envObject?: Env, _scope?: HandleScope): void;
309
313
  ensureHandle<S>(value: S): Handle<S>;
310
314
  addCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
311
315
  removeCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
@@ -322,7 +326,11 @@ export declare class Context {
322
326
  destroy(): void;
323
327
  }
324
328
 
325
- export declare function createContext(): Context;
329
+ export declare interface ContextOptions {
330
+ onExternalMemoryChange?: (current: bigint, old: bigint, delta: bigint) => any;
331
+ }
332
+
333
+ export declare function createContext(options?: ContextOptions): Context;
326
334
 
327
335
  export declare class Deferred<T = any> implements IStoreValue {
328
336
  static create<T = any>(ctx: Context, value: IDeferrdValue<T>): Deferred;
@@ -621,8 +629,8 @@ export declare class ScopeStore {
621
629
  private readonly _values;
622
630
  constructor();
623
631
  get(id: number): HandleScope | undefined;
624
- openScope(envObject: Env): HandleScope;
625
- closeScope(envObject: Env): void;
632
+ openScope(handleStore: HandleStore): HandleScope;
633
+ closeScope(): void;
626
634
  dispose(): void;
627
635
  }
628
636
 
@@ -162,7 +162,7 @@ var _Buffer = typeof Buffer === 'function'
162
162
  catch (_) { }
163
163
  return undefined;
164
164
  })();
165
- var version = "1.4.3";
165
+ var version = "1.11.1";
166
166
  var NODE_API_SUPPORTED_VERSION_MIN = 1 /* Version.NODE_API_SUPPORTED_VERSION_MIN */;
167
167
  var NODE_API_SUPPORTED_VERSION_MAX = 10 /* Version.NODE_API_SUPPORTED_VERSION_MAX */;
168
168
  var NAPI_VERSION_EXPERIMENTAL = 2147483647 /* Version.NAPI_VERSION_EXPERIMENTAL */;
@@ -363,7 +363,7 @@ var ScopeStore = /*#__PURE__*/ (function () {
363
363
  ScopeStore.prototype.get = function (id) {
364
364
  return this._values[id];
365
365
  };
366
- ScopeStore.prototype.openScope = function (envObject) {
366
+ ScopeStore.prototype.openScope = function (handleStore) {
367
367
  var currentScope = this.currentScope;
368
368
  var scope = currentScope.child;
369
369
  if (scope !== null) {
@@ -371,20 +371,16 @@ var ScopeStore = /*#__PURE__*/ (function () {
371
371
  }
372
372
  else {
373
373
  var id = currentScope.id + 1;
374
- scope = new HandleScope(envObject.ctx.handleStore, id, currentScope, currentScope.end);
374
+ scope = new HandleScope(handleStore, id, currentScope, currentScope.end);
375
375
  this._values[id] = scope;
376
376
  }
377
377
  this.currentScope = scope;
378
- envObject.openHandleScopes++;
379
378
  return scope;
380
379
  };
381
- ScopeStore.prototype.closeScope = function (envObject) {
382
- if (envObject.openHandleScopes === 0)
383
- return;
380
+ ScopeStore.prototype.closeScope = function () {
384
381
  var scope = this.currentScope;
385
382
  this.currentScope = scope.parent;
386
383
  scope.dispose();
387
- envObject.openHandleScopes--;
388
384
  };
389
385
  ScopeStore.prototype.dispose = function () {
390
386
  this.currentScope = this._rootScope;
@@ -742,7 +738,7 @@ var NodeEnv = /*#__PURE__*/ (function (_super) {
742
738
  console.warn("".concat(prefix).concat(type || 'Warning', ": ").concat(warning));
743
739
  }
744
740
  };
745
- warn('Uncaught N-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.', 'DeprecationWarning', 'DEP0168');
741
+ warn('Uncaught Node-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.', 'DeprecationWarning', 'DEP0168');
746
742
  return;
747
743
  }
748
744
  envObject.triggerFatalException(err);
@@ -1176,6 +1172,30 @@ var Store = /*#__PURE__*/ (function () {
1176
1172
  return Store;
1177
1173
  }());
1178
1174
 
1175
+ var kMaxReasonableBytes = BigInt(1) << BigInt(60);
1176
+ var kMinReasonableBytes = -kMaxReasonableBytes;
1177
+ var ExternalMemory = /*#__PURE__*/ (function () {
1178
+ function ExternalMemory(onChange) {
1179
+ this.total = BigInt(0);
1180
+ this.onChange = onChange !== null && onChange !== void 0 ? onChange : null;
1181
+ }
1182
+ ExternalMemory.prototype.adjust = function (changeInBytes) {
1183
+ changeInBytes = BigInt(changeInBytes);
1184
+ if (!(kMinReasonableBytes <= changeInBytes && changeInBytes < kMaxReasonableBytes)) {
1185
+ throw new RangeError("changeInBytes ".concat(changeInBytes, " is out of reasonable range"));
1186
+ }
1187
+ var old = this.total;
1188
+ this.total += changeInBytes;
1189
+ var amount = this.total;
1190
+ var onChange = this.onChange;
1191
+ if (changeInBytes) {
1192
+ onChange === null || onChange === void 0 ? void 0 : onChange(amount, old, changeInBytes);
1193
+ }
1194
+ return amount;
1195
+ };
1196
+ return ExternalMemory;
1197
+ }());
1198
+
1179
1199
  var CleanupHookCallback = /*#__PURE__*/ (function () {
1180
1200
  function CleanupHookCallback(envObject, fn, arg, order) {
1181
1201
  this.envObject = envObject;
@@ -1254,7 +1274,7 @@ var NodejsWaitingRequestCounter = /*#__PURE__*/ (function () {
1254
1274
  return NodejsWaitingRequestCounter;
1255
1275
  }());
1256
1276
  var Context = /*#__PURE__*/ (function () {
1257
- function Context() {
1277
+ function Context(options) {
1258
1278
  var _this = this;
1259
1279
  this._isStopping = false;
1260
1280
  this._canCallIntoJs = true;
@@ -1276,6 +1296,7 @@ var Context = /*#__PURE__*/ (function () {
1276
1296
  MessageChannel: _MessageChannel
1277
1297
  };
1278
1298
  this.cleanupQueue = new CleanupQueue();
1299
+ this._externalMemory = new ExternalMemory(options === null || options === void 0 ? void 0 : options.onExternalMemoryChange);
1279
1300
  if (typeof process === 'object' && process !== null && typeof process.once === 'function') {
1280
1301
  this.refCounter = new NodejsWaitingRequestCounter();
1281
1302
  process.once('beforeExit', function () {
@@ -1326,6 +1347,9 @@ var Context = /*#__PURE__*/ (function () {
1326
1347
  Context.prototype.createDeferred = function (value) {
1327
1348
  return Deferred.create(this, value);
1328
1349
  };
1350
+ Context.prototype.adjustAmountOfExternalAllocatedMemory = function (changeInBytes) {
1351
+ return this._externalMemory.adjust(changeInBytes);
1352
+ };
1329
1353
  Context.prototype.createEnv = function (filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding) {
1330
1354
  return newEnv(this, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding);
1331
1355
  };
@@ -1339,10 +1363,17 @@ var Context = /*#__PURE__*/ (function () {
1339
1363
  return this.scopeStore.currentScope.add(value);
1340
1364
  };
1341
1365
  Context.prototype.openScope = function (envObject) {
1342
- return this.scopeStore.openScope(envObject);
1366
+ var scope = this.scopeStore.openScope(this.handleStore);
1367
+ if (envObject)
1368
+ envObject.openHandleScopes++;
1369
+ return scope;
1343
1370
  };
1344
1371
  Context.prototype.closeScope = function (envObject, _scope) {
1345
- this.scopeStore.closeScope(envObject);
1372
+ if (envObject && envObject.openHandleScopes === 0)
1373
+ return;
1374
+ this.scopeStore.closeScope();
1375
+ if (envObject)
1376
+ envObject.openHandleScopes--;
1346
1377
  };
1347
1378
  Context.prototype.ensureHandle = function (value) {
1348
1379
  switch (value) {
@@ -1394,8 +1425,8 @@ var Context = /*#__PURE__*/ (function () {
1394
1425
  return Context;
1395
1426
  }());
1396
1427
  var defaultContext;
1397
- function createContext() {
1398
- return new Context();
1428
+ function createContext(options) {
1429
+ return new Context(options);
1399
1430
  }
1400
1431
  function getDefaultContext() {
1401
1432
  if (!defaultContext) {