@ghostlytools/cli 1.0.3 → 1.1.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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/bark_ffi_wasm_bg-EY2uc0Bx.js.map +1 -1
  3. package/dist/assets/bitcoindevkit_bg-B-iLWrmX.js.map +1 -1
  4. package/dist/assets/{fileBytes-CpP9Vj7s.js → fileBytes-BQ84L9Fe.js} +2 -2
  5. package/dist/assets/{fileBytes-CpP9Vj7s.js.map → fileBytes-BQ84L9Fe.js.map} +1 -1
  6. package/dist/assets/{fileBytes-Br_MpeNT.js → fileBytes-DxiJHmTk.js} +3 -3
  7. package/dist/assets/fileBytes-DxiJHmTk.js.map +1 -0
  8. package/dist/assets/{fileBytesIdb-vubSXPoO.js → fileBytesIdb-DQkQ10PS.js} +3 -3
  9. package/dist/assets/{fileBytesIdb-vubSXPoO.js.map → fileBytesIdb-DQkQ10PS.js.map} +1 -1
  10. package/dist/assets/{fileBytesOpfs-6iSa6u2K.js → fileBytesOpfs-BFfR_68b.js} +3 -3
  11. package/dist/assets/{fileBytesOpfs-6iSa6u2K.js.map → fileBytesOpfs-BFfR_68b.js.map} +1 -1
  12. package/dist/assets/{ghostly_iroh_web-CPa_YEfb.js → ghostly_iroh_web-Dvzh3Y6E.js} +32 -32
  13. package/dist/assets/{ghostly_iroh_web-CPa_YEfb.js.map → ghostly_iroh_web-Dvzh3Y6E.js.map} +1 -1
  14. package/dist/assets/ghostly_iroh_web_bg.wasm +0 -0
  15. package/dist/assets/{hyperdhtRelay-VM9STKLd.js → hyperdhtRelay-CVLCuqVr.js} +3 -3
  16. package/dist/assets/{hyperdhtRelay-VM9STKLd.js.map → hyperdhtRelay-CVLCuqVr.js.map} +1 -1
  17. package/dist/assets/{idb-DIN_Miwb.js → idb-Co2lObpU.js} +4 -4
  18. package/dist/assets/idb-Co2lObpU.js.map +1 -0
  19. package/dist/assets/{mainline-CcO2f8jy.js → mainline-CKFpwXcB.js} +2 -2
  20. package/dist/assets/{mainline-CcO2f8jy.js.map → mainline-CKFpwXcB.js.map} +1 -1
  21. package/dist/assets/{restoredRows-tVxgyG23.js → restoredRows-C1O9FfA4.js} +38 -3
  22. package/dist/assets/restoredRows-C1O9FfA4.js.map +1 -0
  23. package/dist/assets/{server-BnNXYzR9.js → server-vGoe9MET.js} +9460 -784
  24. package/dist/assets/server-vGoe9MET.js.map +1 -0
  25. package/dist/assets/{src-7sdQpCoi.js → src-CJdPTl7Q.js} +4216 -1305
  26. package/dist/assets/src-CJdPTl7Q.js.map +1 -0
  27. package/dist/ghostly.mjs +374 -45
  28. package/dist/ghostly.mjs.map +1 -1
  29. package/package.json +2 -1
  30. package/dist/assets/fileBytes-Br_MpeNT.js.map +0 -1
  31. package/dist/assets/idb-DIN_Miwb.js.map +0 -1
  32. package/dist/assets/restoredRows-tVxgyG23.js.map +0 -1
  33. package/dist/assets/server-BnNXYzR9.js.map +0 -1
  34. package/dist/assets/src-7sdQpCoi.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ghostly_iroh_web-CPa_YEfb.js","names":["ret"],"sources":["../../../iroh-web/pkg/ghostly_iroh_web.js"],"sourcesContent":["let wasm;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => state.dtor(state.a, state.b));\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nlet heap = new Array(128).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction makeClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n try {\n return f(state.a, state.b, ...args);\n } finally {\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n state.a = a;\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction __wasm_bindgen_func_elem_8887(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_8887(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_8842(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_8842(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_3228(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3228(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_3581(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3581(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_3552(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3552(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_4120(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_4120(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_1064(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_1064(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_8979(arg0, arg1, arg2, arg3) {\n wasm.__wasm_bindgen_func_elem_8979(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 IntoUnderlyingByteSourceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingbytesource_free(ptr >>> 0, 1));\n\nconst IntoUnderlyingSinkFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingsink_free(ptr >>> 0, 1));\n\nconst IntoUnderlyingSourceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingsource_free(ptr >>> 0, 1));\n\nconst IrohConnFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_irohconn_free(ptr >>> 0, 1));\n\nconst IrohNodeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_irohnode_free(ptr >>> 0, 1));\n\nexport class IntoUnderlyingByteSource {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingByteSourceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingbytesource_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get autoAllocateChunkSize() {\n const ret = wasm.intounderlyingbytesource_autoAllocateChunkSize(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {ReadableByteStreamController} controller\n * @returns {Promise<any>}\n */\n pull(controller) {\n const ret = wasm.intounderlyingbytesource_pull(this.__wbg_ptr, addHeapObject(controller));\n return takeObject(ret);\n }\n /**\n * @param {ReadableByteStreamController} controller\n */\n start(controller) {\n wasm.intounderlyingbytesource_start(this.__wbg_ptr, addHeapObject(controller));\n }\n /**\n * @returns {ReadableStreamType}\n */\n get type() {\n const ret = wasm.intounderlyingbytesource_type(this.__wbg_ptr);\n return __wbindgen_enum_ReadableStreamType[ret];\n }\n cancel() {\n const ptr = this.__destroy_into_raw();\n wasm.intounderlyingbytesource_cancel(ptr);\n }\n}\nif (Symbol.dispose) IntoUnderlyingByteSource.prototype[Symbol.dispose] = IntoUnderlyingByteSource.prototype.free;\n\nexport class IntoUnderlyingSink {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingSinkFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingsink_free(ptr, 0);\n }\n /**\n * @param {any} reason\n * @returns {Promise<any>}\n */\n abort(reason) {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.intounderlyingsink_abort(ptr, addHeapObject(reason));\n return takeObject(ret);\n }\n /**\n * @returns {Promise<any>}\n */\n close() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.intounderlyingsink_close(ptr);\n return takeObject(ret);\n }\n /**\n * @param {any} chunk\n * @returns {Promise<any>}\n */\n write(chunk) {\n const ret = wasm.intounderlyingsink_write(this.__wbg_ptr, addHeapObject(chunk));\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) IntoUnderlyingSink.prototype[Symbol.dispose] = IntoUnderlyingSink.prototype.free;\n\nexport class IntoUnderlyingSource {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingSourceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingsource_free(ptr, 0);\n }\n /**\n * @param {ReadableStreamDefaultController} controller\n * @returns {Promise<any>}\n */\n pull(controller) {\n const ret = wasm.intounderlyingsource_pull(this.__wbg_ptr, addHeapObject(controller));\n return takeObject(ret);\n }\n cancel() {\n const ptr = this.__destroy_into_raw();\n wasm.intounderlyingsource_cancel(ptr);\n }\n}\nif (Symbol.dispose) IntoUnderlyingSource.prototype[Symbol.dispose] = IntoUnderlyingSource.prototype.free;\n\n/**\n * One paired channel: a single bidirectional stream of text frames.\n */\nexport class IrohConn {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IrohConn.prototype);\n obj.__wbg_ptr = ptr;\n IrohConnFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IrohConnFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_irohconn_free(ptr, 0);\n }\n /**\n * Round-trip time in milliseconds, as QUIC measures it.\n * @returns {number}\n */\n rtt() {\n const ret = wasm.irohconn_rtt(this.__wbg_ptr);\n return ret;\n }\n /**\n * The next text frame, or `undefined` once the channel is closed.\n * @returns {Promise<any>}\n */\n recv() {\n const ret = wasm.irohconn_recv(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * Sends one text frame. Callers serialise sends; a concurrent call fails.\n * @param {string} text\n * @returns {Promise<any>}\n */\n send(text) {\n const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.irohconn_send(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n close() {\n wasm.irohconn_close(this.__wbg_ptr);\n }\n /**\n * @returns {any}\n */\n binding() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohconn_binding(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * The contact's endpoint id.\n * @returns {string}\n */\n remoteId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohconn_remoteId(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) IrohConn.prototype[Symbol.dispose] = IrohConn.prototype.free;\n\n/**\n * One Iroh endpoint for one paired chat, homed on a relay.\n */\nexport class IrohNode {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IrohNode.prototype);\n obj.__wbg_ptr = ptr;\n IrohNodeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IrohNodeFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_irohnode_free(ptr, 0);\n }\n /**\n * @returns {Promise<any>}\n */\n close() {\n const ret = wasm.irohnode_close(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * Binds an endpoint for a 32-byte seed and waits until it is reachable\n * through the first relay that answers. `relays` is a list of relay URLs.\n * @param {Uint8Array} seed\n * @param {string[]} relays\n * @param {number} online_ms\n * @returns {Promise<any>}\n */\n static start(seed, relays, online_ms) {\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(relays, wasm.__wbindgen_export);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.irohnode_start(ptr0, len0, ptr1, len1, online_ms);\n return takeObject(ret);\n }\n /**\n * Resolves with the next incoming connection, or `undefined` once closed.\n * @returns {Promise<any>}\n */\n accept() {\n const ret = wasm.irohnode_accept(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * `{ id, relay, addresses: [] }`, the same shape the Desktop publishes.\n * @returns {any}\n */\n address() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohnode_address(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {any} descriptor\n * @param {number} timeout_ms\n * @returns {Promise<any>}\n */\n connect(descriptor, timeout_ms) {\n const ret = wasm.irohnode_connect(this.__wbg_ptr, addHeapObject(descriptor), timeout_ms);\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) IrohNode.prototype[Symbol.dispose] = IrohNode.prototype.free;\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`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\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030 = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7 = function(arg0) {\n getObject(arg0)._wbg_cb_unref();\n };\n imports.wbg.__wbg_abort_07646c894ebbf2bd = function(arg0) {\n getObject(arg0).abort();\n };\n imports.wbg.__wbg_abort_399ecbcfd6ef3c8e = function(arg0, arg1) {\n getObject(arg0).abort(getObject(arg1));\n };\n imports.wbg.__wbg_addEventListener_e792423147a80626 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_append_c5cbdf46455cc776 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n }, arguments) };\n imports.wbg.__wbg_body_947b901c33f7fe32 = function(arg0) {\n const ret = getObject(arg0).body;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_buffer_6cb2fecb1f253d71 = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_byobRequest_f8e3517f5f8ad284 = function(arg0) {\n const ret = getObject(arg0).byobRequest;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_byteLength_faa9938885bdeee6 = function(arg0) {\n const ret = getObject(arg0).byteLength;\n return ret;\n };\n imports.wbg.__wbg_byteOffset_3868b6a19ba01dea = function(arg0) {\n const ret = getObject(arg0).byteOffset;\n return ret;\n };\n imports.wbg.__wbg_call_3020136f7a2d6e44 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_cancel_a65cf45dca50ba4c = function(arg0) {\n const ret = getObject(arg0).cancel();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_catch_b9db41d97d42bd02 = function(arg0, arg1) {\n const ret = getObject(arg0).catch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_clearTimeout_3b5c565a5ec539dd = function(arg0) {\n const ret = clearTimeout(takeObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_clearTimeout_5e42188b495715bb = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).clearTimeout(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_close_0af5661bf3d335f2 = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_close_1db3952de1b5b1cf = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_close_3ec111e7b23d94d8 = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_code_85a811fe6ca962be = function(arg0) {\n const ret = getObject(arg0).code;\n return ret;\n };\n imports.wbg.__wbg_code_c2a85f2863ec11b3 = function(arg0) {\n const ret = getObject(arg0).code;\n return ret;\n };\n imports.wbg.__wbg_crypto_86f2631e91b51511 = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_data_8bf4ae669a78a688 = function(arg0) {\n const ret = getObject(arg0).data;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n };\n imports.wbg.__wbg_enqueue_a7e6b1ee87963aad = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).enqueue(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_entries_13da0847a5239578 = function(arg0) {\n const ret = getObject(arg0).entries();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_fetch_16dcf1cfbbc66b3c = function(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_fetch_90447c28cc0b095e = function(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_a8ddca022803a145 = function() { return handleError(function (arg0, arg1) {\n globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));\n }, arguments) };\n imports.wbg.__wbg_getRandomValues_b3f15fcbfabb0f8b = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_getReader_48e00749fe3f6089 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).getReader();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_done_f98a6e62c4e18fb9 = function(arg0) {\n const ret = getObject(arg0).done;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg_get_value_63e39884ef11812e = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_has_0e670569d65d3a45 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.has(getObject(arg0), getObject(arg1));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_headers_654c30e1bcccc552 = function(arg0) {\n const ret = getObject(arg0).headers;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Blob_e9c51ce33a4b6181 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Blob;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Response_cd74d1c2ac92cb0b = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Response;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_irohconn_new = function(arg0) {\n const ret = IrohConn.__wrap(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_irohnode_new = function(arg0) {\n const ret = IrohNode.__wrap(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_message_a4e9a39ee8f92b17 = function(arg0, arg1) {\n const ret = getObject(arg1).message;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_msCrypto_d562bbe83e0d4b91 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_1ba21ce319a06297 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_3c79b3bb1b32b7d3 = function() { return handleError(function () {\n const ret = new Headers();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_7c30d1f874652e62 = function() { return handleError(function (arg0, arg1) {\n const ret = new WebSocket(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_881a222c65f168fc = function() { return handleError(function () {\n const ret = new AbortController();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_df1173567d5ff028 = function(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_ff12d2b041fb48f1 = function(arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return __wasm_bindgen_func_elem_8979(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n };\n imports.wbg.__wbg_new_from_slice_f9c22b9153b26992 = function(arg0, arg1) {\n const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_no_args_cb138f77cf6151ee = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_byte_offset_and_length_d85c3da1fd8df149 = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_length_aa5eaf41d35235e5 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_str_and_init_c5748f76f5108934 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_with_str_sequence_073466a4a5387941 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = new WebSocket(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_node_e1f24f89a7336c2e = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_now_2c95c9de01293173 = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_now_69d776cd24f5215b = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_parse_a09a54cf72639456 = function() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_performance_7a3ffd0b17f663ad = function(arg0) {\n const ret = getObject(arg0).performance;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_process_3975fd6c72f520aa = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_protocol_a74f36816d507cab = function(arg0, arg1) {\n const ret = getObject(arg1).protocol;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n };\n imports.wbg.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n };\n imports.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function(arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_queueMicrotask_fca69f5bfad613a5 = function(arg0) {\n queueMicrotask(getObject(arg0));\n };\n imports.wbg.__wbg_randomFillSync_f8c153b79f285817 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_read_39c4b35efcd03c25 = function(arg0) {\n const ret = getObject(arg0).read();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_readyState_9d0976dcad561aa9 = function(arg0) {\n const ret = getObject(arg0).readyState;\n return ret;\n };\n imports.wbg.__wbg_reason_d4eb9e40592438c2 = function(arg0, arg1) {\n const ret = getObject(arg1).reason;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_releaseLock_a5912f590b185180 = function(arg0) {\n getObject(arg0).releaseLock();\n };\n imports.wbg.__wbg_removeEventListener_54bf92f4a849bd7d = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_require_b74f47fc2d022fd6 = function() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_resolve_fd5bfbaa4ce36e1e = function(arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_respond_9f7fc54636c4a3af = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).respond(arg1 >>> 0);\n }, arguments) };\n imports.wbg.__wbg_send_7cc36bb628044281 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getStringFromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_send_ea59e150ab5ebe08 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getArrayU8FromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_setTimeout_2b111259203a2623 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).setTimeout(takeObject(arg1), arg2);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_setTimeout_cb2a856ba8315e7a = function(arg0, arg1) {\n const ret = setTimeout(getObject(arg0), arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_169e13b608078b7b = function(arg0, arg1, arg2) {\n getObject(arg0).set(getArrayU8FromWasm0(arg1, arg2));\n };\n imports.wbg.__wbg_set_binaryType_73e8c75df97825f8 = function(arg0, arg1) {\n getObject(arg0).binaryType = __wbindgen_enum_BinaryType[arg1];\n };\n imports.wbg.__wbg_set_body_8e743242d6076a4f = function(arg0, arg1) {\n getObject(arg0).body = getObject(arg1);\n };\n imports.wbg.__wbg_set_cache_0e437c7c8e838b9b = function(arg0, arg1) {\n getObject(arg0).cache = __wbindgen_enum_RequestCache[arg1];\n };\n imports.wbg.__wbg_set_credentials_55ae7c3c106fd5be = function(arg0, arg1) {\n getObject(arg0).credentials = __wbindgen_enum_RequestCredentials[arg1];\n };\n imports.wbg.__wbg_set_handle_event_14baa3949ef6909d = function(arg0, arg1) {\n getObject(arg0).handleEvent = getObject(arg1);\n };\n imports.wbg.__wbg_set_headers_5671cf088e114d2b = function(arg0, arg1) {\n getObject(arg0).headers = getObject(arg1);\n };\n imports.wbg.__wbg_set_method_76c69e41b3570627 = function(arg0, arg1, arg2) {\n getObject(arg0).method = getStringFromWasm0(arg1, arg2);\n };\n imports.wbg.__wbg_set_mode_611016a6818fc690 = function(arg0, arg1) {\n getObject(arg0).mode = __wbindgen_enum_RequestMode[arg1];\n };\n imports.wbg.__wbg_set_onclose_032729b3d7ed7a9e = function(arg0, arg1) {\n getObject(arg0).onclose = getObject(arg1);\n };\n imports.wbg.__wbg_set_onerror_7819daa6af176ddb = function(arg0, arg1) {\n getObject(arg0).onerror = getObject(arg1);\n };\n imports.wbg.__wbg_set_onmessage_71321d0bed69856c = function(arg0, arg1) {\n getObject(arg0).onmessage = getObject(arg1);\n };\n imports.wbg.__wbg_set_onopen_6d4abedb27ba5656 = function(arg0, arg1) {\n getObject(arg0).onopen = getObject(arg1);\n };\n imports.wbg.__wbg_set_signal_e89be862d0091009 = function(arg0, arg1) {\n getObject(arg0).signal = getObject(arg1);\n };\n imports.wbg.__wbg_signal_3c14fbdc89694b39 = function(arg0) {\n const ret = getObject(arg0).signal;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_08f5a74c69739274 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_status_9bfc680efca4bdfd = function(arg0) {\n const ret = getObject(arg0).status;\n return ret;\n };\n imports.wbg.__wbg_stringify_655a6390e1f5eb6b = function() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_subarray_845f2f5bce7d061a = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_429f7caf1026411d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_4f95312d68691235 = function(arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_url_b6d11838a4f95198 = function(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_url_df28eef824b04410 = function(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_versions_4e31226f5e8dc909 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_view_788aaf149deefd2f = function(arg0) {\n const ret = getObject(arg0).view;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_wasClean_4154a2d59fdb4dd7 = function(arg0) {\n const ret = getObject(arg0).wasClean;\n return ret;\n };\n imports.wbg.__wbindgen_cast_183e70ce803ab6e0 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1268, function: Function { arguments: [], shim_idx: 1269, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3222, __wasm_bindgen_func_elem_3228);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_2cca65eb14ef87f7 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1621, function: Function { arguments: [NamedExternref(\"MessageEvent\")], shim_idx: 1622, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_4085, __wasm_bindgen_func_elem_4120);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_3871385ebecf97e2 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1338, function: Function { arguments: [], shim_idx: 1339, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3547, __wasm_bindgen_func_elem_3552);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_54d906b0da38178e = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1341, function: Function { arguments: [], shim_idx: 1342, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3561, __wasm_bindgen_func_elem_3581);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_65d257a759b487ed = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2700, function: Function { arguments: [], shim_idx: 2701, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8831, __wasm_bindgen_func_elem_8842);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_75f6aca67a748651 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2708, function: Function { arguments: [Externref], shim_idx: 2709, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8874, __wasm_bindgen_func_elem_8887);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_8f30da43820d2b7c = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 173, function: Function { arguments: [NamedExternref(\"CloseEvent\")], shim_idx: 174, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_688, __wasm_bindgen_func_elem_1064);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_cb9088102bce6b30 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('ghostly_iroh_web_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ghostly_iroh_web-Dvzh3Y6E.js","names":["ret"],"sources":["../../../iroh-web/pkg/ghostly_iroh_web.js"],"sourcesContent":["let wasm;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => state.dtor(state.a, state.b));\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nlet heap = new Array(128).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction makeClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n try {\n return f(state.a, state.b, ...args);\n } finally {\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n state.a = a;\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction __wasm_bindgen_func_elem_3631(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3631(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_4170(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_4170(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_3602(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3602(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_3273(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3273(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_1072(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_1072(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_8891(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_8891(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_8936(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_8936(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_9028(arg0, arg1, arg2, arg3) {\n wasm.__wasm_bindgen_func_elem_9028(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 IntoUnderlyingByteSourceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingbytesource_free(ptr >>> 0, 1));\n\nconst IntoUnderlyingSinkFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingsink_free(ptr >>> 0, 1));\n\nconst IntoUnderlyingSourceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_intounderlyingsource_free(ptr >>> 0, 1));\n\nconst IrohConnFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_irohconn_free(ptr >>> 0, 1));\n\nconst IrohNodeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_irohnode_free(ptr >>> 0, 1));\n\nexport class IntoUnderlyingByteSource {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingByteSourceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingbytesource_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get autoAllocateChunkSize() {\n const ret = wasm.intounderlyingbytesource_autoAllocateChunkSize(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {ReadableByteStreamController} controller\n * @returns {Promise<any>}\n */\n pull(controller) {\n const ret = wasm.intounderlyingbytesource_pull(this.__wbg_ptr, addHeapObject(controller));\n return takeObject(ret);\n }\n /**\n * @param {ReadableByteStreamController} controller\n */\n start(controller) {\n wasm.intounderlyingbytesource_start(this.__wbg_ptr, addHeapObject(controller));\n }\n /**\n * @returns {ReadableStreamType}\n */\n get type() {\n const ret = wasm.intounderlyingbytesource_type(this.__wbg_ptr);\n return __wbindgen_enum_ReadableStreamType[ret];\n }\n cancel() {\n const ptr = this.__destroy_into_raw();\n wasm.intounderlyingbytesource_cancel(ptr);\n }\n}\nif (Symbol.dispose) IntoUnderlyingByteSource.prototype[Symbol.dispose] = IntoUnderlyingByteSource.prototype.free;\n\nexport class IntoUnderlyingSink {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingSinkFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingsink_free(ptr, 0);\n }\n /**\n * @param {any} reason\n * @returns {Promise<any>}\n */\n abort(reason) {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.intounderlyingsink_abort(ptr, addHeapObject(reason));\n return takeObject(ret);\n }\n /**\n * @returns {Promise<any>}\n */\n close() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.intounderlyingsink_close(ptr);\n return takeObject(ret);\n }\n /**\n * @param {any} chunk\n * @returns {Promise<any>}\n */\n write(chunk) {\n const ret = wasm.intounderlyingsink_write(this.__wbg_ptr, addHeapObject(chunk));\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) IntoUnderlyingSink.prototype[Symbol.dispose] = IntoUnderlyingSink.prototype.free;\n\nexport class IntoUnderlyingSource {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IntoUnderlyingSourceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_intounderlyingsource_free(ptr, 0);\n }\n /**\n * @param {ReadableStreamDefaultController} controller\n * @returns {Promise<any>}\n */\n pull(controller) {\n const ret = wasm.intounderlyingsource_pull(this.__wbg_ptr, addHeapObject(controller));\n return takeObject(ret);\n }\n cancel() {\n const ptr = this.__destroy_into_raw();\n wasm.intounderlyingsource_cancel(ptr);\n }\n}\nif (Symbol.dispose) IntoUnderlyingSource.prototype[Symbol.dispose] = IntoUnderlyingSource.prototype.free;\n\n/**\n * One paired channel: a single bidirectional stream of text frames.\n */\nexport class IrohConn {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IrohConn.prototype);\n obj.__wbg_ptr = ptr;\n IrohConnFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IrohConnFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_irohconn_free(ptr, 0);\n }\n /**\n * Round-trip time in milliseconds, as QUIC measures it.\n * @returns {number}\n */\n rtt() {\n const ret = wasm.irohconn_rtt(this.__wbg_ptr);\n return ret;\n }\n /**\n * The next text frame, or `undefined` once the channel is closed.\n * @returns {Promise<any>}\n */\n recv() {\n const ret = wasm.irohconn_recv(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * Sends one text frame. Callers serialise sends; a concurrent call fails.\n * @param {string} text\n * @returns {Promise<any>}\n */\n send(text) {\n const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.irohconn_send(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n close() {\n wasm.irohconn_close(this.__wbg_ptr);\n }\n /**\n * @returns {any}\n */\n binding() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohconn_binding(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * The contact's endpoint id.\n * @returns {string}\n */\n remoteId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohconn_remoteId(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) IrohConn.prototype[Symbol.dispose] = IrohConn.prototype.free;\n\n/**\n * One Iroh endpoint for one paired chat, homed on a relay.\n */\nexport class IrohNode {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IrohNode.prototype);\n obj.__wbg_ptr = ptr;\n IrohNodeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IrohNodeFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_irohnode_free(ptr, 0);\n }\n /**\n * @returns {Promise<any>}\n */\n close() {\n const ret = wasm.irohnode_close(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * Binds an endpoint for a 32-byte seed and waits until it is reachable\n * through the first relay that answers. `relays` is a list of relay URLs.\n * @param {Uint8Array} seed\n * @param {string[]} relays\n * @param {number} online_ms\n * @returns {Promise<any>}\n */\n static start(seed, relays, online_ms) {\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(relays, wasm.__wbindgen_export);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.irohnode_start(ptr0, len0, ptr1, len1, online_ms);\n return takeObject(ret);\n }\n /**\n * Resolves with the next incoming connection, or `undefined` once closed.\n * @returns {Promise<any>}\n */\n accept() {\n const ret = wasm.irohnode_accept(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * `{ id, relay, addresses: [] }`, the same shape the Desktop publishes.\n * @returns {any}\n */\n address() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.irohnode_address(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {any} descriptor\n * @param {number} timeout_ms\n * @returns {Promise<any>}\n */\n connect(descriptor, timeout_ms) {\n const ret = wasm.irohnode_connect(this.__wbg_ptr, addHeapObject(descriptor), timeout_ms);\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) IrohNode.prototype[Symbol.dispose] = IrohNode.prototype.free;\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`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\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030 = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7 = function(arg0) {\n getObject(arg0)._wbg_cb_unref();\n };\n imports.wbg.__wbg_abort_07646c894ebbf2bd = function(arg0) {\n getObject(arg0).abort();\n };\n imports.wbg.__wbg_abort_399ecbcfd6ef3c8e = function(arg0, arg1) {\n getObject(arg0).abort(getObject(arg1));\n };\n imports.wbg.__wbg_addEventListener_e792423147a80626 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_append_c5cbdf46455cc776 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n }, arguments) };\n imports.wbg.__wbg_body_947b901c33f7fe32 = function(arg0) {\n const ret = getObject(arg0).body;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_buffer_6cb2fecb1f253d71 = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_byobRequest_f8e3517f5f8ad284 = function(arg0) {\n const ret = getObject(arg0).byobRequest;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_byteLength_faa9938885bdeee6 = function(arg0) {\n const ret = getObject(arg0).byteLength;\n return ret;\n };\n imports.wbg.__wbg_byteOffset_3868b6a19ba01dea = function(arg0) {\n const ret = getObject(arg0).byteOffset;\n return ret;\n };\n imports.wbg.__wbg_call_3020136f7a2d6e44 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_cancel_a65cf45dca50ba4c = function(arg0) {\n const ret = getObject(arg0).cancel();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_catch_b9db41d97d42bd02 = function(arg0, arg1) {\n const ret = getObject(arg0).catch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_clearTimeout_3b5c565a5ec539dd = function(arg0) {\n const ret = clearTimeout(takeObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_clearTimeout_5e42188b495715bb = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).clearTimeout(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_close_0af5661bf3d335f2 = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_close_1db3952de1b5b1cf = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_close_3ec111e7b23d94d8 = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_code_85a811fe6ca962be = function(arg0) {\n const ret = getObject(arg0).code;\n return ret;\n };\n imports.wbg.__wbg_code_c2a85f2863ec11b3 = function(arg0) {\n const ret = getObject(arg0).code;\n return ret;\n };\n imports.wbg.__wbg_crypto_86f2631e91b51511 = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_data_8bf4ae669a78a688 = function(arg0) {\n const ret = getObject(arg0).data;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n };\n imports.wbg.__wbg_enqueue_a7e6b1ee87963aad = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).enqueue(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_entries_13da0847a5239578 = function(arg0) {\n const ret = getObject(arg0).entries();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_fetch_16dcf1cfbbc66b3c = function(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_fetch_90447c28cc0b095e = function(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_a8ddca022803a145 = function() { return handleError(function (arg0, arg1) {\n globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));\n }, arguments) };\n imports.wbg.__wbg_getRandomValues_b3f15fcbfabb0f8b = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_getReader_48e00749fe3f6089 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).getReader();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_done_f98a6e62c4e18fb9 = function(arg0) {\n const ret = getObject(arg0).done;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg_get_value_63e39884ef11812e = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_has_0e670569d65d3a45 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.has(getObject(arg0), getObject(arg1));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_headers_654c30e1bcccc552 = function(arg0) {\n const ret = getObject(arg0).headers;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Blob_e9c51ce33a4b6181 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Blob;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Response_cd74d1c2ac92cb0b = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Response;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_irohconn_new = function(arg0) {\n const ret = IrohConn.__wrap(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_irohnode_new = function(arg0) {\n const ret = IrohNode.__wrap(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_message_a4e9a39ee8f92b17 = function(arg0, arg1) {\n const ret = getObject(arg1).message;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_msCrypto_d562bbe83e0d4b91 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_1ba21ce319a06297 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_3c79b3bb1b32b7d3 = function() { return handleError(function () {\n const ret = new Headers();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_7c30d1f874652e62 = function() { return handleError(function (arg0, arg1) {\n const ret = new WebSocket(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_881a222c65f168fc = function() { return handleError(function () {\n const ret = new AbortController();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_df1173567d5ff028 = function(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_ff12d2b041fb48f1 = function(arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return __wasm_bindgen_func_elem_9028(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n };\n imports.wbg.__wbg_new_from_slice_f9c22b9153b26992 = function(arg0, arg1) {\n const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_no_args_cb138f77cf6151ee = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_byte_offset_and_length_d85c3da1fd8df149 = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_length_aa5eaf41d35235e5 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_with_str_and_init_c5748f76f5108934 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_with_str_sequence_073466a4a5387941 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = new WebSocket(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_node_e1f24f89a7336c2e = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_now_2c95c9de01293173 = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_now_69d776cd24f5215b = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_parse_a09a54cf72639456 = function() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_performance_7a3ffd0b17f663ad = function(arg0) {\n const ret = getObject(arg0).performance;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_process_3975fd6c72f520aa = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_protocol_a74f36816d507cab = function(arg0, arg1) {\n const ret = getObject(arg1).protocol;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n };\n imports.wbg.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n };\n imports.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function(arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_queueMicrotask_fca69f5bfad613a5 = function(arg0) {\n queueMicrotask(getObject(arg0));\n };\n imports.wbg.__wbg_randomFillSync_f8c153b79f285817 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_read_39c4b35efcd03c25 = function(arg0) {\n const ret = getObject(arg0).read();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_readyState_9d0976dcad561aa9 = function(arg0) {\n const ret = getObject(arg0).readyState;\n return ret;\n };\n imports.wbg.__wbg_reason_d4eb9e40592438c2 = function(arg0, arg1) {\n const ret = getObject(arg1).reason;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_releaseLock_a5912f590b185180 = function(arg0) {\n getObject(arg0).releaseLock();\n };\n imports.wbg.__wbg_removeEventListener_54bf92f4a849bd7d = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_require_b74f47fc2d022fd6 = function() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_resolve_fd5bfbaa4ce36e1e = function(arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_respond_9f7fc54636c4a3af = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).respond(arg1 >>> 0);\n }, arguments) };\n imports.wbg.__wbg_send_7cc36bb628044281 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getStringFromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_send_ea59e150ab5ebe08 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getArrayU8FromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_setTimeout_2b111259203a2623 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).setTimeout(takeObject(arg1), arg2);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_setTimeout_cb2a856ba8315e7a = function(arg0, arg1) {\n const ret = setTimeout(getObject(arg0), arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_169e13b608078b7b = function(arg0, arg1, arg2) {\n getObject(arg0).set(getArrayU8FromWasm0(arg1, arg2));\n };\n imports.wbg.__wbg_set_binaryType_73e8c75df97825f8 = function(arg0, arg1) {\n getObject(arg0).binaryType = __wbindgen_enum_BinaryType[arg1];\n };\n imports.wbg.__wbg_set_body_8e743242d6076a4f = function(arg0, arg1) {\n getObject(arg0).body = getObject(arg1);\n };\n imports.wbg.__wbg_set_cache_0e437c7c8e838b9b = function(arg0, arg1) {\n getObject(arg0).cache = __wbindgen_enum_RequestCache[arg1];\n };\n imports.wbg.__wbg_set_credentials_55ae7c3c106fd5be = function(arg0, arg1) {\n getObject(arg0).credentials = __wbindgen_enum_RequestCredentials[arg1];\n };\n imports.wbg.__wbg_set_handle_event_14baa3949ef6909d = function(arg0, arg1) {\n getObject(arg0).handleEvent = getObject(arg1);\n };\n imports.wbg.__wbg_set_headers_5671cf088e114d2b = function(arg0, arg1) {\n getObject(arg0).headers = getObject(arg1);\n };\n imports.wbg.__wbg_set_method_76c69e41b3570627 = function(arg0, arg1, arg2) {\n getObject(arg0).method = getStringFromWasm0(arg1, arg2);\n };\n imports.wbg.__wbg_set_mode_611016a6818fc690 = function(arg0, arg1) {\n getObject(arg0).mode = __wbindgen_enum_RequestMode[arg1];\n };\n imports.wbg.__wbg_set_onclose_032729b3d7ed7a9e = function(arg0, arg1) {\n getObject(arg0).onclose = getObject(arg1);\n };\n imports.wbg.__wbg_set_onerror_7819daa6af176ddb = function(arg0, arg1) {\n getObject(arg0).onerror = getObject(arg1);\n };\n imports.wbg.__wbg_set_onmessage_71321d0bed69856c = function(arg0, arg1) {\n getObject(arg0).onmessage = getObject(arg1);\n };\n imports.wbg.__wbg_set_onopen_6d4abedb27ba5656 = function(arg0, arg1) {\n getObject(arg0).onopen = getObject(arg1);\n };\n imports.wbg.__wbg_set_signal_e89be862d0091009 = function(arg0, arg1) {\n getObject(arg0).signal = getObject(arg1);\n };\n imports.wbg.__wbg_signal_3c14fbdc89694b39 = function(arg0) {\n const ret = getObject(arg0).signal;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_08f5a74c69739274 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_status_9bfc680efca4bdfd = function(arg0) {\n const ret = getObject(arg0).status;\n return ret;\n };\n imports.wbg.__wbg_stringify_655a6390e1f5eb6b = function() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_subarray_845f2f5bce7d061a = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_429f7caf1026411d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_4f95312d68691235 = function(arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_url_b6d11838a4f95198 = function(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_url_df28eef824b04410 = function(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_versions_4e31226f5e8dc909 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_view_788aaf149deefd2f = function(arg0) {\n const ret = getObject(arg0).view;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_wasClean_4154a2d59fdb4dd7 = function(arg0) {\n const ret = getObject(arg0).wasClean;\n return ret;\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_3edf356d650aeffb = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1634, function: Function { arguments: [NamedExternref(\"MessageEvent\")], shim_idx: 1635, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_4135, __wasm_bindgen_func_elem_4170);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_4a74956eed9a8f16 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2720, function: Function { arguments: [Externref], shim_idx: 2721, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8923, __wasm_bindgen_func_elem_8936);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_5f45f155da2d847f = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1280, function: Function { arguments: [], shim_idx: 1281, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3267, __wasm_bindgen_func_elem_3273);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_7f65db10d899eec7 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1353, function: Function { arguments: [], shim_idx: 1354, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3611, __wasm_bindgen_func_elem_3631);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_8c24b1ea3caf42f0 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1350, function: Function { arguments: [], shim_idx: 1351, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3597, __wasm_bindgen_func_elem_3602);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_8f30da43820d2b7c = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 173, function: Function { arguments: [NamedExternref(\"CloseEvent\")], shim_idx: 174, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_686, __wasm_bindgen_func_elem_1072);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_9c71dc46f72fc3ed = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2712, function: Function { arguments: [], shim_idx: 2713, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8880, __wasm_bindgen_func_elem_8891);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_cb9088102bce6b30 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('ghostly_iroh_web_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { oo as fromBase64Url } from "./src-7sdQpCoi.js";
2
- import { n as hyperdhtRelayProblem } from "./server-BnNXYzR9.js";
1
+ import { Qs as fromBase64Url } from "./src-CJdPTl7Q.js";
2
+ import { n as hyperdhtRelayProblem } from "./server-vGoe9MET.js";
3
3
  import { ed25519 } from "@noble/curves/ed25519.js";
4
4
  //#region ../browser/src/platform/hyperdhtRelay.ts
5
5
  /**
@@ -339,4 +339,4 @@ async function createRelayedHyperEndpoint(seedB64, url, options = {}) {
339
339
  //#endregion
340
340
  export { createRelayedHyperEndpoint };
341
341
 
342
- //# sourceMappingURL=hyperdhtRelay-VM9STKLd.js.map
342
+ //# sourceMappingURL=hyperdhtRelay-CVLCuqVr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hyperdhtRelay-VM9STKLd.js","names":[],"sources":["../../../browser/src/platform/hyperdhtRelay.ts"],"sourcesContent":["import { ed25519 } from \"@noble/curves/ed25519.js\";\nimport { fromBase64Url, type BoundChannel, type FrameChannel, type NativeEndpoint } from \"@ghostly/core\";\nimport { hyperdhtRelayProblem } from \"../shared/hyperdhtRelay\";\n\nexport { hyperdhtRelayProblem as relayUrlProblem };\n\n/**\n * HyperDHT (WISP 103) for a browser, through a dht-relay: a server that runs the UDP half of HyperDHT and\n * talks to the browser over one WebSocket. It runs non-custodial: the browser keeps its keys, runs the\n * Noise handshake and the encrypted stream itself, and the relay moves handshake messages and ciphertext.\n * The binding (the handshake hash and both keys) is computed here, at the endpoint, as the Desktop does.\n *\n * What the relay sees: this browser's address, the HyperDHT keys it listens on and dials, and when and how\n * much it sends. Not the frames, not the keys' secrets, not the handshake hash.\n *\n * The wire is the Desktop's (native/transports/hyperdht/endpoint.mjs): the same preface, u32 length-prefixed\n * UTF-8 frames of at most 60 KiB, so a browser and a Desktop talk HyperDHT to each other.\n */\n\nconst PREFACE = \"ghostly/paired-chat/1\";\nconst MAX_FRAME = 60 * 1024;\nconst SEND_BUDGET = 120 * 1024;\nconst HANDSHAKE_MS = 20_000;\nconst RELAY_OPEN_MS = 10_000;\nconst LISTEN_MS = 20_000;\nconst MAX_CHANNELS = 2;\n/**\n * How the relay client is always made: never custodial. dht-relay's default is custodial, which sends every\n * secret key to the relay so it can run the handshake and the stream itself. Nothing here takes this from\n * settings or options; test/hyperdhtRelay.test.ts fails if a secret key ever reaches the relay's wire.\n */\nconst NON_CUSTODIAL = Object.freeze({ custodial: false as const });\n\n/**\n * The descriptor a browser's HyperDHT endpoint gives out: its key, that it is reached only through a relay, and\n * which one (the connection panel names its host; a Desktop dialling it ignores both).\n */\nexport interface RelayedHyperDescriptor { publicKey: string; relayed: true; relay: string }\n\n/** The parts of dht-relay and its streams this adapter uses. */\ninterface SecretSocket {\n handshakeHash: Uint8Array | null;\n publicKey: Uint8Array;\n remotePublicKey: Uint8Array;\n opened?: Promise<boolean>;\n destroyed?: boolean;\n write(data: Uint8Array): boolean;\n destroy(error?: Error): void;\n on(event: string, listener: (...args: never[]) => void): unknown;\n once(event: string, listener: (...args: never[]) => void): unknown;\n off(event: string, listener: (...args: never[]) => void): unknown;\n}\ninterface RelayedServer {\n listen(keyPair: KeyPair): Promise<void>;\n close(): Promise<void>;\n}\ninterface RelayedNode {\n ready(): Promise<void>;\n connect(remotePublicKey: Uint8Array, options: { keyPair: KeyPair }): SecretSocket;\n createServer(options: object, onconnection: (socket: SecretSocket) => void): RelayedServer;\n destroy(): Promise<void>;\n}\ninterface KeyPair { publicKey: Uint8Array; secretKey: Uint8Array }\n\nconst hex = (bytes: Uint8Array) => Array.from(bytes, b => b.toString(16).padStart(2, \"0\")).join(\"\");\nconst fromHex = (text: string) => Uint8Array.from(text.match(/../g)!, byte => parseInt(byte, 16));\n\n/** HyperDHT's key pair for a seed: libsodium's layout (the seed, then the public key). */\nexport function hyperKeyPair(seed: Uint8Array): KeyPair {\n if (seed.length !== 32) throw new Error(\"Invalid HyperDHT seed\");\n const publicKey = ed25519.getPublicKey(seed);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed); secretKey.set(publicKey, 32);\n return { publicKey, secretKey };\n}\n\n/**\n * One WebSocket per relay for the whole app, shared by every chat's endpoint (each listens on its own\n * key). It closes when the last endpoint does. When the relay goes away, every endpoint on it says it is\n * unavailable, and the next one to start opens a new connection.\n */\ninterface RelayClient {\n node: RelayedNode;\n endpoints: Set<{ unavailable(): void }>;\n gone: boolean;\n /** Settles when the relay connection closes. */\n closed: Promise<void>;\n}\nconst clients = new Map<string, Promise<RelayClient>>();\n\nasync function relayClient(url: string, createSocket: (url: string) => WebSocket): Promise<RelayClient> {\n const existing = clients.get(url);\n if (existing) {\n const client = await existing.catch(() => null);\n if (client && !client.gone) return client;\n if (clients.get(url) === existing) clients.delete(url);\n }\n const opening = (async () => {\n const [{ default: RelayedDHT }, { default: WebSocketStream }] = await Promise.all([\n // @ts-expect-error dht-relay ships no types: RelayedNode and SecretSocket above describe what this uses.\n import(\"@hyperswarm/dht-relay\"),\n // @ts-expect-error The same package's WebSocket stream, untyped too.\n import(\"@hyperswarm/dht-relay/ws\"),\n ]);\n const socket = createSocket(url);\n socket.binaryType = \"arraybuffer\";\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => { socket.close(); reject(new Error(\"The HyperDHT relay did not answer\")); }, RELAY_OPEN_MS);\n socket.addEventListener(\"open\", () => { clearTimeout(timer); resolve(); }, { once: true });\n socket.addEventListener(\"error\", () => { clearTimeout(timer); reject(new Error(\"Could not reach the HyperDHT relay\")); }, { once: true });\n socket.addEventListener(\"close\", () => { clearTimeout(timer); reject(new Error(\"The HyperDHT relay closed the connection\")); }, { once: true });\n });\n // Non-custodial: the relay is told public keys only, never a secret key (dht-relay's default sends them).\n // The node's own key is never used to listen or dial: a random one says nothing about this app.\n const node = new RelayedDHT(new WebSocketStream(true, socket), { ...NON_CUSTODIAL, keyPair: hyperKeyPair(crypto.getRandomValues(new Uint8Array(32))) }) as RelayedNode;\n let closed!: () => void;\n const client: RelayClient = { node, endpoints: new Set(), gone: false, closed: new Promise(resolve => { closed = resolve; }) };\n socket.addEventListener(\"close\", () => {\n client.gone = true; closed();\n if (clients.get(url) === opening) clients.delete(url);\n for (const endpoint of [...client.endpoints]) endpoint.unavailable();\n });\n return client;\n })();\n clients.set(url, opening);\n opening.catch(() => { if (clients.get(url) === opening) clients.delete(url); });\n return opening;\n}\n\nfunction release(url: string, client: RelayClient, endpoint: { unavailable(): void }): void {\n client.endpoints.delete(endpoint);\n if (client.endpoints.size || client.gone) return;\n client.gone = true;\n void clients.get(url)?.then(current => { if (current === client) clients.delete(url); }).catch(() => {});\n void client.node.destroy().catch(() => {});\n}\n\n/** One authenticated stream as a frame channel, with a bounded queue before the session installs its reader. */\nclass RelayedChannel implements FrameChannel {\n private reader: FrameChannel[\"onMessage\"] = null;\n private buffered: string[] = [];\n private closed = false;\n private pendingBytes = 0;\n onClose: FrameChannel[\"onClose\"] = null;\n constructor(private readonly socket: SecretSocket) {\n socket.on(\"drain\", () => { this.pendingBytes = 0; });\n }\n get bufferedAmount(): number { return this.pendingBytes; }\n readonly sendBudget = SEND_BUDGET;\n get onMessage() { return this.reader; }\n set onMessage(reader: FrameChannel[\"onMessage\"]) {\n this.reader = reader;\n if (reader) for (const text of this.buffered.splice(0)) reader(text);\n }\n receive(text: string): boolean {\n if (this.closed) return true;\n if (this.reader) this.reader(text);\n else if (this.buffered.length < 64) this.buffered.push(text);\n else return false;\n return true;\n }\n send(data: string | Uint8Array): void {\n if (typeof data !== \"string\" || this.closed || !data.length) throw new Error(\"Native channel is closed or exceeds its frame budget\");\n const payload = new TextEncoder().encode(data);\n if (payload.length > MAX_FRAME || this.pendingBytes + payload.length > SEND_BUDGET) throw new Error(\"Native channel is closed or exceeds its frame budget\");\n // The stream takes every write; past its high-water mark it says so until it drains.\n if (!writeFrame(this.socket, payload) || this.pendingBytes) this.pendingBytes += payload.length + 4;\n }\n drained(): Promise<void> {\n if (!this.pendingBytes) return Promise.resolve();\n return new Promise((resolve, reject) => {\n const done = () => { this.socket.off(\"close\", gone); resolve(); };\n const gone = () => { this.socket.off(\"drain\", done); reject(new Error(\"Native channel closed\")); };\n this.socket.once(\"drain\", done); this.socket.once(\"close\", gone);\n });\n }\n closedByPeer(): void {\n if (this.closed) return;\n this.closed = true; this.buffered = [];\n this.onClose?.();\n }\n close(): void {\n if (this.closed) return;\n this.socket.destroy();\n this.closedByPeer();\n }\n}\n\nfunction writeFrame(socket: SecretSocket, payload: Uint8Array): boolean {\n const frame = new Uint8Array(4 + payload.length);\n new DataView(frame.buffer).setUint32(0, payload.length);\n frame.set(payload, 4);\n return socket.write(frame);\n}\n\n/**\n * Waits for the peer's preface on an authenticated stream (sending ours as soon as the handshake is\n * done), then hands the channel over with the binding the stream itself gives. A frame of the wrong size,\n * bytes that are not UTF-8 or another protocol close the stream.\n */\nfunction attach(socket: SecretSocket, channels: Set<RelayedChannel>): Promise<BoundChannel> {\n if (channels.size >= MAX_CHANNELS) { socket.destroy(); return Promise.reject(new Error(\"Native connection limit reached\")); }\n const channel = new RelayedChannel(socket);\n channels.add(channel);\n return new Promise<BoundChannel>((resolve, reject) => {\n let buffer = new Uint8Array(0);\n let prefaced = false;\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n const timer = setTimeout(() => socket.destroy(new Error(\"HyperDHT handshake timed out\")), HANDSHAKE_MS);\n const fail = (error: Error) => { socket.destroy(error); };\n socket.on(\"error\", (error: Error) => reject(error));\n socket.on(\"close\", () => {\n clearTimeout(timer); channels.delete(channel);\n reject(new Error(\"Native channel closed\"));\n channel.closedByPeer();\n });\n const opened = () => {\n if (socket.handshakeHash?.length !== 64 || socket.publicKey?.length !== 32 || socket.remotePublicKey?.length !== 32) {\n fail(new Error(\"Noise session binding unavailable\")); return;\n }\n writeFrame(socket, new TextEncoder().encode(PREFACE));\n };\n if (socket.opened) void socket.opened.then(ok => { if (ok) opened(); else reject(new Error(\"Noise handshake failed\")); });\n else socket.once(\"open\", opened);\n socket.on(\"data\", (chunk: Uint8Array) => {\n const joined = new Uint8Array(buffer.length + chunk.length);\n joined.set(buffer); joined.set(chunk, buffer.length);\n buffer = joined;\n while (buffer.length >= 4) {\n const length = new DataView(buffer.buffer, buffer.byteOffset, 4).getUint32(0);\n if (length === 0 || length > MAX_FRAME) { fail(new Error(\"Invalid frame length\")); return; }\n if (buffer.length < 4 + length) break;\n let text: string;\n try { text = decoder.decode(buffer.subarray(4, 4 + length)); }\n catch { fail(new Error(\"Invalid UTF-8 frame\")); return; }\n buffer = buffer.slice(4 + length);\n if (!prefaced) {\n if (text !== PREFACE) { fail(new Error(\"Unexpected application protocol\")); return; }\n prefaced = true; clearTimeout(timer);\n resolve({ channel, binding: { transport: \"hyperdht/1\", context: hex(socket.handshakeHash!),\n identities: [hex(socket.publicKey), hex(socket.remotePublicKey)].sort() as [string, string] } });\n } else if (!channel.receive(text)) { fail(new Error(\"Receive queue exceeded\")); return; }\n }\n });\n });\n}\n\nexport interface RelayedHyperOptions {\n /** How to open the WebSocket (tests pass Node's `ws`). Default: the browser's. */\n createSocket?: (url: string) => WebSocket;\n}\n\n/**\n * A chat's HyperDHT endpoint through the relay at `url`: it listens on the key of `seedB64` (the chat's\n * own transport seed, as on the Desktop) and dials a contact's descriptor. Fails, and so is not offered,\n * when the relay cannot be reached or does not let it listen.\n */\nexport async function createRelayedHyperEndpoint(seedB64: string, url: string, options: RelayedHyperOptions = {}): Promise<NativeEndpoint> {\n const problem = hyperdhtRelayProblem(url);\n if (problem) throw new Error(problem);\n const keyPair = hyperKeyPair(fromBase64Url(seedB64));\n const client = await relayClient(url, options.createSocket ?? (address => new WebSocket(address)));\n const channels = new Set<RelayedChannel>();\n let stopped = false;\n let handler: NativeEndpoint[\"onConnection\"] = null;\n const waiting: BoundChannel[] = [];\n let endpoint: NativeEndpoint | null = null;\n const member = {\n unavailable() {\n if (stopped) return;\n stopped = true;\n for (const channel of channels) channel.close();\n endpoint?.onUnavailable?.();\n },\n };\n client.endpoints.add(member);\n const server = client.node.createServer({}, socket => {\n void attach(socket, channels).then(bound => {\n if (stopped) bound.channel.close();\n else if (handler) handler(bound);\n else if (waiting.length < MAX_CHANNELS) waiting.push(bound);\n else bound.channel.close();\n }).catch(() => {});\n });\n try {\n await Promise.race([\n server.listen(keyPair),\n client.closed.then(() => { throw new Error(\"The HyperDHT relay closed the connection\"); }),\n new Promise((_, reject) => setTimeout(() => reject(new Error(\"The HyperDHT relay did not let this chat listen\")), LISTEN_MS)),\n ]);\n if (client.gone) throw new Error(\"The HyperDHT relay closed the connection\");\n } catch (error) {\n stopped = true;\n void server.close().catch(() => {});\n release(url, client, member);\n throw error;\n }\n const descriptor: RelayedHyperDescriptor = { publicKey: hex(keyPair.publicKey), relayed: true, relay: url };\n endpoint = {\n transport: \"hyperdht/1\", descriptor, onDescriptor: null, onUnavailable: null,\n get onConnection() { return handler; },\n set onConnection(value) { handler = value; if (value) for (const bound of waiting.splice(0)) value(bound); },\n async connect(address) {\n const publicKey = (address as { publicKey?: unknown } | null)?.publicKey;\n if (stopped || typeof publicKey !== \"string\" || !/^[a-f0-9]{64}$/.test(publicKey)) throw new Error(\"Invalid HyperDHT endpoint\");\n return attach(client.node.connect(fromHex(publicKey), { keyPair }), channels);\n },\n async close() {\n stopped = true;\n for (const channel of channels) channel.close();\n waiting.length = 0;\n await server.close().catch(() => {});\n release(url, client, member);\n },\n };\n return endpoint;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hyperdhtRelay-CVLCuqVr.js","names":[],"sources":["../../../browser/src/platform/hyperdhtRelay.ts"],"sourcesContent":["import { ed25519 } from \"@noble/curves/ed25519.js\";\nimport { fromBase64Url, type BoundChannel, type FrameChannel, type NativeEndpoint } from \"@ghostly/core\";\nimport { hyperdhtRelayProblem } from \"../shared/hyperdhtRelay\";\n\nexport { hyperdhtRelayProblem as relayUrlProblem };\n\n/**\n * HyperDHT (WISP 103) for a browser, through a dht-relay: a server that runs the UDP half of HyperDHT and\n * talks to the browser over one WebSocket. It runs non-custodial: the browser keeps its keys, runs the\n * Noise handshake and the encrypted stream itself, and the relay moves handshake messages and ciphertext.\n * The binding (the handshake hash and both keys) is computed here, at the endpoint, as the Desktop does.\n *\n * What the relay sees: this browser's address, the HyperDHT keys it listens on and dials, and when and how\n * much it sends. Not the frames, not the keys' secrets, not the handshake hash.\n *\n * The wire is the Desktop's (native/transports/hyperdht/endpoint.mjs): the same preface, u32 length-prefixed\n * UTF-8 frames of at most 60 KiB, so a browser and a Desktop talk HyperDHT to each other.\n */\n\nconst PREFACE = \"ghostly/paired-chat/1\";\nconst MAX_FRAME = 60 * 1024;\nconst SEND_BUDGET = 120 * 1024;\nconst HANDSHAKE_MS = 20_000;\nconst RELAY_OPEN_MS = 10_000;\nconst LISTEN_MS = 20_000;\nconst MAX_CHANNELS = 2;\n/**\n * How the relay client is always made: never custodial. dht-relay's default is custodial, which sends every\n * secret key to the relay so it can run the handshake and the stream itself. Nothing here takes this from\n * settings or options; test/hyperdhtRelay.test.ts fails if a secret key ever reaches the relay's wire.\n */\nconst NON_CUSTODIAL = Object.freeze({ custodial: false as const });\n\n/**\n * The descriptor a browser's HyperDHT endpoint gives out: its key, that it is reached only through a relay, and\n * which one (the connection panel names its host; a Desktop dialling it ignores both).\n */\nexport interface RelayedHyperDescriptor { publicKey: string; relayed: true; relay: string }\n\n/** The parts of dht-relay and its streams this adapter uses. */\ninterface SecretSocket {\n handshakeHash: Uint8Array | null;\n publicKey: Uint8Array;\n remotePublicKey: Uint8Array;\n opened?: Promise<boolean>;\n destroyed?: boolean;\n write(data: Uint8Array): boolean;\n destroy(error?: Error): void;\n on(event: string, listener: (...args: never[]) => void): unknown;\n once(event: string, listener: (...args: never[]) => void): unknown;\n off(event: string, listener: (...args: never[]) => void): unknown;\n}\ninterface RelayedServer {\n listen(keyPair: KeyPair): Promise<void>;\n close(): Promise<void>;\n}\ninterface RelayedNode {\n ready(): Promise<void>;\n connect(remotePublicKey: Uint8Array, options: { keyPair: KeyPair }): SecretSocket;\n createServer(options: object, onconnection: (socket: SecretSocket) => void): RelayedServer;\n destroy(): Promise<void>;\n}\ninterface KeyPair { publicKey: Uint8Array; secretKey: Uint8Array }\n\nconst hex = (bytes: Uint8Array) => Array.from(bytes, b => b.toString(16).padStart(2, \"0\")).join(\"\");\nconst fromHex = (text: string) => Uint8Array.from(text.match(/../g)!, byte => parseInt(byte, 16));\n\n/** HyperDHT's key pair for a seed: libsodium's layout (the seed, then the public key). */\nexport function hyperKeyPair(seed: Uint8Array): KeyPair {\n if (seed.length !== 32) throw new Error(\"Invalid HyperDHT seed\");\n const publicKey = ed25519.getPublicKey(seed);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed); secretKey.set(publicKey, 32);\n return { publicKey, secretKey };\n}\n\n/**\n * One WebSocket per relay for the whole app, shared by every chat's endpoint (each listens on its own\n * key). It closes when the last endpoint does. When the relay goes away, every endpoint on it says it is\n * unavailable, and the next one to start opens a new connection.\n */\ninterface RelayClient {\n node: RelayedNode;\n endpoints: Set<{ unavailable(): void }>;\n gone: boolean;\n /** Settles when the relay connection closes. */\n closed: Promise<void>;\n}\nconst clients = new Map<string, Promise<RelayClient>>();\n\nasync function relayClient(url: string, createSocket: (url: string) => WebSocket): Promise<RelayClient> {\n const existing = clients.get(url);\n if (existing) {\n const client = await existing.catch(() => null);\n if (client && !client.gone) return client;\n if (clients.get(url) === existing) clients.delete(url);\n }\n const opening = (async () => {\n const [{ default: RelayedDHT }, { default: WebSocketStream }] = await Promise.all([\n // @ts-expect-error dht-relay ships no types: RelayedNode and SecretSocket above describe what this uses.\n import(\"@hyperswarm/dht-relay\"),\n // @ts-expect-error The same package's WebSocket stream, untyped too.\n import(\"@hyperswarm/dht-relay/ws\"),\n ]);\n const socket = createSocket(url);\n socket.binaryType = \"arraybuffer\";\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => { socket.close(); reject(new Error(\"The HyperDHT relay did not answer\")); }, RELAY_OPEN_MS);\n socket.addEventListener(\"open\", () => { clearTimeout(timer); resolve(); }, { once: true });\n socket.addEventListener(\"error\", () => { clearTimeout(timer); reject(new Error(\"Could not reach the HyperDHT relay\")); }, { once: true });\n socket.addEventListener(\"close\", () => { clearTimeout(timer); reject(new Error(\"The HyperDHT relay closed the connection\")); }, { once: true });\n });\n // Non-custodial: the relay is told public keys only, never a secret key (dht-relay's default sends them).\n // The node's own key is never used to listen or dial: a random one says nothing about this app.\n const node = new RelayedDHT(new WebSocketStream(true, socket), { ...NON_CUSTODIAL, keyPair: hyperKeyPair(crypto.getRandomValues(new Uint8Array(32))) }) as RelayedNode;\n let closed!: () => void;\n const client: RelayClient = { node, endpoints: new Set(), gone: false, closed: new Promise(resolve => { closed = resolve; }) };\n socket.addEventListener(\"close\", () => {\n client.gone = true; closed();\n if (clients.get(url) === opening) clients.delete(url);\n for (const endpoint of [...client.endpoints]) endpoint.unavailable();\n });\n return client;\n })();\n clients.set(url, opening);\n opening.catch(() => { if (clients.get(url) === opening) clients.delete(url); });\n return opening;\n}\n\nfunction release(url: string, client: RelayClient, endpoint: { unavailable(): void }): void {\n client.endpoints.delete(endpoint);\n if (client.endpoints.size || client.gone) return;\n client.gone = true;\n void clients.get(url)?.then(current => { if (current === client) clients.delete(url); }).catch(() => {});\n void client.node.destroy().catch(() => {});\n}\n\n/** One authenticated stream as a frame channel, with a bounded queue before the session installs its reader. */\nclass RelayedChannel implements FrameChannel {\n private reader: FrameChannel[\"onMessage\"] = null;\n private buffered: string[] = [];\n private closed = false;\n private pendingBytes = 0;\n onClose: FrameChannel[\"onClose\"] = null;\n constructor(private readonly socket: SecretSocket) {\n socket.on(\"drain\", () => { this.pendingBytes = 0; });\n }\n get bufferedAmount(): number { return this.pendingBytes; }\n readonly sendBudget = SEND_BUDGET;\n get onMessage() { return this.reader; }\n set onMessage(reader: FrameChannel[\"onMessage\"]) {\n this.reader = reader;\n if (reader) for (const text of this.buffered.splice(0)) reader(text);\n }\n receive(text: string): boolean {\n if (this.closed) return true;\n if (this.reader) this.reader(text);\n else if (this.buffered.length < 64) this.buffered.push(text);\n else return false;\n return true;\n }\n send(data: string | Uint8Array): void {\n if (typeof data !== \"string\" || this.closed || !data.length) throw new Error(\"Native channel is closed or exceeds its frame budget\");\n const payload = new TextEncoder().encode(data);\n if (payload.length > MAX_FRAME || this.pendingBytes + payload.length > SEND_BUDGET) throw new Error(\"Native channel is closed or exceeds its frame budget\");\n // The stream takes every write; past its high-water mark it says so until it drains.\n if (!writeFrame(this.socket, payload) || this.pendingBytes) this.pendingBytes += payload.length + 4;\n }\n drained(): Promise<void> {\n if (!this.pendingBytes) return Promise.resolve();\n return new Promise((resolve, reject) => {\n const done = () => { this.socket.off(\"close\", gone); resolve(); };\n const gone = () => { this.socket.off(\"drain\", done); reject(new Error(\"Native channel closed\")); };\n this.socket.once(\"drain\", done); this.socket.once(\"close\", gone);\n });\n }\n closedByPeer(): void {\n if (this.closed) return;\n this.closed = true; this.buffered = [];\n this.onClose?.();\n }\n close(): void {\n if (this.closed) return;\n this.socket.destroy();\n this.closedByPeer();\n }\n}\n\nfunction writeFrame(socket: SecretSocket, payload: Uint8Array): boolean {\n const frame = new Uint8Array(4 + payload.length);\n new DataView(frame.buffer).setUint32(0, payload.length);\n frame.set(payload, 4);\n return socket.write(frame);\n}\n\n/**\n * Waits for the peer's preface on an authenticated stream (sending ours as soon as the handshake is\n * done), then hands the channel over with the binding the stream itself gives. A frame of the wrong size,\n * bytes that are not UTF-8 or another protocol close the stream.\n */\nfunction attach(socket: SecretSocket, channels: Set<RelayedChannel>): Promise<BoundChannel> {\n if (channels.size >= MAX_CHANNELS) { socket.destroy(); return Promise.reject(new Error(\"Native connection limit reached\")); }\n const channel = new RelayedChannel(socket);\n channels.add(channel);\n return new Promise<BoundChannel>((resolve, reject) => {\n let buffer = new Uint8Array(0);\n let prefaced = false;\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n const timer = setTimeout(() => socket.destroy(new Error(\"HyperDHT handshake timed out\")), HANDSHAKE_MS);\n const fail = (error: Error) => { socket.destroy(error); };\n socket.on(\"error\", (error: Error) => reject(error));\n socket.on(\"close\", () => {\n clearTimeout(timer); channels.delete(channel);\n reject(new Error(\"Native channel closed\"));\n channel.closedByPeer();\n });\n const opened = () => {\n if (socket.handshakeHash?.length !== 64 || socket.publicKey?.length !== 32 || socket.remotePublicKey?.length !== 32) {\n fail(new Error(\"Noise session binding unavailable\")); return;\n }\n writeFrame(socket, new TextEncoder().encode(PREFACE));\n };\n if (socket.opened) void socket.opened.then(ok => { if (ok) opened(); else reject(new Error(\"Noise handshake failed\")); });\n else socket.once(\"open\", opened);\n socket.on(\"data\", (chunk: Uint8Array) => {\n const joined = new Uint8Array(buffer.length + chunk.length);\n joined.set(buffer); joined.set(chunk, buffer.length);\n buffer = joined;\n while (buffer.length >= 4) {\n const length = new DataView(buffer.buffer, buffer.byteOffset, 4).getUint32(0);\n if (length === 0 || length > MAX_FRAME) { fail(new Error(\"Invalid frame length\")); return; }\n if (buffer.length < 4 + length) break;\n let text: string;\n try { text = decoder.decode(buffer.subarray(4, 4 + length)); }\n catch { fail(new Error(\"Invalid UTF-8 frame\")); return; }\n buffer = buffer.slice(4 + length);\n if (!prefaced) {\n if (text !== PREFACE) { fail(new Error(\"Unexpected application protocol\")); return; }\n prefaced = true; clearTimeout(timer);\n resolve({ channel, binding: { transport: \"hyperdht/1\", context: hex(socket.handshakeHash!),\n identities: [hex(socket.publicKey), hex(socket.remotePublicKey)].sort() as [string, string] } });\n } else if (!channel.receive(text)) { fail(new Error(\"Receive queue exceeded\")); return; }\n }\n });\n });\n}\n\nexport interface RelayedHyperOptions {\n /** How to open the WebSocket (tests pass Node's `ws`). Default: the browser's. */\n createSocket?: (url: string) => WebSocket;\n}\n\n/**\n * A chat's HyperDHT endpoint through the relay at `url`: it listens on the key of `seedB64` (the chat's\n * own transport seed, as on the Desktop) and dials a contact's descriptor. Fails, and so is not offered,\n * when the relay cannot be reached or does not let it listen.\n */\nexport async function createRelayedHyperEndpoint(seedB64: string, url: string, options: RelayedHyperOptions = {}): Promise<NativeEndpoint> {\n const problem = hyperdhtRelayProblem(url);\n if (problem) throw new Error(problem);\n const keyPair = hyperKeyPair(fromBase64Url(seedB64));\n const client = await relayClient(url, options.createSocket ?? (address => new WebSocket(address)));\n const channels = new Set<RelayedChannel>();\n let stopped = false;\n let handler: NativeEndpoint[\"onConnection\"] = null;\n const waiting: BoundChannel[] = [];\n let endpoint: NativeEndpoint | null = null;\n const member = {\n unavailable() {\n if (stopped) return;\n stopped = true;\n for (const channel of channels) channel.close();\n endpoint?.onUnavailable?.();\n },\n };\n client.endpoints.add(member);\n const server = client.node.createServer({}, socket => {\n void attach(socket, channels).then(bound => {\n if (stopped) bound.channel.close();\n else if (handler) handler(bound);\n else if (waiting.length < MAX_CHANNELS) waiting.push(bound);\n else bound.channel.close();\n }).catch(() => {});\n });\n try {\n await Promise.race([\n server.listen(keyPair),\n client.closed.then(() => { throw new Error(\"The HyperDHT relay closed the connection\"); }),\n new Promise((_, reject) => setTimeout(() => reject(new Error(\"The HyperDHT relay did not let this chat listen\")), LISTEN_MS)),\n ]);\n if (client.gone) throw new Error(\"The HyperDHT relay closed the connection\");\n } catch (error) {\n stopped = true;\n void server.close().catch(() => {});\n release(url, client, member);\n throw error;\n }\n const descriptor: RelayedHyperDescriptor = { publicKey: hex(keyPair.publicKey), relayed: true, relay: url };\n endpoint = {\n transport: \"hyperdht/1\", descriptor, onDescriptor: null, onUnavailable: null,\n get onConnection() { return handler; },\n set onConnection(value) { handler = value; if (value) for (const bound of waiting.splice(0)) value(bound); },\n async connect(address) {\n const publicKey = (address as { publicKey?: unknown } | null)?.publicKey;\n if (stopped || typeof publicKey !== \"string\" || !/^[a-f0-9]{64}$/.test(publicKey)) throw new Error(\"Invalid HyperDHT endpoint\");\n return attach(client.node.connect(fromHex(publicKey), { keyPair }), channels);\n },\n async close() {\n stopped = true;\n for (const channel of channels) channel.close();\n waiting.length = 0;\n await server.close().catch(() => {});\n release(url, client, member);\n },\n };\n return endpoint;\n}\n"],"mappings":"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"}
@@ -35,7 +35,7 @@ function profileOpenFailure(error) {
35
35
  const detail = error instanceof Error ? error.message : String(error);
36
36
  return {
37
37
  reason: "failed",
38
- supportedVersion: 12,
38
+ supportedVersion: 13,
39
39
  ...detail ? { detail } : {}
40
40
  };
41
41
  }
@@ -47,7 +47,7 @@ function failureOf(error) {
47
47
  const detail = [typeof name === "string" ? name : "", typeof message === "string" ? message : ""].filter(Boolean).join(": ");
48
48
  return {
49
49
  reason: name === "VersionError" ? "newer" : name === "QuotaExceededError" ? "full" : name === "BlockedError" ? "blocked" : name === "SecurityError" || name === "InvalidStateError" || name === "ReferenceError" || name === "TypeError" ? "denied" : "failed",
50
- supportedVersion: 12,
50
+ supportedVersion: 13,
51
51
  ...detail ? { detail } : {}
52
52
  };
53
53
  }
@@ -122,7 +122,7 @@ function openDb() {
122
122
  };
123
123
  let request;
124
124
  try {
125
- request = indexedDB.open(dbName, 12);
125
+ request = indexedDB.open(dbName, 13);
126
126
  } catch (error) {
127
127
  fail(error);
128
128
  return;
@@ -348,4 +348,4 @@ var fileStore = {
348
348
  //#endregion
349
349
  export { deleteDatabase as a, profileOpenFailure as c, wrap as d, databaseName as i, store as l, STORES as n, fileStore as o, clearProfileStores as r, openDb as s, CARD_INDEX as t, transact as u };
350
350
 
351
- //# sourceMappingURL=idb-DIN_Miwb.js.map
351
+ //# sourceMappingURL=idb-Co2lObpU.js.map