@ermis-network/ermis-chat-sdk 1.0.8 → 2.0.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.
- package/bin/init-call.js +9 -0
- package/dist/index.browser.cjs +778 -1628
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.full-bundle.min.js +16 -18
- package/dist/index.browser.full-bundle.min.js.map +1 -1
- package/dist/index.browser.mjs +780 -1630
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +778 -1628
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +173 -40
- package/dist/index.d.ts +173 -40
- package/dist/index.mjs +780 -1630
- package/dist/index.mjs.map +1 -1
- package/dist/wasm_worker.worker.mjs +1596 -0
- package/dist/wasm_worker.worker.mjs.map +1 -0
- package/package.json +2 -2
- package/public/ermis_call_node_wasm_bg.wasm +0 -0
- package/src/channel.ts +117 -44
- package/src/channel_state.ts +6 -1
- package/src/client.ts +198 -56
- package/src/ermis_call_node.ts +123 -55
- package/src/index.ts +2 -1
- package/src/media_stream_receiver.ts +103 -35
- package/src/media_stream_sender.ts +72 -7
- package/src/signal_message.ts +48 -23
- package/src/system_message.ts +169 -27
- package/src/types.ts +13 -0
- package/src/utils.ts +22 -3
- package/src/wasm/ermis_call_node_wasm.d.ts +80 -78
- package/src/wasm/ermis_call_node_wasm.js +1427 -1357
- package/src/wasm_worker.ts +219 -0
- package/src/wasm_worker_proxy.ts +244 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/wasm/ermis_call_node_wasm.js","../src/wasm_worker.ts"],"sourcesContent":["let wasm;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n\tif (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n\t\tcachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n\t}\n\treturn cachedUint8ArrayMemory0;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n\tnumBytesDecoded += len;\n\tif (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n\t\tcachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\t\tcachedTextDecoder.decode();\n\t\tnumBytesDecoded = len;\n\t}\n\treturn cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction getStringFromWasm0(ptr, len) {\n\tptr = ptr >>> 0;\n\treturn decodeText(ptr, len);\n}\n\nlet heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n\tif (heap_next === heap.length) heap.push(heap.length + 1);\n\tconst idx = heap_next;\n\theap_next = heap[idx];\n\n\theap[idx] = obj;\n\treturn idx;\n}\n\nfunction getObject(idx) {\n\treturn heap[idx];\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n\tcachedTextEncoder.encodeInto = function (arg, view) {\n\t\tconst buf = cachedTextEncoder.encode(arg);\n\t\tview.set(buf);\n\t\treturn {\n\t\t\tread: arg.length,\n\t\t\twritten: buf.length,\n\t\t};\n\t};\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\tif (realloc === undefined) {\n\t\tconst buf = cachedTextEncoder.encode(arg);\n\t\tconst ptr = malloc(buf.length, 1) >>> 0;\n\t\tgetUint8ArrayMemory0()\n\t\t\t.subarray(ptr, ptr + buf.length)\n\t\t\t.set(buf);\n\t\tWASM_VECTOR_LEN = buf.length;\n\t\treturn ptr;\n\t}\n\n\tlet len = arg.length;\n\tlet ptr = malloc(len, 1) >>> 0;\n\n\tconst mem = getUint8ArrayMemory0();\n\n\tlet offset = 0;\n\n\tfor (; offset < len; offset++) {\n\t\tconst code = arg.charCodeAt(offset);\n\t\tif (code > 0x7f) break;\n\t\tmem[ptr + offset] = code;\n\t}\n\n\tif (offset !== len) {\n\t\tif (offset !== 0) {\n\t\t\targ = arg.slice(offset);\n\t\t}\n\t\tptr = realloc(ptr, len, (len = offset + arg.length * 3), 1) >>> 0;\n\t\tconst view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n\t\tconst ret = cachedTextEncoder.encodeInto(arg, view);\n\n\t\toffset += ret.written;\n\t\tptr = realloc(ptr, len, offset, 1) >>> 0;\n\t}\n\n\tWASM_VECTOR_LEN = offset;\n\treturn ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n\tif (\n\t\tcachedDataViewMemory0 === null ||\n\t\tcachedDataViewMemory0.buffer.detached === true ||\n\t\t(cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)\n\t) {\n\t\tcachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n\t}\n\treturn cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n\treturn x === undefined || x === null;\n}\n\nfunction debugString(val) {\n\t// primitive types\n\tconst type = typeof val;\n\tif (type == 'number' || type == 'boolean' || val == null) {\n\t\treturn `${val}`;\n\t}\n\tif (type == 'string') {\n\t\treturn `\"${val}\"`;\n\t}\n\tif (type == 'symbol') {\n\t\tconst description = val.description;\n\t\tif (description == null) {\n\t\t\treturn 'Symbol';\n\t\t} else {\n\t\t\treturn `Symbol(${description})`;\n\t\t}\n\t}\n\tif (type == 'function') {\n\t\tconst name = val.name;\n\t\tif (typeof name == 'string' && name.length > 0) {\n\t\t\treturn `Function(${name})`;\n\t\t} else {\n\t\t\treturn 'Function';\n\t\t}\n\t}\n\t// objects\n\tif (Array.isArray(val)) {\n\t\tconst length = val.length;\n\t\tlet debug = '[';\n\t\tif (length > 0) {\n\t\t\tdebug += debugString(val[0]);\n\t\t}\n\t\tfor (let i = 1; i < length; i++) {\n\t\t\tdebug += ', ' + debugString(val[i]);\n\t\t}\n\t\tdebug += ']';\n\t\treturn debug;\n\t}\n\t// Test for built-in\n\tconst builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n\tlet className;\n\tif (builtInMatches && builtInMatches.length > 1) {\n\t\tclassName = builtInMatches[1];\n\t} else {\n\t\t// Failed to match the standard '[object ClassName]'\n\t\treturn toString.call(val);\n\t}\n\tif (className == 'Object') {\n\t\t// we're a user defined class or Object\n\t\t// JSON.stringify avoids problems with cycles, and is generally much\n\t\t// easier than looping through ownProperties of `val`.\n\t\ttry {\n\t\t\treturn 'Object(' + JSON.stringify(val) + ')';\n\t\t} catch (_) {\n\t\t\treturn 'Object';\n\t\t}\n\t}\n\t// errors\n\tif (val instanceof Error) {\n\t\treturn `${val.name}: ${val.message}\\n${val.stack}`;\n\t}\n\t// TODO we could test for more things here, like `Set`s and `Map`s.\n\treturn className;\n}\n\nfunction handleError(f, args) {\n\ttry {\n\t\treturn f.apply(this, args);\n\t} catch (e) {\n\t\twasm.__wbindgen_export3(addHeapObject(e));\n\t}\n}\n\nfunction dropObject(idx) {\n\tif (idx < 132) return;\n\theap[idx] = heap_next;\n\theap_next = idx;\n}\n\nfunction takeObject(idx) {\n\tconst ret = getObject(idx);\n\tdropObject(idx);\n\treturn ret;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n\tptr = ptr >>> 0;\n\treturn getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nconst CLOSURE_DTORS =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((state) => state.dtor(state.a, state.b));\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n\tconst state = { a: arg0, b: arg1, cnt: 1, dtor };\n\tconst real = (...args) => {\n\t\t// First up with a closure we increment the internal reference\n\t\t// count. This ensures that the Rust closure environment won't\n\t\t// be deallocated while we're invoking it.\n\t\tstate.cnt++;\n\t\tconst a = state.a;\n\t\tstate.a = 0;\n\t\ttry {\n\t\t\treturn f(a, state.b, ...args);\n\t\t} finally {\n\t\t\tstate.a = a;\n\t\t\treal._wbg_cb_unref();\n\t\t}\n\t};\n\treal._wbg_cb_unref = () => {\n\t\tif (--state.cnt === 0) {\n\t\t\tstate.dtor(state.a, state.b);\n\t\t\tstate.a = 0;\n\t\t\tCLOSURE_DTORS.unregister(state);\n\t\t}\n\t};\n\tCLOSURE_DTORS.register(real, state, state);\n\treturn real;\n}\n\nfunction makeClosure(arg0, arg1, dtor, f) {\n\tconst state = { a: arg0, b: arg1, cnt: 1, dtor };\n\tconst real = (...args) => {\n\t\t// First up with a closure we increment the internal reference\n\t\t// count. This ensures that the Rust closure environment won't\n\t\t// be deallocated while we're invoking it.\n\t\tstate.cnt++;\n\t\ttry {\n\t\t\treturn f(state.a, state.b, ...args);\n\t\t} finally {\n\t\t\treal._wbg_cb_unref();\n\t\t}\n\t};\n\treal._wbg_cb_unref = () => {\n\t\tif (--state.cnt === 0) {\n\t\t\tstate.dtor(state.a, state.b);\n\t\t\tstate.a = 0;\n\t\t\tCLOSURE_DTORS.unregister(state);\n\t\t}\n\t};\n\tCLOSURE_DTORS.register(real, state, state);\n\treturn real;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n\tconst ptr = malloc(arg.length * 1, 1) >>> 0;\n\tgetUint8ArrayMemory0().set(arg, ptr / 1);\n\tWASM_VECTOR_LEN = arg.length;\n\treturn ptr;\n}\nfunction __wasm_bindgen_func_elem_12594(arg0, arg1) {\n\twasm.__wasm_bindgen_func_elem_12594(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_11460(arg0, arg1, arg2) {\n\twasm.__wasm_bindgen_func_elem_11460(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_5633(arg0, arg1) {\n\twasm.__wasm_bindgen_func_elem_5633(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_2279(arg0, arg1, arg2) {\n\twasm.__wasm_bindgen_func_elem_2279(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_12647(arg0, arg1, arg2) {\n\twasm.__wasm_bindgen_func_elem_12647(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_6078(arg0, arg1) {\n\twasm.__wasm_bindgen_func_elem_6078(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_14072(arg0, arg1, arg2, arg3) {\n\twasm.__wasm_bindgen_func_elem_14072(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\nconst __wbindgen_enum_BinaryType = ['blob', 'arraybuffer'];\n\nconst __wbindgen_enum_ReadableStreamType = ['bytes'];\n\nconst __wbindgen_enum_RequestCache = ['default', 'no-store', 'reload', 'no-cache', 'force-cache', 'only-if-cached'];\n\nconst __wbindgen_enum_RequestCredentials = ['omit', 'same-origin', 'include'];\n\nconst __wbindgen_enum_RequestMode = ['same-origin', 'no-cors', 'cors', 'navigate'];\n\nconst ConnectionStatsFinalization =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((ptr) => wasm.__wbg_connectionstats_free(ptr >>> 0, 1));\n\nexport class ConnectionStats {\n\t__destroy_into_raw() {\n\t\tconst ptr = this.__wbg_ptr;\n\t\tthis.__wbg_ptr = 0;\n\t\tConnectionStatsFinalization.unregister(this);\n\t\treturn ptr;\n\t}\n\n\tfree() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.__wbg_connectionstats_free(ptr, 0);\n\t}\n\t/**\n\t * @returns {string | undefined}\n\t */\n\tget connection_type() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.connectionstats_connection_type(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tlet v1;\n\t\t\tif (r0 !== 0) {\n\t\t\t\tv1 = getStringFromWasm0(r0, r1).slice();\n\t\t\t\twasm.__wbindgen_export4(r0, r1 * 1, 1);\n\t\t\t}\n\t\t\treturn v1;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {string | null} [value]\n\t */\n\tset connection_type(value) {\n\t\tvar ptr0 = isLikeNone(value) ? 0 : passStringToWasm0(value, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tvar len0 = WASM_VECTOR_LEN;\n\t\twasm.connectionstats_set_connection_type(this.__wbg_ptr, ptr0, len0);\n\t}\n\t/**\n\t * @param {string | null} [connection_type]\n\t * @param {number | null} [rtt_ms]\n\t * @param {number | null} [packet_loss]\n\t */\n\tconstructor(connection_type, rtt_ms, packet_loss) {\n\t\tvar ptr0 = isLikeNone(connection_type)\n\t\t\t? 0\n\t\t\t: passStringToWasm0(connection_type, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tvar len0 = WASM_VECTOR_LEN;\n\t\tconst ret = wasm.connectionstats_new(\n\t\t\tptr0,\n\t\t\tlen0,\n\t\t\t!isLikeNone(rtt_ms),\n\t\t\tisLikeNone(rtt_ms) ? 0 : rtt_ms,\n\t\t\t!isLikeNone(packet_loss),\n\t\t\tisLikeNone(packet_loss) ? 0 : packet_loss,\n\t\t);\n\t\tthis.__wbg_ptr = ret >>> 0;\n\t\tConnectionStatsFinalization.register(this, this.__wbg_ptr, this);\n\t\treturn this;\n\t}\n\t/**\n\t * @returns {number | undefined}\n\t */\n\tget rtt_ms() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.__wbg_get_connectionstats_rtt_ms(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);\n\t\t\treturn r0 === 0 ? undefined : r2;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {number | null} [arg0]\n\t */\n\tset rtt_ms(arg0) {\n\t\twasm.__wbg_set_connectionstats_rtt_ms(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);\n\t}\n\t/**\n\t * @returns {number | undefined}\n\t */\n\tget packet_loss() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.__wbg_get_connectionstats_packet_loss(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);\n\t\t\treturn r0 === 0 ? undefined : r2;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {number | null} [arg0]\n\t */\n\tset packet_loss(arg0) {\n\t\twasm.__wbg_set_connectionstats_packet_loss(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);\n\t}\n}\nif (Symbol.dispose) ConnectionStats.prototype[Symbol.dispose] = ConnectionStats.prototype.free;\n\nconst ErmisCallFinalization =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((ptr) => wasm.__wbg_ermiscall_free(ptr >>> 0, 1));\n\nexport class ErmisCall {\n\t__destroy_into_raw() {\n\t\tconst ptr = this.__wbg_ptr;\n\t\tthis.__wbg_ptr = 0;\n\t\tErmisCallFinalization.unregister(this);\n\t\treturn ptr;\n\t}\n\n\tfree() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.__wbg_ermiscall_free(ptr, 0);\n\t}\n\t/**\n\t * @returns {Promise<Uint8Array>}\n\t */\n\tasyncRecv() {\n\t\tconst ret = wasm.ermiscall_asyncRecv(this.__wbg_ptr);\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\tsendFrame(data) {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\tconst ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);\n\t\t\tconst len0 = WASM_VECTOR_LEN;\n\t\t\twasm.ermiscall_sendFrame(retptr, this.__wbg_ptr, ptr0, len0);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\tbeginWithGop(data) {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\tconst ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);\n\t\t\tconst len0 = WASM_VECTOR_LEN;\n\t\t\twasm.ermiscall_beginWithGop(retptr, this.__wbg_ptr, ptr0, len0);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {Promise<void>}\n\t */\n\tcloseEndpoint() {\n\t\tconst ret = wasm.ermiscall_closeEndpoint(this.__wbg_ptr);\n\t\treturn takeObject(ret);\n\t}\n\tnetworkChange() {\n\t\twasm.ermiscall_networkChange(this.__wbg_ptr);\n\t}\n\tnotifyNewGop() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_notifyNewGop(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {string | undefined}\n\t */\n\tconnectionType() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_connectionType(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tlet v1;\n\t\t\tif (r0 !== 0) {\n\t\t\t\tv1 = getStringFromWasm0(r0, r1).slice();\n\t\t\t\twasm.__wbindgen_export4(r0, r1 * 1, 1);\n\t\t\t}\n\t\t\treturn v1;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {number | undefined}\n\t */\n\troundTripTime() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_roundTripTime(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);\n\t\t\treturn r0 === 0 ? undefined : r2;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\tcloseConnection() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_closeConnection(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\tsendAudioFrame(data) {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\tconst ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);\n\t\t\tconst len0 = WASM_VECTOR_LEN;\n\t\t\twasm.ermiscall_sendAudioFrame(retptr, this.__wbg_ptr, ptr0, len0);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {Promise<void>}\n\t */\n\tacceptConnection() {\n\t\tconst ret = wasm.ermiscall_acceptConnection(this.__wbg_ptr);\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\tsendControlFrame(data) {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\tconst ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);\n\t\t\tconst len0 = WASM_VECTOR_LEN;\n\t\t\twasm.ermiscall_sendControlFrame(retptr, this.__wbg_ptr, ptr0, len0);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tif (r1) {\n\t\t\t\tthrow takeObject(r0);\n\t\t\t}\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {number | undefined}\n\t */\n\tcurrentPacketLoss() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_currentPacketLoss(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);\n\t\t\treturn r0 === 0 ? undefined : r2;\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @returns {Promise<string>}\n\t */\n\tgetLocalEndpointAddr() {\n\t\tconst ret = wasm.ermiscall_getLocalEndpointAddr(this.__wbg_ptr);\n\t\treturn takeObject(ret);\n\t}\n\tconstructor() {\n\t\tconst ret = wasm.ermiscall_new();\n\t\tthis.__wbg_ptr = ret >>> 0;\n\t\tErmisCallFinalization.register(this, this.__wbg_ptr, this);\n\t\treturn this;\n\t}\n\t/**\n\t * @returns {Uint8Array}\n\t */\n\trecv() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_recv(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tvar r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n\t\t\tif (r2) {\n\t\t\t\tthrow takeObject(r1);\n\t\t\t}\n\t\t\treturn takeObject(r0);\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n\t/**\n\t * @param {any} relay_urls\n\t * @param {Uint8Array | null} [secret_key]\n\t * @returns {Promise<void>}\n\t */\n\tspawn(relay_urls, secret_key) {\n\t\tvar ptr0 = isLikeNone(secret_key) ? 0 : passArray8ToWasm0(secret_key, wasm.__wbindgen_export);\n\t\tvar len0 = WASM_VECTOR_LEN;\n\t\tconst ret = wasm.ermiscall_spawn(this.__wbg_ptr, addHeapObject(relay_urls), ptr0, len0);\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @param {string} addr\n\t * @returns {Promise<void>}\n\t */\n\tconnect(addr) {\n\t\tconst ptr0 = passStringToWasm0(addr, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len0 = WASM_VECTOR_LEN;\n\t\tconst ret = wasm.ermiscall_connect(this.__wbg_ptr, ptr0, len0);\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @returns {any}\n\t */\n\tgetStats() {\n\t\ttry {\n\t\t\tconst retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n\t\t\twasm.ermiscall_getStats(retptr, this.__wbg_ptr);\n\t\t\tvar r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n\t\t\tvar r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n\t\t\tvar r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n\t\t\tif (r2) {\n\t\t\t\tthrow takeObject(r1);\n\t\t\t}\n\t\t\treturn takeObject(r0);\n\t\t} finally {\n\t\t\twasm.__wbindgen_add_to_stack_pointer(16);\n\t\t}\n\t}\n}\nif (Symbol.dispose) ErmisCall.prototype[Symbol.dispose] = ErmisCall.prototype.free;\n\nconst IntoUnderlyingByteSourceFinalization =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((ptr) => wasm.__wbg_intounderlyingbytesource_free(ptr >>> 0, 1));\n\nexport class IntoUnderlyingByteSource {\n\t__destroy_into_raw() {\n\t\tconst ptr = this.__wbg_ptr;\n\t\tthis.__wbg_ptr = 0;\n\t\tIntoUnderlyingByteSourceFinalization.unregister(this);\n\t\treturn ptr;\n\t}\n\n\tfree() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.__wbg_intounderlyingbytesource_free(ptr, 0);\n\t}\n\t/**\n\t * @returns {number}\n\t */\n\tget autoAllocateChunkSize() {\n\t\tconst ret = wasm.intounderlyingbytesource_autoAllocateChunkSize(this.__wbg_ptr);\n\t\treturn ret >>> 0;\n\t}\n\t/**\n\t * @param {ReadableByteStreamController} controller\n\t * @returns {Promise<any>}\n\t */\n\tpull(controller) {\n\t\tconst ret = wasm.intounderlyingbytesource_pull(this.__wbg_ptr, addHeapObject(controller));\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @param {ReadableByteStreamController} controller\n\t */\n\tstart(controller) {\n\t\twasm.intounderlyingbytesource_start(this.__wbg_ptr, addHeapObject(controller));\n\t}\n\t/**\n\t * @returns {ReadableStreamType}\n\t */\n\tget type() {\n\t\tconst ret = wasm.intounderlyingbytesource_type(this.__wbg_ptr);\n\t\treturn __wbindgen_enum_ReadableStreamType[ret];\n\t}\n\tcancel() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.intounderlyingbytesource_cancel(ptr);\n\t}\n}\nif (Symbol.dispose) IntoUnderlyingByteSource.prototype[Symbol.dispose] = IntoUnderlyingByteSource.prototype.free;\n\nconst IntoUnderlyingSinkFinalization =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((ptr) => wasm.__wbg_intounderlyingsink_free(ptr >>> 0, 1));\n\nexport class IntoUnderlyingSink {\n\t__destroy_into_raw() {\n\t\tconst ptr = this.__wbg_ptr;\n\t\tthis.__wbg_ptr = 0;\n\t\tIntoUnderlyingSinkFinalization.unregister(this);\n\t\treturn ptr;\n\t}\n\n\tfree() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.__wbg_intounderlyingsink_free(ptr, 0);\n\t}\n\t/**\n\t * @param {any} reason\n\t * @returns {Promise<any>}\n\t */\n\tabort(reason) {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\tconst ret = wasm.intounderlyingsink_abort(ptr, addHeapObject(reason));\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @returns {Promise<any>}\n\t */\n\tclose() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\tconst ret = wasm.intounderlyingsink_close(ptr);\n\t\treturn takeObject(ret);\n\t}\n\t/**\n\t * @param {any} chunk\n\t * @returns {Promise<any>}\n\t */\n\twrite(chunk) {\n\t\tconst ret = wasm.intounderlyingsink_write(this.__wbg_ptr, addHeapObject(chunk));\n\t\treturn takeObject(ret);\n\t}\n}\nif (Symbol.dispose) IntoUnderlyingSink.prototype[Symbol.dispose] = IntoUnderlyingSink.prototype.free;\n\nconst IntoUnderlyingSourceFinalization =\n\ttypeof FinalizationRegistry === 'undefined'\n\t\t? { register: () => {}, unregister: () => {} }\n\t\t: new FinalizationRegistry((ptr) => wasm.__wbg_intounderlyingsource_free(ptr >>> 0, 1));\n\nexport class IntoUnderlyingSource {\n\t__destroy_into_raw() {\n\t\tconst ptr = this.__wbg_ptr;\n\t\tthis.__wbg_ptr = 0;\n\t\tIntoUnderlyingSourceFinalization.unregister(this);\n\t\treturn ptr;\n\t}\n\n\tfree() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.__wbg_intounderlyingsource_free(ptr, 0);\n\t}\n\t/**\n\t * @param {ReadableStreamDefaultController} controller\n\t * @returns {Promise<any>}\n\t */\n\tpull(controller) {\n\t\tconst ret = wasm.intounderlyingsource_pull(this.__wbg_ptr, addHeapObject(controller));\n\t\treturn takeObject(ret);\n\t}\n\tcancel() {\n\t\tconst ptr = this.__destroy_into_raw();\n\t\twasm.intounderlyingsource_cancel(ptr);\n\t}\n}\nif (Symbol.dispose) IntoUnderlyingSource.prototype[Symbol.dispose] = IntoUnderlyingSource.prototype.free;\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n\tif (typeof Response === 'function' && module instanceof Response) {\n\t\tif (typeof WebAssembly.instantiateStreaming === 'function') {\n\t\t\ttry {\n\t\t\t\treturn await WebAssembly.instantiateStreaming(module, imports);\n\t\t\t} catch (e) {\n\t\t\t\tconst validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n\t\t\t\tif (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n',\n\t\t\t\t\t\te,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst bytes = await module.arrayBuffer();\n\t\treturn await WebAssembly.instantiate(bytes, imports);\n\t} else {\n\t\tconst instance = await WebAssembly.instantiate(module, imports);\n\n\t\tif (instance instanceof WebAssembly.Instance) {\n\t\t\treturn { instance, module };\n\t\t} else {\n\t\t\treturn instance;\n\t\t}\n\t}\n}\n\nfunction __wbg_get_imports() {\n\tconst imports = {};\n\timports.wbg = {};\n\timports.wbg.__wbg_Error_e83987f665cf5504 = function (arg0, arg1) {\n\t\tconst ret = Error(getStringFromWasm0(arg0, arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function (arg0, arg1) {\n\t\tconst ret = String(getObject(arg1));\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg___wbindgen_boolean_get_6d5a1ee65bab5f68 = function (arg0) {\n\t\tconst v = getObject(arg0);\n\t\tconst ret = typeof v === 'boolean' ? v : undefined;\n\t\treturn isLikeNone(ret) ? 0xffffff : ret ? 1 : 0;\n\t};\n\timports.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763 = function (arg0, arg1) {\n\t\tconst ret = debugString(getObject(arg1));\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg___wbindgen_is_function_ee8a6c5833c90377 = function (arg0) {\n\t\tconst ret = typeof getObject(arg0) === 'function';\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg___wbindgen_is_object_c818261d21f283a4 = function (arg0) {\n\t\tconst val = getObject(arg0);\n\t\tconst ret = typeof val === 'object' && val !== null;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg___wbindgen_is_string_fbb76cb2940daafd = function (arg0) {\n\t\tconst ret = typeof getObject(arg0) === 'string';\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg___wbindgen_is_undefined_2d472862bd29a478 = function (arg0) {\n\t\tconst ret = getObject(arg0) === undefined;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg___wbindgen_jsval_loose_eq_b664b38a2f582147 = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0) == getObject(arg1);\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg___wbindgen_number_get_a20bf9b85341449d = function (arg0, arg1) {\n\t\tconst obj = getObject(arg1);\n\t\tconst ret = typeof obj === 'number' ? obj : undefined;\n\t\tgetDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n\t};\n\timports.wbg.__wbg___wbindgen_string_get_e4f06c90489ad01b = function (arg0, arg1) {\n\t\tconst obj = getObject(arg1);\n\t\tconst ret = typeof obj === 'string' ? obj : undefined;\n\t\tvar ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tvar len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg___wbindgen_throw_b855445ff6a94295 = function (arg0, arg1) {\n\t\tthrow new Error(getStringFromWasm0(arg0, arg1));\n\t};\n\timports.wbg.__wbg__wbg_cb_unref_2454a539ea5790d9 = function (arg0) {\n\t\tgetObject(arg0)._wbg_cb_unref();\n\t};\n\timports.wbg.__wbg_abort_28ad55c5825b004d = function (arg0, arg1) {\n\t\tgetObject(arg0).abort(getObject(arg1));\n\t};\n\timports.wbg.__wbg_abort_e7eb059f72f9ed0c = function (arg0) {\n\t\tgetObject(arg0).abort();\n\t};\n\timports.wbg.__wbg_addEventListener_40dc0fc428fc49e1 = function () {\n\t\treturn handleError(function (arg0, arg1, arg2, arg3) {\n\t\t\tgetObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_append_b577eb3a177bc0fa = function () {\n\t\treturn handleError(function (arg0, arg1, arg2, arg3, arg4) {\n\t\t\tgetObject(arg0).append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_body_587542b2fd8e06c0 = function (arg0) {\n\t\tconst ret = getObject(arg0).body;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_buffer_ccc4520b36d3ccf4 = function (arg0) {\n\t\tconst ret = getObject(arg0).buffer;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_byobRequest_2344e6975f27456e = function (arg0) {\n\t\tconst ret = getObject(arg0).byobRequest;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_byteLength_bcd42e4025299788 = function (arg0) {\n\t\tconst ret = getObject(arg0).byteLength;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_byteOffset_ca3a6cf7944b364b = function (arg0) {\n\t\tconst ret = getObject(arg0).byteOffset;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_call_525440f72fbfc0ea = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tconst ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_call_e762c39fa8ea36bf = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tconst ret = getObject(arg0).call(getObject(arg1));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_cancel_48ab6f9dc366e369 = function (arg0) {\n\t\tconst ret = getObject(arg0).cancel();\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_catch_943836faa5d29bfb = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0).catch(getObject(arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_clearTimeout_15dfc3d1dcb635c6 = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tgetObject(arg0).clearTimeout(takeObject(arg1));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_clearTimeout_7a42b49784aea641 = function (arg0) {\n\t\tconst ret = clearTimeout(takeObject(arg0));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_close_5a6caed3231b68cd = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tgetObject(arg0).close();\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_close_6956df845478561a = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tgetObject(arg0).close();\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_close_885e277edf06b3fa = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tgetObject(arg0).close();\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_code_20d453b11b200026 = function (arg0) {\n\t\tconst ret = getObject(arg0).code;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_code_218f5fdf8c7fcabd = function (arg0) {\n\t\tconst ret = getObject(arg0).code;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_crypto_574e78ad8b13b65f = function (arg0) {\n\t\tconst ret = getObject(arg0).crypto;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_data_ee4306d069f24f2d = function (arg0) {\n\t\tconst ret = getObject(arg0).data;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_done_2042aa2670fb1db1 = function (arg0) {\n\t\tconst ret = getObject(arg0).done;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_enqueue_7b18a650aec77898 = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tgetObject(arg0).enqueue(getObject(arg1));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_fetch_74a3e84ebd2c9a0e = function (arg0) {\n\t\tconst ret = fetch(getObject(arg0));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_fetch_f8ba0e29a9d6de0d = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0).fetch(getObject(arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_getRandomValues_1c61fac11405ffdc = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tglobalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tgetObject(arg0).getRandomValues(getObject(arg1));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_getReader_48e00749fe3f6089 = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tconst ret = getObject(arg0).getReader();\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_getTime_14776bfb48a1bff9 = function (arg0) {\n\t\tconst ret = getObject(arg0).getTime();\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_get_7bed016f185add81 = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0)[arg1 >>> 0];\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_get_done_a0463af43a1fc764 = function (arg0) {\n\t\tconst ret = getObject(arg0).done;\n\t\treturn isLikeNone(ret) ? 0xffffff : ret ? 1 : 0;\n\t};\n\timports.wbg.__wbg_get_efcb449f58ec27c2 = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tconst ret = Reflect.get(getObject(arg0), getObject(arg1));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_get_value_5ce96c9f81ce7398 = function (arg0) {\n\t\tconst ret = getObject(arg0).value;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_has_787fafc980c3ccdb = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tconst ret = Reflect.has(getObject(arg0), getObject(arg1));\n\t\t\treturn ret;\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_headers_b87d7eaba61c3278 = function (arg0) {\n\t\tconst ret = getObject(arg0).headers;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_instanceof_ArrayBuffer_70beb1189ca63b38 = function (arg0) {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = getObject(arg0) instanceof ArrayBuffer;\n\t\t} catch (_) {\n\t\t\tresult = false;\n\t\t}\n\t\tconst ret = result;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_instanceof_Blob_23b3322f66e5a83b = function (arg0) {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = getObject(arg0) instanceof Blob;\n\t\t} catch (_) {\n\t\t\tresult = false;\n\t\t}\n\t\tconst ret = result;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_instanceof_Response_f4f3e87e07f3135c = function (arg0) {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = getObject(arg0) instanceof Response;\n\t\t} catch (_) {\n\t\t\tresult = false;\n\t\t}\n\t\tconst ret = result;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_instanceof_Uint8Array_20c8e73002f7af98 = function (arg0) {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = getObject(arg0) instanceof Uint8Array;\n\t\t} catch (_) {\n\t\t\tresult = false;\n\t\t}\n\t\tconst ret = result;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_isArray_96e0af9891d0945d = function (arg0) {\n\t\tconst ret = Array.isArray(getObject(arg0));\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_iterator_e5822695327a3c39 = function () {\n\t\tconst ret = Symbol.iterator;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_length_69bca3cb64fc8748 = function (arg0) {\n\t\tconst ret = getObject(arg0).length;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_length_cdd215e10d9dd507 = function (arg0) {\n\t\tconst ret = getObject(arg0).length;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_log_ee0138cca4957740 = function (arg0, arg1) {\n\t\tconsole.log(getStringFromWasm0(arg0, arg1));\n\t};\n\timports.wbg.__wbg_message_bd42dbe3f2f3ed8e = function (arg0, arg1) {\n\t\tconst ret = getObject(arg1).message;\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function (arg0) {\n\t\tconst ret = getObject(arg0).msCrypto;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_0_f9740686d739025c = function () {\n\t\tconst ret = new Date();\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_1acc0b6eea89d040 = function () {\n\t\tconst ret = new Object();\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_2531773dac38ebb3 = function () {\n\t\treturn handleError(function () {\n\t\t\tconst ret = new AbortController();\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_new_3c3d849046688a66 = function (arg0, arg1) {\n\t\ttry {\n\t\t\tvar state0 = { a: arg0, b: arg1 };\n\t\t\tvar cb0 = (arg0, arg1) => {\n\t\t\t\tconst a = state0.a;\n\t\t\t\tstate0.a = 0;\n\t\t\t\ttry {\n\t\t\t\t\treturn __wasm_bindgen_func_elem_14072(a, state0.b, arg0, arg1);\n\t\t\t\t} finally {\n\t\t\t\t\tstate0.a = a;\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst ret = new Promise(cb0);\n\t\t\treturn addHeapObject(ret);\n\t\t} finally {\n\t\t\tstate0.a = state0.b = 0;\n\t\t}\n\t};\n\timports.wbg.__wbg_new_5a79be3ab53b8aa5 = function (arg0) {\n\t\tconst ret = new Uint8Array(getObject(arg0));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_881c4fe631eee9ad = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tconst ret = new WebSocket(getStringFromWasm0(arg0, arg1));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_new_9edf9838a2def39c = function () {\n\t\treturn handleError(function () {\n\t\t\tconst ret = new Headers();\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_new_a7442b4b19c1a356 = function (arg0, arg1) {\n\t\tconst ret = new Error(getStringFromWasm0(arg0, arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_e17d9f43105b08be = function () {\n\t\tconst ret = new Array();\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_from_slice_92f4d78ca282a2d2 = function (arg0, arg1) {\n\t\tconst ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_no_args_ee98eee5275000a4 = function (arg0, arg1) {\n\t\tconst ret = new Function(getStringFromWasm0(arg0, arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_with_byte_offset_and_length_46e3e6a5e9f9e89b = function (arg0, arg1, arg2) {\n\t\tconst ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_with_length_01aa0dc35aa13543 = function (arg0) {\n\t\tconst ret = new Uint8Array(arg0 >>> 0);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_new_with_str_and_init_0ae7728b6ec367b1 = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tconst ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_new_with_str_sequence_57a88eb77393f23f = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tconst ret = new WebSocket(getStringFromWasm0(arg0, arg1), getObject(arg2));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_next_020810e0ae8ebcb0 = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tconst ret = getObject(arg0).next();\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_next_2c826fe5dfec6b6a = function (arg0) {\n\t\tconst ret = getObject(arg0).next;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_node_905d3e251edff8a2 = function (arg0) {\n\t\tconst ret = getObject(arg0).node;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_now_2c95c9de01293173 = function (arg0) {\n\t\tconst ret = getObject(arg0).now();\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_now_793306c526e2e3b6 = function () {\n\t\tconst ret = Date.now();\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_performance_7a3ffd0b17f663ad = function (arg0) {\n\t\tconst ret = getObject(arg0).performance;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function (arg0) {\n\t\tconst ret = getObject(arg0).process;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_prototypesetcall_2a6620b6922694b2 = function (arg0, arg1, arg2) {\n\t\tUint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n\t};\n\timports.wbg.__wbg_push_df81a39d04db858c = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0).push(getObject(arg1));\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_queueMicrotask_34d692c25c47d05b = function (arg0) {\n\t\tconst ret = getObject(arg0).queueMicrotask;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_queueMicrotask_9d76cacb20c84d58 = function (arg0) {\n\t\tqueueMicrotask(getObject(arg0));\n\t};\n\timports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tgetObject(arg0).randomFillSync(takeObject(arg1));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_read_48f1593df542f968 = function (arg0) {\n\t\tconst ret = getObject(arg0).read();\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_readyState_97984f126080aeda = function (arg0) {\n\t\tconst ret = getObject(arg0).readyState;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_reason_1cced37e3a93763e = function (arg0, arg1) {\n\t\tconst ret = getObject(arg1).reason;\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg_releaseLock_5d0b5a68887b891d = function (arg0) {\n\t\tgetObject(arg0).releaseLock();\n\t};\n\timports.wbg.__wbg_removeEventListener_924d9db66a4f775d = function () {\n\t\treturn handleError(function (arg0, arg1, arg2, arg3) {\n\t\t\tgetObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_require_60cc747a6bc5215a = function () {\n\t\treturn handleError(function () {\n\t\t\tconst ret = module.require;\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_resolve_caf97c30b83f7053 = function (arg0) {\n\t\tconst ret = Promise.resolve(getObject(arg0));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_respond_0f4dbf5386f5c73e = function () {\n\t\treturn handleError(function (arg0, arg1) {\n\t\t\tgetObject(arg0).respond(arg1 >>> 0);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_send_171576d2f7487517 = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tgetObject(arg0).send(getStringFromWasm0(arg1, arg2));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_send_3d2cf376613294f0 = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tgetObject(arg0).send(getArrayU8FromWasm0(arg1, arg2));\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_setTimeout_4eb823e8b72fbe79 = function () {\n\t\treturn handleError(function (arg0, arg1, arg2) {\n\t\t\tconst ret = getObject(arg0).setTimeout(takeObject(arg1), arg2);\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_setTimeout_7bb3429662ab1e70 = function (arg0, arg1) {\n\t\tconst ret = setTimeout(getObject(arg0), arg1);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_set_3f1d0b984ed272ed = function (arg0, arg1, arg2) {\n\t\tgetObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n\t};\n\timports.wbg.__wbg_set_9e6516df7b7d0f19 = function (arg0, arg1, arg2) {\n\t\tgetObject(arg0).set(getArrayU8FromWasm0(arg1, arg2));\n\t};\n\timports.wbg.__wbg_set_binaryType_9d839cea8fcdc5c3 = function (arg0, arg1) {\n\t\tgetObject(arg0).binaryType = __wbindgen_enum_BinaryType[arg1];\n\t};\n\timports.wbg.__wbg_set_body_3c365989753d61f4 = function (arg0, arg1) {\n\t\tgetObject(arg0).body = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_cache_2f9deb19b92b81e3 = function (arg0, arg1) {\n\t\tgetObject(arg0).cache = __wbindgen_enum_RequestCache[arg1];\n\t};\n\timports.wbg.__wbg_set_credentials_f621cd2d85c0c228 = function (arg0, arg1) {\n\t\tgetObject(arg0).credentials = __wbindgen_enum_RequestCredentials[arg1];\n\t};\n\timports.wbg.__wbg_set_handle_event_b2de49ad6c81e3c8 = function (arg0, arg1) {\n\t\tgetObject(arg0).handleEvent = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_headers_6926da238cd32ee4 = function (arg0, arg1) {\n\t\tgetObject(arg0).headers = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_method_c02d8cbbe204ac2d = function (arg0, arg1, arg2) {\n\t\tgetObject(arg0).method = getStringFromWasm0(arg1, arg2);\n\t};\n\timports.wbg.__wbg_set_mode_52ef73cfa79639cb = function (arg0, arg1) {\n\t\tgetObject(arg0).mode = __wbindgen_enum_RequestMode[arg1];\n\t};\n\timports.wbg.__wbg_set_onclose_c09e4f7422de8dae = function (arg0, arg1) {\n\t\tgetObject(arg0).onclose = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_onerror_337a3a2db9517378 = function (arg0, arg1) {\n\t\tgetObject(arg0).onerror = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_onmessage_8661558551a89792 = function (arg0, arg1) {\n\t\tgetObject(arg0).onmessage = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_onopen_efccb9305427b907 = function (arg0, arg1) {\n\t\tgetObject(arg0).onopen = getObject(arg1);\n\t};\n\timports.wbg.__wbg_set_signal_dda2cf7ccb6bee0f = function (arg0, arg1) {\n\t\tgetObject(arg0).signal = getObject(arg1);\n\t};\n\timports.wbg.__wbg_signal_4db5aa055bf9eb9a = function (arg0) {\n\t\tconst ret = getObject(arg0).signal;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_static_accessor_GLOBAL_89e1d9ac6a1b250e = function () {\n\t\tconst ret = typeof global === 'undefined' ? null : global;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_static_accessor_GLOBAL_THIS_8b530f326a9e48ac = function () {\n\t\tconst ret = typeof globalThis === 'undefined' ? null : globalThis;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_static_accessor_SELF_6fdf4b64710cc91b = function () {\n\t\tconst ret = typeof self === 'undefined' ? null : self;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_static_accessor_WINDOW_b45bfc5a37f6cfa2 = function () {\n\t\tconst ret = typeof window === 'undefined' ? null : window;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_status_de7eed5a7a5bfd5d = function (arg0) {\n\t\tconst ret = getObject(arg0).status;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbg_stringify_b5fb28f6465d9c3e = function () {\n\t\treturn handleError(function (arg0) {\n\t\t\tconst ret = JSON.stringify(getObject(arg0));\n\t\t\treturn addHeapObject(ret);\n\t\t}, arguments);\n\t};\n\timports.wbg.__wbg_subarray_480600f3d6a9f26c = function (arg0, arg1, arg2) {\n\t\tconst ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_then_4f46f6544e6b4a28 = function (arg0, arg1) {\n\t\tconst ret = getObject(arg0).then(getObject(arg1));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_then_70d05cf780a18d77 = function (arg0, arg1, arg2) {\n\t\tconst ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_url_9bd0af1cd8643de7 = function (arg0, arg1) {\n\t\tconst ret = getObject(arg1).url;\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg_url_b36d2a5008eb056f = function (arg0, arg1) {\n\t\tconst ret = getObject(arg1).url;\n\t\tconst ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n\t\tconst len1 = WASM_VECTOR_LEN;\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n\t\tgetDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n\t};\n\timports.wbg.__wbg_value_692627309814bb8c = function (arg0) {\n\t\tconst ret = getObject(arg0).value;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_versions_c01dfd4722a88165 = function (arg0) {\n\t\tconst ret = getObject(arg0).versions;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_view_f6c15ac9fed63bbd = function (arg0) {\n\t\tconst ret = getObject(arg0).view;\n\t\treturn isLikeNone(ret) ? 0 : addHeapObject(ret);\n\t};\n\timports.wbg.__wbg_wasClean_3d7c0cf05bd0a123 = function (arg0) {\n\t\tconst ret = getObject(arg0).wasClean;\n\t\treturn ret;\n\t};\n\timports.wbg.__wbindgen_cast_03c7ce370dde4234 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 545, function: Function { arguments: [NamedExternref(\"CloseEvent\")], shim_idx: 546, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n\t\tconst ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_2072, __wasm_bindgen_func_elem_2279);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_0548e2a34f33830b = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 1340, function: Function { arguments: [], shim_idx: 1341, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n\t\tconst ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_6067, __wasm_bindgen_func_elem_6078);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Ref(String) -> Externref`.\n\t\tconst ret = getStringFromWasm0(arg0, arg1);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_297907e58b496a50 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 2446, function: Function { arguments: [], shim_idx: 2447, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n\t\tconst ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_12577, __wasm_bindgen_func_elem_12594);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_5f086fd16774f149 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 2366, function: Function { arguments: [NamedExternref(\"MessageEvent\")], shim_idx: 2367, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n\t\tconst ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_11415, __wasm_bindgen_func_elem_11460);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_81d295fd67d7c7c1 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 2454, function: Function { arguments: [Externref], shim_idx: 2455, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n\t\tconst ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_12631, __wasm_bindgen_func_elem_12647);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_aeaa8ca4ff3b8539 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Closure(Closure { dtor_idx: 1248, function: Function { arguments: [], shim_idx: 1249, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n\t\tconst ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_5618, __wasm_bindgen_func_elem_5633);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_cb9088102bce6b30 = function (arg0, arg1) {\n\t\t// Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n\t\tconst ret = getArrayU8FromWasm0(arg0, arg1);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function (arg0) {\n\t\t// Cast intrinsic for `F64 -> Externref`.\n\t\tconst ret = arg0;\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_object_clone_ref = function (arg0) {\n\t\tconst ret = getObject(arg0);\n\t\treturn addHeapObject(ret);\n\t};\n\timports.wbg.__wbindgen_object_drop_ref = function (arg0) {\n\t\ttakeObject(arg0);\n\t};\n\n\treturn imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n\twasm = instance.exports;\n\t__wbg_init.__wbindgen_wasm_module = module;\n\tcachedDataViewMemory0 = null;\n\tcachedUint8ArrayMemory0 = null;\n\n\treturn wasm;\n}\n\nfunction initSync(module) {\n\tif (wasm !== undefined) return wasm;\n\n\tif (typeof module !== 'undefined') {\n\t\tif (Object.getPrototypeOf(module) === Object.prototype) {\n\t\t\t({ module } = module);\n\t\t} else {\n\t\t\tconsole.warn('using deprecated parameters for `initSync()`; pass a single object instead');\n\t\t}\n\t}\n\n\tconst imports = __wbg_get_imports();\n\n\tif (!(module instanceof WebAssembly.Module)) {\n\t\tmodule = new WebAssembly.Module(module);\n\t}\n\n\tconst instance = new WebAssembly.Instance(module, imports);\n\n\treturn __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n\tif (wasm !== undefined) return wasm;\n\n\tif (typeof module_or_path !== 'undefined') {\n\t\tif (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n\t\t\t({ module_or_path } = module_or_path);\n\t\t} else {\n\t\t\tconsole.warn('using deprecated parameters for the initialization function; pass a single object instead');\n\t\t}\n\t}\n\n\tif (typeof module_or_path === 'undefined') {\n\t\tmodule_or_path = '/ermis_call_node_wasm_bg.wasm';\n\t}\n\tconst imports = __wbg_get_imports();\n\n\tif (\n\t\ttypeof module_or_path === 'string' ||\n\t\t(typeof Request === 'function' && module_or_path instanceof Request) ||\n\t\t(typeof URL === 'function' && module_or_path instanceof URL)\n\t) {\n\t\tmodule_or_path = fetch(module_or_path);\n\t}\n\n\tconst { instance, module } = await __wbg_load(await module_or_path, imports);\n\n\treturn __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/**\n * WASM Worker — chạy ErmisCall WASM instance trên Worker thread.\n *\n * Mọi WASM sync calls (sendFrame, sendAudioFrame, sendControlFrame) chạy ở đây,\n * KHÔNG BAO GIỜ block Main Thread. Khi P2P connection congested (peer mạng yếu),\n * Worker thread bị block nhưng UI vẫn responsive.\n *\n * Communication: postMessage với Transferable buffers (zero-copy).\n */\n\n// @ts-ignore — WASM module import sẽ được resolve bởi bundler\nimport { initSync, ErmisCall } from './wasm/ermis_call_node_wasm';\n\nlet ermisCall: ErmisCall | null = null;\nlet isRecvActive = false;\n\n/** Request types từ Main Thread */\ntype WorkerRequest =\n | { id: number; type: 'init'; wasmBytes: ArrayBuffer }\n | { id: number; type: 'spawn'; relayUrls: string[] }\n | { id: number; type: 'getLocalEndpointAddr' }\n | { id: number; type: 'connect'; address: string }\n | { id: number; type: 'acceptConnection' }\n | { id: number; type: 'sendFrame'; data: Uint8Array }\n | { id: number; type: 'beginWithGop'; data: Uint8Array }\n | { id: number; type: 'sendAudioFrame'; data: Uint8Array }\n | { id: number; type: 'sendControlFrame'; data: Uint8Array }\n | { id: number; type: 'closeEndpoint' }\n | { id: number; type: 'closeConnection' }\n | { id: number; type: 'networkChange' }\n | { id: number; type: 'startRecvLoop' }\n | { id: number; type: 'stopRecvLoop' }\n | { id: number; type: 'getStats' }\n | { id: number; type: 'terminate' };\n\n/** Helper: gửi success response */\nfunction sendResult(id: number, data?: any) {\n self.postMessage({ id, type: 'result', data });\n}\n\n/** Helper: gửi error response */\nfunction sendError(id: number, error: string) {\n self.postMessage({ id, type: 'error', error });\n}\n\n/** Helper: sleep */\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Receive loop — chạy liên tục trong Worker.\n * asyncRecv() block Worker thread khi chờ data — KHÔNG ảnh hưởng Main Thread.\n * Data nhận được gửi về Main Thread qua postMessage với Transferable.\n */\nasync function recvLoop() {\n while (isRecvActive && ermisCall) {\n try {\n const data = await ermisCall.asyncRecv();\n // Transfer buffer ownership → zero-copy\n (self as unknown as { postMessage: (msg: any, transfer?: Transferable[]) => void }).postMessage(\n { type: 'recv_data', data },\n [data.buffer],\n );\n } catch (error) {\n if (!isRecvActive) break; // Đã dừng — không cần log\n (self as unknown as { postMessage: (msg: any, transfer?: Transferable[]) => void }).postMessage({\n type: 'recv_error',\n error: String(error),\n });\n await sleep(200); // Backoff trước khi thử lại\n }\n }\n}\n\n/** Main message handler */\nself.onmessage = async (e: MessageEvent<WorkerRequest>) => {\n const msg = e.data;\n\n try {\n switch (msg.type) {\n // === LIFECYCLE ===\n case 'init': {\n // Nhận WASM bytes từ Main Thread → compile thành Module → initSync\n const wasmModule = new WebAssembly.Module(msg.wasmBytes);\n initSync(wasmModule);\n ermisCall = new ErmisCall();\n sendResult(msg.id);\n break;\n }\n\n case 'spawn': {\n if (!ermisCall) throw new Error('WASM not initialized');\n await ermisCall.spawn(msg.relayUrls);\n sendResult(msg.id);\n break;\n }\n\n case 'getLocalEndpointAddr': {\n if (!ermisCall) throw new Error('WASM not initialized');\n const addr = await ermisCall.getLocalEndpointAddr();\n sendResult(msg.id, addr);\n break;\n }\n\n case 'connect': {\n if (!ermisCall) throw new Error('WASM not initialized');\n await ermisCall.connect(msg.address);\n sendResult(msg.id);\n break;\n }\n\n case 'acceptConnection': {\n if (!ermisCall) throw new Error('WASM not initialized');\n await ermisCall.acceptConnection();\n sendResult(msg.id);\n break;\n }\n\n // === DATA SEND (blocking calls — now safe in Worker) ===\n case 'sendFrame': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.sendFrame(msg.data);\n sendResult(msg.id);\n break;\n }\n\n case 'beginWithGop': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.beginWithGop(msg.data);\n sendResult(msg.id);\n break;\n }\n\n case 'sendAudioFrame': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.sendAudioFrame(msg.data);\n sendResult(msg.id);\n break;\n }\n\n case 'sendControlFrame': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.sendControlFrame(msg.data);\n sendResult(msg.id);\n break;\n }\n\n // === RECEIVE LOOP ===\n case 'startRecvLoop': {\n isRecvActive = true;\n sendResult(msg.id);\n // Start loop (fire-and-forget — runs until stopRecvLoop)\n recvLoop();\n break;\n }\n\n case 'stopRecvLoop': {\n isRecvActive = false;\n sendResult(msg.id);\n break;\n }\n\n // === CONTROL ===\n case 'closeEndpoint': {\n if (!ermisCall) throw new Error('WASM not initialized');\n await ermisCall.closeEndpoint();\n sendResult(msg.id);\n break;\n }\n\n case 'closeConnection': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.closeConnection();\n sendResult(msg.id);\n break;\n }\n\n case 'networkChange': {\n if (!ermisCall) throw new Error('WASM not initialized');\n ermisCall.networkChange();\n sendResult(msg.id);\n break;\n }\n\n case 'getStats': {\n if (!ermisCall) throw new Error('WASM not initialized');\n const stats = ermisCall.getStats();\n sendResult(msg.id, stats);\n break;\n }\n\n case 'terminate': {\n isRecvActive = false;\n if (ermisCall) {\n try {\n ermisCall.closeConnection();\n } catch {\n /* ignore */\n }\n try {\n ermisCall.free();\n } catch {\n /* ignore */\n }\n ermisCall = null;\n }\n sendResult(msg.id);\n // Worker sẽ bị terminate bởi Main Thread sau khi nhận result\n break;\n }\n\n default:\n sendError((msg as any).id, `Unknown message type: ${(msg as any).type}`);\n }\n } catch (error) {\n sendError(msg.id, String(error));\n }\n};\n"],"mappings":"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","names":["ptr","module","arg0","arg1"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ermis-network/ermis-chat-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Ermis Chat SDK",
|
|
5
5
|
"author": "Ermis",
|
|
6
6
|
"homepage": "https://ermis.network/",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"typescript": "^5.9.3"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
|
-
"build": "
|
|
65
|
+
"build": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\" && tsup",
|
|
66
66
|
"dev": "tsup --watch",
|
|
67
67
|
"types": "tsc --noEmit"
|
|
68
68
|
}
|
|
Binary file
|
package/src/channel.ts
CHANGED
|
@@ -839,10 +839,16 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
839
839
|
|
|
840
840
|
// update the channel id if it was missing
|
|
841
841
|
|
|
842
|
-
|
|
842
|
+
// update the channel id if it was missing or temporary
|
|
843
|
+
const oldCid = this.cid;
|
|
844
|
+
if (oldCid !== state.channel.cid) {
|
|
843
845
|
this.id = state.channel.id;
|
|
844
846
|
this.cid = state.channel.cid;
|
|
845
847
|
|
|
848
|
+
if (oldCid in this.getClient().activeChannels) {
|
|
849
|
+
delete this.getClient().activeChannels[oldCid];
|
|
850
|
+
}
|
|
851
|
+
|
|
846
852
|
// set the channel as active...
|
|
847
853
|
const membersStr = state.channel.members
|
|
848
854
|
.map((member) => member.user_id || member.user?.id)
|
|
@@ -859,6 +865,8 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
859
865
|
if (!(this.cid in this.getClient().activeChannels)) {
|
|
860
866
|
this.getClient().activeChannels[this.cid] = this;
|
|
861
867
|
}
|
|
868
|
+
} else if (!(this.cid in this.getClient().activeChannels)) {
|
|
869
|
+
this.getClient().activeChannels[this.cid] = this;
|
|
862
870
|
}
|
|
863
871
|
|
|
864
872
|
// add any messages to our channel state
|
|
@@ -1037,62 +1045,99 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1037
1045
|
|
|
1038
1046
|
async getThumbBlobVideo(file: File): Promise<Blob | null> {
|
|
1039
1047
|
return new Promise((resolve) => {
|
|
1040
|
-
const seekTo = 0.1;
|
|
1041
1048
|
const videoPlayer = document.createElement('video');
|
|
1042
1049
|
videoPlayer.src = URL.createObjectURL(file);
|
|
1043
|
-
videoPlayer.crossOrigin = 'anonymous';
|
|
1050
|
+
videoPlayer.crossOrigin = 'anonymous';
|
|
1051
|
+
videoPlayer.muted = true; // Đảm bảo không phát tiếng nếu browser tự phát
|
|
1044
1052
|
videoPlayer.load();
|
|
1045
1053
|
|
|
1054
|
+
let attempts = 0;
|
|
1055
|
+
const maxAttempts = 5;
|
|
1056
|
+
const seekInterval = 1.0; // Nhảy mỗi lần 1 giây nếu gặp ảnh đen
|
|
1057
|
+
|
|
1058
|
+
const cleanup = () => {
|
|
1059
|
+
URL.revokeObjectURL(videoPlayer.src);
|
|
1060
|
+
videoPlayer.remove();
|
|
1061
|
+
};
|
|
1062
|
+
|
|
1046
1063
|
videoPlayer.addEventListener('error', () => {
|
|
1047
1064
|
console.error('Error when loading video file.');
|
|
1065
|
+
cleanup();
|
|
1048
1066
|
resolve(null);
|
|
1049
1067
|
});
|
|
1050
1068
|
|
|
1051
|
-
|
|
1052
|
-
if (videoPlayer.duration < seekTo) {
|
|
1053
|
-
console.error('Video is too short.');
|
|
1054
|
-
resolve(null);
|
|
1055
|
-
return;
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
setTimeout(() => {
|
|
1059
|
-
videoPlayer.currentTime = seekTo;
|
|
1060
|
-
}, 200);
|
|
1061
|
-
});
|
|
1062
|
-
|
|
1063
|
-
videoPlayer.addEventListener('seeked', () => {
|
|
1069
|
+
const captureFrame = () => {
|
|
1064
1070
|
try {
|
|
1065
1071
|
const canvas = document.createElement('canvas');
|
|
1066
1072
|
canvas.width = videoPlayer.videoWidth;
|
|
1067
1073
|
canvas.height = videoPlayer.videoHeight;
|
|
1068
|
-
const ctx = canvas.getContext('2d');
|
|
1074
|
+
const ctx = canvas.getContext('2d', { willReadFrequently: true });
|
|
1069
1075
|
|
|
1070
1076
|
if (!ctx) {
|
|
1071
1077
|
console.error('Failed to create canvas context.');
|
|
1078
|
+
cleanup();
|
|
1072
1079
|
resolve(null);
|
|
1073
1080
|
return;
|
|
1074
1081
|
}
|
|
1075
1082
|
|
|
1076
1083
|
ctx.drawImage(videoPlayer, 0, 0, canvas.width, canvas.height);
|
|
1077
1084
|
|
|
1078
|
-
|
|
1085
|
+
// Kiểm tra xem có phải khung hình đen không
|
|
1086
|
+
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
1087
|
+
const data = imageData.data;
|
|
1088
|
+
let totalLuminance = 0;
|
|
1089
|
+
const sampleStep = 40; // Lấy mẫu để tối ưu hiệu năng
|
|
1090
|
+
let samples = 0;
|
|
1091
|
+
|
|
1092
|
+
for (let i = 0; i < data.length; i += sampleStep * 4) {
|
|
1093
|
+
const r = data[i];
|
|
1094
|
+
const g = data[i + 1];
|
|
1095
|
+
const b = data[i + 2];
|
|
1096
|
+
// Công thức tính độ sáng tiêu chuẩn (ITU-R BT.709)
|
|
1097
|
+
totalLuminance += 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
1098
|
+
samples++;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
const avgLuminance = totalLuminance / samples;
|
|
1102
|
+
|
|
1103
|
+
// Nếu ảnh quá tối (đen) và vẫn còn lượt thử, nhảy tiếp
|
|
1104
|
+
if (
|
|
1105
|
+
avgLuminance < 15 &&
|
|
1106
|
+
attempts < maxAttempts &&
|
|
1107
|
+
videoPlayer.currentTime + seekInterval < videoPlayer.duration
|
|
1108
|
+
) {
|
|
1109
|
+
attempts++;
|
|
1110
|
+
videoPlayer.currentTime += seekInterval;
|
|
1111
|
+
return; // Đợi sự kiện 'seeked' tiếp theo
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
// Xuất kết quả nếu ảnh ok hoặc đã hết lượt thử
|
|
1115
|
+
canvas.toBlob(
|
|
1079
1116
|
(blob) => {
|
|
1117
|
+
cleanup();
|
|
1080
1118
|
if (!blob) {
|
|
1081
1119
|
console.error('Failed to generate thumbnail.');
|
|
1082
1120
|
resolve(null);
|
|
1083
1121
|
return;
|
|
1084
1122
|
}
|
|
1085
1123
|
resolve(blob);
|
|
1086
|
-
URL.revokeObjectURL(videoPlayer.src); // Giải phóng bộ nhớ
|
|
1087
1124
|
},
|
|
1088
1125
|
'image/jpeg',
|
|
1089
1126
|
0.75,
|
|
1090
1127
|
);
|
|
1091
1128
|
} catch (error) {
|
|
1092
1129
|
console.error('Error while extracting thumbnail:', error);
|
|
1130
|
+
cleanup();
|
|
1093
1131
|
resolve(null);
|
|
1094
1132
|
}
|
|
1133
|
+
};
|
|
1134
|
+
|
|
1135
|
+
videoPlayer.addEventListener('loadedmetadata', () => {
|
|
1136
|
+
// Bắt đầu từ giây thứ 0.5 để tránh đoạn khởi đầu thường bị lỗi encoder
|
|
1137
|
+
videoPlayer.currentTime = Math.min(0.5, videoPlayer.duration);
|
|
1095
1138
|
});
|
|
1139
|
+
|
|
1140
|
+
videoPlayer.addEventListener('seeked', captureFrame);
|
|
1096
1141
|
});
|
|
1097
1142
|
}
|
|
1098
1143
|
|
|
@@ -1250,33 +1295,67 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1250
1295
|
case 'message.deleted':
|
|
1251
1296
|
if (event.message) {
|
|
1252
1297
|
this._extendEventWithOwnReactions(event);
|
|
1253
|
-
//! NOTE: check lai o day
|
|
1254
1298
|
channelState.removeMessage(event.message);
|
|
1255
|
-
channelState.addMessageSorted(event.message, false, false);
|
|
1256
|
-
// if (event.hard_delete) channelState.removeMessage(event.message);
|
|
1257
|
-
// else channelState.addMessageSorted(event.message, false, false);
|
|
1258
1299
|
|
|
1259
|
-
channelState.
|
|
1300
|
+
if (channelState.latestMessages.length === 0) {
|
|
1301
|
+
this.query({ messages: { limit: 1 } })
|
|
1302
|
+
.then(() => {
|
|
1303
|
+
this._callChannelListeners({
|
|
1304
|
+
type: 'channel.updated',
|
|
1305
|
+
cid: this.cid,
|
|
1306
|
+
channel: this.data,
|
|
1307
|
+
} as any);
|
|
1308
|
+
})
|
|
1309
|
+
.catch((err) => {
|
|
1310
|
+
this._client.logger('error', 'Failed to query for new last message after deletion', { err });
|
|
1311
|
+
});
|
|
1312
|
+
}
|
|
1260
1313
|
|
|
1261
|
-
|
|
1262
|
-
// channelState.removePinnedMessage(event.message);
|
|
1263
|
-
// }
|
|
1314
|
+
channelState.removeQuotedMessageReferences(event.message);
|
|
1264
1315
|
|
|
1265
1316
|
if ([...channelState.pinnedMessages].some((msg) => msg.id === event.message?.id)) {
|
|
1266
1317
|
channelState.removePinnedMessage(event.message);
|
|
1267
1318
|
}
|
|
1268
1319
|
|
|
1320
|
+
const msgTime = event.message.created_at ? new Date(event.message.created_at) : null;
|
|
1321
|
+
|
|
1269
1322
|
for (const userId in channelState.read) {
|
|
1270
1323
|
if (userId !== event.user?.id && event.message.id === channelState.read[userId].last_read_message_id) {
|
|
1271
1324
|
// Clear last_read_message_id if the deleted message is the last_read_message_id
|
|
1272
1325
|
channelState.read[userId] = { ...channelState.read[userId], last_read_message_id: undefined };
|
|
1273
1326
|
}
|
|
1327
|
+
|
|
1328
|
+
// Decrement unread_messages if the deleted message was unread for this user
|
|
1329
|
+
const userRead = channelState.read[userId];
|
|
1330
|
+
const lastRead = userRead.last_read ? new Date(userRead.last_read) : new Date(0);
|
|
1331
|
+
|
|
1332
|
+
if (msgTime && msgTime > lastRead) {
|
|
1333
|
+
// Ensure we don't decrement if the message was sent by the user being checked
|
|
1334
|
+
const wasSentByUser = event.message.user?.id === userId || event.message.user_id === userId;
|
|
1335
|
+
const isSystem = event.message.type === 'system';
|
|
1336
|
+
|
|
1337
|
+
if (!wasSentByUser && !isSystem) {
|
|
1338
|
+
userRead.unread_messages = Math.max(0, userRead.unread_messages - 1);
|
|
1339
|
+
if (userId === this.getClient().userID) {
|
|
1340
|
+
channelState.unreadCount = Math.max(0, channelState.unreadCount - 1);
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1274
1344
|
}
|
|
1275
1345
|
}
|
|
1276
1346
|
break;
|
|
1277
1347
|
case 'message.deleted_for_me':
|
|
1278
1348
|
if (event.message) {
|
|
1279
|
-
|
|
1349
|
+
// Xoá thông tin user trong event này vì nó là thông tin người thực hiện xoá (chính mình),
|
|
1350
|
+
// tránh việc ghi đè lên tác giả gốc của tin nhắn dẫn đến sai lệch layout.
|
|
1351
|
+
delete event.message.user;
|
|
1352
|
+
delete (event.message as any).user_id;
|
|
1353
|
+
|
|
1354
|
+
event.message.display_type = 'deleted';
|
|
1355
|
+
event.message.pinned_at = null;
|
|
1356
|
+
(event.message as any).updated_at = null;
|
|
1357
|
+
event.message.status = 'received';
|
|
1358
|
+
channelState.addMessageSorted(event.message);
|
|
1280
1359
|
channelState.removeQuotedMessageReferences(event.message);
|
|
1281
1360
|
|
|
1282
1361
|
if ([...channelState.pinnedMessages].some((msg) => msg.id === event.message?.id)) {
|
|
@@ -1379,9 +1458,10 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1379
1458
|
channelState.addMessageSorted(event.message, false, false);
|
|
1380
1459
|
}
|
|
1381
1460
|
break;
|
|
1382
|
-
case 'channel.truncate':
|
|
1383
|
-
|
|
1384
|
-
|
|
1461
|
+
case 'channel.truncate': {
|
|
1462
|
+
const truncateDate = event.channel?.created_at || event.created_at;
|
|
1463
|
+
if (truncateDate) {
|
|
1464
|
+
const truncatedAt = +new Date(truncateDate);
|
|
1385
1465
|
|
|
1386
1466
|
channelState.messageSets.forEach((messageSet, messageSetIndex) => {
|
|
1387
1467
|
messageSet.messages.forEach(({ created_at: createdAt, id }) => {
|
|
@@ -1397,6 +1477,7 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1397
1477
|
channelState.clearMessages();
|
|
1398
1478
|
}
|
|
1399
1479
|
|
|
1480
|
+
|
|
1400
1481
|
channelState.unreadCount = 0;
|
|
1401
1482
|
// system messages don't increment unread counts
|
|
1402
1483
|
if (event.message) {
|
|
@@ -1406,6 +1487,7 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1406
1487
|
}
|
|
1407
1488
|
}
|
|
1408
1489
|
break;
|
|
1490
|
+
}
|
|
1409
1491
|
case 'member.added':
|
|
1410
1492
|
if (event.member?.user_id) {
|
|
1411
1493
|
const user = getUserInfo(event.member.user_id, users);
|
|
@@ -1439,12 +1521,14 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1439
1521
|
channel.data.topics_enabled = true;
|
|
1440
1522
|
}
|
|
1441
1523
|
channelState.topics = channelState.topics || [];
|
|
1524
|
+
event.user = getUserInfo(event.user?.id || '', users);
|
|
1442
1525
|
break;
|
|
1443
1526
|
case 'channel.topic.disabled':
|
|
1444
1527
|
if (channel.data) {
|
|
1445
1528
|
channel.data.topics_enabled = false;
|
|
1446
1529
|
}
|
|
1447
1530
|
channelState.topics = [];
|
|
1531
|
+
event.user = getUserInfo(event.user?.id || '', users);
|
|
1448
1532
|
break;
|
|
1449
1533
|
case 'channel.updated':
|
|
1450
1534
|
if (event.channel) {
|
|
@@ -1576,18 +1660,7 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1576
1660
|
channel.data.is_pinned = false;
|
|
1577
1661
|
}
|
|
1578
1662
|
break;
|
|
1579
|
-
|
|
1580
|
-
if (channel.data) {
|
|
1581
|
-
channel.data.topics_enabled = false;
|
|
1582
|
-
}
|
|
1583
|
-
event.user = getUserInfo(event.user?.id || '', users);
|
|
1584
|
-
break;
|
|
1585
|
-
case 'channel.topic.enabled':
|
|
1586
|
-
if (channel.data) {
|
|
1587
|
-
channel.data.topics_enabled = true;
|
|
1588
|
-
}
|
|
1589
|
-
event.user = getUserInfo(event.user?.id || '', users);
|
|
1590
|
-
break;
|
|
1663
|
+
|
|
1591
1664
|
case 'channel.topic.created':
|
|
1592
1665
|
const members = event.channel?.members || [];
|
|
1593
1666
|
const enrichedMembers = enrichWithUserInfo(members, users);
|
|
@@ -1601,7 +1674,7 @@ export class Channel<ErmisChatGenerics extends ExtendableGenerics = DefaultGener
|
|
|
1601
1674
|
const topic = this.getClient().channel(event.channel_type || '', event.channel_id || '');
|
|
1602
1675
|
topic.data = event.channel;
|
|
1603
1676
|
topic._initializeState(topicState, 'latest');
|
|
1604
|
-
|
|
1677
|
+
|
|
1605
1678
|
if (!channelState.topics) {
|
|
1606
1679
|
channelState.topics = [];
|
|
1607
1680
|
}
|
package/src/channel_state.ts
CHANGED
|
@@ -407,9 +407,14 @@ export class ChannelState<ErmisChatGenerics extends ExtendableGenerics = Default
|
|
|
407
407
|
}
|
|
408
408
|
};
|
|
409
409
|
|
|
410
|
-
this.messageSets.forEach((set) =>
|
|
410
|
+
this.messageSets.forEach((set) => {
|
|
411
|
+
_updateUserMessages(set.messages, user);
|
|
412
|
+
// Create a new array reference to trigger React re-render
|
|
413
|
+
set.messages = [...set.messages];
|
|
414
|
+
});
|
|
411
415
|
|
|
412
416
|
_updateUserMessages(this.pinnedMessages, user);
|
|
417
|
+
this.pinnedMessages = [...this.pinnedMessages];
|
|
413
418
|
};
|
|
414
419
|
|
|
415
420
|
deleteUserMessages = (user: UserResponse<ErmisChatGenerics>, hardDelete = false) => {
|