rolldown
Version:
Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.
1,377 lines (1,373 loc) • 417 kB
JavaScript
import { createRequire } from "node:module";
//#region rolldown:runtime
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __esm = (fn, res) => function() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (all) => {
let target = {};
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: true
});
return target;
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
key = keys[i];
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: ((k) => from[k]).bind(null, key),
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __require = /* @__PURE__ */ createRequire(import.meta.url);
//#endregion
//#region ../../node_modules/.pnpm/@emnapi+wasi-threads@1.1.0/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js
function getPostMessage(options) {
return typeof (options === null || options === void 0 ? void 0 : options.postMessage) === "function" ? options.postMessage : typeof postMessage === "function" ? postMessage : void 0;
}
function serizeErrorToBuffer(sab, code, error) {
var i32array = new Int32Array(sab);
Atomics.store(i32array, 0, code);
if (code > 1 && error) {
var name_1 = error.name;
var message = error.message;
var stack = error.stack;
var nameBuffer = new TextEncoder().encode(name_1);
var messageBuffer = new TextEncoder().encode(message);
var stackBuffer = new TextEncoder().encode(stack);
Atomics.store(i32array, 1, nameBuffer.length);
Atomics.store(i32array, 2, messageBuffer.length);
Atomics.store(i32array, 3, stackBuffer.length);
var buffer = new Uint8Array(sab);
buffer.set(nameBuffer, 16);
buffer.set(messageBuffer, 16 + nameBuffer.length);
buffer.set(stackBuffer, 16 + nameBuffer.length + messageBuffer.length);
}
}
function deserizeErrorFromBuffer(sab) {
var _a, _b;
var i32array = new Int32Array(sab);
if (Atomics.load(i32array, 0) <= 1) return null;
var nameLength = Atomics.load(i32array, 1);
var messageLength = Atomics.load(i32array, 2);
var stackLength = Atomics.load(i32array, 3);
var buffer = new Uint8Array(sab);
var nameBuffer = buffer.slice(16, 16 + nameLength);
var messageBuffer = buffer.slice(16 + nameLength, 16 + nameLength + messageLength);
var stackBuffer = buffer.slice(16 + nameLength + messageLength, 16 + nameLength + messageLength + stackLength);
var name = new TextDecoder().decode(nameBuffer);
var message = new TextDecoder().decode(messageBuffer);
var stack = new TextDecoder().decode(stackBuffer);
var error = new ((_a = globalThis[name]) !== null && _a !== void 0 ? _a : name === "RuntimeError" ? (_b = _WebAssembly$2.RuntimeError) !== null && _b !== void 0 ? _b : Error : Error)(message);
Object.defineProperty(error, "stack", {
value: stack,
writable: true,
enumerable: false,
configurable: true
});
return error;
}
/** @public */
function isSharedArrayBuffer(value) {
return typeof SharedArrayBuffer === "function" && value instanceof SharedArrayBuffer || Object.prototype.toString.call(value) === "[object SharedArrayBuffer]";
}
/** @public */
function isTrapError(e) {
try {
return e instanceof _WebAssembly$2.RuntimeError;
} catch (_) {
return false;
}
}
function createMessage(type, payload) {
return { __emnapi__: {
type,
payload
} };
}
function checkSharedWasmMemory(wasmMemory) {
if (wasmMemory) {
if (!isSharedArrayBuffer(wasmMemory.buffer)) throw new Error("Multithread features require shared wasm memory. Try to compile with `-matomics -mbulk-memory` and use `--import-memory --shared-memory` during linking, then create WebAssembly.Memory with `shared: true` option");
} else if (typeof SharedArrayBuffer === "undefined") throw new Error("Current environment does not support SharedArrayBuffer, threads are not available!");
}
function getReuseWorker(value) {
var _a;
if (typeof value === "boolean") return value ? {
size: 0,
strict: false
} : false;
if (typeof value === "number") {
if (!(value >= 0)) throw new RangeError("reuseWorker: size must be a non-negative integer");
return {
size: value,
strict: false
};
}
if (!value) return false;
var size = (_a = Number(value.size)) !== null && _a !== void 0 ? _a : 0;
var strict = Boolean(value.strict);
if (!(size > 0) && strict) throw new RangeError("reuseWorker: size must be set to positive integer if strict is set to true");
return {
size,
strict
};
}
/** @public */
function createInstanceProxy(instance, memory) {
if (instance[kIsProxy]) return instance;
var originalExports = instance.exports;
var createHandler = function(target) {
var handlers = [
"apply",
"construct",
"defineProperty",
"deleteProperty",
"get",
"getOwnPropertyDescriptor",
"getPrototypeOf",
"has",
"isExtensible",
"ownKeys",
"preventExtensions",
"set",
"setPrototypeOf"
];
var handler$1 = {};
var _loop_1 = function(i$1) {
var name_1 = handlers[i$1];
handler$1[name_1] = function() {
var args = Array.prototype.slice.call(arguments, 1);
args.unshift(target);
return Reflect[name_1].apply(Reflect, args);
};
};
for (var i = 0; i < handlers.length; i++) _loop_1(i);
return handler$1;
};
var handler = createHandler(originalExports);
var _initialize = function() {};
var _start = function() {
return 0;
};
handler.get = function(_target, p, receiver) {
var _a;
if (p === "memory") return (_a = typeof memory === "function" ? memory() : memory) !== null && _a !== void 0 ? _a : Reflect.get(originalExports, p, receiver);
if (p === "_initialize") return p in originalExports ? _initialize : void 0;
if (p === "_start") return p in originalExports ? _start : void 0;
return Reflect.get(originalExports, p, receiver);
};
handler.has = function(_target, p) {
if (p === "memory") return true;
return Reflect.has(originalExports, p);
};
var exportsProxy = new Proxy(Object.create(null), handler);
return new Proxy(instance, { get: function(target, p, receiver) {
if (p === "exports") return exportsProxy;
if (p === kIsProxy) return true;
return Reflect.get(target, p, receiver);
} });
}
function patchWasiInstance(wasiThreads, wasi) {
var patched = patchedWasiInstances.get(wasiThreads);
if (patched.has(wasi)) return;
var _this = wasiThreads;
var wasiImport = wasi.wasiImport;
if (wasiImport) {
var proc_exit_1 = wasiImport.proc_exit;
wasiImport.proc_exit = function(code) {
_this.terminateAllThreads();
return proc_exit_1.call(this, code);
};
}
if (!_this.childThread) {
var start_1 = wasi.start;
if (typeof start_1 === "function") wasi.start = function(instance) {
try {
return start_1.call(this, instance);
} catch (err) {
if (isTrapError(err)) _this.terminateAllThreads();
throw err;
}
};
}
patched.add(wasi);
}
function getWasiSymbol(wasi, description) {
var symbols = Object.getOwnPropertySymbols(wasi);
var selectDescription = function(description$1) {
return function(s) {
if (s.description) return s.description === description$1;
return s.toString() === "Symbol(".concat(description$1, ")");
};
};
if (Array.isArray(description)) return description.map(function(d) {
return symbols.filter(selectDescription(d))[0];
});
return symbols.filter(selectDescription(description))[0];
}
function setupInstance(wasi, instance) {
var _a = getWasiSymbol(wasi, ["kInstance", "kSetMemory"]), kInstance$1 = _a[0], kSetMemory$1 = _a[1];
wasi[kInstance$1] = instance;
wasi[kSetMemory$1](instance.exports.memory);
}
function notifyPthreadCreateResult(sab, result, error) {
if (sab) {
serizeErrorToBuffer(sab.buffer, result, error);
Atomics.notify(sab, 0);
}
}
var _WebAssembly$2, ENVIRONMENT_IS_NODE, WASI_THREADS_MAX_TID, nextWorkerID, ThreadManager, kIsProxy, patchedWasiInstances, WASIThreads, ThreadMessageHandler;
var init_wasi_threads_esm_bundler = __esm({ "../../node_modules/.pnpm/@emnapi+wasi-threads@1.1.0/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js": (() => {
_WebAssembly$2 = typeof WebAssembly !== "undefined" ? WebAssembly : typeof WXWebAssembly !== "undefined" ? WXWebAssembly : void 0;
ENVIRONMENT_IS_NODE = typeof process === "object" && process !== null && typeof process.versions === "object" && process.versions !== null && typeof process.versions.node === "string";
WASI_THREADS_MAX_TID = 536870911;
nextWorkerID = 0;
ThreadManager = /* @__PURE__ */ function() {
function ThreadManager$1(options) {
var _a;
this.unusedWorkers = [];
this.runningWorkers = [];
this.pthreads = Object.create(null);
this.wasmModule = null;
this.wasmMemory = null;
this.messageEvents = /* @__PURE__ */ new WeakMap();
if (!options) throw new TypeError("ThreadManager(): options is not provided");
if ("childThread" in options) this._childThread = Boolean(options.childThread);
else this._childThread = false;
if (this._childThread) {
this._onCreateWorker = void 0;
this._reuseWorker = false;
this._beforeLoad = void 0;
} else {
this._onCreateWorker = options.onCreateWorker;
this._reuseWorker = getReuseWorker(options.reuseWorker);
this._beforeLoad = options.beforeLoad;
}
this.printErr = (_a = options.printErr) !== null && _a !== void 0 ? _a : console.error.bind(console);
}
Object.defineProperty(ThreadManager$1.prototype, "nextWorkerID", {
get: function() {
return nextWorkerID;
},
enumerable: false,
configurable: true
});
ThreadManager$1.prototype.init = function() {
if (!this._childThread) this.initMainThread();
};
ThreadManager$1.prototype.initMainThread = function() {
this.preparePool();
};
ThreadManager$1.prototype.preparePool = function() {
if (this._reuseWorker) {
if (this._reuseWorker.size) {
var pthreadPoolSize = this._reuseWorker.size;
while (pthreadPoolSize--) {
var worker = this.allocateUnusedWorker();
if (ENVIRONMENT_IS_NODE) {
worker.once("message", function() {});
worker.unref();
}
}
}
}
};
ThreadManager$1.prototype.shouldPreloadWorkers = function() {
return !this._childThread && this._reuseWorker && this._reuseWorker.size > 0;
};
ThreadManager$1.prototype.loadWasmModuleToAllWorkers = function() {
var _this_1 = this;
var promises = Array(this.unusedWorkers.length);
var _loop_1 = function(i$1) {
var worker = this_1.unusedWorkers[i$1];
if (ENVIRONMENT_IS_NODE) worker.ref();
promises[i$1] = this_1.loadWasmModuleToWorker(worker).then(function(w) {
if (ENVIRONMENT_IS_NODE) worker.unref();
return w;
}, function(e) {
if (ENVIRONMENT_IS_NODE) worker.unref();
throw e;
});
};
var this_1 = this;
for (var i = 0; i < this.unusedWorkers.length; ++i) _loop_1(i);
return Promise.all(promises).catch(function(err) {
_this_1.terminateAllThreads();
throw err;
});
};
ThreadManager$1.prototype.preloadWorkers = function() {
if (this.shouldPreloadWorkers()) return this.loadWasmModuleToAllWorkers();
return Promise.resolve([]);
};
ThreadManager$1.prototype.setup = function(wasmModule, wasmMemory) {
this.wasmModule = wasmModule;
this.wasmMemory = wasmMemory;
};
ThreadManager$1.prototype.markId = function(worker) {
if (worker.__emnapi_tid) return worker.__emnapi_tid;
var tid = nextWorkerID + 43;
nextWorkerID = (nextWorkerID + 1) % (WASI_THREADS_MAX_TID - 42);
this.pthreads[tid] = worker;
worker.__emnapi_tid = tid;
return tid;
};
ThreadManager$1.prototype.returnWorkerToPool = function(worker) {
var tid = worker.__emnapi_tid;
if (tid !== void 0) delete this.pthreads[tid];
this.unusedWorkers.push(worker);
this.runningWorkers.splice(this.runningWorkers.indexOf(worker), 1);
delete worker.__emnapi_tid;
if (ENVIRONMENT_IS_NODE) worker.unref();
};
ThreadManager$1.prototype.loadWasmModuleToWorker = function(worker, sab) {
var _this_1 = this;
if (worker.whenLoaded) return worker.whenLoaded;
var err = this.printErr;
var beforeLoad = this._beforeLoad;
var _this = this;
worker.whenLoaded = new Promise(function(resolve$1, reject) {
var handleError$1 = function(e) {
var message = "worker sent an error!";
if (worker.__emnapi_tid !== void 0) message = "worker (tid = " + worker.__emnapi_tid + ") sent an error!";
if ("message" in e) {
err(message + " " + e.message);
if (e.message.indexOf("RuntimeError") !== -1 || e.message.indexOf("unreachable") !== -1) try {
_this.terminateAllThreads();
} catch (_) {}
} else err(message);
reject(e);
throw e;
};
var handleMessage = function(data) {
if (data.__emnapi__) {
var type = data.__emnapi__.type;
var payload = data.__emnapi__.payload;
if (type === "loaded") {
worker.loaded = true;
if (ENVIRONMENT_IS_NODE && !worker.__emnapi_tid) worker.unref();
resolve$1(worker);
} else if (type === "cleanup-thread") {
if (payload.tid in _this_1.pthreads) _this_1.cleanThread(worker, payload.tid);
}
}
};
worker.onmessage = function(e) {
handleMessage(e.data);
_this_1.fireMessageEvent(worker, e);
};
worker.onerror = handleError$1;
if (ENVIRONMENT_IS_NODE) {
worker.on("message", function(data) {
var _a, _b;
(_b = (_a = worker).onmessage) === null || _b === void 0 || _b.call(_a, { data });
});
worker.on("error", function(e) {
var _a, _b;
(_b = (_a = worker).onerror) === null || _b === void 0 || _b.call(_a, e);
});
worker.on("detachedExit", function() {});
}
if (typeof beforeLoad === "function") beforeLoad(worker);
try {
worker.postMessage(createMessage("load", {
wasmModule: _this_1.wasmModule,
wasmMemory: _this_1.wasmMemory,
sab
}));
} catch (err$1) {
checkSharedWasmMemory(_this_1.wasmMemory);
throw err$1;
}
});
return worker.whenLoaded;
};
ThreadManager$1.prototype.allocateUnusedWorker = function() {
var _onCreateWorker = this._onCreateWorker;
if (typeof _onCreateWorker !== "function") throw new TypeError("`options.onCreateWorker` is not provided");
var worker = _onCreateWorker({
type: "thread",
name: "emnapi-pthread"
});
this.unusedWorkers.push(worker);
return worker;
};
ThreadManager$1.prototype.getNewWorker = function(sab) {
if (this._reuseWorker) {
if (this.unusedWorkers.length === 0) {
if (this._reuseWorker.strict) {
if (!ENVIRONMENT_IS_NODE) {
var err = this.printErr;
err("Tried to spawn a new thread, but the thread pool is exhausted.\nThis might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.");
return;
}
}
var worker_1 = this.allocateUnusedWorker();
this.loadWasmModuleToWorker(worker_1, sab);
}
return this.unusedWorkers.pop();
}
var worker = this.allocateUnusedWorker();
this.loadWasmModuleToWorker(worker, sab);
return this.unusedWorkers.pop();
};
ThreadManager$1.prototype.cleanThread = function(worker, tid, force) {
if (!force && this._reuseWorker) this.returnWorkerToPool(worker);
else {
delete this.pthreads[tid];
var index = this.runningWorkers.indexOf(worker);
if (index !== -1) this.runningWorkers.splice(index, 1);
this.terminateWorker(worker);
delete worker.__emnapi_tid;
}
};
ThreadManager$1.prototype.terminateWorker = function(worker) {
var _this_1 = this;
var _a;
var tid = worker.__emnapi_tid;
worker.terminate();
(_a = this.messageEvents.get(worker)) === null || _a === void 0 || _a.clear();
this.messageEvents.delete(worker);
worker.onmessage = function(e) {
if (e.data.__emnapi__) {
var err = _this_1.printErr;
err("received \"" + e.data.__emnapi__.type + "\" command from terminated worker: " + tid);
}
};
};
ThreadManager$1.prototype.terminateAllThreads = function() {
for (var i = 0; i < this.runningWorkers.length; ++i) this.terminateWorker(this.runningWorkers[i]);
for (var i = 0; i < this.unusedWorkers.length; ++i) this.terminateWorker(this.unusedWorkers[i]);
this.unusedWorkers = [];
this.runningWorkers = [];
this.pthreads = Object.create(null);
this.preparePool();
};
ThreadManager$1.prototype.addMessageEventListener = function(worker, onMessage) {
var listeners = this.messageEvents.get(worker);
if (!listeners) {
listeners = /* @__PURE__ */ new Set();
this.messageEvents.set(worker, listeners);
}
listeners.add(onMessage);
return function() {
listeners === null || listeners === void 0 || listeners.delete(onMessage);
};
};
ThreadManager$1.prototype.fireMessageEvent = function(worker, e) {
var listeners = this.messageEvents.get(worker);
if (!listeners) return;
var err = this.printErr;
listeners.forEach(function(listener) {
try {
listener(e);
} catch (e$1) {
err(e$1.stack);
}
});
};
return ThreadManager$1;
}();
kIsProxy = Symbol("kIsProxy");
patchedWasiInstances = /* @__PURE__ */ new WeakMap();
WASIThreads = /* @__PURE__ */ function() {
function WASIThreads$1(options) {
var _this_1 = this;
if (!options) throw new TypeError("WASIThreads(): options is not provided");
if (!options.wasi) throw new TypeError("WASIThreads(): options.wasi is not provided");
patchedWasiInstances.set(this, /* @__PURE__ */ new WeakSet());
var wasi = options.wasi;
patchWasiInstance(this, wasi);
this.wasi = wasi;
if ("childThread" in options) this.childThread = Boolean(options.childThread);
else this.childThread = false;
this.PThread = void 0;
if ("threadManager" in options) if (typeof options.threadManager === "function") this.PThread = options.threadManager();
else this.PThread = options.threadManager;
else if (!this.childThread) {
this.PThread = new ThreadManager(options);
this.PThread.init();
}
var waitThreadStart = false;
if ("waitThreadStart" in options) waitThreadStart = typeof options.waitThreadStart === "number" ? options.waitThreadStart : Boolean(options.waitThreadStart);
var postMessage$1 = getPostMessage(options);
if (this.childThread && typeof postMessage$1 !== "function") throw new TypeError("options.postMessage is not a function");
this.postMessage = postMessage$1;
var wasm64 = Boolean(options.wasm64);
var onMessage = function(e) {
if (e.data.__emnapi__) {
var type = e.data.__emnapi__.type;
var payload = e.data.__emnapi__.payload;
if (type === "spawn-thread") threadSpawn(payload.startArg, payload.errorOrTid);
else if (type === "terminate-all-threads") _this_1.terminateAllThreads();
}
};
var threadSpawn = function(startArg, errorOrTid) {
var _a;
var EAGAIN = 6;
var isNewABI = errorOrTid !== void 0;
try {
checkSharedWasmMemory(_this_1.wasmMemory);
} catch (err) {
(_a = _this_1.PThread) === null || _a === void 0 || _a.printErr(err.stack);
if (isNewABI) {
var struct_1 = new Int32Array(_this_1.wasmMemory.buffer, errorOrTid, 2);
Atomics.store(struct_1, 0, 1);
Atomics.store(struct_1, 1, EAGAIN);
Atomics.notify(struct_1, 1);
return 1;
} else return -EAGAIN;
}
if (!isNewABI) {
var malloc = _this_1.wasmInstance.exports.malloc;
errorOrTid = wasm64 ? Number(malloc(BigInt(8))) : malloc(8);
if (!errorOrTid) return -48;
}
var _free = _this_1.wasmInstance.exports.free;
var free = wasm64 ? function(ptr) {
_free(BigInt(ptr));
} : _free;
var struct = new Int32Array(_this_1.wasmMemory.buffer, errorOrTid, 2);
Atomics.store(struct, 0, 0);
Atomics.store(struct, 1, 0);
if (_this_1.childThread) {
postMessage$1(createMessage("spawn-thread", {
startArg,
errorOrTid
}));
Atomics.wait(struct, 1, 0);
var isError = Atomics.load(struct, 0);
var result = Atomics.load(struct, 1);
if (isNewABI) return isError;
free(errorOrTid);
return isError ? -result : result;
}
var shouldWait = waitThreadStart || waitThreadStart === 0;
var sab;
if (shouldWait) {
sab = new Int32Array(new SharedArrayBuffer(8208));
Atomics.store(sab, 0, 0);
}
var worker;
var tid;
var PThread = _this_1.PThread;
try {
worker = PThread.getNewWorker(sab);
if (!worker) throw new Error("failed to get new worker");
PThread.addMessageEventListener(worker, onMessage);
tid = PThread.markId(worker);
if (ENVIRONMENT_IS_NODE) worker.ref();
worker.postMessage(createMessage("start", {
tid,
arg: startArg,
sab
}));
if (shouldWait) {
if (typeof waitThreadStart === "number") {
if (Atomics.wait(sab, 0, 0, waitThreadStart) === "timed-out") {
try {
PThread.cleanThread(worker, tid, true);
} catch (_) {}
throw new Error("Spawning thread timed out. Please check if the worker is created successfully and if message is handled properly in the worker.");
}
} else Atomics.wait(sab, 0, 0);
if (Atomics.load(sab, 0) > 1) {
try {
PThread.cleanThread(worker, tid, true);
} catch (_) {}
throw deserizeErrorFromBuffer(sab.buffer);
}
}
} catch (e) {
Atomics.store(struct, 0, 1);
Atomics.store(struct, 1, EAGAIN);
Atomics.notify(struct, 1);
PThread === null || PThread === void 0 || PThread.printErr(e.stack);
if (isNewABI) return 1;
free(errorOrTid);
return -EAGAIN;
}
Atomics.store(struct, 0, 0);
Atomics.store(struct, 1, tid);
Atomics.notify(struct, 1);
PThread.runningWorkers.push(worker);
if (!shouldWait) worker.whenLoaded.catch(function(err) {
delete worker.whenLoaded;
PThread.cleanThread(worker, tid, true);
throw err;
});
if (isNewABI) return 0;
free(errorOrTid);
return tid;
};
this.threadSpawn = threadSpawn;
}
WASIThreads$1.prototype.getImportObject = function() {
return { wasi: { "thread-spawn": this.threadSpawn } };
};
WASIThreads$1.prototype.setup = function(wasmInstance, wasmModule, wasmMemory) {
wasmMemory !== null && wasmMemory !== void 0 || (wasmMemory = wasmInstance.exports.memory);
this.wasmInstance = wasmInstance;
this.wasmMemory = wasmMemory;
if (this.PThread) this.PThread.setup(wasmModule, wasmMemory);
};
WASIThreads$1.prototype.preloadWorkers = function() {
if (this.PThread) return this.PThread.preloadWorkers();
return Promise.resolve([]);
};
/**
* It's ok to call this method to a WASI command module.
*
* in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
*
* @returns A proxied WebAssembly instance if in child thread, other wise the original instance
*/
WASIThreads$1.prototype.initialize = function(instance, module$1, memory) {
var exports$1 = instance.exports;
memory !== null && memory !== void 0 || (memory = exports$1.memory);
if (this.childThread) instance = createInstanceProxy(instance, memory);
this.setup(instance, module$1, memory);
var wasi = this.wasi;
if ("_start" in exports$1 && typeof exports$1._start === "function") if (this.childThread) {
wasi.start(instance);
try {
var kStarted$1 = getWasiSymbol(wasi, "kStarted");
wasi[kStarted$1] = false;
} catch (_) {}
} else setupInstance(wasi, instance);
else wasi.initialize(instance);
return instance;
};
/**
* Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
* ```js
* this.initialize(instance, module, memory)
* this.wasi.start(instance)
* ```
*/
WASIThreads$1.prototype.start = function(instance, module$1, memory) {
var exports$1 = instance.exports;
memory !== null && memory !== void 0 || (memory = exports$1.memory);
if (this.childThread) instance = createInstanceProxy(instance, memory);
this.setup(instance, module$1, memory);
return {
exitCode: this.wasi.start(instance),
instance
};
};
WASIThreads$1.prototype.terminateAllThreads = function() {
var _a;
if (!this.childThread) (_a = this.PThread) === null || _a === void 0 || _a.terminateAllThreads();
else this.postMessage(createMessage("terminate-all-threads", {}));
};
return WASIThreads$1;
}();
ThreadMessageHandler = /* @__PURE__ */ function() {
function ThreadMessageHandler$1(options) {
var postMsg = getPostMessage(options);
if (typeof postMsg !== "function") throw new TypeError("options.postMessage is not a function");
this.postMessage = postMsg;
this.onLoad = options === null || options === void 0 ? void 0 : options.onLoad;
this.onError = typeof (options === null || options === void 0 ? void 0 : options.onError) === "function" ? options.onError : function(_type, err) {
throw err;
};
this.instance = void 0;
this.messagesBeforeLoad = [];
}
/** @virtual */
ThreadMessageHandler$1.prototype.instantiate = function(data) {
if (typeof this.onLoad === "function") return this.onLoad(data);
throw new Error("ThreadMessageHandler.prototype.instantiate is not implemented");
};
/** @virtual */
ThreadMessageHandler$1.prototype.handle = function(e) {
var _this = this;
var _a;
if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
var type = e.data.__emnapi__.type;
var payload_1 = e.data.__emnapi__.payload;
try {
if (type === "load") this._load(payload_1);
else if (type === "start") this.handleAfterLoad(e, function() {
_this._start(payload_1);
});
} catch (err) {
this.onError(err, type);
}
}
};
ThreadMessageHandler$1.prototype._load = function(payload) {
var _this = this;
if (this.instance !== void 0) return;
var source;
try {
source = this.instantiate(payload);
} catch (err) {
this._loaded(err, null, payload);
return;
}
var then = source && "then" in source ? source.then : void 0;
if (typeof then === "function") then.call(source, function(source$1) {
_this._loaded(null, source$1, payload);
}, function(err) {
_this._loaded(err, null, payload);
});
else this._loaded(null, source, payload);
};
ThreadMessageHandler$1.prototype._start = function(payload) {
var wasi_thread_start = this.instance.exports.wasi_thread_start;
if (typeof wasi_thread_start !== "function") {
var err = /* @__PURE__ */ new TypeError("wasi_thread_start is not exported");
notifyPthreadCreateResult(payload.sab, 2, err);
throw err;
}
var postMessage$1 = this.postMessage;
var tid = payload.tid;
var startArg = payload.arg;
notifyPthreadCreateResult(payload.sab, 1);
try {
wasi_thread_start(tid, startArg);
} catch (err$1) {
if (err$1 !== "unwind") throw err$1;
else return;
}
postMessage$1(createMessage("cleanup-thread", { tid }));
};
ThreadMessageHandler$1.prototype._loaded = function(err, source, payload) {
if (err) {
notifyPthreadCreateResult(payload.sab, 2, err);
throw err;
}
if (source == null) {
var err_1 = /* @__PURE__ */ new TypeError("onLoad should return an object");
notifyPthreadCreateResult(payload.sab, 2, err_1);
throw err_1;
}
var instance = source.instance;
if (!instance) {
var err_2 = /* @__PURE__ */ new TypeError("onLoad should return an object which includes \"instance\"");
notifyPthreadCreateResult(payload.sab, 2, err_2);
throw err_2;
}
this.instance = instance;
var postMessage$1 = this.postMessage;
postMessage$1(createMessage("loaded", {}));
var messages = this.messagesBeforeLoad;
this.messagesBeforeLoad = [];
for (var i = 0; i < messages.length; i++) {
var data = messages[i];
this.handle({ data });
}
};
ThreadMessageHandler$1.prototype.handleAfterLoad = function(e, f) {
if (this.instance !== void 0) f.call(this, e);
else this.messagesBeforeLoad.push(e.data);
};
return ThreadMessageHandler$1;
}();
}) });
//#endregion
//#region ../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
function __extends(d, b) {
if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var extendStatics, __assign;
var init_tslib_es6 = __esm({ "../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs": (() => {
extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d$1, b$1) {
d$1.__proto__ = b$1;
} || function(d$1, b$1) {
for (var p in b$1) if (Object.prototype.hasOwnProperty.call(b$1, p)) d$1[p] = b$1[p];
};
return extendStatics(d, b);
};
__assign = function() {
__assign = Object.assign || function __assign$1(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
}) });
//#endregion
//#region ../../node_modules/.pnpm/@emnapi+core@1.6.0/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js
var emnapi_core_esm_bundler_exports = /* @__PURE__ */ __export({
MessageHandler: () => MessageHandler$1,
ThreadManager: () => ThreadManager,
ThreadMessageHandler: () => ThreadMessageHandler,
WASIThreads: () => WASIThreads,
createInstanceProxy: () => createInstanceProxy,
createNapiModule: () => createNapiModule,
instantiateNapiModule: () => instantiateNapiModule$1,
instantiateNapiModuleSync: () => instantiateNapiModuleSync$1,
isSharedArrayBuffer: () => isSharedArrayBuffer,
isTrapError: () => isTrapError,
loadNapiModule: () => loadNapiModule,
loadNapiModuleSync: () => loadNapiModuleSync,
version: () => version$2
});
function validateImports$1(imports) {
if (imports && typeof imports !== "object") throw new TypeError("imports must be an object or undefined");
return true;
}
function load$1(wasmInput, imports) {
if (!wasmInput) throw new TypeError("Invalid wasm source");
validateImports$1(imports);
imports = imports !== null && imports !== void 0 ? imports : {};
try {
var then = typeof wasmInput === "object" && wasmInput !== null && "then" in wasmInput ? wasmInput.then : void 0;
if (typeof then === "function") return then.call(wasmInput, function(input) {
return load$1(input, imports);
});
} catch (_) {}
if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) return _WebAssembly$1.instantiate(wasmInput, imports);
if (wasmInput instanceof _WebAssembly$1.Module) return _WebAssembly$1.instantiate(wasmInput, imports).then(function(instance) {
return {
instance,
module: wasmInput
};
});
if (typeof Response !== "undefined" && wasmInput instanceof Response) return wasmInput.arrayBuffer().then(function(buffer) {
return _WebAssembly$1.instantiate(buffer, imports);
});
var inputIsString = typeof wasmInput === "string";
if (inputIsString || typeof URL !== "undefined" && wasmInput instanceof URL) {
if (inputIsString && typeof wx !== "undefined" && typeof __wxConfig !== "undefined") return _WebAssembly$1.instantiate(wasmInput, imports);
if (typeof fetch !== "function") throw new TypeError("wasm source can not be a string or URL in this environment");
if (typeof _WebAssembly$1.instantiateStreaming === "function") try {
return _WebAssembly$1.instantiateStreaming(fetch(wasmInput), imports).catch(function() {
return load$1(fetch(wasmInput), imports);
});
} catch (_) {
return load$1(fetch(wasmInput), imports);
}
else return load$1(fetch(wasmInput), imports);
}
throw new TypeError("Invalid wasm source");
}
function loadSync$1(wasmInput, imports) {
if (!wasmInput) throw new TypeError("Invalid wasm source");
validateImports$1(imports);
imports = imports !== null && imports !== void 0 ? imports : {};
var module$1;
if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) module$1 = new _WebAssembly$1.Module(wasmInput);
else if (wasmInput instanceof WebAssembly.Module) module$1 = wasmInput;
else throw new TypeError("Invalid wasm source");
return {
instance: new _WebAssembly$1.Instance(module$1, imports),
module: module$1
};
}
function createNapiModule(options) {
return (function() {
var ENVIRONMENT_IS_NODE$1 = typeof process === "object" && process !== null && typeof process.versions === "object" && process.versions !== null && typeof process.versions.node === "string";
var ENVIRONMENT_IS_PTHREAD = Boolean(options.childThread);
var waitThreadStart = typeof options.waitThreadStart === "number" ? options.waitThreadStart : Boolean(options.waitThreadStart);
var wasmInstance;
var wasmMemory;
var wasmTable;
var _malloc;
var _free;
function abort(msg) {
if (typeof _WebAssembly$1.RuntimeError === "function") throw new _WebAssembly$1.RuntimeError(msg);
throw Error(msg);
}
var napiModule = {
imports: {
env: {},
napi: {},
emnapi: {}
},
exports: {},
emnapi: {},
loaded: false,
filename: "",
childThread: ENVIRONMENT_IS_PTHREAD,
initWorker: void 0,
executeAsyncWork: void 0,
waitThreadStart,
PThread: void 0,
init: function(options$1) {
if (napiModule.loaded) return napiModule.exports;
if (!options$1) throw new TypeError("Invalid napi init options");
var instance = options$1.instance;
if (!(instance === null || instance === void 0 ? void 0 : instance.exports)) throw new TypeError("Invalid wasm instance");
wasmInstance = instance;
var exports$1 = instance.exports;
var module$1 = options$1.module;
var memory = options$1.memory || exports$1.memory;
var table = options$1.table || exports$1.__indirect_function_table;
if (!(module$1 instanceof _WebAssembly$1.Module)) throw new TypeError("Invalid wasm module");
if (!(memory instanceof _WebAssembly$1.Memory)) throw new TypeError("Invalid wasm memory");
if (!(table instanceof _WebAssembly$1.Table)) throw new TypeError("Invalid wasm table");
wasmMemory = memory;
wasmTable = table;
if (typeof exports$1.malloc !== "function") throw new TypeError("malloc is not exported");
if (typeof exports$1.free !== "function") throw new TypeError("free is not exported");
_malloc = exports$1.malloc;
_free = exports$1.free;
if (!napiModule.childThread) {
var moduleApiVersion = 8;
var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
if (typeof node_api_module_get_api_version_v1 === "function") moduleApiVersion = node_api_module_get_api_version_v1();
var envObject = napiModule.envObject || (napiModule.envObject = emnapiCtx.createEnv(napiModule.filename, moduleApiVersion, function(cb) {
return wasmTable.get(cb);
}, function(cb) {
return wasmTable.get(cb);
}, abort, emnapiNodeBinding));
var scope_1 = emnapiCtx.openScope(envObject);
try {
envObject.callIntoModule(function(_envObject) {
var exports$2 = napiModule.exports;
var exportsHandle = scope_1.add(exports$2);
var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
napiModule.exports = !napiValue ? exports$2 : emnapiCtx.handleStore.get(napiValue).value;
});
} catch (e) {
if (e !== "unwind") throw e;
} finally {
emnapiCtx.closeScope(envObject, scope_1);
}
napiModule.loaded = true;
delete napiModule.envObject;
return napiModule.exports;
}
}
};
var emnapiCtx;
var emnapiNodeBinding;
var onCreateWorker = void 0;
var err;
if (!ENVIRONMENT_IS_PTHREAD) {
var context = options.context;
if (typeof context !== "object" || context === null) throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
emnapiCtx = context;
} else {
emnapiCtx = options === null || options === void 0 ? void 0 : options.context;
var postMsg = typeof options.postMessage === "function" ? options.postMessage : typeof postMessage === "function" ? postMessage : void 0;
if (typeof postMsg !== "function") throw new TypeError("No postMessage found");
napiModule.postMessage = postMsg;
}
if (typeof options.filename === "string") napiModule.filename = options.filename;
if (typeof options.onCreateWorker === "function") onCreateWorker = options.onCreateWorker;
if (typeof options.print === "function") options.print;
else console.log.bind(console);
if (typeof options.printErr === "function") err = options.printErr;
else err = console.warn.bind(console);
if ("nodeBinding" in options) {
var nodeBinding = options.nodeBinding;
if (typeof nodeBinding !== "object" || nodeBinding === null) throw new TypeError("Invalid `options.nodeBinding`. Use @emnapi/node-binding package");
emnapiNodeBinding = nodeBinding;
}
var emnapiAsyncWorkPoolSize = 0;
if ("asyncWorkPoolSize" in options) {
if (typeof options.asyncWorkPoolSize !== "number") throw new TypeError("options.asyncWorkPoolSize must be a integer");
emnapiAsyncWorkPoolSize = options.asyncWorkPoolSize >> 0;
if (emnapiAsyncWorkPoolSize > 1024) emnapiAsyncWorkPoolSize = 1024;
else if (emnapiAsyncWorkPoolSize < -1024) emnapiAsyncWorkPoolSize = -1024;
}
var singleThreadAsyncWork = ENVIRONMENT_IS_PTHREAD ? false : emnapiAsyncWorkPoolSize <= 0;
function _emnapi_async_work_pool_size() {
return Math.abs(emnapiAsyncWorkPoolSize);
}
napiModule.imports.env._emnapi_async_work_pool_size = _emnapi_async_work_pool_size;
function emnapiAddSendListener(worker) {
if (!worker) return false;
if (worker._emnapiSendListener) return true;
var handler = function(e) {
var __emnapi__ = (ENVIRONMENT_IS_NODE$1 ? e : e.data).__emnapi__;
if (__emnapi__ && __emnapi__.type === "async-send") if (ENVIRONMENT_IS_PTHREAD) {
var postMessage_1 = napiModule.postMessage;
postMessage_1({ __emnapi__ });
} else {
var callback = __emnapi__.payload.callback;
wasmTable.get(callback)(__emnapi__.payload.data);
}
};
var dispose = function() {
if (ENVIRONMENT_IS_NODE$1) worker.off("message", handler);
else worker.removeEventListener("message", handler, false);
delete worker._emnapiSendListener;
};
worker._emnapiSendListener = {
handler,
dispose
};
if (ENVIRONMENT_IS_NODE$1) worker.on("message", handler);
else worker.addEventListener("message", handler, false);
return true;
}
napiModule.emnapi.addSendListener = emnapiAddSendListener;
var PThread = new ThreadManager(ENVIRONMENT_IS_PTHREAD ? {
printErr: err,
childThread: true
} : {
printErr: err,
beforeLoad: function(worker) {
emnapiAddSendListener(worker);
},
reuseWorker: options.reuseWorker,
onCreateWorker
});
napiModule.PThread = PThread;
/**
* @__sig ipiip
*/
function napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
return emnapiCtx.envStore.get(env).setLastError(error_code, engine_error_code, engine_reserved);
}
/**
* @__sig ip
*/
function napi_clear_last_error(env) {
return emnapiCtx.envStore.get(env).clearLastError();
}
/**
* @__sig vppp
*/
function _emnapi_get_node_version(major, minor, patch) {
var versions = typeof process === "object" && process !== null && typeof process.versions === "object" && process.versions !== null && typeof process.versions.node === "string" ? process.versions.node.split(".").map(function(n) {
return Number(n);
}) : [
0,
0,
0
];
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
HEAP_DATA_VIEW.setUint32(major, versions[0], true);
HEAP_DATA_VIEW.setUint32(minor, versions[1], true);
HEAP_DATA_VIEW.setUint32(patch, versions[2], true);
}
/**
* @__sig v
* @__deps $runtimeKeepalivePush
*/
function _emnapi_runtime_keepalive_push() {}
/**
* @__sig v
* @__deps $runtimeKeepalivePop
*/
function _emnapi_runtime_keepalive_pop() {}
/**
* @__sig vpp
*/
function _emnapi_set_immediate(callback, data) {
emnapiCtx.feature.setImmediate(function() {
wasmTable.get(callback)(data);
});
}
/**
* @__sig vpp
*/
function _emnapi_next_tick(callback, data) {
Promise.resolve().then(function() {
wasmTable.get(callback)(data);
});
}
/**
* @__sig vipppi
*/
function _emnapi_callback_into_module(forceUncaught, env, callback, data, close_scope_if_throw) {
var envObject = emnapiCtx.envStore.get(env);
var scope = emnapiCtx.openScope(envObject);
try {
envObject.callbackIntoModule(Boolean(forceUncaught), function() {
wasmTable.get(callback)(env, data);
});
} catch (err$1) {
emnapiCtx.closeScope(envObject, scope);
if (close_scope_if_throw) emnapiCtx.closeScope(envObject);
throw err$1;
}
emnapiCtx.closeScope(envObject, scope);
}
/**
* @__sig vipppp
*/
function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
emnapiCtx.envStore.get(env).callFinalizerInternal(forceUncaught, callback, data, hint);
}
/**
* @__sig v
*/
function _emnapi_ctx_increase_waiting_request_counter() {
emnapiCtx.increaseWaitingRequestCounter();
}
/**
* @__sig v
*/
function _emnapi_ctx_decrease_waiting_request_counter() {
emnapiCtx.decreaseWaitingRequestCounter();
}
/**
* @__sig i
*/
function _emnapi_is_main_runtime_thread() {
return ENVIRONMENT_IS_PTHREAD ? 0 : 1;
}
/**
* @__sig i
*/
function _emnapi_is_main_browser_thread() {
return typeof window !== "undefined" && typeof document !== "undefined" && !ENVIRONMENT_IS_NODE$1 ? 1 : 0;
}
/**
* @__sig v
*/
function _emnapi_unwind() {
throw "unwind";
}
/**
* @__sig d
*/
function _emnapi_get_now() {
return performance.timeOrigin + performance.now();
}
function $emnapiSetValueI64(result, numberValue) {
var tempDouble;
var tempI64 = [numberValue >>> 0, (tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)];
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
HEAP_DATA_VIEW.setInt32(result, tempI64[0], true);
HEAP_DATA_VIEW.setInt32(result + 4, tempI64[1], true);
}
/**
* @__deps $emnapiCtx
* @__sig p
*/
function _emnapi_open_handle_scope() {
return emnapiCtx.openScope().id;
}
/**
* @__deps $emnapiCtx
* @__sig vp
*/
function _emnapi_close_handle_scope(_scope) {
return emnapiCtx.closeScope();
}
var utilMod = /* @__PURE__ */ Object.freeze({
__proto__: null,
$emnapiSetValueI64,
_emnapi_call_finalizer,
_emnapi_callback_into_module,
_emnapi_close_handle_scope,
_emnapi_ctx_decrease_waiting_request_counter,
_emnapi_ctx_increase_waiting_request_counter,
_emnapi_get_node_version,
_emnapi_get_now,
_emnapi_is_main_browser_thread,
_emnapi_is_main_runtime_thread,
_emnapi_next_tick,
_emnapi_open_handle_scope,
_emnapi_runtime_keepalive_pop,
_emnapi_runtime_keepalive_push,
_emnapi_set_immediate,
_emnapi_unwind,
napi_clear_last_error,
napi_set_last_error
});
function emnapiGetWorkerByPthreadPtr(pthreadPtr) {
var tid = new DataView(wasmMemory.buffer).getInt32(pthreadPtr + 20, true);
return PThread.pthreads[tid];
}
/** @__sig vp */
function _emnapi_worker_unref(pthreadPtr) {
if (ENVIRONMENT_IS_PTHREAD) return;
var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
if (worker && typeof worker.unref === "function") worker.unref();
}
/** @__sig vipp */
function _emnapi_async_send_js(type, callback, data) {
if (ENVIRONMENT_IS_PTHREAD) {
var postMessage_1 = napiModule.postMessage;
postMessage_1({ __emnapi__: {
type: "async-send",
payload: {
callback,
data
}
} });
} else switch (type) {
case 0:
_emnapi_set_immediate(callback, data);
break;
case 1:
_emnapi_next_tick(callback, data);
break;
}
}
var uvThreadpoolReadyResolve;
var uvThreadpoolReady = new Promise(function(resolve$1) {
uvThreadpoolReadyResolve = function() {
uvThreadpoolReady.ready = true;
resolve$1();
};
});
uvThreadpoolReady.ready = false;
/** @__sig vppi */
function _emnapi_after_uvthreadpool_ready(callback, q, type) {
if (uvThreadpoolReady.ready) wasmTable.get(callback)(q, type);
else uvThreadpoolReady.then(function() {
wasmTable.get(callback)(q, type);
});
}
/** @__sig vpi */
function _emnapi_tell_js_uvthreadpool(threads, size) {
var p = [];
var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
var _loop_1 = function(i$1) {
var worker = emnapiGetWorkerByPthreadPtr(HEAP_DATA_VIEW.getUint32(threads + i$1 * 4, true));
p.push(new Promise(function(resolve$1) {
var handler = function(e) {
var __emnapi__ = (ENVIRONMENT_IS_NODE$1 ? e : e.data).__emnapi__;
if (__emnapi__ && __emnapi__.type === "async-thread-ready") {
resolve$1();
if (worker && typeof worker.unref === "function") worker.unref();
if (ENVIRONMENT_IS_NODE$1) worker.off("message", handler);
else worker.removeEventListener("message", handler);
}
};
if (ENVIRONMENT_IS_NODE$1) worker.on("message", handler);
else worker.addEventListener("message", handler);
}));
};
for (var i = 0; i < size; i++) _loop_1(i);
Promise.all(p).then(uvThreadpoolReadyResolve);
}
/** @__sig v */
function _emnapi_emit_async_thread_ready() {
if (!ENVIRONMENT_IS_PTHREAD) return;
var postMessage$1 = napiModule.postMessage;
postMessage$1({ __emnapi__: {
type: "async-thread-ready",
payload: {}
} });
}
var asyncMod = /* @__PURE__ */ Object.freeze({
__proto__: null,
_emnapi_after_uvthreadpool_ready,
_emnapi_async_send_js,
_emnapi_emit_async_thread_ready,
_emnapi_tell_js_uvthreadpool,
_emnapi_worker_unref
});
/** @__sig ipjp */
function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
if (!env) return 1;
var envObject = emnapiCtx.envStore.get(env);
if (!adjusted_value) return envObject.setLastError(1);
var change_in_bytes_number = Number(change_in_bytes);
if (change_in_bytes_number < 0) return envObject.setLastError(1);
var old_size = wasmMemory.buffer.byteLength;
var new_size = old_size + change_in_bytes_number;
new_size = new_size + (65536 - new_size % 65536) % 65536;
if (wasmMemory.grow(new_size - old_size + 65535 >> 16) === -1) return envObject.setLastError(9);
if (emnapiCtx.feature.supportBigInt) new DataView(wasmMemory.buffer).setBigInt64(adjusted_value, BigInt(wasmMemory.buffer.byteLength), true);
else $emnapiSetValueI64(adjusted_value, wasmMemory.buffer.byteLength);
return envObject.clearLastError();
}
var memoryMod = /* @__PURE__ */ Object.freeze({
__proto__: null,
napi_adjust_external_memory
});
/**
* @__postset
* ```
* emnapiAWST.init();
* ```
*/
var emnapiAWST = {
idGen: {},
values: [void 0],
queued: /* @__PURE__ */ new Set(),
pending: [],
init: function() {
var idGen = {
nextId: 1,
list: [],
generate: function() {
var id;
if (idGen.list.length) id = idGen.list.shift();
else {
id = idGen.nextId;
idGen.nextId++;
}
return id;
},
reuse: function(id) {
idGen.list.push(id);
}
};
emnapiAWST.idGen = idGen;
emnapiAWST.values = [void 0];
emnapiAWST.queued = /* @__PURE__ */ new Set();
emnapiAWST.pending = [];
},
create: function(env, resource, resourceName, execute, complete, data) {
var asyncId = 0;
var triggerAsyncId = 0;
if (emnapiNodeBinding) {
var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resourceName, -1);
asyncId = asyncContext.asyncId;
triggerAsyncId = asyncContext.triggerAsyncId;
}
var id = emnapiAWST.idGen.generate();
emnapiAWST.values[id] = {
env,
id,
resource,
asyncId,
triggerAsyncId,
status: 0,
execute,
complete,
data
};
return id;
},
callComplete: function(work, status) {
var complete = work.complete;
var env = work.env;
var data = work.data;
var callback = function() {
if (!complete) return;
var envObject = emnapiCtx.envStore.get(env);
var scope = emnapiCtx.openScope(envObject);
try {
envObject.callbackIntoModule(true, function() {
wasmTable.get(complete)(env, status, data);
});
} finally {
emnapiCtx.closeScope(envObject, scope);
}
};
if (emnapiNodeBinding) emnapiNodeBinding.node.makeCallback(work.resource, callback, [], {
asyncId: work.asyncId,
triggerAsyncId: work.triggerAsyncId
});
else callback();
},
queue: function(id) {
var work = emnapiAWST.values[id];
if (!work) return;
if (work.status === 0) {
work.status = 1;
if (emnapiAWST.queued.size >= (Math.abs(emnapiAsyncWorkPoolSi