wasm-image-optimization 1.2.30 → 1.3.0

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.
@@ -179,14 +179,8 @@ var require_libImage = __commonJS({
179
179
  return async function(moduleArg = {}) {
180
180
  var moduleRtn;
181
181
  var Module2 = moduleArg;
182
- var readyPromiseResolve, readyPromiseReject;
183
- var readyPromise = new Promise((resolve, reject) => {
184
- readyPromiseResolve = resolve;
185
- readyPromiseReject = reject;
186
- });
187
182
  var ENVIRONMENT_IS_WEB = true;
188
183
  var ENVIRONMENT_IS_WORKER = false;
189
- var moduleOverrides = { ...Module2 };
190
184
  var arguments_ = [];
191
185
  var thisProgram = "./this.program";
192
186
  var quit_ = (status, toThrow) => {
@@ -201,18 +195,9 @@ var require_libImage = __commonJS({
201
195
  }
202
196
  var readAsync, readBinary;
203
197
  if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
204
- if (ENVIRONMENT_IS_WORKER) {
205
- scriptDirectory = self.location.href;
206
- } else if (typeof document != "undefined" && document.currentScript) {
207
- scriptDirectory = document.currentScript.src;
208
- }
209
- if (_scriptName) {
210
- scriptDirectory = _scriptName;
211
- }
212
- if (scriptDirectory.startsWith("blob:")) {
213
- scriptDirectory = "";
214
- } else {
215
- scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
198
+ try {
199
+ scriptDirectory = new URL(".", _scriptName).href;
200
+ } catch {
216
201
  }
217
202
  {
218
203
  readAsync = async (url) => {
@@ -225,30 +210,28 @@ var require_libImage = __commonJS({
225
210
  }
226
211
  } else {
227
212
  }
228
- var out = Module2["print"] || console.log.bind(console);
229
- var err = Module2["printErr"] || console.error.bind(console);
230
- Object.assign(Module2, moduleOverrides);
231
- moduleOverrides = null;
232
- if (Module2["arguments"]) arguments_ = Module2["arguments"];
233
- if (Module2["thisProgram"]) thisProgram = Module2["thisProgram"];
234
- var wasmBinary = Module2["wasmBinary"];
235
- var wasmMemory;
213
+ var out = console.log.bind(console);
214
+ var err = console.error.bind(console);
215
+ var wasmBinary;
236
216
  var ABORT = false;
237
217
  var EXITSTATUS;
238
- var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;
218
+ var readyPromiseResolve, readyPromiseReject;
219
+ var wasmMemory;
220
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
221
+ var HEAP64, HEAPU64;
239
222
  var runtimeInitialized = false;
240
223
  function updateMemoryViews() {
241
224
  var b = wasmMemory.buffer;
242
- Module2["HEAP8"] = HEAP8 = new Int8Array(b);
243
- Module2["HEAP16"] = HEAP16 = new Int16Array(b);
244
- Module2["HEAPU8"] = HEAPU8 = new Uint8Array(b);
245
- Module2["HEAPU16"] = HEAPU16 = new Uint16Array(b);
246
- Module2["HEAP32"] = HEAP32 = new Int32Array(b);
247
- Module2["HEAPU32"] = HEAPU32 = new Uint32Array(b);
248
- Module2["HEAPF32"] = HEAPF32 = new Float32Array(b);
249
- Module2["HEAPF64"] = HEAPF64 = new Float64Array(b);
250
- Module2["HEAP64"] = HEAP64 = new BigInt64Array(b);
251
- Module2["HEAPU64"] = HEAPU64 = new BigUint64Array(b);
225
+ HEAP8 = new Int8Array(b);
226
+ HEAP16 = new Int16Array(b);
227
+ HEAPU8 = new Uint8Array(b);
228
+ HEAPU16 = new Uint16Array(b);
229
+ HEAP32 = new Int32Array(b);
230
+ HEAPU32 = new Uint32Array(b);
231
+ HEAPF32 = new Float32Array(b);
232
+ HEAPF64 = new Float64Array(b);
233
+ HEAP64 = new BigInt64Array(b);
234
+ HEAPU64 = new BigUint64Array(b);
252
235
  }
253
236
  function preRun() {
254
237
  if (Module2["preRun"]) {
@@ -263,7 +246,7 @@ var require_libImage = __commonJS({
263
246
  runtimeInitialized = true;
264
247
  if (!Module2["noFSInit"] && !FS.initialized) FS.init();
265
248
  TTY.init();
266
- wasmExports["fa"]();
249
+ wasmExports["ha"]();
267
250
  FS.ignorePermissions = false;
268
251
  }
269
252
  function postRun() {
@@ -275,26 +258,6 @@ var require_libImage = __commonJS({
275
258
  }
276
259
  callRuntimeCallbacks(onPostRuns);
277
260
  }
278
- var runDependencies = 0;
279
- var dependenciesFulfilled = null;
280
- function getUniqueRunDependency(id) {
281
- return id;
282
- }
283
- function addRunDependency(id) {
284
- runDependencies++;
285
- Module2["monitorRunDependencies"]?.(runDependencies);
286
- }
287
- function removeRunDependency(id) {
288
- runDependencies--;
289
- Module2["monitorRunDependencies"]?.(runDependencies);
290
- if (runDependencies == 0) {
291
- if (dependenciesFulfilled) {
292
- var callback = dependenciesFulfilled;
293
- dependenciesFulfilled = null;
294
- callback();
295
- }
296
- }
297
- }
298
261
  function abort(what) {
299
262
  Module2["onAbort"]?.(what);
300
263
  what = "Aborted(" + what + ")";
@@ -302,7 +265,7 @@ var require_libImage = __commonJS({
302
265
  ABORT = true;
303
266
  what += ". Build with -sASSERTIONS for more info.";
304
267
  var e = new WebAssembly.RuntimeError(what);
305
- readyPromiseReject(e);
268
+ readyPromiseReject?.(e);
306
269
  throw e;
307
270
  }
308
271
  var wasmBinaryFile;
@@ -339,7 +302,7 @@ var require_libImage = __commonJS({
339
302
  }
340
303
  }
341
304
  async function instantiateAsync(binary, binaryFile, imports) {
342
- if (!binary && typeof WebAssembly.instantiateStreaming == "function") {
305
+ if (!binary) {
343
306
  try {
344
307
  var response = fetch(binaryFile, { credentials: "same-origin" });
345
308
  var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
@@ -357,13 +320,12 @@ var require_libImage = __commonJS({
357
320
  async function createWasm() {
358
321
  function receiveInstance(instance, module3) {
359
322
  wasmExports = instance.exports;
360
- wasmMemory = wasmExports["ea"];
323
+ wasmMemory = wasmExports["ga"];
361
324
  updateMemoryViews();
362
- wasmTable = wasmExports["ga"];
363
- removeRunDependency("wasm-instantiate");
325
+ wasmTable = wasmExports["ia"];
326
+ assignWasmExports(wasmExports);
364
327
  return wasmExports;
365
328
  }
366
- addRunDependency("wasm-instantiate");
367
329
  function receiveInstantiationResult(result2) {
368
330
  return receiveInstance(result2["instance"]);
369
331
  }
@@ -371,20 +333,14 @@ var require_libImage = __commonJS({
371
333
  if (Module2["instantiateWasm"]) {
372
334
  return new Promise((resolve, reject) => {
373
335
  Module2["instantiateWasm"](info, (mod, inst) => {
374
- receiveInstance(mod, inst);
375
- resolve(mod.exports);
336
+ resolve(receiveInstance(mod, inst));
376
337
  });
377
338
  });
378
339
  }
379
340
  wasmBinaryFile ??= findWasmBinary();
380
- try {
381
- var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
382
- var exports3 = receiveInstantiationResult(result);
383
- return exports3;
384
- } catch (e) {
385
- readyPromiseReject(e);
386
- return Promise.reject(e);
387
- }
341
+ var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
342
+ var exports3 = receiveInstantiationResult(result);
343
+ return exports3;
388
344
  }
389
345
  class ExitStatus {
390
346
  name = "ExitStatus";
@@ -399,17 +355,21 @@ var require_libImage = __commonJS({
399
355
  }
400
356
  };
401
357
  var onPostRuns = [];
402
- var addOnPostRun = (cb) => onPostRuns.unshift(cb);
358
+ var addOnPostRun = (cb) => onPostRuns.push(cb);
403
359
  var onPreRuns = [];
404
- var addOnPreRun = (cb) => onPreRuns.unshift(cb);
405
- var noExitRuntime = Module2["noExitRuntime"] || true;
360
+ var addOnPreRun = (cb) => onPreRuns.push(cb);
361
+ var noExitRuntime = true;
406
362
  var stackRestore = (val) => __emscripten_stack_restore(val);
407
363
  var stackSave = () => _emscripten_stack_get_current();
408
364
  var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
409
- var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
410
- var endIdx = idx + maxBytesToRead;
411
- var endPtr = idx;
412
- while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
365
+ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
366
+ var maxIdx = idx + maxBytesToRead;
367
+ if (ignoreNul) return maxIdx;
368
+ while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx;
369
+ return idx;
370
+ };
371
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => {
372
+ var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul);
413
373
  if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
414
374
  return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
415
375
  }
@@ -440,7 +400,7 @@ var require_libImage = __commonJS({
440
400
  }
441
401
  return str;
442
402
  };
443
- var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
403
+ var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead, ignoreNul) : "";
444
404
  var ___assert_fail = (condition, filename, line, func) => abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"]);
445
405
  class ExceptionInfo {
446
406
  constructor(excPtr) {
@@ -616,11 +576,7 @@ var require_libImage = __commonJS({
616
576
  var startIdx = outIdx;
617
577
  var endIdx = outIdx + maxBytesToWrite - 1;
618
578
  for (var i = 0; i < str.length; ++i) {
619
- var u = str.charCodeAt(i);
620
- if (u >= 55296 && u <= 57343) {
621
- var u1 = str.charCodeAt(++i);
622
- u = 65536 + ((u & 1023) << 10) | u1 & 1023;
623
- }
579
+ var u = str.codePointAt(i);
624
580
  if (u <= 127) {
625
581
  if (outIdx >= endIdx) break;
626
582
  heap[outIdx++] = u;
@@ -639,6 +595,7 @@ var require_libImage = __commonJS({
639
595
  heap[outIdx++] = 128 | u >> 12 & 63;
640
596
  heap[outIdx++] = 128 | u >> 6 & 63;
641
597
  heap[outIdx++] = 128 | u & 63;
598
+ i++;
642
599
  }
643
600
  }
644
601
  heap[outIdx] = 0;
@@ -848,6 +805,10 @@ var require_libImage = __commonJS({
848
805
  MEMFS.resizeFileStorage(node, attr.size);
849
806
  }
850
807
  }, lookup(parent, name) {
808
+ if (!MEMFS.doesNotExistError) {
809
+ MEMFS.doesNotExistError = new FS.ErrnoError(44);
810
+ MEMFS.doesNotExistError.stack = "<generic error, no stack>";
811
+ }
851
812
  throw MEMFS.doesNotExistError;
852
813
  }, mknod(parent, name, mode, dev) {
853
814
  return MEMFS.createNode(parent, name, mode, dev);
@@ -976,66 +937,73 @@ var require_libImage = __commonJS({
976
937
  MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
977
938
  return 0;
978
939
  } } };
940
+ var FS_modeStringToFlags = (str) => {
941
+ var flagModes = { r: 0, "r+": 2, w: 512 | 64 | 1, "w+": 512 | 64 | 2, a: 1024 | 64 | 1, "a+": 1024 | 64 | 2 };
942
+ var flags = flagModes[str];
943
+ if (typeof flags == "undefined") {
944
+ throw new Error(`Unknown file open mode: ${str}`);
945
+ }
946
+ return flags;
947
+ };
948
+ var FS_getMode = (canRead, canWrite) => {
949
+ var mode = 0;
950
+ if (canRead) mode |= 292 | 73;
951
+ if (canWrite) mode |= 146;
952
+ return mode;
953
+ };
979
954
  var asyncLoad = async (url) => {
980
955
  var arrayBuffer = await readAsync(url);
981
956
  return new Uint8Array(arrayBuffer);
982
957
  };
983
- var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
984
- FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
958
+ var FS_createDataFile = (...args) => FS.createDataFile(...args);
959
+ var getUniqueRunDependency = (id) => id;
960
+ var runDependencies = 0;
961
+ var dependenciesFulfilled = null;
962
+ var removeRunDependency = (id) => {
963
+ runDependencies--;
964
+ Module2["monitorRunDependencies"]?.(runDependencies);
965
+ if (runDependencies == 0) {
966
+ if (dependenciesFulfilled) {
967
+ var callback = dependenciesFulfilled;
968
+ dependenciesFulfilled = null;
969
+ callback();
970
+ }
971
+ }
972
+ };
973
+ var addRunDependency = (id) => {
974
+ runDependencies++;
975
+ Module2["monitorRunDependencies"]?.(runDependencies);
985
976
  };
986
- var preloadPlugins = Module2["preloadPlugins"] || [];
987
- var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => {
977
+ var preloadPlugins = [];
978
+ var FS_handledByPreloadPlugin = async (byteArray, fullname) => {
988
979
  if (typeof Browser != "undefined") Browser.init();
989
- var handled = false;
990
- preloadPlugins.forEach((plugin) => {
991
- if (handled) return;
980
+ for (var plugin of preloadPlugins) {
992
981
  if (plugin["canHandle"](fullname)) {
993
- plugin["handle"](byteArray, fullname, finish, onerror);
994
- handled = true;
982
+ return plugin["handle"](byteArray, fullname);
995
983
  }
996
- });
997
- return handled;
984
+ }
985
+ return byteArray;
998
986
  };
999
- var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => {
987
+ var FS_preloadFile = async (parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish) => {
1000
988
  var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
1001
989
  var dep = getUniqueRunDependency(`cp ${fullname}`);
1002
- function processData(byteArray) {
1003
- function finish(byteArray2) {
1004
- preFinish?.();
1005
- if (!dontCreateFile) {
1006
- FS_createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);
1007
- }
1008
- onload?.();
1009
- removeRunDependency(dep);
990
+ addRunDependency(dep);
991
+ try {
992
+ var byteArray = url;
993
+ if (typeof url == "string") {
994
+ byteArray = await asyncLoad(url);
1010
995
  }
1011
- if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => {
1012
- onerror?.();
1013
- removeRunDependency(dep);
1014
- })) {
1015
- return;
996
+ byteArray = await FS_handledByPreloadPlugin(byteArray, fullname);
997
+ preFinish?.();
998
+ if (!dontCreateFile) {
999
+ FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
1016
1000
  }
1017
- finish(byteArray);
1018
- }
1019
- addRunDependency(dep);
1020
- if (typeof url == "string") {
1021
- asyncLoad(url).then(processData, onerror);
1022
- } else {
1023
- processData(url);
1024
- }
1025
- };
1026
- var FS_modeStringToFlags = (str) => {
1027
- var flagModes = { r: 0, "r+": 2, w: 512 | 64 | 1, "w+": 512 | 64 | 2, a: 1024 | 64 | 1, "a+": 1024 | 64 | 2 };
1028
- var flags = flagModes[str];
1029
- if (typeof flags == "undefined") {
1030
- throw new Error(`Unknown file open mode: ${str}`);
1001
+ } finally {
1002
+ removeRunDependency(dep);
1031
1003
  }
1032
- return flags;
1033
1004
  };
1034
- var FS_getMode = (canRead, canWrite) => {
1035
- var mode = 0;
1036
- if (canRead) mode |= 292 | 73;
1037
- if (canWrite) mode |= 146;
1038
- return mode;
1005
+ var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => {
1006
+ FS_preloadFile(parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish).then(onload).catch(onerror);
1039
1007
  };
1040
1008
  var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, filesystems: null, syncFSRequests: 0, readFiles: {}, ErrnoError: class {
1041
1009
  name = "ErrnoError";
@@ -1129,7 +1097,13 @@ var require_libImage = __commonJS({
1129
1097
  }
1130
1098
  if (parts[i] === "..") {
1131
1099
  current_path = PATH.dirname(current_path);
1132
- current = current.parent;
1100
+ if (FS.isRoot(current)) {
1101
+ path = current_path + "/" + parts.slice(i + 1).join("/");
1102
+ nlinks--;
1103
+ continue linkloop;
1104
+ } else {
1105
+ current = current.parent;
1106
+ }
1133
1107
  continue;
1134
1108
  }
1135
1109
  current_path = PATH.join2(current_path, parts[i]);
@@ -1889,27 +1863,23 @@ var require_libImage = __commonJS({
1889
1863
  if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
1890
1864
  throw new Error(`Invalid encoding type "${opts.encoding}"`);
1891
1865
  }
1892
- var ret;
1893
1866
  var stream = FS.open(path, opts.flags);
1894
1867
  var stat = FS.stat(path);
1895
1868
  var length = stat.size;
1896
1869
  var buf = new Uint8Array(length);
1897
1870
  FS.read(stream, buf, 0, length, 0);
1898
1871
  if (opts.encoding === "utf8") {
1899
- ret = UTF8ArrayToString(buf);
1900
- } else if (opts.encoding === "binary") {
1901
- ret = buf;
1872
+ buf = UTF8ArrayToString(buf);
1902
1873
  }
1903
1874
  FS.close(stream);
1904
- return ret;
1875
+ return buf;
1905
1876
  }, writeFile(path, data, opts = {}) {
1906
1877
  opts.flags = opts.flags || 577;
1907
1878
  var stream = FS.open(path, opts.flags, opts.mode);
1908
1879
  if (typeof data == "string") {
1909
- var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
1910
- var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
1911
- FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);
1912
- } else if (ArrayBuffer.isView(data)) {
1880
+ data = new Uint8Array(intArrayFromString(data, true));
1881
+ }
1882
+ if (ArrayBuffer.isView(data)) {
1913
1883
  FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);
1914
1884
  } else {
1915
1885
  throw new Error("Unsupported data type");
@@ -2129,7 +2099,6 @@ var require_libImage = __commonJS({
2129
2099
  } else {
2130
2100
  try {
2131
2101
  obj.contents = readBinary(obj.url);
2132
- obj.usedBytes = obj.contents.length;
2133
2102
  } catch (e) {
2134
2103
  throw new FS.ErrnoError(29);
2135
2104
  }
@@ -2287,12 +2256,12 @@ var require_libImage = __commonJS({
2287
2256
  }
2288
2257
  return dir + "/" + path;
2289
2258
  }, writeStat(buf, stat) {
2290
- HEAP32[buf >> 2] = stat.dev;
2291
- HEAP32[buf + 4 >> 2] = stat.mode;
2259
+ HEAPU32[buf >> 2] = stat.dev;
2260
+ HEAPU32[buf + 4 >> 2] = stat.mode;
2292
2261
  HEAPU32[buf + 8 >> 2] = stat.nlink;
2293
- HEAP32[buf + 12 >> 2] = stat.uid;
2294
- HEAP32[buf + 16 >> 2] = stat.gid;
2295
- HEAP32[buf + 20 >> 2] = stat.rdev;
2262
+ HEAPU32[buf + 12 >> 2] = stat.uid;
2263
+ HEAPU32[buf + 16 >> 2] = stat.gid;
2264
+ HEAPU32[buf + 20 >> 2] = stat.rdev;
2296
2265
  HEAP64[buf + 24 >> 3] = BigInt(stat.size);
2297
2266
  HEAP32[buf + 32 >> 2] = 4096;
2298
2267
  HEAP32[buf + 36 >> 2] = stat.blocks;
@@ -2308,16 +2277,16 @@ var require_libImage = __commonJS({
2308
2277
  HEAP64[buf + 88 >> 3] = BigInt(stat.ino);
2309
2278
  return 0;
2310
2279
  }, writeStatFs(buf, stats) {
2311
- HEAP32[buf + 4 >> 2] = stats.bsize;
2312
- HEAP32[buf + 40 >> 2] = stats.bsize;
2313
- HEAP32[buf + 8 >> 2] = stats.blocks;
2314
- HEAP32[buf + 12 >> 2] = stats.bfree;
2315
- HEAP32[buf + 16 >> 2] = stats.bavail;
2316
- HEAP32[buf + 20 >> 2] = stats.files;
2317
- HEAP32[buf + 24 >> 2] = stats.ffree;
2318
- HEAP32[buf + 28 >> 2] = stats.fsid;
2319
- HEAP32[buf + 44 >> 2] = stats.flags;
2320
- HEAP32[buf + 36 >> 2] = stats.namelen;
2280
+ HEAPU32[buf + 4 >> 2] = stats.bsize;
2281
+ HEAPU32[buf + 60 >> 2] = stats.bsize;
2282
+ HEAP64[buf + 8 >> 3] = BigInt(stats.blocks);
2283
+ HEAP64[buf + 16 >> 3] = BigInt(stats.bfree);
2284
+ HEAP64[buf + 24 >> 3] = BigInt(stats.bavail);
2285
+ HEAP64[buf + 32 >> 3] = BigInt(stats.files);
2286
+ HEAP64[buf + 40 >> 3] = BigInt(stats.ffree);
2287
+ HEAPU32[buf + 48 >> 2] = stats.fsid;
2288
+ HEAPU32[buf + 64 >> 2] = stats.flags;
2289
+ HEAPU32[buf + 56 >> 2] = stats.namelen;
2321
2290
  }, doMsync(addr, stream, len, flags, offset) {
2322
2291
  if (!FS.isFile(stream.node.mode)) {
2323
2292
  throw new FS.ErrnoError(43);
@@ -2436,6 +2405,7 @@ var require_libImage = __commonJS({
2436
2405
  if (!stream.tty) return -59;
2437
2406
  return -28;
2438
2407
  }
2408
+ case 21537:
2439
2409
  case 21531: {
2440
2410
  var argp = syscallGetVarargP();
2441
2411
  return FS.ioctl(stream, op, argp);
@@ -2479,37 +2449,18 @@ var require_libImage = __commonJS({
2479
2449
  }
2480
2450
  }
2481
2451
  var __abort_js = () => abort("");
2482
- var embindRepr = (v) => {
2483
- if (v === null) {
2484
- return "null";
2485
- }
2486
- var t = typeof v;
2487
- if (t === "object" || t === "array" || t === "function") {
2488
- return v.toString();
2489
- } else {
2490
- return "" + v;
2491
- }
2492
- };
2493
- var embind_init_charCodes = () => {
2494
- var codes = new Array(256);
2495
- for (var i = 0; i < 256; ++i) {
2496
- codes[i] = String.fromCharCode(i);
2497
- }
2498
- embind_charCodes = codes;
2499
- };
2500
- var embind_charCodes;
2501
- var readLatin1String = (ptr) => {
2502
- var ret = "";
2503
- var c = ptr;
2504
- while (HEAPU8[c]) {
2505
- ret += embind_charCodes[HEAPU8[c++]];
2452
+ var AsciiToString = (ptr) => {
2453
+ var str = "";
2454
+ while (1) {
2455
+ var ch = HEAPU8[ptr++];
2456
+ if (!ch) return str;
2457
+ str += String.fromCharCode(ch);
2506
2458
  }
2507
- return ret;
2508
2459
  };
2509
2460
  var awaitingDependencies = {};
2510
2461
  var registeredTypes = {};
2511
2462
  var typeDependencies = {};
2512
- var BindingError = Module2["BindingError"] = class BindingError extends Error {
2463
+ var BindingError = class BindingError extends Error {
2513
2464
  constructor(message) {
2514
2465
  super(message);
2515
2466
  this.name = "BindingError";
@@ -2556,45 +2507,39 @@ var require_libImage = __commonJS({
2556
2507
  }
2557
2508
  };
2558
2509
  var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
2559
- name = readLatin1String(name);
2560
- var isUnsignedType = name.indexOf("u") != -1;
2510
+ name = AsciiToString(name);
2511
+ const isUnsignedType = minRange === 0n;
2512
+ let fromWireType = (value) => value;
2561
2513
  if (isUnsignedType) {
2562
- maxRange = (1n << 64n) - 1n;
2514
+ const bitSize = size * 8;
2515
+ fromWireType = (value) => BigInt.asUintN(bitSize, value);
2516
+ maxRange = fromWireType(maxRange);
2563
2517
  }
2564
- registerType(primitiveType, { name, fromWireType: (value) => value, toWireType: function(destructors, value) {
2565
- if (typeof value != "bigint" && typeof value != "number") {
2566
- throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`);
2567
- }
2518
+ registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => {
2568
2519
  if (typeof value == "number") {
2569
2520
  value = BigInt(value);
2570
2521
  }
2571
2522
  return value;
2572
- }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, !isUnsignedType), destructorFunction: null });
2523
+ }, readValueFromPointer: integerReadValueFromPointer(name, size, !isUnsignedType), destructorFunction: null });
2573
2524
  };
2574
- var GenericWireTypeSize = 8;
2575
2525
  var __embind_register_bool = (rawType, name, trueValue, falseValue) => {
2576
- name = readLatin1String(name);
2526
+ name = AsciiToString(name);
2577
2527
  registerType(rawType, { name, fromWireType: function(wt) {
2578
2528
  return !!wt;
2579
2529
  }, toWireType: function(destructors, o) {
2580
2530
  return o ? trueValue : falseValue;
2581
- }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: function(pointer) {
2582
- return this["fromWireType"](HEAPU8[pointer]);
2531
+ }, readValueFromPointer: function(pointer) {
2532
+ return this.fromWireType(HEAPU8[pointer]);
2583
2533
  }, destructorFunction: null });
2584
2534
  };
2585
2535
  var emval_freelist = [];
2586
- var emval_handles = [];
2536
+ var emval_handles = [0, 1, , 1, null, 1, true, 1, false, 1];
2587
2537
  var __emval_decref = (handle) => {
2588
2538
  if (handle > 9 && 0 === --emval_handles[handle + 1]) {
2589
2539
  emval_handles[handle] = void 0;
2590
2540
  emval_freelist.push(handle);
2591
2541
  }
2592
2542
  };
2593
- var count_emval_handles = () => emval_handles.length / 2 - 5 - emval_freelist.length;
2594
- var init_emval = () => {
2595
- emval_handles.push(0, 1, void 0, 1, null, 1, true, 1, false, 1);
2596
- Module2["count_emval_handles"] = count_emval_handles;
2597
- };
2598
2543
  var Emval = { toValue: (handle) => {
2599
2544
  if (!handle) {
2600
2545
  throwBindingError(`Cannot use deleted val. handle = ${handle}`);
@@ -2619,31 +2564,31 @@ var require_libImage = __commonJS({
2619
2564
  }
2620
2565
  } };
2621
2566
  function readPointer(pointer) {
2622
- return this["fromWireType"](HEAPU32[pointer >> 2]);
2567
+ return this.fromWireType(HEAPU32[pointer >> 2]);
2623
2568
  }
2624
2569
  var EmValType = { name: "emscripten::val", fromWireType: (handle) => {
2625
2570
  var rv = Emval.toValue(handle);
2626
2571
  __emval_decref(handle);
2627
2572
  return rv;
2628
- }, toWireType: (destructors, value) => Emval.toHandle(value), argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction: null };
2573
+ }, toWireType: (destructors, value) => Emval.toHandle(value), readValueFromPointer: readPointer, destructorFunction: null };
2629
2574
  var __embind_register_emval = (rawType) => registerType(rawType, EmValType);
2630
2575
  var floatReadValueFromPointer = (name, width) => {
2631
2576
  switch (width) {
2632
2577
  case 4:
2633
2578
  return function(pointer) {
2634
- return this["fromWireType"](HEAPF32[pointer >> 2]);
2579
+ return this.fromWireType(HEAPF32[pointer >> 2]);
2635
2580
  };
2636
2581
  case 8:
2637
2582
  return function(pointer) {
2638
- return this["fromWireType"](HEAPF64[pointer >> 3]);
2583
+ return this.fromWireType(HEAPF64[pointer >> 3]);
2639
2584
  };
2640
2585
  default:
2641
2586
  throw new TypeError(`invalid float width (${width}): ${name}`);
2642
2587
  }
2643
2588
  };
2644
2589
  var __embind_register_float = (rawType, name, size) => {
2645
- name = readLatin1String(name);
2646
- registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
2590
+ name = AsciiToString(name);
2591
+ registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
2647
2592
  };
2648
2593
  var createNamedFunction = (name, func) => Object.defineProperty(func, "name", { value: name });
2649
2594
  var runDestructors = (destructors) => {
@@ -2668,7 +2613,7 @@ var require_libImage = __commonJS({
2668
2613
  }
2669
2614
  var isClassMethodFunc = argTypes[1] !== null && classType !== null;
2670
2615
  var needsDestructorStack = usesDestructorStack(argTypes);
2671
- var returns = argTypes[0].name !== "void";
2616
+ var returns = !argTypes[0].isVoid;
2672
2617
  var expectedArgCount = argCount - 2;
2673
2618
  var argsWired = new Array(expectedArgCount);
2674
2619
  var invokerFuncArgs = [];
@@ -2679,11 +2624,11 @@ var require_libImage = __commonJS({
2679
2624
  invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;
2680
2625
  invokerFuncArgs[0] = cppTargetFunc;
2681
2626
  if (isClassMethodFunc) {
2682
- thisWired = argTypes[1]["toWireType"](destructors, this);
2627
+ thisWired = argTypes[1].toWireType(destructors, this);
2683
2628
  invokerFuncArgs[1] = thisWired;
2684
2629
  }
2685
2630
  for (var i = 0; i < expectedArgCount; ++i) {
2686
- argsWired[i] = argTypes[i + 2]["toWireType"](destructors, args[i]);
2631
+ argsWired[i] = argTypes[i + 2].toWireType(destructors, args[i]);
2687
2632
  invokerFuncArgs.push(argsWired[i]);
2688
2633
  }
2689
2634
  var rv = cppInvokerFunc(...invokerFuncArgs);
@@ -2699,7 +2644,7 @@ var require_libImage = __commonJS({
2699
2644
  }
2700
2645
  }
2701
2646
  if (returns) {
2702
- return argTypes[0]["fromWireType"](rv2);
2647
+ return argTypes[0].fromWireType(rv2);
2703
2648
  }
2704
2649
  }
2705
2650
  return onDone(rv);
@@ -2741,7 +2686,7 @@ var require_libImage = __commonJS({
2741
2686
  }
2742
2687
  return array;
2743
2688
  };
2744
- var InternalError = Module2["InternalError"] = class InternalError extends Error {
2689
+ var InternalError = class InternalError extends Error {
2745
2690
  constructor(message) {
2746
2691
  super(message);
2747
2692
  this.name = "InternalError";
@@ -2771,7 +2716,7 @@ var require_libImage = __commonJS({
2771
2716
  return func;
2772
2717
  };
2773
2718
  var embind__requireFunction = (signature, rawFunction, isAsync = false) => {
2774
- signature = readLatin1String(signature);
2719
+ signature = AsciiToString(signature);
2775
2720
  function makeDynCaller() {
2776
2721
  var rtn = getWasmTableEntry(rawFunction);
2777
2722
  return rtn;
@@ -2786,7 +2731,7 @@ var require_libImage = __commonJS({
2786
2731
  }
2787
2732
  var getTypeName = (type) => {
2788
2733
  var ptr = ___getTypeName(type);
2789
- var rv = readLatin1String(ptr);
2734
+ var rv = AsciiToString(ptr);
2790
2735
  _free(ptr);
2791
2736
  return rv;
2792
2737
  };
@@ -2853,7 +2798,7 @@ var require_libImage = __commonJS({
2853
2798
  };
2854
2799
  var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
2855
2800
  var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
2856
- name = readLatin1String(name);
2801
+ name = AsciiToString(name);
2857
2802
  name = getFunctionName(name);
2858
2803
  rawInvoker = embind__requireFunction(signature, rawInvoker, isAsync);
2859
2804
  exposePublicSymbol(name, function() {
@@ -2866,31 +2811,15 @@ var require_libImage = __commonJS({
2866
2811
  });
2867
2812
  };
2868
2813
  var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => {
2869
- name = readLatin1String(name);
2870
- if (maxRange === -1) {
2871
- maxRange = 4294967295;
2872
- }
2873
- var fromWireType = (value) => value;
2874
- if (minRange === 0) {
2814
+ name = AsciiToString(name);
2815
+ const isUnsignedType = minRange === 0;
2816
+ let fromWireType = (value) => value;
2817
+ if (isUnsignedType) {
2875
2818
  var bitshift = 32 - 8 * size;
2876
2819
  fromWireType = (value) => value << bitshift >>> bitshift;
2820
+ maxRange = fromWireType(maxRange);
2877
2821
  }
2878
- var isUnsignedType = name.includes("unsigned");
2879
- var checkAssertions = (value, toTypeName) => {
2880
- };
2881
- var toWireType;
2882
- if (isUnsignedType) {
2883
- toWireType = function(destructors, value) {
2884
- checkAssertions(value, this.name);
2885
- return value >>> 0;
2886
- };
2887
- } else {
2888
- toWireType = function(destructors, value) {
2889
- checkAssertions(value, this.name);
2890
- return value;
2891
- };
2892
- }
2893
- registerType(primitiveType, { name, fromWireType, toWireType, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
2822
+ registerType(primitiveType, { name, fromWireType, toWireType: (destructors, value) => value, readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), destructorFunction: null });
2894
2823
  };
2895
2824
  var __embind_register_memory_view = (rawType, dataTypeIndex, name) => {
2896
2825
  var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];
@@ -2900,39 +2829,24 @@ var require_libImage = __commonJS({
2900
2829
  var data = HEAPU32[handle + 4 >> 2];
2901
2830
  return new TA(HEAP8.buffer, data, size);
2902
2831
  }
2903
- name = readLatin1String(name);
2904
- registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
2832
+ name = AsciiToString(name);
2833
+ registerType(rawType, { name, fromWireType: decodeMemoryView, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
2905
2834
  };
2906
2835
  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
2907
2836
  var __embind_register_std_string = (rawType, name) => {
2908
- name = readLatin1String(name);
2837
+ name = AsciiToString(name);
2909
2838
  var stdStringIsUTF8 = true;
2910
2839
  registerType(rawType, { name, fromWireType(value) {
2911
2840
  var length = HEAPU32[value >> 2];
2912
2841
  var payload = value + 4;
2913
2842
  var str;
2914
2843
  if (stdStringIsUTF8) {
2915
- var decodeStartPtr = payload;
2916
- for (var i = 0; i <= length; ++i) {
2917
- var currentBytePtr = payload + i;
2918
- if (i == length || HEAPU8[currentBytePtr] == 0) {
2919
- var maxRead = currentBytePtr - decodeStartPtr;
2920
- var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
2921
- if (str === void 0) {
2922
- str = stringSegment;
2923
- } else {
2924
- str += String.fromCharCode(0);
2925
- str += stringSegment;
2926
- }
2927
- decodeStartPtr = currentBytePtr + 1;
2928
- }
2929
- }
2844
+ str = UTF8ToString(payload, length, true);
2930
2845
  } else {
2931
- var a = new Array(length);
2846
+ str = "";
2932
2847
  for (var i = 0; i < length; ++i) {
2933
- a[i] = String.fromCharCode(HEAPU8[payload + i]);
2848
+ str += String.fromCharCode(HEAPU8[payload + i]);
2934
2849
  }
2935
- str = a.join("");
2936
2850
  }
2937
2851
  _free(value);
2938
2852
  return str;
@@ -2973,22 +2887,18 @@ var require_libImage = __commonJS({
2973
2887
  destructors.push(_free, base);
2974
2888
  }
2975
2889
  return base;
2976
- }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction(ptr) {
2890
+ }, readValueFromPointer: readPointer, destructorFunction(ptr) {
2977
2891
  _free(ptr);
2978
2892
  } });
2979
2893
  };
2980
2894
  var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0;
2981
- var UTF16ToString = (ptr, maxBytesToRead) => {
2982
- var endPtr = ptr;
2983
- var idx = endPtr >> 1;
2984
- var maxIdx = idx + maxBytesToRead / 2;
2985
- while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx;
2986
- endPtr = idx << 1;
2987
- if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
2895
+ var UTF16ToString = (ptr, maxBytesToRead, ignoreNul) => {
2896
+ var idx = ptr >> 1;
2897
+ var endIdx = findStringEnd(HEAPU16, idx, maxBytesToRead / 2, ignoreNul);
2898
+ if (endIdx - idx > 16 && UTF16Decoder) return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx));
2988
2899
  var str = "";
2989
- for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
2990
- var codeUnit = HEAP16[ptr + i * 2 >> 1];
2991
- if (codeUnit == 0) break;
2900
+ for (var i = idx; i < endIdx; ++i) {
2901
+ var codeUnit = HEAPU16[i];
2992
2902
  str += String.fromCharCode(codeUnit);
2993
2903
  }
2994
2904
  return str;
@@ -3008,19 +2918,13 @@ var require_libImage = __commonJS({
3008
2918
  return outPtr - startPtr;
3009
2919
  };
3010
2920
  var lengthBytesUTF16 = (str) => str.length * 2;
3011
- var UTF32ToString = (ptr, maxBytesToRead) => {
3012
- var i = 0;
2921
+ var UTF32ToString = (ptr, maxBytesToRead, ignoreNul) => {
3013
2922
  var str = "";
3014
- while (!(i >= maxBytesToRead / 4)) {
3015
- var utf32 = HEAP32[ptr + i * 4 >> 2];
3016
- if (utf32 == 0) break;
3017
- ++i;
3018
- if (utf32 >= 65536) {
3019
- var ch = utf32 - 65536;
3020
- str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
3021
- } else {
3022
- str += String.fromCharCode(utf32);
3023
- }
2923
+ var startIdx = ptr >> 2;
2924
+ for (var i = 0; !(i >= maxBytesToRead / 4); i++) {
2925
+ var utf32 = HEAPU32[startIdx + i];
2926
+ if (!utf32 && !ignoreNul) break;
2927
+ str += String.fromCodePoint(utf32);
3024
2928
  }
3025
2929
  return str;
3026
2930
  };
@@ -3030,12 +2934,11 @@ var require_libImage = __commonJS({
3030
2934
  var startPtr = outPtr;
3031
2935
  var endPtr = startPtr + maxBytesToWrite - 4;
3032
2936
  for (var i = 0; i < str.length; ++i) {
3033
- var codeUnit = str.charCodeAt(i);
3034
- if (codeUnit >= 55296 && codeUnit <= 57343) {
3035
- var trailSurrogate = str.charCodeAt(++i);
3036
- codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
2937
+ var codePoint = str.codePointAt(i);
2938
+ if (codePoint > 65535) {
2939
+ i++;
3037
2940
  }
3038
- HEAP32[outPtr >> 2] = codeUnit;
2941
+ HEAP32[outPtr >> 2] = codePoint;
3039
2942
  outPtr += 4;
3040
2943
  if (outPtr + 4 > endPtr) break;
3041
2944
  }
@@ -3045,44 +2948,29 @@ var require_libImage = __commonJS({
3045
2948
  var lengthBytesUTF32 = (str) => {
3046
2949
  var len = 0;
3047
2950
  for (var i = 0; i < str.length; ++i) {
3048
- var codeUnit = str.charCodeAt(i);
3049
- if (codeUnit >= 55296 && codeUnit <= 57343) ++i;
2951
+ var codePoint = str.codePointAt(i);
2952
+ if (codePoint > 65535) {
2953
+ i++;
2954
+ }
3050
2955
  len += 4;
3051
2956
  }
3052
2957
  return len;
3053
2958
  };
3054
2959
  var __embind_register_std_wstring = (rawType, charSize, name) => {
3055
- name = readLatin1String(name);
3056
- var decodeString, encodeString, readCharAt, lengthBytesUTF;
2960
+ name = AsciiToString(name);
2961
+ var decodeString, encodeString, lengthBytesUTF;
3057
2962
  if (charSize === 2) {
3058
2963
  decodeString = UTF16ToString;
3059
2964
  encodeString = stringToUTF16;
3060
2965
  lengthBytesUTF = lengthBytesUTF16;
3061
- readCharAt = (pointer) => HEAPU16[pointer >> 1];
3062
- } else if (charSize === 4) {
2966
+ } else {
3063
2967
  decodeString = UTF32ToString;
3064
2968
  encodeString = stringToUTF32;
3065
2969
  lengthBytesUTF = lengthBytesUTF32;
3066
- readCharAt = (pointer) => HEAPU32[pointer >> 2];
3067
2970
  }
3068
2971
  registerType(rawType, { name, fromWireType: (value) => {
3069
2972
  var length = HEAPU32[value >> 2];
3070
- var str;
3071
- var decodeStartPtr = value + 4;
3072
- for (var i = 0; i <= length; ++i) {
3073
- var currentBytePtr = value + 4 + i * charSize;
3074
- if (i == length || readCharAt(currentBytePtr) == 0) {
3075
- var maxReadBytes = currentBytePtr - decodeStartPtr;
3076
- var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
3077
- if (str === void 0) {
3078
- str = stringSegment;
3079
- } else {
3080
- str += String.fromCharCode(0);
3081
- str += stringSegment;
3082
- }
3083
- decodeStartPtr = currentBytePtr + charSize;
3084
- }
3085
- }
2973
+ var str = decodeString(value + 4, length * charSize, true);
3086
2974
  _free(value);
3087
2975
  return str;
3088
2976
  }, toWireType: (destructors, value) => {
@@ -3097,45 +2985,100 @@ var require_libImage = __commonJS({
3097
2985
  destructors.push(_free, ptr);
3098
2986
  }
3099
2987
  return ptr;
3100
- }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction(ptr) {
2988
+ }, readValueFromPointer: readPointer, destructorFunction(ptr) {
3101
2989
  _free(ptr);
3102
2990
  } });
3103
2991
  };
3104
2992
  var __embind_register_void = (rawType, name) => {
3105
- name = readLatin1String(name);
3106
- registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
2993
+ name = AsciiToString(name);
2994
+ registerType(rawType, { isVoid: true, name, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
3107
2995
  };
3108
2996
  var __emscripten_throw_longjmp = () => {
3109
2997
  throw Infinity;
3110
2998
  };
2999
+ var emval_methodCallers = [];
3000
+ var emval_addMethodCaller = (caller) => {
3001
+ var id = emval_methodCallers.length;
3002
+ emval_methodCallers.push(caller);
3003
+ return id;
3004
+ };
3005
+ var requireRegisteredType = (rawType, humanName) => {
3006
+ var impl = registeredTypes[rawType];
3007
+ if (void 0 === impl) {
3008
+ throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`);
3009
+ }
3010
+ return impl;
3011
+ };
3012
+ var emval_lookupTypes = (argCount, argTypes) => {
3013
+ var a = new Array(argCount);
3014
+ for (var i = 0; i < argCount; ++i) {
3015
+ a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >> 2], `parameter ${i}`);
3016
+ }
3017
+ return a;
3018
+ };
3019
+ var emval_returnValue = (toReturnWire, destructorsRef, handle) => {
3020
+ var destructors = [];
3021
+ var result = toReturnWire(destructors, handle);
3022
+ if (destructors.length) {
3023
+ HEAPU32[destructorsRef >> 2] = Emval.toHandle(destructors);
3024
+ }
3025
+ return result;
3026
+ };
3111
3027
  var emval_symbols = {};
3112
3028
  var getStringOrSymbol = (address) => {
3113
3029
  var symbol = emval_symbols[address];
3114
3030
  if (symbol === void 0) {
3115
- return readLatin1String(address);
3031
+ return AsciiToString(address);
3116
3032
  }
3117
3033
  return symbol;
3118
3034
  };
3035
+ var __emval_create_invoker = (argCount, argTypesPtr, kind) => {
3036
+ var GenericWireTypeSize = 8;
3037
+ var [retType, ...argTypes] = emval_lookupTypes(argCount, argTypesPtr);
3038
+ var toReturnWire = retType.toWireType.bind(retType);
3039
+ var argFromPtr = argTypes.map((type) => type.readValueFromPointer.bind(type));
3040
+ argCount--;
3041
+ var argN = new Array(argCount);
3042
+ var invokerFunction = (handle, methodName, destructorsRef, args) => {
3043
+ var offset = 0;
3044
+ for (var i = 0; i < argCount; ++i) {
3045
+ argN[i] = argFromPtr[i](args + offset);
3046
+ offset += GenericWireTypeSize;
3047
+ }
3048
+ var rv;
3049
+ switch (kind) {
3050
+ case 0:
3051
+ rv = Emval.toValue(handle).apply(null, argN);
3052
+ break;
3053
+ case 2:
3054
+ rv = Reflect.construct(Emval.toValue(handle), argN);
3055
+ break;
3056
+ case 3:
3057
+ rv = argN[0];
3058
+ break;
3059
+ case 1:
3060
+ rv = Emval.toValue(handle)[getStringOrSymbol(methodName)](...argN);
3061
+ break;
3062
+ }
3063
+ return emval_returnValue(toReturnWire, destructorsRef, rv);
3064
+ };
3065
+ var functionName = `methodCaller<(${argTypes.map((t) => t.name)}) => ${retType.name}>`;
3066
+ return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction));
3067
+ };
3068
+ var __emval_invoke = (caller, handle, methodName, destructorsRef, args) => emval_methodCallers[caller](handle, methodName, destructorsRef, args);
3119
3069
  var __emval_new_cstring = (v) => Emval.toHandle(getStringOrSymbol(v));
3120
3070
  var __emval_new_object = () => Emval.toHandle({});
3071
+ var __emval_run_destructors = (handle) => {
3072
+ var destructors = Emval.toValue(handle);
3073
+ runDestructors(destructors);
3074
+ __emval_decref(handle);
3075
+ };
3121
3076
  var __emval_set_property = (handle, key, value) => {
3122
3077
  handle = Emval.toValue(handle);
3123
3078
  key = Emval.toValue(key);
3124
3079
  value = Emval.toValue(value);
3125
3080
  handle[key] = value;
3126
3081
  };
3127
- var requireRegisteredType = (rawType, humanName) => {
3128
- var impl = registeredTypes[rawType];
3129
- if (void 0 === impl) {
3130
- throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`);
3131
- }
3132
- return impl;
3133
- };
3134
- var __emval_take_value = (type, arg) => {
3135
- type = requireRegisteredType(type, "_emval_take_value");
3136
- var v = type["readValueFromPointer"](arg);
3137
- return Emval.toHandle(v);
3138
- };
3139
3082
  var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
3140
3083
  var MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];
3141
3084
  var MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
@@ -3236,6 +3179,9 @@ var require_libImage = __commonJS({
3236
3179
  handleException(e);
3237
3180
  }
3238
3181
  };
3182
+ function getFullscreenElement() {
3183
+ return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.webkitCurrentFullScreenElement || document.msFullscreenElement;
3184
+ }
3239
3185
  var safeSetTimeout = (func, timeout) => setTimeout(() => {
3240
3186
  callUserCallback(func);
3241
3187
  }, timeout);
@@ -3253,97 +3199,93 @@ var require_libImage = __commonJS({
3253
3199
  imagePlugin["canHandle"] = function imagePlugin_canHandle(name) {
3254
3200
  return !Module2["noImageDecoding"] && /\.(jpg|jpeg|png|bmp|webp)$/i.test(name);
3255
3201
  };
3256
- imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) {
3202
+ imagePlugin["handle"] = async function imagePlugin_handle(byteArray, name) {
3257
3203
  var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
3258
3204
  if (b.size !== byteArray.length) {
3259
3205
  b = new Blob([new Uint8Array(byteArray).buffer], { type: Browser.getMimetype(name) });
3260
3206
  }
3261
3207
  var url = URL.createObjectURL(b);
3262
- var img = new Image();
3263
- img.onload = () => {
3264
- var canvas2 = document.createElement("canvas");
3265
- canvas2.width = img.width;
3266
- canvas2.height = img.height;
3267
- var ctx = canvas2.getContext("2d");
3268
- ctx.drawImage(img, 0, 0);
3269
- Browser.preloadedImages[name] = canvas2;
3270
- URL.revokeObjectURL(url);
3271
- onload?.(byteArray);
3272
- };
3273
- img.onerror = (event) => {
3274
- err(`Image ${url} could not be decoded`);
3275
- onerror?.();
3276
- };
3277
- img.src = url;
3208
+ return new Promise((resolve, reject) => {
3209
+ var img = new Image();
3210
+ img.onload = () => {
3211
+ var canvas2 = document.createElement("canvas");
3212
+ canvas2.width = img.width;
3213
+ canvas2.height = img.height;
3214
+ var ctx = canvas2.getContext("2d");
3215
+ ctx.drawImage(img, 0, 0);
3216
+ Browser.preloadedImages[name] = canvas2;
3217
+ URL.revokeObjectURL(url);
3218
+ resolve(byteArray);
3219
+ };
3220
+ img.onerror = (event) => {
3221
+ err(`Image ${url} could not be decoded`);
3222
+ reject();
3223
+ };
3224
+ img.src = url;
3225
+ });
3278
3226
  };
3279
3227
  preloadPlugins.push(imagePlugin);
3280
3228
  var audioPlugin = {};
3281
3229
  audioPlugin["canHandle"] = function audioPlugin_canHandle(name) {
3282
3230
  return !Module2["noAudioDecoding"] && name.slice(-4) in { ".ogg": 1, ".wav": 1, ".mp3": 1 };
3283
3231
  };
3284
- audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) {
3285
- var done = false;
3286
- function finish(audio2) {
3287
- if (done) return;
3288
- done = true;
3289
- Browser.preloadedAudios[name] = audio2;
3290
- onload?.(byteArray);
3291
- }
3292
- var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
3293
- var url = URL.createObjectURL(b);
3294
- var audio = new Audio();
3295
- audio.addEventListener("canplaythrough", () => finish(audio), false);
3296
- audio.onerror = function audio_onerror(event) {
3297
- if (done) return;
3298
- err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);
3299
- function encode64(data) {
3300
- var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
3301
- var PAD = "=";
3302
- var ret = "";
3303
- var leftchar = 0;
3304
- var leftbits = 0;
3305
- for (var i = 0; i < data.length; i++) {
3306
- leftchar = leftchar << 8 | data[i];
3307
- leftbits += 8;
3308
- while (leftbits >= 6) {
3309
- var curr = leftchar >> leftbits - 6 & 63;
3310
- leftbits -= 6;
3311
- ret += BASE[curr];
3232
+ audioPlugin["handle"] = async function audioPlugin_handle(byteArray, name) {
3233
+ return new Promise((resolve, reject) => {
3234
+ var done = false;
3235
+ function finish(audio2) {
3236
+ if (done) return;
3237
+ done = true;
3238
+ Browser.preloadedAudios[name] = audio2;
3239
+ resolve(byteArray);
3240
+ }
3241
+ var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
3242
+ var url = URL.createObjectURL(b);
3243
+ var audio = new Audio();
3244
+ audio.addEventListener("canplaythrough", () => finish(audio), false);
3245
+ audio.onerror = function audio_onerror(event) {
3246
+ if (done) return;
3247
+ err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);
3248
+ function encode64(data) {
3249
+ var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
3250
+ var PAD = "=";
3251
+ var ret = "";
3252
+ var leftchar = 0;
3253
+ var leftbits = 0;
3254
+ for (var i = 0; i < data.length; i++) {
3255
+ leftchar = leftchar << 8 | data[i];
3256
+ leftbits += 8;
3257
+ while (leftbits >= 6) {
3258
+ var curr = leftchar >> leftbits - 6 & 63;
3259
+ leftbits -= 6;
3260
+ ret += BASE[curr];
3261
+ }
3312
3262
  }
3263
+ if (leftbits == 2) {
3264
+ ret += BASE[(leftchar & 3) << 4];
3265
+ ret += PAD + PAD;
3266
+ } else if (leftbits == 4) {
3267
+ ret += BASE[(leftchar & 15) << 2];
3268
+ ret += PAD;
3269
+ }
3270
+ return ret;
3313
3271
  }
3314
- if (leftbits == 2) {
3315
- ret += BASE[(leftchar & 3) << 4];
3316
- ret += PAD + PAD;
3317
- } else if (leftbits == 4) {
3318
- ret += BASE[(leftchar & 15) << 2];
3319
- ret += PAD;
3320
- }
3321
- return ret;
3322
- }
3323
- audio.src = "data:audio/x-" + name.slice(-3) + ";base64," + encode64(byteArray);
3324
- finish(audio);
3325
- };
3326
- audio.src = url;
3327
- safeSetTimeout(() => {
3328
- finish(audio);
3329
- }, 1e4);
3272
+ audio.src = "data:audio/x-" + name.slice(-3) + ";base64," + encode64(byteArray);
3273
+ finish(audio);
3274
+ };
3275
+ audio.src = url;
3276
+ safeSetTimeout(() => {
3277
+ finish(audio);
3278
+ }, 1e4);
3279
+ });
3330
3280
  };
3331
3281
  preloadPlugins.push(audioPlugin);
3332
3282
  function pointerLockChange() {
3333
3283
  var canvas2 = Browser.getCanvas();
3334
- Browser.pointerLock = document["pointerLockElement"] === canvas2 || document["mozPointerLockElement"] === canvas2 || document["webkitPointerLockElement"] === canvas2 || document["msPointerLockElement"] === canvas2;
3284
+ Browser.pointerLock = document.pointerLockElement === canvas2;
3335
3285
  }
3336
3286
  var canvas = Browser.getCanvas();
3337
3287
  if (canvas) {
3338
- canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || (() => {
3339
- });
3340
- canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || (() => {
3341
- });
3342
- canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
3343
3288
  document.addEventListener("pointerlockchange", pointerLockChange, false);
3344
- document.addEventListener("mozpointerlockchange", pointerLockChange, false);
3345
- document.addEventListener("webkitpointerlockchange", pointerLockChange, false);
3346
- document.addEventListener("mspointerlockchange", pointerLockChange, false);
3347
3289
  if (Module2["elementPointerLock"]) {
3348
3290
  canvas.addEventListener("click", (ev) => {
3349
3291
  if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) {
@@ -3391,7 +3333,7 @@ var require_libImage = __commonJS({
3391
3333
  function fullscreenChange() {
3392
3334
  Browser.isFullscreen = false;
3393
3335
  var canvasContainer2 = canvas.parentNode;
3394
- if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer2) {
3336
+ if (getFullscreenElement() === canvasContainer2) {
3395
3337
  canvas.exitFullscreen = Browser.exitFullscreen;
3396
3338
  if (Browser.lockPointer) canvas.requestPointerLock();
3397
3339
  Browser.isFullscreen = true;
@@ -3558,7 +3500,7 @@ var require_libImage = __commonJS({
3558
3500
  h = Math.round(w / Module2["forcedAspectRatio"]);
3559
3501
  }
3560
3502
  }
3561
- if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") {
3503
+ if (getFullscreenElement() === canvas.parentNode && typeof screen != "undefined") {
3562
3504
  var factor = Math.min(screen.width / w, screen.height / h);
3563
3505
  w = Math.round(w * factor);
3564
3506
  h = Math.round(h * factor);
@@ -3608,8 +3550,8 @@ var require_libImage = __commonJS({
3608
3550
  var getHeapMax = () => 2147483648;
3609
3551
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
3610
3552
  var growMemory = (size) => {
3611
- var b = wasmMemory.buffer;
3612
- var pages = (size - b.byteLength + 65535) / 65536 | 0;
3553
+ var oldHeapSize = wasmMemory.buffer.byteLength;
3554
+ var pages = (size - oldHeapSize + 65535) / 65536 | 0;
3613
3555
  try {
3614
3556
  wasmMemory.grow(pages);
3615
3557
  updateMemoryViews();
@@ -3642,7 +3584,7 @@ var require_libImage = __commonJS({
3642
3584
  var getExecutableName = () => thisProgram || "./this.program";
3643
3585
  var getEnvStrings = () => {
3644
3586
  if (!getEnvStrings.strings) {
3645
- var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8";
3587
+ var lang = (typeof navigator == "object" && navigator.language || "C").replace("-", "_") + ".UTF-8";
3646
3588
  var env = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: lang, _: getExecutableName() };
3647
3589
  for (var x in ENV) {
3648
3590
  if (ENV[x] === void 0) delete env[x];
@@ -3656,27 +3598,24 @@ var require_libImage = __commonJS({
3656
3598
  }
3657
3599
  return getEnvStrings.strings;
3658
3600
  };
3659
- var stringToAscii = (str, buffer) => {
3660
- for (var i = 0; i < str.length; ++i) {
3661
- HEAP8[buffer++] = str.charCodeAt(i);
3662
- }
3663
- HEAP8[buffer] = 0;
3664
- };
3665
3601
  var _environ_get = (__environ, environ_buf) => {
3666
3602
  var bufSize = 0;
3667
- getEnvStrings().forEach((string, i) => {
3603
+ var envp = 0;
3604
+ for (var string of getEnvStrings()) {
3668
3605
  var ptr = environ_buf + bufSize;
3669
- HEAPU32[__environ + i * 4 >> 2] = ptr;
3670
- stringToAscii(string, ptr);
3671
- bufSize += string.length + 1;
3672
- });
3606
+ HEAPU32[__environ + envp >> 2] = ptr;
3607
+ bufSize += stringToUTF8(string, ptr, Infinity) + 1;
3608
+ envp += 4;
3609
+ }
3673
3610
  return 0;
3674
3611
  };
3675
3612
  var _environ_sizes_get = (penviron_count, penviron_buf_size) => {
3676
3613
  var strings = getEnvStrings();
3677
3614
  HEAPU32[penviron_count >> 2] = strings.length;
3678
3615
  var bufSize = 0;
3679
- strings.forEach((string) => bufSize += string.length + 1);
3616
+ for (var string of strings) {
3617
+ bufSize += lengthBytesUTF8(string) + 1;
3618
+ }
3680
3619
  HEAPU32[penviron_buf_size >> 2] = bufSize;
3681
3620
  return 0;
3682
3621
  };
@@ -3760,26 +3699,37 @@ var require_libImage = __commonJS({
3760
3699
  return e.errno;
3761
3700
  }
3762
3701
  }
3702
+ var createContext = Browser.createContext;
3763
3703
  FS.createPreloadedFile = FS_createPreloadedFile;
3704
+ FS.preloadFile = FS_preloadFile;
3764
3705
  FS.staticInit();
3765
- MEMFS.doesNotExistError = new FS.ErrnoError(44);
3766
- MEMFS.doesNotExistError.stack = "<generic error, no stack>";
3767
- embind_init_charCodes();
3768
- init_emval();
3769
- Module2["requestFullscreen"] = Browser.requestFullscreen;
3770
- Module2["setCanvasSize"] = Browser.setCanvasSize;
3771
- Module2["getUserMedia"] = Browser.getUserMedia;
3772
- Module2["createContext"] = Browser.createContext;
3773
- var wasmImports = { a: ___assert_fail, s: ___cxa_throw, A: ___syscall_fcntl64, N: ___syscall_ioctl, O: ___syscall_openat, Q: __abort_js, E: __embind_register_bigint, Y: __embind_register_bool, W: __embind_register_emval, D: __embind_register_float, q: __embind_register_function, j: __embind_register_integer, f: __embind_register_memory_view, X: __embind_register_std_string, v: __embind_register_std_wstring, Z: __embind_register_void, F: __emscripten_throw_longjmp, i: __emval_decref, o: __emval_new_cstring, da: __emval_new_object, n: __emval_set_property, p: __emval_take_value, H: __localtime_js, I: __tzset_js, P: _emscripten_date_now, x: _emscripten_get_now, V: _emscripten_get_preloaded_image_data_from_FILE, S: _emscripten_has_asyncify, G: _emscripten_resize_heap, R: _emscripten_sleep, K: _environ_get, L: _environ_sizes_get, T: _exit, y: _fd_close, M: _fd_read, J: _fd_seek, z: _fd_write, e: invoke_ii, c: invoke_iii, l: invoke_iiii, m: invoke_iiiii, U: invoke_iiiiii, t: invoke_iiiiiiiii, B: invoke_iiiiiiiiii, aa: invoke_iiiiiiiiiii, ca: invoke_iiiiiiiiiiii, ba: invoke_iiiijj, C: invoke_ji, u: invoke_jiji, d: invoke_vi, g: invoke_vii, h: invoke_viii, b: invoke_viiii, k: invoke_viiiii, r: invoke_viiiiiii, $: invoke_viiiiiiii, w: invoke_viiiiiiiii, _: invoke_viiiiiiiiiii };
3774
- var wasmExports = await createWasm();
3775
- var ___wasm_call_ctors = wasmExports["fa"];
3776
- var _malloc = wasmExports["ha"];
3777
- var _free = wasmExports["ia"];
3778
- var ___getTypeName = wasmExports["ja"];
3779
- var _fileno = wasmExports["ka"];
3780
- var _setThrew = wasmExports["la"];
3781
- var __emscripten_stack_restore = wasmExports["ma"];
3782
- var _emscripten_stack_get_current = wasmExports["na"];
3706
+ {
3707
+ if (Module2["noExitRuntime"]) noExitRuntime = Module2["noExitRuntime"];
3708
+ if (Module2["preloadPlugins"]) preloadPlugins = Module2["preloadPlugins"];
3709
+ if (Module2["print"]) out = Module2["print"];
3710
+ if (Module2["printErr"]) err = Module2["printErr"];
3711
+ if (Module2["wasmBinary"]) wasmBinary = Module2["wasmBinary"];
3712
+ if (Module2["arguments"]) arguments_ = Module2["arguments"];
3713
+ if (Module2["thisProgram"]) thisProgram = Module2["thisProgram"];
3714
+ if (Module2["preInit"]) {
3715
+ if (typeof Module2["preInit"] == "function") Module2["preInit"] = [Module2["preInit"]];
3716
+ while (Module2["preInit"].length > 0) {
3717
+ Module2["preInit"].shift()();
3718
+ }
3719
+ }
3720
+ }
3721
+ Module2["createContext"] = createContext;
3722
+ var _malloc, _free, ___getTypeName, _fileno, _setThrew, __emscripten_stack_restore, _emscripten_stack_get_current;
3723
+ function assignWasmExports(wasmExports2) {
3724
+ _malloc = wasmExports2["ja"];
3725
+ _free = wasmExports2["ka"];
3726
+ ___getTypeName = wasmExports2["la"];
3727
+ _fileno = wasmExports2["ma"];
3728
+ _setThrew = wasmExports2["na"];
3729
+ __emscripten_stack_restore = wasmExports2["oa"];
3730
+ _emscripten_stack_get_current = wasmExports2["pa"];
3731
+ }
3732
+ var wasmImports = { a: ___assert_fail, p: ___cxa_throw, x: ___syscall_fcntl64, P: ___syscall_ioctl, Q: ___syscall_openat, S: __abort_js, D: __embind_register_bigint, _: __embind_register_bool, Y: __embind_register_emval, B: __embind_register_float, n: __embind_register_function, i: __embind_register_integer, f: __embind_register_memory_view, Z: __embind_register_std_string, s: __embind_register_std_wstring, $: __embind_register_void, H: __emscripten_throw_longjmp, G: __emval_create_invoker, j: __emval_decref, E: __emval_invoke, y: __emval_new_cstring, fa: __emval_new_object, C: __emval_run_destructors, v: __emval_set_property, J: __localtime_js, K: __tzset_js, R: _emscripten_date_now, t: _emscripten_get_now, X: _emscripten_get_preloaded_image_data_from_FILE, U: _emscripten_has_asyncify, I: _emscripten_resize_heap, T: _emscripten_sleep, M: _environ_get, N: _environ_sizes_get, V: _exit, u: _fd_close, O: _fd_read, L: _fd_seek, w: _fd_write, e: invoke_ii, c: invoke_iii, l: invoke_iiii, m: invoke_iiiii, W: invoke_iiiiii, q: invoke_iiiiiiiii, z: invoke_iiiiiiiiii, ca: invoke_iiiiiiiiiii, ea: invoke_iiiiiiiiiiii, da: invoke_iiiijj, A: invoke_ji, r: invoke_jiji, d: invoke_vi, g: invoke_vii, h: invoke_viii, b: invoke_viiii, k: invoke_viiiii, o: invoke_viiiiiii, ba: invoke_viiiiiiii, F: invoke_viiiiiiiii, aa: invoke_viiiiiiiiiii };
3783
3733
  function invoke_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
3784
3734
  var sp = stackSave();
3785
3735
  try {
@@ -4006,7 +3956,7 @@ var require_libImage = __commonJS({
4006
3956
  Module2["calledRun"] = true;
4007
3957
  if (ABORT) return;
4008
3958
  initRuntime();
4009
- readyPromiseResolve(Module2);
3959
+ readyPromiseResolve?.(Module2);
4010
3960
  Module2["onRuntimeInitialized"]?.();
4011
3961
  postRun();
4012
3962
  }
@@ -4020,22 +3970,25 @@ var require_libImage = __commonJS({
4020
3970
  doRun();
4021
3971
  }
4022
3972
  }
4023
- if (Module2["preInit"]) {
4024
- if (typeof Module2["preInit"] == "function") Module2["preInit"] = [Module2["preInit"]];
4025
- while (Module2["preInit"].length > 0) {
4026
- Module2["preInit"].pop()();
4027
- }
4028
- }
3973
+ var wasmExports;
3974
+ wasmExports = await createWasm();
4029
3975
  run();
4030
- moduleRtn = readyPromise;
3976
+ if (runtimeInitialized) {
3977
+ moduleRtn = Module2;
3978
+ } else {
3979
+ moduleRtn = new Promise((resolve, reject) => {
3980
+ readyPromiseResolve = resolve;
3981
+ readyPromiseReject = reject;
3982
+ });
3983
+ }
3984
+ ;
4031
3985
  return moduleRtn;
4032
3986
  };
4033
3987
  })();
4034
3988
  if (typeof exports2 === "object" && typeof module2 === "object") {
4035
3989
  module2.exports = Module;
4036
3990
  module2.exports.default = Module;
4037
- } else if (typeof define === "function" && define["amd"])
4038
- define([], () => Module);
3991
+ } else if (typeof define === "function" && define["amd"]) define([], () => Module);
4039
3992
  }
4040
3993
  });
4041
3994
 
@@ -4050,17 +4003,18 @@ var require_optimizeImage = __commonJS({
4050
4003
  releaseResult();
4051
4004
  return r;
4052
4005
  };
4053
- var _optimizeImage = async ({ image, width = 0, height = 0, quality = 100, format = "avif", speed = 6, libImage }) => (0, exports2._optimizeImageExt)({
4006
+ var _optimizeImage = async ({ image, width = 0, height = 0, quality = 100, format = "avif", speed = 6, filter = true, libImage }) => (0, exports2._optimizeImageExt)({
4054
4007
  image,
4055
4008
  width,
4056
4009
  height,
4057
4010
  quality,
4058
4011
  format,
4059
4012
  speed,
4013
+ filter,
4060
4014
  libImage
4061
4015
  }).then((r) => r?.data);
4062
4016
  exports2._optimizeImage = _optimizeImage;
4063
- var _optimizeImageExt = async ({ image, width = 0, height = 0, quality = 100, format = "avif", speed = 6, libImage }) => libImage.then(({ optimize, releaseResult }) => result(optimize(image, width, height, quality, format, speed), releaseResult));
4017
+ var _optimizeImageExt = async ({ image, width = 0, height = 0, quality = 100, format = "avif", speed = 6, filter = true, libImage }) => libImage.then(({ optimize, releaseResult }) => result(optimize(image, width, height, quality, format, speed, filter), releaseResult));
4064
4018
  exports2._optimizeImageExt = _optimizeImageExt;
4065
4019
  }
4066
4020
  });