@ghostlytools/cli 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/assets/{api-Dq2QXQDk.js → api-B1fADtqd.js} +65 -20
- package/dist/assets/api-B1fADtqd.js.map +1 -0
- package/dist/assets/{api-TiB5QSG9.js → api-Bg7bh_6E.js} +2 -2
- package/dist/assets/{apiKit-CA2x5GJF.js → apiKit-BsUZPHLn.js} +44 -33
- package/dist/assets/apiKit-BsUZPHLn.js.map +1 -0
- package/dist/assets/{apps-BxV9i_Y4.js → apps-BaUNt-5c.js} +91 -24
- package/dist/assets/apps-BaUNt-5c.js.map +1 -0
- package/dist/assets/{apps-C-T8jeji.js → apps-DepomCiX.js} +1 -1
- package/dist/assets/{arkade-C_qDmHnm.js → arkade-CNnMaoEQ.js} +4 -4
- package/dist/assets/arkade-CNnMaoEQ.js.map +1 -0
- package/dist/assets/{backup-Bugnn3Ue.js → backup-B5Q1W-Ey.js} +1 -1
- package/dist/assets/{backup-CnMN2oUK.js → backup-Bbz3lyC5.js} +6 -6
- package/dist/assets/{backup-CnMN2oUK.js.map → backup-Bbz3lyC5.js.map} +1 -1
- package/dist/assets/buttons-CUd7j0ZA.js +2 -0
- package/dist/assets/{buttons-CvNBzh2S.js → buttons-DS1iURp8.js} +4 -4
- package/dist/assets/{buttons-CvNBzh2S.js.map → buttons-DS1iURp8.js.map} +1 -1
- package/dist/assets/{envelope-WjingYSc.js → envelope-fNC941z4.js} +2 -2
- package/dist/assets/{envelope-WjingYSc.js.map → envelope-fNC941z4.js.map} +1 -1
- package/dist/assets/{errors-DO5z6h_l.js → errors-B-zMxbcd.js} +6 -5
- package/dist/assets/{errors-DO5z6h_l.js.map → errors-B-zMxbcd.js.map} +1 -1
- package/dist/assets/{ghostly_iroh_web-Dvzh3Y6E.js → ghostly_iroh_web-BsAEFIjl.js} +30 -36
- package/dist/assets/ghostly_iroh_web-BsAEFIjl.js.map +1 -0
- package/dist/assets/ghostly_iroh_web_bg.wasm +0 -0
- package/dist/assets/{groupFiles-IEUW3DQz.js → groupFiles-6qnLCnOm.js} +82 -29
- package/dist/assets/groupFiles-6qnLCnOm.js.map +1 -0
- package/dist/assets/{host-CWt-jtqz.js → host-Dj3C1fn3.js} +305 -68
- package/dist/assets/host-Dj3C1fn3.js.map +1 -0
- package/dist/assets/{hyperdhtRelay-CPYwSLLS.js → hyperdhtRelay-CrgYQN-g.js} +2 -2
- package/dist/assets/{hyperdhtRelay-CPYwSLLS.js.map → hyperdhtRelay-CrgYQN-g.js.map} +1 -1
- package/dist/assets/{irohWeb-4oChIOIp.js → irohWeb-DSyLp5Re.js} +3 -3
- package/dist/assets/{irohWeb-4oChIOIp.js.map → irohWeb-DSyLp5Re.js.map} +1 -1
- package/dist/assets/{main-DbqcdShN.js → main-BDd11Yd1.js} +159 -54
- package/dist/assets/main-BDd11Yd1.js.map +1 -0
- package/dist/assets/{mainline-ZkiOnevs.js → mainline-CLTo0nGa.js} +2 -2
- package/dist/assets/{mainline-ZkiOnevs.js.map → mainline-CLTo0nGa.js.map} +1 -1
- package/dist/assets/{networkReason-CetKkTPo.js → networkReason-DwcadZz5.js} +2 -2
- package/dist/assets/{networkReason-CetKkTPo.js.map → networkReason-DwcadZz5.js.map} +1 -1
- package/dist/assets/{nwc-CgkqyvsE.js → nwc-BNFyyECH.js} +3 -3
- package/dist/assets/{nwc-CgkqyvsE.js.map → nwc-BNFyyECH.js.map} +1 -1
- package/dist/assets/{nwcProvider-4eVz_8HP.js → nwcProvider-BbjJOfLD.js} +2 -2
- package/dist/assets/{nwcProvider-4eVz_8HP.js.map → nwcProvider-BbjJOfLD.js.map} +1 -1
- package/dist/assets/{profiles-BHc9pEYg.js → profiles-gPCjLOQq.js} +2 -2
- package/dist/assets/{profiles-BHc9pEYg.js.map → profiles-gPCjLOQq.js.map} +1 -1
- package/dist/assets/{registry-DlAKO0Fy.js → registry-CoLHpxkb.js} +17 -32
- package/dist/assets/registry-CoLHpxkb.js.map +1 -0
- package/dist/assets/{registry-OBJBnHVQ.js → registry-DoTb6uEr.js} +1 -1
- package/dist/assets/{resolve-CouHhCpJ.js → resolve-BIDJ-UUl.js} +18 -3
- package/dist/assets/resolve-BIDJ-UUl.js.map +1 -0
- package/dist/assets/{server-Ss0gJ-nw.js → server-Bx3RGkBC.js} +380 -116
- package/dist/assets/server-Bx3RGkBC.js.map +1 -0
- package/dist/assets/{src-DDzSERyc.js → src-D7gcJElT.js} +470 -242
- package/dist/assets/src-D7gcJElT.js.map +1 -0
- package/dist/assets/{turnRefs-B87dtrHM.js → turnRefs-PN644M9o.js} +2 -2
- package/dist/assets/{turnRefs-B87dtrHM.js.map → turnRefs-PN644M9o.js.map} +1 -1
- package/dist/assets/{usdt-Fj8CQO2z.js → usdt-B2TLRlYa.js} +3 -3
- package/dist/assets/{usdt-Fj8CQO2z.js.map → usdt-B2TLRlYa.js.map} +1 -1
- package/dist/ghostly.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/api-Dq2QXQDk.js.map +0 -1
- package/dist/assets/apiKit-CA2x5GJF.js.map +0 -1
- package/dist/assets/apps-BxV9i_Y4.js.map +0 -1
- package/dist/assets/arkade-C_qDmHnm.js.map +0 -1
- package/dist/assets/buttons-Bj7Vf7Pn.js +0 -2
- package/dist/assets/ghostly_iroh_web-Dvzh3Y6E.js.map +0 -1
- package/dist/assets/groupFiles-IEUW3DQz.js.map +0 -1
- package/dist/assets/host-CWt-jtqz.js.map +0 -1
- package/dist/assets/main-DbqcdShN.js.map +0 -1
- package/dist/assets/registry-DlAKO0Fy.js.map +0 -1
- package/dist/assets/resolve-CouHhCpJ.js.map +0 -1
- package/dist/assets/server-Ss0gJ-nw.js.map +0 -1
- package/dist/assets/src-DDzSERyc.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope-WjingYSc.js","names":[],"sources":["../../../browser/src/backup/codec.ts","../../../browser/src/backup/envelope.ts"],"sourcesContent":["import { toBase64Url } from \"@ghostly/core\";\n\n/**\n * Base64url without padding. Core's encoder, not `btoa`: every picture, voice note and kept file (up to 16 MiB each)\n * goes through it on the page's thread, where `btoa` spends over a second per 16 MiB.\n */\nexport { toBase64Url };\nexport function fromBase64Url(text: string): Uint8Array {\n if (!/^[A-Za-z0-9_-]*$/.test(text)) throw new Error(\"Invalid base64url\");\n const binary = atob(text.replace(/-/g, \"+\").replace(/_/g, \"/\") + \"=\".repeat((4 - (text.length % 4)) % 4));\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes;\n}\n\ntype Tagged = { $ghostly: \"bigint\" | \"bytes\" | \"blob\"; value: string; type?: string };\n/** Data that happens to look like a tag (a contact can send anything) travels as its entries instead. */\ntype Escaped = { $ghostly: \"object\"; entries: [string, unknown][] };\n\n/**\n * Blobs cannot be read synchronously: turn them into tagged values first, everywhere in the tree. An\n * object of the data's own with a `$ghostly` key is escaped, so it comes back as it was and not as a tag.\n */\nasync function inlineBlobs(value: unknown): Promise<unknown> {\n if (typeof Blob !== \"undefined\" && value instanceof Blob) return { $ghostly: \"blob\", type: value.type, value: toBase64Url(new Uint8Array(await value.arrayBuffer())) } satisfies Tagged;\n if (Array.isArray(value)) return Promise.all(value.map(inlineBlobs));\n if (value && typeof value === \"object\" && !(value instanceof Uint8Array) && !(value instanceof ArrayBuffer) && !ArrayBuffer.isView(value)) {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value)) out[k] = await inlineBlobs(v);\n return Object.prototype.hasOwnProperty.call(out, \"$ghostly\") ? ({ $ghostly: \"object\", entries: Object.entries(out) } satisfies Escaped) : out;\n }\n return value;\n}\n\n/** JSON that also carries what IndexedDB holds: bigints, bytes and blobs (WISP 05). */\nexport async function encode(value: unknown): Promise<string> {\n return JSON.stringify(await inlineBlobs(value), (_key, v) => {\n if (typeof v === \"bigint\") return { $ghostly: \"bigint\", value: String(v) } satisfies Tagged;\n if (v instanceof Uint8Array) return { $ghostly: \"bytes\", value: toBase64Url(v) } satisfies Tagged;\n if (v instanceof ArrayBuffer) return { $ghostly: \"bytes\", value: toBase64Url(new Uint8Array(v)) } satisfies Tagged;\n return v;\n });\n}\n/** Never throws on a tag it cannot read: that value stays as it is, and the rest of the backup restores. */\nexport function decode(text: string): unknown {\n return JSON.parse(text, (_key, v) => {\n const escaped = v as Partial<Escaped> | null;\n if (escaped && typeof escaped === \"object\" && escaped.$ghostly === \"object\" && Array.isArray(escaped.entries)) {\n const out: Record<string, unknown> = {};\n for (const entry of escaped.entries) if (Array.isArray(entry) && typeof entry[0] === \"string\") Object.defineProperty(out, entry[0], { value: entry[1], enumerable: true, writable: true, configurable: true });\n return out;\n }\n const tag = v as Partial<Tagged> | null;\n if (!tag || typeof tag !== \"object\" || typeof tag.$ghostly !== \"string\" || typeof tag.value !== \"string\") return v;\n if (tag.$ghostly === \"bigint\") return /^-?\\d+$/.test(tag.value) ? BigInt(tag.value) : v;\n if (!/^[A-Za-z0-9_-]*$/.test(tag.value)) return v;\n if (tag.$ghostly === \"bytes\") return fromBase64Url(tag.value);\n if (tag.$ghostly === \"blob\") return new Blob([fromBase64Url(tag.value) as BlobPart], { type: typeof tag.type === \"string\" ? tag.type : \"\" });\n return v;\n });\n}\n","import { fromBase64Url, toBase64Url } from \"./codec\";\n\n/** The clear part of a bundle (WISP 05): only what decryption needs. */\nexport interface Envelope {\n format: \"ghostly-backup\";\n version: 1;\n kdf: { name: \"PBKDF2-SHA256\"; iterations: number; salt: string };\n cipher: { name: \"AES-256-GCM\"; iv: string };\n compression: \"gzip\" | \"none\";\n ciphertext: string;\n}\nexport const BACKUP_MEDIA_TYPE = \"application/vnd.ghostly.backup+json\";\nconst ITERATIONS = 600_000;\n\nasync function keyFrom(passphrase: string, salt: Uint8Array, iterations: number): Promise<CryptoKey> {\n const material = await crypto.subtle.importKey(\"raw\", new TextEncoder().encode(passphrase), \"PBKDF2\", false, [\"deriveKey\"]);\n return crypto.subtle.deriveKey({ name: \"PBKDF2\", hash: \"SHA-256\", salt: salt as BufferSource, iterations }, material, { name: \"AES-GCM\", length: 256 }, false, [\"encrypt\", \"decrypt\"]);\n}\n/** A profile with years of files is large, but not this large: past it, a bundle is refused, not read. */\nexport const MAX_BACKUP_BYTES = 1024 * 1024 * 1024;\n\nasync function through(bytes: Uint8Array, stream: CompressionStream | DecompressionStream): Promise<Uint8Array> {\n const reader = new Blob([bytes as BlobPart]).stream().pipeThrough(stream).getReader();\n const chunks: Uint8Array[] = [];\n let size = 0;\n for (let next = await reader.read(); !next.done; next = await reader.read()) {\n size += next.value.length;\n if (size > MAX_BACKUP_BYTES) { await reader.cancel(); throw new Error(\"This backup is too large to restore\"); }\n chunks.push(next.value);\n }\n const out = new Uint8Array(size);\n let at = 0;\n for (const chunk of chunks) { out.set(chunk, at); at += chunk.length; }\n return out;\n}\n\n/**\n * The clear header is authenticated with the ciphertext (AES-GCM associated data): changing any of it,\n * the compression included, makes the bundle fail to open instead of being read differently.\n */\nconst header = (e: Pick<Envelope, \"format\" | \"version\" | \"kdf\" | \"cipher\" | \"compression\">) =>\n new TextEncoder().encode([e.format, e.version, e.kdf.name, e.kdf.iterations, e.kdf.salt, e.cipher.name, e.cipher.iv, e.compression].join(\"\\n\"));\nconst canCompress = () => typeof CompressionStream !== \"undefined\";\n\n/** Compresses and encrypts a payload under a passphrase the person chose. */\nexport async function seal(payload: string, passphrase: string): Promise<string> {\n if (passphrase.length < 12) throw new Error(\"Use at least 12 characters for the backup passphrase\");\n const salt = crypto.getRandomValues(new Uint8Array(16)), iv = crypto.getRandomValues(new Uint8Array(12));\n const plain = new TextEncoder().encode(payload);\n const compression = canCompress() ? \"gzip\" : \"none\";\n const body = compression === \"gzip\" ? await through(plain, new CompressionStream(\"gzip\")) : plain;\n const clear = { format: \"ghostly-backup\", version: 1, kdf: { name: \"PBKDF2-SHA256\", iterations: ITERATIONS, salt: toBase64Url(salt) }, cipher: { name: \"AES-256-GCM\", iv: toBase64Url(iv) }, compression } as const;\n const ciphertext = new Uint8Array(await crypto.subtle.encrypt({ name: \"AES-GCM\", iv, additionalData: header(clear) as BufferSource }, await keyFrom(passphrase, salt, ITERATIONS), body as BufferSource));\n const envelope: Envelope = { ...clear, ciphertext: toBase64Url(ciphertext) };\n return JSON.stringify(envelope);\n}\n\n/** Checks, decrypts and decompresses a bundle. Nothing from a bundle is used before this succeeds. */\nexport async function open(text: string, passphrase: string): Promise<string> {\n if (text.length > MAX_BACKUP_BYTES * 1.4) throw new Error(\"This backup is too large to restore\");\n let envelope: Envelope;\n try { envelope = JSON.parse(text) as Envelope; } catch { throw new Error(\"This is not a Ghostly backup\"); }\n if (envelope?.format !== \"ghostly-backup\") throw new Error(\"This is not a Ghostly backup\");\n if (envelope.version !== 1) throw new Error(\"This backup comes from a newer Ghostly; update to restore it\");\n if (envelope.kdf?.name !== \"PBKDF2-SHA256\" || !(envelope.kdf.iterations >= ITERATIONS) || envelope.kdf.iterations > 10_000_000 || envelope.cipher?.name !== \"AES-256-GCM\" || ![\"gzip\", \"none\"].includes(envelope.compression)) throw new Error(\"Unsupported backup encryption\");\n let body: Uint8Array;\n try {\n body = new Uint8Array(await crypto.subtle.decrypt({ name: \"AES-GCM\", iv: fromBase64Url(envelope.cipher.iv) as BufferSource, additionalData: header(envelope) as BufferSource }, await keyFrom(passphrase, fromBase64Url(envelope.kdf.salt), envelope.kdf.iterations), fromBase64Url(envelope.ciphertext) as BufferSource));\n } catch { throw new Error(\"Wrong passphrase, or the backup was changed\"); }\n const plain = envelope.compression === \"gzip\" ? await through(body, new DecompressionStream(\"gzip\")) : body;\n return new TextDecoder().decode(plain);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"envelope-fNC941z4.js","names":[],"sources":["../../../browser/src/backup/codec.ts","../../../browser/src/backup/envelope.ts"],"sourcesContent":["import { toBase64Url } from \"@ghostly/core\";\n\n/**\n * Base64url without padding. Core's encoder, not `btoa`: every picture, voice note and kept file (up to 16 MiB each)\n * goes through it on the page's thread, where `btoa` spends over a second per 16 MiB.\n */\nexport { toBase64Url };\nexport function fromBase64Url(text: string): Uint8Array {\n if (!/^[A-Za-z0-9_-]*$/.test(text)) throw new Error(\"Invalid base64url\");\n const binary = atob(text.replace(/-/g, \"+\").replace(/_/g, \"/\") + \"=\".repeat((4 - (text.length % 4)) % 4));\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes;\n}\n\ntype Tagged = { $ghostly: \"bigint\" | \"bytes\" | \"blob\"; value: string; type?: string };\n/** Data that happens to look like a tag (a contact can send anything) travels as its entries instead. */\ntype Escaped = { $ghostly: \"object\"; entries: [string, unknown][] };\n\n/**\n * Blobs cannot be read synchronously: turn them into tagged values first, everywhere in the tree. An\n * object of the data's own with a `$ghostly` key is escaped, so it comes back as it was and not as a tag.\n */\nasync function inlineBlobs(value: unknown): Promise<unknown> {\n if (typeof Blob !== \"undefined\" && value instanceof Blob) return { $ghostly: \"blob\", type: value.type, value: toBase64Url(new Uint8Array(await value.arrayBuffer())) } satisfies Tagged;\n if (Array.isArray(value)) return Promise.all(value.map(inlineBlobs));\n if (value && typeof value === \"object\" && !(value instanceof Uint8Array) && !(value instanceof ArrayBuffer) && !ArrayBuffer.isView(value)) {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value)) out[k] = await inlineBlobs(v);\n return Object.prototype.hasOwnProperty.call(out, \"$ghostly\") ? ({ $ghostly: \"object\", entries: Object.entries(out) } satisfies Escaped) : out;\n }\n return value;\n}\n\n/** JSON that also carries what IndexedDB holds: bigints, bytes and blobs (WISP 05). */\nexport async function encode(value: unknown): Promise<string> {\n return JSON.stringify(await inlineBlobs(value), (_key, v) => {\n if (typeof v === \"bigint\") return { $ghostly: \"bigint\", value: String(v) } satisfies Tagged;\n if (v instanceof Uint8Array) return { $ghostly: \"bytes\", value: toBase64Url(v) } satisfies Tagged;\n if (v instanceof ArrayBuffer) return { $ghostly: \"bytes\", value: toBase64Url(new Uint8Array(v)) } satisfies Tagged;\n return v;\n });\n}\n/** Never throws on a tag it cannot read: that value stays as it is, and the rest of the backup restores. */\nexport function decode(text: string): unknown {\n return JSON.parse(text, (_key, v) => {\n const escaped = v as Partial<Escaped> | null;\n if (escaped && typeof escaped === \"object\" && escaped.$ghostly === \"object\" && Array.isArray(escaped.entries)) {\n const out: Record<string, unknown> = {};\n for (const entry of escaped.entries) if (Array.isArray(entry) && typeof entry[0] === \"string\") Object.defineProperty(out, entry[0], { value: entry[1], enumerable: true, writable: true, configurable: true });\n return out;\n }\n const tag = v as Partial<Tagged> | null;\n if (!tag || typeof tag !== \"object\" || typeof tag.$ghostly !== \"string\" || typeof tag.value !== \"string\") return v;\n if (tag.$ghostly === \"bigint\") return /^-?\\d+$/.test(tag.value) ? BigInt(tag.value) : v;\n if (!/^[A-Za-z0-9_-]*$/.test(tag.value)) return v;\n if (tag.$ghostly === \"bytes\") return fromBase64Url(tag.value);\n if (tag.$ghostly === \"blob\") return new Blob([fromBase64Url(tag.value) as BlobPart], { type: typeof tag.type === \"string\" ? tag.type : \"\" });\n return v;\n });\n}\n","import { fromBase64Url, toBase64Url } from \"./codec\";\n\n/** The clear part of a bundle (WISP 05): only what decryption needs. */\nexport interface Envelope {\n format: \"ghostly-backup\";\n version: 1;\n kdf: { name: \"PBKDF2-SHA256\"; iterations: number; salt: string };\n cipher: { name: \"AES-256-GCM\"; iv: string };\n compression: \"gzip\" | \"none\";\n ciphertext: string;\n}\nexport const BACKUP_MEDIA_TYPE = \"application/vnd.ghostly.backup+json\";\nconst ITERATIONS = 600_000;\n\nasync function keyFrom(passphrase: string, salt: Uint8Array, iterations: number): Promise<CryptoKey> {\n const material = await crypto.subtle.importKey(\"raw\", new TextEncoder().encode(passphrase), \"PBKDF2\", false, [\"deriveKey\"]);\n return crypto.subtle.deriveKey({ name: \"PBKDF2\", hash: \"SHA-256\", salt: salt as BufferSource, iterations }, material, { name: \"AES-GCM\", length: 256 }, false, [\"encrypt\", \"decrypt\"]);\n}\n/** A profile with years of files is large, but not this large: past it, a bundle is refused, not read. */\nexport const MAX_BACKUP_BYTES = 1024 * 1024 * 1024;\n\nasync function through(bytes: Uint8Array, stream: CompressionStream | DecompressionStream): Promise<Uint8Array> {\n const reader = new Blob([bytes as BlobPart]).stream().pipeThrough(stream).getReader();\n const chunks: Uint8Array[] = [];\n let size = 0;\n for (let next = await reader.read(); !next.done; next = await reader.read()) {\n size += next.value.length;\n if (size > MAX_BACKUP_BYTES) { await reader.cancel(); throw new Error(\"This backup is too large to restore\"); }\n chunks.push(next.value);\n }\n const out = new Uint8Array(size);\n let at = 0;\n for (const chunk of chunks) { out.set(chunk, at); at += chunk.length; }\n return out;\n}\n\n/**\n * The clear header is authenticated with the ciphertext (AES-GCM associated data): changing any of it,\n * the compression included, makes the bundle fail to open instead of being read differently.\n */\nconst header = (e: Pick<Envelope, \"format\" | \"version\" | \"kdf\" | \"cipher\" | \"compression\">) =>\n new TextEncoder().encode([e.format, e.version, e.kdf.name, e.kdf.iterations, e.kdf.salt, e.cipher.name, e.cipher.iv, e.compression].join(\"\\n\"));\nconst canCompress = () => typeof CompressionStream !== \"undefined\";\n\n/** Compresses and encrypts a payload under a passphrase the person chose. */\nexport async function seal(payload: string, passphrase: string): Promise<string> {\n if (passphrase.length < 12) throw new Error(\"Use at least 12 characters for the backup passphrase\");\n const salt = crypto.getRandomValues(new Uint8Array(16)), iv = crypto.getRandomValues(new Uint8Array(12));\n const plain = new TextEncoder().encode(payload);\n const compression = canCompress() ? \"gzip\" : \"none\";\n const body = compression === \"gzip\" ? await through(plain, new CompressionStream(\"gzip\")) : plain;\n const clear = { format: \"ghostly-backup\", version: 1, kdf: { name: \"PBKDF2-SHA256\", iterations: ITERATIONS, salt: toBase64Url(salt) }, cipher: { name: \"AES-256-GCM\", iv: toBase64Url(iv) }, compression } as const;\n const ciphertext = new Uint8Array(await crypto.subtle.encrypt({ name: \"AES-GCM\", iv, additionalData: header(clear) as BufferSource }, await keyFrom(passphrase, salt, ITERATIONS), body as BufferSource));\n const envelope: Envelope = { ...clear, ciphertext: toBase64Url(ciphertext) };\n return JSON.stringify(envelope);\n}\n\n/** Checks, decrypts and decompresses a bundle. Nothing from a bundle is used before this succeeds. */\nexport async function open(text: string, passphrase: string): Promise<string> {\n if (text.length > MAX_BACKUP_BYTES * 1.4) throw new Error(\"This backup is too large to restore\");\n let envelope: Envelope;\n try { envelope = JSON.parse(text) as Envelope; } catch { throw new Error(\"This is not a Ghostly backup\"); }\n if (envelope?.format !== \"ghostly-backup\") throw new Error(\"This is not a Ghostly backup\");\n if (envelope.version !== 1) throw new Error(\"This backup comes from a newer Ghostly; update to restore it\");\n if (envelope.kdf?.name !== \"PBKDF2-SHA256\" || !(envelope.kdf.iterations >= ITERATIONS) || envelope.kdf.iterations > 10_000_000 || envelope.cipher?.name !== \"AES-256-GCM\" || ![\"gzip\", \"none\"].includes(envelope.compression)) throw new Error(\"Unsupported backup encryption\");\n let body: Uint8Array;\n try {\n body = new Uint8Array(await crypto.subtle.decrypt({ name: \"AES-GCM\", iv: fromBase64Url(envelope.cipher.iv) as BufferSource, additionalData: header(envelope) as BufferSource }, await keyFrom(passphrase, fromBase64Url(envelope.kdf.salt), envelope.kdf.iterations), fromBase64Url(envelope.ciphertext) as BufferSource));\n } catch { throw new Error(\"Wrong passphrase, or the backup was changed\"); }\n const plain = envelope.compression === \"gzip\" ? await through(body, new DecompressionStream(\"gzip\")) : body;\n return new TextDecoder().decode(plain);\n}\n"],"mappings":"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"}
|
|
@@ -88,18 +88,19 @@ function profileOpenError(error) {
|
|
|
88
88
|
/**
|
|
89
89
|
* A file or folder on this machine the command could not open (`file save --dir`, `profile backup --out`): the
|
|
90
90
|
* person's path, not the engine refusing, so it says so with the code a bot branches on. Before, a folder that did
|
|
91
|
-
* not exist was `engine` (exit 1) with Node's `ENOENT: no such file or directory, open '…'`.
|
|
91
|
+
* not exist was `engine` (exit 1) with Node's `ENOENT: no such file or directory, open '…'`. `file`: the path read, for
|
|
92
|
+
* an error that names none (a folder read as a file).
|
|
92
93
|
*/
|
|
93
|
-
function localFileError(error) {
|
|
94
|
+
function localFileError(error, file) {
|
|
94
95
|
if (!error || typeof error !== "object" || typeof error.syscall !== "string") return void 0;
|
|
95
96
|
const { code, path } = error;
|
|
96
|
-
const where = typeof path === "string" ? path : "the path";
|
|
97
|
+
const where = typeof path === "string" ? path : file ?? "the path";
|
|
97
98
|
if (code === "ENOENT" || code === "ENOTDIR") return new CliError("not_found", `No such file or folder: ${where}`);
|
|
98
99
|
if (code === "EACCES" || code === "EPERM" || code === "EROFS") return new CliError("refused", `Not allowed to write or read ${where}`);
|
|
99
100
|
if (code === "EISDIR") return new CliError("bad_request", `${where} is a folder: name a file`);
|
|
100
101
|
if (code === "ENAMETOOLONG") return new CliError("bad_request", `A name in ${where} is too long for this file system (at most 255 bytes)`);
|
|
101
102
|
}
|
|
102
103
|
//#endregion
|
|
103
|
-
export { EXIT as n, asCliError as r, CliError as t };
|
|
104
|
+
export { localFileError as i, EXIT as n, asCliError as r, CliError as t };
|
|
104
105
|
|
|
105
|
-
//# sourceMappingURL=errors-
|
|
106
|
+
//# sourceMappingURL=errors-B-zMxbcd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-B-zMxbcd.js","names":[],"sources":["../../src/errors.ts"],"sourcesContent":["/**\n * Errors that reach a bot: a stable `code` to branch on, a message for people, and the exit status the CLI\n * leaves with (WISP 1100 § Exit codes). The daemon sends `{code, message}` over the socket; the CLI prints\n * `{\"error\": {code, message}}` on stdout and exits with `exit`.\n */\nexport type ErrorCode =\n | \"bad_request\" | \"usage\" | \"not_found\" | \"refused\" | \"unavailable\" | \"confirm\" | \"timeout\"\n | \"engine\" | \"busy\" | \"internal\";\n\nexport const EXIT: Record<ErrorCode, number> = {\n engine: 1, refused: 1, unavailable: 1, bad_request: 1, busy: 1, internal: 1,\n usage: 2, not_found: 3, timeout: 4, confirm: 5,\n};\n\nexport class CliError extends Error {\n constructor(readonly code: ErrorCode, message: string, readonly details?: Record<string, unknown>) {\n super(message);\n this.name = \"CliError\";\n }\n toJSON(): { code: ErrorCode; message: string; details?: Record<string, unknown> } {\n return { code: this.code, message: this.message, ...(this.details ? { details: this.details } : {}) };\n }\n}\n\n/** Anything thrown, as the error a bot sees: the engine's own refusals keep their words. */\nexport function asCliError(error: unknown): CliError {\n if (error instanceof CliError) return error;\n if (error && typeof error === \"object\" && \"code\" in error && \"message\" in error && typeof (error as { code: unknown }).code === \"string\"\n && Object.hasOwn(EXIT, (error as { code: string }).code)) return new CliError((error as { code: ErrorCode }).code, String((error as { message: unknown }).message));\n // A contact the chat's link could not reach (its `GhostlyHttpError` \"unreachable\"): not there now, not the engine failing.\n if (error instanceof Error && (error as { code?: unknown }).code === \"unreachable\") return new CliError(\"unavailable\", error.message);\n const known = engineKnown(error);\n if (known) return known;\n const local = localFileError(error);\n if (local) return local;\n const unopened = profileOpenError(error);\n if (unopened) return unopened;\n const message = error instanceof Error ? error.message : String(error);\n if (/real money|confirmedReal|Mainnet/i.test(message) && /confirm/i.test(message)) return new CliError(\"confirm\", message);\n if (/other network|cross-network|network does not match/i.test(message)) return new CliError(\"refused\", message);\n return new CliError(\"engine\", message);\n}\n\n/**\n * The engine's known errors (`EngineError`, packages/core engineErrors.ts) a bot branches on, by their `engineCode`: a\n * host or the network not answering is `unavailable` (try again later), one too slow `timeout`, a value the person gave\n * `bad_request`, money that is not there `refused`. Any other keeps `engine`. Read by its shape, as `profileOpenError`.\n */\nconst ENGINE_CODES: Record<string, ErrorCode> = {\n mintUnreachable: \"unavailable\", lnurlUnreachable: \"unavailable\", hostUnreachable: \"unavailable\", networkUnreachable: \"unavailable\", usdtRpcUnavailable: \"unavailable\",\n hostTimedOut: \"timeout\", networkTimedOut: \"timeout\",\n invalidMintUrl: \"bad_request\", mintNotHttps: \"bad_request\", invalidMaxFee: \"bad_request\",\n notEnoughSats: \"refused\", ecashAlreadySpent: \"refused\",\n};\n\nfunction engineKnown(error: unknown): CliError | undefined {\n if (!(error instanceof Error)) return undefined;\n const { engineCode, values } = error as { engineCode?: unknown; values?: { host?: unknown } };\n if (typeof engineCode !== \"string\" || !Object.hasOwn(ENGINE_CODES, engineCode)) return undefined;\n // The app's reason for a Lightning address it could not read (a browser's CORS) is no reason in a terminal.\n if (engineCode === \"lnurlUnreachable\" && typeof values?.host === \"string\") return new CliError(\"unavailable\", `Could not reach ${values.host}`);\n return new CliError(ENGINE_CODES[engineCode], error.message);\n}\n\n/**\n * The profile's database did not open (the engine's `ProfileOpenError`, packages/browser/src/shared/idb.ts): `engine`\n * (exit 1) with the engine's own words, which name the versions when a newer ghostly stored it, and the reason and\n * the versions in `details` for a bot. Read by its shape: this module is also the thin client's, which loads no engine.\n */\nfunction profileOpenError(error: unknown): CliError | undefined {\n if (!(error instanceof Error) || error.name !== \"ProfileOpenError\") return undefined;\n const failure = (error as { failure?: { reason?: unknown; storedVersion?: unknown; supportedVersion?: unknown } }).failure;\n if (!failure || typeof failure.reason !== \"string\") return undefined;\n return new CliError(\"engine\", error.message, {\n reason: failure.reason === \"newer\" ? \"newer_profile\" : `profile_${failure.reason}`,\n ...(typeof failure.storedVersion === \"number\" ? { storedVersion: failure.storedVersion } : {}),\n ...(typeof failure.supportedVersion === \"number\" ? { supportedVersion: failure.supportedVersion } : {}),\n });\n}\n\n/**\n * A file or folder on this machine the command could not open (`file save --dir`, `profile backup --out`): the\n * person's path, not the engine refusing, so it says so with the code a bot branches on. Before, a folder that did\n * not exist was `engine` (exit 1) with Node's `ENOENT: no such file or directory, open '…'`. `file`: the path read, for\n * an error that names none (a folder read as a file).\n */\nexport function localFileError(error: unknown, file?: string): CliError | undefined {\n if (!error || typeof error !== \"object\" || typeof (error as { syscall?: unknown }).syscall !== \"string\") return undefined;\n const { code, path } = error as { code?: unknown; path?: unknown };\n const where = typeof path === \"string\" ? path : file ?? \"the path\";\n if (code === \"ENOENT\" || code === \"ENOTDIR\") return new CliError(\"not_found\", `No such file or folder: ${where}`);\n if (code === \"EACCES\" || code === \"EPERM\" || code === \"EROFS\") return new CliError(\"refused\", `Not allowed to write or read ${where}`);\n if (code === \"EISDIR\") return new CliError(\"bad_request\", `${where} is a folder: name a file`);\n if (code === \"ENAMETOOLONG\") return new CliError(\"bad_request\", `A name in ${where} is too long for this file system (at most 255 bytes)`);\n return undefined;\n}\n"],"mappings":"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"}
|
|
@@ -212,29 +212,26 @@ if (!("encodeInto" in cachedTextEncoder)) cachedTextEncoder.encodeInto = functio
|
|
|
212
212
|
};
|
|
213
213
|
};
|
|
214
214
|
var WASM_VECTOR_LEN = 0;
|
|
215
|
-
function
|
|
216
|
-
wasm.
|
|
215
|
+
function __wasm_bindgen_func_elem_3292(arg0, arg1) {
|
|
216
|
+
wasm.__wasm_bindgen_func_elem_3292(arg0, arg1);
|
|
217
217
|
}
|
|
218
|
-
function
|
|
219
|
-
wasm.
|
|
218
|
+
function __wasm_bindgen_func_elem_3635(arg0, arg1) {
|
|
219
|
+
wasm.__wasm_bindgen_func_elem_3635(arg0, arg1);
|
|
220
220
|
}
|
|
221
|
-
function
|
|
222
|
-
wasm.
|
|
221
|
+
function __wasm_bindgen_func_elem_1637(arg0, arg1, arg2) {
|
|
222
|
+
wasm.__wasm_bindgen_func_elem_1637(arg0, arg1, addHeapObject(arg2));
|
|
223
223
|
}
|
|
224
|
-
function
|
|
225
|
-
wasm.
|
|
224
|
+
function __wasm_bindgen_func_elem_8949(arg0, arg1, arg2) {
|
|
225
|
+
wasm.__wasm_bindgen_func_elem_8949(arg0, arg1, addHeapObject(arg2));
|
|
226
226
|
}
|
|
227
|
-
function
|
|
228
|
-
wasm.
|
|
227
|
+
function __wasm_bindgen_func_elem_4181(arg0, arg1, arg2) {
|
|
228
|
+
wasm.__wasm_bindgen_func_elem_4181(arg0, arg1, addHeapObject(arg2));
|
|
229
229
|
}
|
|
230
|
-
function
|
|
231
|
-
wasm.
|
|
230
|
+
function __wasm_bindgen_func_elem_8897(arg0, arg1) {
|
|
231
|
+
wasm.__wasm_bindgen_func_elem_8897(arg0, arg1);
|
|
232
232
|
}
|
|
233
|
-
function
|
|
234
|
-
wasm.
|
|
235
|
-
}
|
|
236
|
-
function __wasm_bindgen_func_elem_9028(arg0, arg1, arg2, arg3) {
|
|
237
|
-
wasm.__wasm_bindgen_func_elem_9028(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
|
233
|
+
function __wasm_bindgen_func_elem_9032(arg0, arg1, arg2, arg3) {
|
|
234
|
+
wasm.__wasm_bindgen_func_elem_9032(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
|
238
235
|
}
|
|
239
236
|
var __wbindgen_enum_BinaryType = ["blob", "arraybuffer"];
|
|
240
237
|
var __wbindgen_enum_ReadableStreamType = ["bytes"];
|
|
@@ -838,7 +835,7 @@ function __wbg_get_imports() {
|
|
|
838
835
|
const a = state0.a;
|
|
839
836
|
state0.a = 0;
|
|
840
837
|
try {
|
|
841
|
-
return
|
|
838
|
+
return __wasm_bindgen_func_elem_9032(a, state0.b, arg0, arg1);
|
|
842
839
|
} finally {
|
|
843
840
|
state0.a = a;
|
|
844
841
|
}
|
|
@@ -1084,33 +1081,30 @@ function __wbg_get_imports() {
|
|
|
1084
1081
|
imports.wbg.__wbg_wasClean_4154a2d59fdb4dd7 = function(arg0) {
|
|
1085
1082
|
return getObject(arg0).wasClean;
|
|
1086
1083
|
};
|
|
1084
|
+
imports.wbg.__wbindgen_cast_16e2773336b2d687 = function(arg0, arg1) {
|
|
1085
|
+
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1135, __wasm_bindgen_func_elem_1637));
|
|
1086
|
+
};
|
|
1087
1087
|
imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
|
|
1088
1088
|
return addHeapObject(getStringFromWasm0(arg0, arg1));
|
|
1089
1089
|
};
|
|
1090
|
-
imports.wbg.
|
|
1091
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.
|
|
1092
|
-
};
|
|
1093
|
-
imports.wbg.__wbindgen_cast_4a74956eed9a8f16 = function(arg0, arg1) {
|
|
1094
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8923, __wasm_bindgen_func_elem_8936));
|
|
1090
|
+
imports.wbg.__wbindgen_cast_467eda6bdea4bc38 = function(arg0, arg1) {
|
|
1091
|
+
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8940, __wasm_bindgen_func_elem_8949));
|
|
1095
1092
|
};
|
|
1096
|
-
imports.wbg.
|
|
1097
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.
|
|
1093
|
+
imports.wbg.__wbindgen_cast_8107477189a212c0 = function(arg0, arg1) {
|
|
1094
|
+
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3277, __wasm_bindgen_func_elem_3292));
|
|
1098
1095
|
};
|
|
1099
|
-
imports.wbg.
|
|
1100
|
-
return addHeapObject(makeClosure(arg0, arg1, wasm.
|
|
1096
|
+
imports.wbg.__wbindgen_cast_a724fac821e668fe = function(arg0, arg1) {
|
|
1097
|
+
return addHeapObject(makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3619, __wasm_bindgen_func_elem_3635));
|
|
1101
1098
|
};
|
|
1102
|
-
imports.wbg.
|
|
1103
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.
|
|
1104
|
-
};
|
|
1105
|
-
imports.wbg.__wbindgen_cast_8f30da43820d2b7c = function(arg0, arg1) {
|
|
1106
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_686, __wasm_bindgen_func_elem_1072));
|
|
1107
|
-
};
|
|
1108
|
-
imports.wbg.__wbindgen_cast_9c71dc46f72fc3ed = function(arg0, arg1) {
|
|
1109
|
-
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8880, __wasm_bindgen_func_elem_8891));
|
|
1099
|
+
imports.wbg.__wbindgen_cast_c6a557b04b57c6c0 = function(arg0, arg1) {
|
|
1100
|
+
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_4149, __wasm_bindgen_func_elem_4181));
|
|
1110
1101
|
};
|
|
1111
1102
|
imports.wbg.__wbindgen_cast_cb9088102bce6b30 = function(arg0, arg1) {
|
|
1112
1103
|
return addHeapObject(getArrayU8FromWasm0(arg0, arg1));
|
|
1113
1104
|
};
|
|
1105
|
+
imports.wbg.__wbindgen_cast_e6d515b161eabad7 = function(arg0, arg1) {
|
|
1106
|
+
return addHeapObject(makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8892, __wasm_bindgen_func_elem_8897));
|
|
1107
|
+
};
|
|
1114
1108
|
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
|
1115
1109
|
return addHeapObject(getObject(arg0));
|
|
1116
1110
|
};
|
|
@@ -1151,4 +1145,4 @@ async function __wbg_init(module_or_path) {
|
|
|
1151
1145
|
//#endregion
|
|
1152
1146
|
export { IntoUnderlyingByteSource, IntoUnderlyingSink, IntoUnderlyingSource, IrohConn, IrohNode, __wbg_init as default, initSync };
|
|
1153
1147
|
|
|
1154
|
-
//# sourceMappingURL=ghostly_iroh_web-
|
|
1148
|
+
//# sourceMappingURL=ghostly_iroh_web-BsAEFIjl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghostly_iroh_web-BsAEFIjl.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_3292(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3292(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_3635(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_3635(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_1637(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_1637(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_8949(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_8949(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_4181(arg0, arg1, arg2) {\n wasm.__wasm_bindgen_func_elem_4181(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_8897(arg0, arg1) {\n wasm.__wasm_bindgen_func_elem_8897(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_9032(arg0, arg1, arg2, arg3) {\n wasm.__wasm_bindgen_func_elem_9032(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_9032(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_16e2773336b2d687 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 181, function: Function { arguments: [NamedExternref(\"CloseEvent\")], shim_idx: 213, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1135, __wasm_bindgen_func_elem_1637);\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_467eda6bdea4bc38 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2722, function: Function { arguments: [Externref], shim_idx: 2723, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8940, __wasm_bindgen_func_elem_8949);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_8107477189a212c0 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1280, function: Function { arguments: [], shim_idx: 1282, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3277, __wasm_bindgen_func_elem_3292);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_a724fac821e668fe = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1352, function: Function { arguments: [], shim_idx: 1353, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_3619, __wasm_bindgen_func_elem_3635);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_cast_c6a557b04b57c6c0 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 1638, function: Function { arguments: [NamedExternref(\"MessageEvent\")], shim_idx: 1642, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_4149, __wasm_bindgen_func_elem_4181);\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_cast_e6d515b161eabad7 = function(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 2714, function: Function { arguments: [], shim_idx: 2715, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_8892, __wasm_bindgen_func_elem_8897);\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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"}
|
|
Binary file
|