Skip to main content
Module

x/eszip/eszip_wasm.generated.js

A compact file format to losslessly serialize an ECMAScript module graph into a single file
Go to Latest
File
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
// @generated file from wasmbuild -- do not edit// @ts-nocheck: generated// deno-lint-ignore-file// deno-fmt-ignore-file// source-hash: 14c834f1c28502da7b7594c7faa9cea41be9e4c0let wasm;
const heap = new Array(128).fill(undefined);
heap.push(undefined, null, true, false);
function getObject(idx) { return heap[idx];}
function isLikeNone(x) { return x === undefined || x === null;}
let cachedFloat64Memory0 = null;
function getFloat64Memory0() { if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) { cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer); } return cachedFloat64Memory0;}
let cachedInt32Memory0 = null;
function getInt32Memory0() { if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); } return cachedInt32Memory0;}
let WASM_VECTOR_LEN = 0;
let cachedUint8Memory0 = null;
function getUint8Memory0() { if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); } return cachedUint8Memory0;}
const cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { encode: () => { throw Error("TextEncoder not available"); }, };
const encodeString = function (arg, view) { return cachedTextEncoder.encodeInto(arg, view);};
function passStringToWasm0(arg, malloc, realloc) { if (realloc === undefined) { const buf = cachedTextEncoder.encode(arg); const ptr = malloc(buf.length, 1) >>> 0; getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); WASM_VECTOR_LEN = buf.length; return ptr; }
let len = arg.length; let ptr = malloc(len, 1) >>> 0;
const mem = getUint8Memory0();
let offset = 0;
for (; offset < len; offset++) { const code = arg.charCodeAt(offset); if (code > 0x7F) break; mem[ptr + offset] = code; }
if (offset !== len) { if (offset !== 0) { arg = arg.slice(offset); } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; const view = getUint8Memory0().subarray(ptr + offset, ptr + len); const ret = encodeString(arg, view);
offset += ret.written; }
WASM_VECTOR_LEN = offset; return ptr;}
let heap_next = heap.length;
function addHeapObject(obj) { if (heap_next === heap.length) heap.push(heap.length + 1); const idx = heap_next; heap_next = heap[idx];
heap[idx] = obj; return idx;}
const cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error("TextDecoder not available"); }, };
if (typeof TextDecoder !== "undefined") cachedTextDecoder.decode();
function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));}
function dropObject(idx) { if (idx < 132) return; heap[idx] = heap_next; heap_next = idx;}
function takeObject(idx) { const ret = getObject(idx); dropObject(idx); return ret;}
let cachedBigInt64Memory0 = null;
function getBigInt64Memory0() { if ( cachedBigInt64Memory0 === null || cachedBigInt64Memory0.byteLength === 0 ) { cachedBigInt64Memory0 = new BigInt64Array(wasm.memory.buffer); } return cachedBigInt64Memory0;}
function debugString(val) { // primitive types const type = typeof val; if (type == "number" || type == "boolean" || val == null) { return `${val}`; } if (type == "string") { return `"${val}"`; } if (type == "symbol") { const description = val.description; if (description == null) { return "Symbol"; } else { return `Symbol(${description})`; } } if (type == "function") { const name = val.name; if (typeof name == "string" && name.length > 0) { return `Function(${name})`; } else { return "Function"; } } // objects if (Array.isArray(val)) { const length = val.length; let debug = "["; if (length > 0) { debug += debugString(val[0]); } for (let i = 1; i < length; i++) { debug += ", " + debugString(val[i]); } debug += "]"; return debug; } // Test for built-in const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); let className; if (builtInMatches.length > 1) { className = builtInMatches[1]; } else { // Failed to match the standard '[object ClassName]' return toString.call(val); } if (className == "Object") { // we're a user defined class or Object // JSON.stringify avoids problems with cycles, and is generally much // easier than looping through ownProperties of `val`. try { return "Object(" + JSON.stringify(val) + ")"; } catch (_) { return "Object"; } } // errors if (val instanceof Error) { return `${val.name}: ${val.message}\n${val.stack}`; } // TODO we could test for more things here, like `Set`s and `Map`s. return className;}
const CLOSURE_DTORS = new FinalizationRegistry((state) => { wasm.__wbindgen_export_2.get(state.dtor)(state.a, state.b);});
function makeMutClosure(arg0, arg1, dtor, f) { const state = { a: arg0, b: arg1, cnt: 1, dtor }; const real = (...args) => { // First up with a closure we increment the internal reference // count. This ensures that the Rust closure environment won't // be deallocated while we're invoking it. state.cnt++; const a = state.a; state.a = 0; try { return f(a, state.b, ...args); } finally { if (--state.cnt === 0) { wasm.__wbindgen_export_2.get(state.dtor)(a, state.b); CLOSURE_DTORS.unregister(state); } else { state.a = a; } } }; real.original = state; CLOSURE_DTORS.register(real, state, state); return real;}function __wbg_adapter_46(arg0, arg1, arg2) { wasm.wasm_bindgen__convert__closures__invoke1_mut__hf760d4ba9a3e3c47( arg0, arg1, addHeapObject(arg2), );}
function passArray8ToWasm0(arg, malloc) { const ptr = malloc(arg.length * 1, 1) >>> 0; getUint8Memory0().set(arg, ptr / 1); WASM_VECTOR_LEN = arg.length; return ptr;}/** * Serialize a module graph into eszip. * @param {any} roots * @param {Function} loader * @param {any} import_map_url * @returns {Promise<Uint8Array>} */export function build(roots, loader, import_map_url) { const ret = wasm.build( addHeapObject(roots), addHeapObject(loader), addHeapObject(import_map_url), ); return takeObject(ret);}
function handleError(f, args) { try { return f.apply(this, args); } catch (e) { wasm.__wbindgen_exn_store(addHeapObject(e)); }}function __wbg_adapter_126(arg0, arg1, arg2, arg3) { wasm.wasm_bindgen__convert__closures__invoke2_mut__h8737bc1d8fa554fd( arg0, arg1, addHeapObject(arg2), addHeapObject(arg3), );}
const ParserFinalization = new FinalizationRegistry((ptr) => wasm.__wbg_parser_free(ptr >>> 0));/** */export class Parser { __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ParserFinalization.unregister(this); return ptr; }
free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_parser_free(ptr); } /** */ constructor() { const ret = wasm.parser_new(); this.__wbg_ptr = ret >>> 0; return this; } /** * Parse from a BYOB readable stream. * @param {ReadableStreamBYOBReader} stream * @returns {Promise<any>} */ parse(stream) { const ret = wasm.parser_parse(this.__wbg_ptr, addHeapObject(stream)); return takeObject(ret); } /** * Parse from an in-memory buffer. * @param {Uint8Array} buffer * @returns {Promise<any>} */ parseBytes(buffer) { const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; const ret = wasm.parser_parseBytes(this.__wbg_ptr, ptr0, len0); return takeObject(ret); } /** * Load module sources. * @returns {Promise<any>} */ load() { const ret = wasm.parser_load(this.__wbg_ptr); return takeObject(ret); } /** * Get a module source. * @param {string} specifier * @returns {Promise<any>} */ getModuleSource(specifier) { const ptr0 = passStringToWasm0( specifier, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); const len0 = WASM_VECTOR_LEN; const ret = wasm.parser_getModuleSource(this.__wbg_ptr, ptr0, len0); return takeObject(ret); } /** * Get a module sourcemap. * @param {string} specifier * @returns {Promise<any>} */ getModuleSourceMap(specifier) { const ptr0 = passStringToWasm0( specifier, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); const len0 = WASM_VECTOR_LEN; const ret = wasm.parser_getModuleSourceMap(this.__wbg_ptr, ptr0, len0); return takeObject(ret); }}
const imports = { __wbindgen_placeholder__: { __wbindgen_in: function (arg0, arg1) { const ret = getObject(arg0) in getObject(arg1); return ret; }, __wbindgen_number_get: function (arg0, arg1) { const obj = getObject(arg1); const ret = typeof obj === "number" ? obj : undefined; getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret; getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); }, __wbindgen_boolean_get: function (arg0) { const v = getObject(arg0); const ret = typeof v === "boolean" ? (v ? 1 : 0) : 2; return ret; }, __wbindgen_string_get: function (arg0, arg1) { const obj = getObject(arg1); const ret = typeof obj === "string" ? obj : undefined; var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0( ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); var len1 = WASM_VECTOR_LEN; getInt32Memory0()[arg0 / 4 + 1] = len1; getInt32Memory0()[arg0 / 4 + 0] = ptr1; }, __wbindgen_is_bigint: function (arg0) { const ret = typeof (getObject(arg0)) === "bigint"; return ret; }, __wbindgen_is_object: function (arg0) { const val = getObject(arg0); const ret = typeof val === "object" && val !== null; return ret; }, __wbindgen_bigint_from_i64: function (arg0) { const ret = arg0; return addHeapObject(ret); }, __wbindgen_bigint_from_u64: function (arg0) { const ret = BigInt.asUintN(64, arg0); return addHeapObject(ret); }, __wbg_new_d331494ab60a8491: function (arg0, arg1) { const ret = new TypeError(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg_length_d99b680fd68bf71b: function (arg0) { const ret = getObject(arg0).length; return ret; }, __wbg_new_3a66822ed076951c: function (arg0, arg1) { const ret = new Error(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbindgen_memory: function () { const ret = wasm.memory; return addHeapObject(ret); }, __wbg_buffer_5d1b598a01b41a42: function (arg0) { const ret = getObject(arg0).buffer; return addHeapObject(ret); }, __wbg_newwithbyteoffsetandlength_d695c7957788f922: function ( arg0, arg1, arg2, ) { const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0); return addHeapObject(ret); }, __wbg_new_ace717933ad7117f: function (arg0) { const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }, __wbg_new_34c624469fb1d4fd: function () { const ret = new Array(); return addHeapObject(ret); }, __wbindgen_string_new: function (arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); return addHeapObject(ret); }, __wbg_push_906164999551d793: function (arg0, arg1) { const ret = getObject(arg0).push(getObject(arg1)); return ret; }, __wbg_String_88810dfeb4021902: function (arg0, arg1) { const ret = String(getObject(arg1)); const ptr1 = passStringToWasm0( ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); const len1 = WASM_VECTOR_LEN; getInt32Memory0()[arg0 / 4 + 1] = len1; getInt32Memory0()[arg0 / 4 + 0] = ptr1; }, __wbindgen_jsval_eq: function (arg0, arg1) { const ret = getObject(arg0) === getObject(arg1); return ret; }, __wbindgen_error_new: function (arg0, arg1) { const ret = new Error(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg_iterator_364187e1ee96b750: function () { const ret = Symbol.iterator; return addHeapObject(ret); }, __wbg_newwithlength_728575f3bba9959b: function (arg0) { const ret = new Uint8Array(arg0 >>> 0); return addHeapObject(ret); }, __wbg_read_421ea09231f62999: function (arg0, arg1) { const ret = getObject(arg0).read(getObject(arg1)); return addHeapObject(ret); }, __wbg_done_1c9555f2eaa593e9: function (arg0) { const ret = getObject(arg0).done; return ret; }, __wbg_toString_61d1ba76c783d2bc: function (arg0) { const ret = getObject(arg0).toString(); return addHeapObject(ret); }, __wbg_value_a5e55ed0660d29ac: function (arg0) { const ret = getObject(arg0).value; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_byteLength_a8d894d93425b2e0: function (arg0) { const ret = getObject(arg0).byteLength; return ret; }, __wbg_length_f0764416ba5bb237: function (arg0) { const ret = getObject(arg0).length; return ret; }, __wbg_new_87d841e70661f6e9: function () { const ret = new Object(); return addHeapObject(ret); }, __wbg_set_841ac57cff3d672b: function (arg0, arg1, arg2) { getObject(arg0)[takeObject(arg1)] = takeObject(arg2); }, __wbg_call_5830eb5e103aa772: function () { return handleError(function (arg0, arg1, arg2, arg3) { const ret = getObject(arg0).call( getObject(arg1), getObject(arg2), getObject(arg3), ); return addHeapObject(ret); }, arguments); }, __wbg_resolve_97ecd55ee839391b: function (arg0) { const ret = Promise.resolve(getObject(arg0)); return addHeapObject(ret); }, __wbg_new_1d93771b84541aa5: function (arg0, arg1) { try { var state0 = { a: arg0, b: arg1 }; var cb0 = (arg0, arg1) => { const a = state0.a; state0.a = 0; try { return __wbg_adapter_126(a, state0.b, arg0, arg1); } finally { state0.a = a; } }; const ret = new Promise(cb0); return addHeapObject(ret); } finally { state0.a = state0.b = 0; } }, __wbg_new_abda76e883ba8a5f: function () { const ret = new Error(); return addHeapObject(ret); }, __wbg_stack_658279fe44541cf6: function (arg0, arg1) { const ret = getObject(arg1).stack; const ptr1 = passStringToWasm0( ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); const len1 = WASM_VECTOR_LEN; getInt32Memory0()[arg0 / 4 + 1] = len1; getInt32Memory0()[arg0 / 4 + 0] = ptr1; }, __wbg_error_f851667af71bcfc6: function (arg0, arg1) { let deferred0_0; let deferred0_1; try { deferred0_0 = arg0; deferred0_1 = arg1; console.error(getStringFromWasm0(arg0, arg1)); } finally { wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); } }, __wbindgen_object_drop_ref: function (arg0) { takeObject(arg0); }, __wbg_randomFillSync_b70ccbdf4926a99d: function () { return handleError(function (arg0, arg1) { getObject(arg0).randomFillSync(takeObject(arg1)); }, arguments); }, __wbg_subarray_7f7a652672800851: function (arg0, arg1, arg2) { const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0); return addHeapObject(ret); }, __wbg_getRandomValues_7e42b4fb8779dc6d: function () { return handleError(function (arg0, arg1) { getObject(arg0).getRandomValues(getObject(arg1)); }, arguments); }, __wbg_crypto_d05b68a3572bb8ca: function (arg0) { const ret = getObject(arg0).crypto; return addHeapObject(ret); }, __wbg_process_b02b3570280d0366: function (arg0) { const ret = getObject(arg0).process; return addHeapObject(ret); }, __wbg_versions_c1cb42213cedf0f5: function (arg0) { const ret = getObject(arg0).versions; return addHeapObject(ret); }, __wbg_node_43b1089f407e4ec2: function (arg0) { const ret = getObject(arg0).node; return addHeapObject(ret); }, __wbindgen_is_string: function (arg0) { const ret = typeof (getObject(arg0)) === "string"; return ret; }, __wbg_require_9a7e0f667ead4995: function () { return handleError(function () { const ret = module.require; return addHeapObject(ret); }, arguments); }, __wbg_msCrypto_10fc94afee92bd76: function (arg0) { const ret = getObject(arg0).msCrypto; return addHeapObject(ret); }, __wbindgen_is_function: function (arg0) { const ret = typeof (getObject(arg0)) === "function"; return ret; }, __wbg_call_a79f1973a4f07d5e: function () { return handleError(function (arg0, arg1) { const ret = getObject(arg0).call(getObject(arg1)); return addHeapObject(ret); }, arguments); }, __wbg_get_c43534c00f382c8a: function (arg0, arg1) { const ret = getObject(arg0)[arg1 >>> 0]; return addHeapObject(ret); }, __wbg_next_267398d0e0761bf9: function () { return handleError(function (arg0) { const ret = getObject(arg0).next(); return addHeapObject(ret); }, arguments); }, __wbg_done_506b44765ba84b9c: function (arg0) { const ret = getObject(arg0).done; return ret; }, __wbg_value_31485d8770eb06ab: function (arg0) { const ret = getObject(arg0).value; return addHeapObject(ret); }, __wbg_get_5027b32da70f39b1: function () { return handleError(function (arg0, arg1) { const ret = Reflect.get(getObject(arg0), getObject(arg1)); return addHeapObject(ret); }, arguments); }, __wbg_next_1938cf110c9491d4: function (arg0) { const ret = getObject(arg0).next; return addHeapObject(ret); }, __wbindgen_object_clone_ref: function (arg0) { const ret = getObject(arg0); return addHeapObject(ret); }, __wbg_self_086b5302bcafb962: function () { return handleError(function () { const ret = self.self; return addHeapObject(ret); }, arguments); }, __wbg_window_132fa5d7546f1de5: function () { return handleError(function () { const ret = window.window; return addHeapObject(ret); }, arguments); }, __wbg_globalThis_e5f801a37ad7d07b: function () { return handleError(function () { const ret = globalThis.globalThis; return addHeapObject(ret); }, arguments); }, __wbg_global_f9a61fce4af6b7c1: function () { return handleError(function () { const ret = global.global; return addHeapObject(ret); }, arguments); }, __wbindgen_is_undefined: function (arg0) { const ret = getObject(arg0) === undefined; return ret; }, __wbg_newnoargs_5859b6d41c6fe9f7: function (arg0, arg1) { const ret = new Function(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg_isArray_fbd24d447869b527: function (arg0) { const ret = Array.isArray(getObject(arg0)); return ret; }, __wbg_call_f6a2bc58c19c53c6: function () { return handleError(function (arg0, arg1, arg2) { const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, arguments); }, __wbg_isSafeInteger_d8c89788832a17bf: function (arg0) { const ret = Number.isSafeInteger(getObject(arg0)); return ret; }, __wbg_set_74906aa30864df5a: function (arg0, arg1, arg2) { getObject(arg0).set(getObject(arg1), arg2 >>> 0); }, __wbindgen_jsval_loose_eq: function (arg0, arg1) { const ret = getObject(arg0) == getObject(arg1); return ret; }, __wbg_instanceof_Uint8Array_4f5cffed7df34b2f: function (arg0) { let result; try { result = getObject(arg0) instanceof Uint8Array; } catch (_) { result = false; } const ret = result; return ret; }, __wbg_instanceof_ArrayBuffer_f4521cec1b99ee35: function (arg0) { let result; try { result = getObject(arg0) instanceof ArrayBuffer; } catch (_) { result = false; } const ret = result; return ret; }, __wbg_entries_7a47f5716366056b: function (arg0) { const ret = Object.entries(getObject(arg0)); return addHeapObject(ret); }, __wbindgen_bigint_get_as_i64: function (arg0, arg1) { const v = getObject(arg1); const ret = typeof v === "bigint" ? v : undefined; getBigInt64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? BigInt(0) : ret; getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); }, __wbindgen_debug_string: function (arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr1 = passStringToWasm0( ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc, ); const len1 = WASM_VECTOR_LEN; getInt32Memory0()[arg0 / 4 + 1] = len1; getInt32Memory0()[arg0 / 4 + 0] = ptr1; }, __wbindgen_throw: function (arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); }, __wbindgen_cb_drop: function (arg0) { const obj = takeObject(arg0).original; if (obj.cnt-- == 1) { obj.a = 0; return true; } const ret = false; return ret; }, __wbg_then_7aeb7c5f1536640f: function (arg0, arg1) { const ret = getObject(arg0).then(getObject(arg1)); return addHeapObject(ret); }, __wbg_queueMicrotask_118eeb525d584d9a: function (arg0) { queueMicrotask(getObject(arg0)); }, __wbg_then_5842e4e97f7beace: function (arg0, arg1, arg2) { const ret = getObject(arg0).then(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, __wbg_queueMicrotask_26a89c14c53809c0: function (arg0) { const ret = getObject(arg0).queueMicrotask; return addHeapObject(ret); }, __wbindgen_closure_wrapper9855: function (arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 262, __wbg_adapter_46); return addHeapObject(ret); }, },};
/** * @callback WasmBuildDecompressCallback * @param {Uint8Array} compressed * @returns {Uint8Array} decompressed */
/** * @callback WasmBuildCacheCallback * @param {URL} url * @param {WasmBuildDecompressCallback | undefined} decompress * @returns {Promise<URL |Uint8Array>} */
/** * @typedef WasmBuildLoaderOptions * @property {WebAssembly.Imports | undefined} imports - The Wasm module's imports. * @property {WasmBuildCacheCallback} [cache] - A function that caches the Wasm module to * a local path so that a network request isn't required on every load. * * Returns an ArrayBuffer with the bytes on download success, but cache save failure. */
class WasmBuildLoader { /** @type {WasmBuildLoaderOptions} */ #options; /** @type {Promise<WebAssembly.WebAssemblyInstantiatedSource> | undefined} */ #lastLoadPromise; /** @type {WebAssembly.WebAssemblyInstantiatedSource | undefined} */ #instantiated;
/** @param {WasmBuildLoaderOptions} options */ constructor(options) { this.#options = options; }
/** @returns {WebAssembly.Instance | undefined} */ get instance() { return this.#instantiated?.instance; }
/** @returns {WebAssembly.Module | undefined} */ get module() { return this.#instantiated?.module; }
/** * @param {URL} url * @param {WasmBuildDecompressCallback | undefined} decompress * @returns {Promise<WebAssembly.WebAssemblyInstantiatedSource>} */ load( url, decompress, ) { if (this.#instantiated) { return Promise.resolve(this.#instantiated); } else if (this.#lastLoadPromise == null) { this.#lastLoadPromise = (async () => { try { this.#instantiated = await this.#instantiate(url, decompress); return this.#instantiated; } finally { this.#lastLoadPromise = undefined; } })(); } return this.#lastLoadPromise; }
/** * @param {URL} url * @param {WasmBuildDecompressCallback | undefined} decompress */ async #instantiate(url, decompress) { const imports = this.#options.imports; if (this.#options.cache != null && url.protocol !== "file:") { try { const result = await this.#options.cache( url, decompress ?? ((bytes) => bytes), ); if (result instanceof URL) { url = result; decompress = undefined; // already decompressed } else if (result != null) { return WebAssembly.instantiate(result, imports); } } catch { // ignore if caching ever fails (ex. when on deploy) } }
const isFile = url.protocol === "file:";
// make file urls work in Node via dnt const isNode = (/** @type {any} */ (globalThis)).process?.versions?.node != null; if (isFile && typeof Deno !== "object") { throw new Error( "Loading local files are not supported in this environment", ); } if (isNode && isFile) { // the deno global will be shimmed by dnt const wasmCode = await Deno.readFile(url); return WebAssembly.instantiate( decompress ? decompress(wasmCode) : wasmCode, imports, ); }
switch (url.protocol) { case "file:": case "https:": case "http:": { const wasmResponse = await fetchWithRetries(url); if (decompress) { const wasmCode = new Uint8Array(await wasmResponse.arrayBuffer()); return WebAssembly.instantiate(decompress(wasmCode), imports); } if ( isFile || wasmResponse.headers.get("content-type")?.toLowerCase() .startsWith("application/wasm") ) { return WebAssembly.instantiateStreaming( // Cast to any so there's no type checking issues with dnt // (https://github.com/denoland/wasmbuild/issues/92) /** @type {any} */ (wasmResponse), imports, ); } else { return WebAssembly.instantiate( await wasmResponse.arrayBuffer(), imports, ); } } default: throw new Error(`Unsupported protocol: ${url.protocol}`); } }}
/** @param {URL | string} url */async function fetchWithRetries(url, maxRetries = 5) { let sleepMs = 250; let iterationCount = 0; while (true) { iterationCount++; try { const res = await fetch(url); if (res.ok || iterationCount > maxRetries) { return res; } } catch (err) { if (iterationCount > maxRetries) { throw err; } } console.warn(`Failed fetching. Retrying in ${sleepMs}ms...`); await new Promise((resolve) => setTimeout(resolve, sleepMs)); sleepMs = Math.min(sleepMs * 2, 10_000); }}const isNodeOrDeno = typeof Deno === "object" || (typeof process !== "undefined" && process.versions != null && process.versions.node != null);
const loader = new WasmBuildLoader({ imports, cache: isNodeOrDeno ? (await import("https://deno.land/x/wasmbuild@0.15.6/loader/cache.ts")) .cacheToLocalDir : undefined,});/** * Options for instantiating a Wasm instance. * @typedef {Object} InstantiateOptions * @property {URL=} url - Optional url to the Wasm file to instantiate. * @property {DecompressCallback=} decompress - Callback to decompress the * raw Wasm file bytes before instantiating. */
/** Instantiates an instance of the Wasm module returning its functions. * @remarks It is safe to call this multiple times and once successfully * loaded it will always return a reference to the same object. * @param {InstantiateOptions=} opts */export async function instantiate(opts) { return (await instantiateWithInstance(opts)).exports;}
/** Instantiates an instance of the Wasm module along with its exports. * @remarks It is safe to call this multiple times and once successfully * loaded it will always return a reference to the same object. * @param {InstantiateOptions=} opts * @returns {Promise<{ * instance: WebAssembly.Instance; * exports: { build: typeof build; Parser : typeof Parser } * }>} */export async function instantiateWithInstance(opts) { const { instance } = await loader.load( opts?.url ?? new URL("eszip_wasm_bg.wasm", import.meta.url), opts?.decompress, ); wasm = wasm ?? instance.exports; cachedInt32Memory0 = cachedInt32Memory0 ?? new Int32Array(wasm.memory.buffer); cachedUint8Memory0 = cachedUint8Memory0 ?? new Uint8Array(wasm.memory.buffer); return { instance, exports: getWasmInstanceExports(), };}
function getWasmInstanceExports() { return { build, Parser };}
/** Gets if the Wasm module has been instantiated. */export function isInstantiated() { return loader.instance != null;}