@candypoets/nipworker 0.0.1

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +343 -0
  3. package/dist/assets/worker-Yodgjxhx.js +3 -0
  4. package/dist/assets/worker-Yodgjxhx.js.map +1 -0
  5. package/dist/hooks.d.ts +5 -0
  6. package/dist/hooks.d.ts.map +1 -0
  7. package/dist/hooks.js +1 -0
  8. package/dist/hooks.js.map +1 -0
  9. package/dist/index.d.ts +87 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/index2.js +1 -0
  14. package/dist/index2.js.map +1 -0
  15. package/dist/index3.js +1 -0
  16. package/dist/index3.js.map +1 -0
  17. package/dist/lib/sharedBuffer.d.ts +50 -0
  18. package/dist/lib/sharedBuffer.d.ts.map +1 -0
  19. package/dist/types/index.d.ts +53 -0
  20. package/dist/types/index.d.ts.map +1 -0
  21. package/dist/types/kind0.d.ts +24 -0
  22. package/dist/types/kind0.d.ts.map +1 -0
  23. package/dist/types/kind1.d.ts +17 -0
  24. package/dist/types/kind1.d.ts.map +1 -0
  25. package/dist/types/kind10002.d.ts +7 -0
  26. package/dist/types/kind10002.d.ts.map +1 -0
  27. package/dist/types/kind10019.d.ts +9 -0
  28. package/dist/types/kind10019.d.ts.map +1 -0
  29. package/dist/types/kind17.d.ts +4 -0
  30. package/dist/types/kind17.d.ts.map +1 -0
  31. package/dist/types/kind17375.d.ts +7 -0
  32. package/dist/types/kind17375.d.ts.map +1 -0
  33. package/dist/types/kind3.d.ts +7 -0
  34. package/dist/types/kind3.d.ts.map +1 -0
  35. package/dist/types/kind39089.d.ts +11 -0
  36. package/dist/types/kind39089.d.ts.map +1 -0
  37. package/dist/types/kind4.d.ts +9 -0
  38. package/dist/types/kind4.d.ts.map +1 -0
  39. package/dist/types/kind6.d.ts +6 -0
  40. package/dist/types/kind6.d.ts.map +1 -0
  41. package/dist/types/kind7.d.ts +18 -0
  42. package/dist/types/kind7.d.ts.map +1 -0
  43. package/dist/types/kind7374.d.ts +6 -0
  44. package/dist/types/kind7374.d.ts.map +1 -0
  45. package/dist/types/kind7375.d.ts +9 -0
  46. package/dist/types/kind7375.d.ts.map +1 -0
  47. package/dist/types/kind7376.d.ts +16 -0
  48. package/dist/types/kind7376.d.ts.map +1 -0
  49. package/dist/types/kind9321.d.ts +11 -0
  50. package/dist/types/kind9321.d.ts.map +1 -0
  51. package/dist/types/kind9735.d.ts +15 -0
  52. package/dist/types/kind9735.d.ts.map +1 -0
  53. package/dist/types/proofs.d.ts +21 -0
  54. package/dist/types/proofs.d.ts.map +1 -0
  55. package/dist/utils.d.ts +23 -0
  56. package/dist/utils.d.ts.map +1 -0
  57. package/dist/utils.js +1 -0
  58. package/dist/utils.js.map +1 -0
  59. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-Yodgjxhx.js","sources":["../../rust-worker/dist/rust_worker.js","../../rust-worker/dist/worker.js"],"sourcesContent":["let wasm;\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet heap_next = heap.length;\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\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_0(addHeapObject(e));\n }\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : 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\nfunction passStringToWasm0(arg, malloc, realloc) {\n\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\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 = encodeString(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\nlet cachedDataViewMemory0 = null;\n\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 getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => {\n wasm.__wbindgen_export_4.get(state.dtor)(state.a, state.b)\n});\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\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 if (--state.cnt === 0) {\n wasm.__wbindgen_export_4.get(state.dtor)(a, state.b);\n CLOSURE_DTORS.unregister(state);\n } else {\n state.a = a;\n }\n }\n };\n real.original = state;\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\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 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/**\n * @returns {Promise<NostrClient>}\n */\nexport function init_nostr_client() {\n const ret = wasm.init_nostr_client();\n return takeObject(ret);\n}\n\nfunction __wbg_adapter_34(arg0, arg1, arg2) {\n wasm.__wbindgen_export_5(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_37(arg0, arg1) {\n wasm.__wbindgen_export_6(arg0, arg1);\n}\n\nfunction __wbg_adapter_40(arg0, arg1, arg2) {\n wasm.__wbindgen_export_7(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_43(arg0, arg1, arg2) {\n wasm.__wbindgen_export_8(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_46(arg0, arg1, arg2) {\n wasm.__wbindgen_export_9(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_49(arg0, arg1) {\n wasm.__wbindgen_export_10(arg0, arg1);\n}\n\nfunction __wbg_adapter_239(arg0, arg1, arg2, arg3) {\n wasm.__wbindgen_export_11(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\nconst __wbindgen_enum_BinaryType = [\"blob\", \"arraybuffer\"];\n\nconst EOSEFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_eose_free(ptr >>> 0, 1));\n/**\n * EOSE (End of Stored Events) represents the completion of stored events delivery\n * This matches the Go type from types/eose.go\n */\nexport class EOSE {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(EOSE.prototype);\n obj.__wbg_ptr = ptr;\n EOSEFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EOSEFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_eose_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get total_connections() {\n const ret = wasm.__wbg_get_eose_total_connections(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set total_connections(arg0) {\n wasm.__wbg_set_eose_total_connections(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get remaining_connections() {\n const ret = wasm.__wbg_get_eose_remaining_connections(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set remaining_connections(arg0) {\n wasm.__wbg_set_eose_remaining_connections(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} total_connections\n * @param {number} remaining_connections\n */\n constructor(total_connections, remaining_connections) {\n const ret = wasm.eose_new(total_connections, remaining_connections);\n this.__wbg_ptr = ret >>> 0;\n EOSEFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Check if all connections are complete (remaining connections is 0)\n * @returns {boolean}\n */\n is_complete() {\n const ret = wasm.eose_is_complete(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the number of completed connections\n * @returns {number}\n */\n completed_connections() {\n const ret = wasm.eose_completed_connections(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the completion percentage (0.0 to 1.0)\n * @returns {number}\n */\n completion_percentage() {\n const ret = wasm.eose_completion_percentage(this.__wbg_ptr);\n return ret;\n }\n /**\n * Convert to JSON string\n * @returns {string}\n */\n to_json() {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.eose_to_json(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 var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr1 = r0;\n var len1 = r1;\n if (r3) {\n ptr1 = 0; len1 = 0;\n throw takeObject(r2);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_1(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Create from JSON string\n * @param {string} json\n * @returns {EOSE}\n */\n static from_json(json) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\n const len0 = WASM_VECTOR_LEN;\n wasm.eose_from_json(retptr, ptr0, len0);\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 EOSE.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\n\nconst NostrClientFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_nostrclient_free(ptr >>> 0, 1));\n\nexport class NostrClient {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(NostrClient.prototype);\n obj.__wbg_ptr = ptr;\n NostrClientFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n NostrClientFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_nostrclient_free(ptr, 0);\n }\n /**\n * @returns {Promise<NostrClient>}\n */\n static new() {\n const ret = wasm.nostrclient_new();\n return takeObject(ret);\n }\n /**\n * @param {string} subscription_id\n * @param {Uint8Array} requests_data\n * @param {SharedArrayBuffer} shared_buffer\n * @returns {Promise<void>}\n */\n open_subscription(subscription_id, requests_data, shared_buffer) {\n const ptr0 = passStringToWasm0(subscription_id, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(requests_data, wasm.__wbindgen_export_2);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.nostrclient_open_subscription(this.__wbg_ptr, ptr0, len0, ptr1, len1, addHeapObject(shared_buffer));\n return takeObject(ret);\n }\n /**\n * @param {string} subscription_id\n * @returns {Promise<void>}\n */\n close_subscription(subscription_id) {\n const ptr0 = passStringToWasm0(subscription_id, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.nostrclient_close_subscription(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n /**\n * @param {string} signer_type\n * @param {string} private_key\n */\n set_signer(signer_type, private_key) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(signer_type, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(private_key, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\n const len1 = WASM_VECTOR_LEN;\n wasm.nostrclient_set_signer(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n if (r1) {\n throw takeObject(r0);\n }\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n get_public_key() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.nostrclient_get_public_key(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n if (r1) {\n throw takeObject(r0);\n }\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Promise<number>}\n */\n get_active_subscription_count() {\n const ret = wasm.nostrclient_get_active_subscription_count(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @returns {Promise<number>}\n */\n get_connection_count() {\n const ret = wasm.nostrclient_get_connection_count(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @param {any} message_obj\n * @returns {Promise<void>}\n */\n handle_message(message_obj) {\n const ret = wasm.nostrclient_handle_message(this.__wbg_ptr, addHeapObject(message_obj));\n return takeObject(ret);\n }\n}\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\n } catch (e) {\n if (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\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_addEventListener_84ae3eac6e15480a = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), getObject(arg4));\n }, arguments) };\n imports.wbg.__wbg_addEventListener_90e553fdce254421 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_all_d5bf227e8f68795d = function(arg0) {\n const ret = Promise.all(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_apply_eb9e9b97497f91e4 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.apply(getObject(arg0), getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_7cccdd69e0791ae2 = 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_clearTimeout_5a54f8841c30079a = function(arg0) {\n const ret = clearTimeout(takeObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_close_2893b7d056a0627d = function() { return handleError(function (arg0) {\n getObject(arg0).close();\n }, arguments) };\n imports.wbg.__wbg_close_3c756df9a6f53aac = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).close(arg1);\n }, arguments) };\n imports.wbg.__wbg_close_e1253d480ed93ce3 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).close(arg1, getStringFromWasm0(arg2, arg3));\n }, arguments) };\n imports.wbg.__wbg_code_f4ec1e6e2e1b0417 = function(arg0) {\n const ret = getObject(arg0).code;\n return ret;\n };\n imports.wbg.__wbg_crypto_574e78ad8b13b65f = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_data_432d9c3df2630942 = function(arg0) {\n const ret = getObject(arg0).data;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_dispatchEvent_9e259d7c1d603dfb = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).dispatchEvent(getObject(arg1));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_error_524f506f44df1645 = function(arg0) {\n console.error(getObject(arg0));\n };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_export_1(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbg_eval_e10dc02e9547f640 = function() { return handleError(function (arg0, arg1) {\n const ret = eval(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_fetch_509096533071c657 = function(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_fetch_b7bf320f681242d2 = function(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_get_67b2ba62fc30de12 = 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_b9b93047fe3cf45b = function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_has_a5ea9117f258a0ec = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.has(getObject(arg0), getObject(arg1));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_ArrayBuffer_e14585432e3737fc = 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_Error_4d54113b22d20306 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Error;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Object_7f2dcef8f78644a4 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Object;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Response_f2cc20d9f7dfd644 = 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_instanceof_SharedArrayBuffer_e750d76567bf7e45 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof SharedArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Uint8Array_17156bcf118086a9 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Window_def73ea0955fc569 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Window;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_WorkerGlobalScope_dbdbdea7e3b56493 = function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof WorkerGlobalScope;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_isArray_a1eab7e0d067391b = function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n };\n imports.wbg.__wbg_length_a446193dc22c12f8 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_length_e2d2a49132c1b256 = function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n };\n imports.wbg.__wbg_log_c222819a41e063d3 = function(arg0) {\n console.log(getObject(arg0));\n };\n imports.wbg.__wbg_message_97a2af9b89d693a3 = function(arg0) {\n const ret = getObject(arg0).message;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_name_0b327d569f00ebee = function(arg0) {\n const ret = getObject(arg0).name;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_018dcc2d6c8c2f6a = function() { return handleError(function () {\n const ret = new Headers();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_23a2665fac83c611 = 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 __wbg_adapter_239(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_405e22f390576ce2 = function() {\n const ret = new Object();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_78feb108b6472713 = function() {\n const ret = new Array();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_80bf4ee74f41ff92 = function() { return handleError(function () {\n const ret = new URLSearchParams();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_92c54fc74574ef55 = 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_9ffbe0a71eff35e3 = function() { return handleError(function (arg0, arg1) {\n const ret = new URL(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwitheventinitdict_502dbfa1b3d2fcbc = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = new CloseEvent(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_newwithlength_a381634e90c276d4 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithstr_78e86e03c4ae814e = function() { return handleError(function (arg0, arg1) {\n const ret = new Request(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_newwithstrandinit_06c535e0a867c635 = 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_node_905d3e251edff8a2 = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_nostrclient_new = function(arg0) {\n const ret = NostrClient.__wrap(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_now_807e54c39636c349 = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_ok_3aaf32d069979723 = function(arg0) {\n const ret = getObject(arg0).ok;\n return ret;\n };\n imports.wbg.__wbg_parse_def2e24ef1252aff = function() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_postMessage_a08233b206f4c94d = function(arg0) {\n self.postMessage(getObject(arg0));\n };\n imports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_push_737cfc8c1432c2c6 = function(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n };\n imports.wbg.__wbg_queueMicrotask_97d92b4fcc8a61c5 = function(arg0) {\n queueMicrotask(getObject(arg0));\n };\n imports.wbg.__wbg_queueMicrotask_d3219def82552485 = function(arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_readyState_7ef6e63c349899ed = function(arg0) {\n const ret = getObject(arg0).readyState;\n return ret;\n };\n imports.wbg.__wbg_reason_49f1cede8bcf23dd = function(arg0, arg1) {\n const ret = getObject(arg1).reason;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\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_removeEventListener_056dfe8c3d6c58f9 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3));\n }, arguments) };\n imports.wbg.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_resolve_4851785c9c5f573d = function(arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_search_e0e79cfe010c5c23 = function(arg0, arg1) {\n const ret = getObject(arg1).search;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\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_send_0293179ba074ffb4 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getStringFromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_send_fc0c204e8a1757f4 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).send(getArrayU8FromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_setTimeout_db2dbaeefb6f39c7 = function() { return handleError(function (arg0, arg1) {\n const ret = setTimeout(getObject(arg0), arg1);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_set_11cd83f45504cedf = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).set(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n }, arguments) };\n imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n };\n imports.wbg.__wbg_set_bb8cecf6a62b9f46 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_setbinaryType_92fa1ffd873b327c = function(arg0, arg1) {\n getObject(arg0).binaryType = __wbindgen_enum_BinaryType[arg1];\n };\n imports.wbg.__wbg_setbody_5923b78a95eedf29 = function(arg0, arg1) {\n getObject(arg0).body = getObject(arg1);\n };\n imports.wbg.__wbg_setcode_156060465a2f8f79 = function(arg0, arg1) {\n getObject(arg0).code = arg1;\n };\n imports.wbg.__wbg_setheaders_834c0bdb6a8949ad = function(arg0, arg1) {\n getObject(arg0).headers = getObject(arg1);\n };\n imports.wbg.__wbg_setmethod_3c5280fe5d890842 = function(arg0, arg1, arg2) {\n getObject(arg0).method = getStringFromWasm0(arg1, arg2);\n };\n imports.wbg.__wbg_setonce_0cb80aea26303a35 = function(arg0, arg1) {\n getObject(arg0).once = arg1 !== 0;\n };\n imports.wbg.__wbg_setreason_d29ac0402eeeb81a = function(arg0, arg1, arg2) {\n getObject(arg0).reason = getStringFromWasm0(arg1, arg2);\n };\n imports.wbg.__wbg_setsearch_609451e9e712f3c6 = function(arg0, arg1, arg2) {\n getObject(arg0).search = getStringFromWasm0(arg1, arg2);\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\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_static_accessor_GLOBAL_88a902d13a557d07 = 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_56578be7e9f832b0 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n };\n imports.wbg.__wbg_status_f6360336ca686bf0 = function(arg0) {\n const ret = getObject(arg0).status;\n return ret;\n };\n imports.wbg.__wbg_stringify_f7ed6987935b4a24 = function() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_subarray_aa9065fa9dc5df96 = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_text_7805bea50de2af49 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).text();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_then_44b73946d2fb3e7d = function(arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_48b406749878a531 = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_toString_5285597960676b7b = function(arg0) {\n const ret = getObject(arg0).toString();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_toString_c813bbd34d063839 = function(arg0) {\n const ret = getObject(arg0).toString();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_url_8f9653b899456042 = function(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\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_versions_c01dfd4722a88165 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_wasClean_605b4fd66d44354a = function(arg0) {\n const ret = getObject(arg0).wasClean;\n return ret;\n };\n imports.wbg.__wbindgen_boolean_get = function(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;\n return ret;\n };\n imports.wbg.__wbindgen_cb_drop = function(arg0) {\n const obj = takeObject(arg0).original;\n if (obj.cnt-- == 1) {\n obj.a = 0;\n return true;\n }\n const ret = false;\n return ret;\n };\n imports.wbg.__wbindgen_closure_wrapper13081 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 989, __wbg_adapter_34);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_closure_wrapper13083 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 991, __wbg_adapter_37);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_closure_wrapper13085 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 987, __wbg_adapter_40);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_closure_wrapper13087 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 993, __wbg_adapter_43);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_closure_wrapper23292 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 1609, __wbg_adapter_46);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_closure_wrapper23525 = function(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 1627, __wbg_adapter_49);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_2, wasm.__wbindgen_export_3);\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.__wbindgen_is_function = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n };\n imports.wbg.__wbindgen_is_null = function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n };\n imports.wbg.__wbindgen_is_object = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbindgen_is_string = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_number_get = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbindgen_number_new = function(arg0) {\n const ret = arg0;\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 imports.wbg.__wbindgen_string_get = 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_2, wasm.__wbindgen_export_3);\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.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\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\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\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('rust_worker_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 __wbg_init_memory(imports);\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","import init, { init_nostr_client } from \"./rust_worker.js\";\n\nconst initPromise = async () => {\n try {\n console.log(\"WASM worker module initialized successfully\");\n await init();\n return await init_nostr_client();\n } catch (error) {\n console.log(\"oops\");\n console.error(\"Failed to initialize WASM worker module:\", error);\n throw error;\n }\n};\n\nconst wasmReady = initPromise();\n\nself.onmessage = async (event) => {\n (await wasmReady).handle_message(event.data);\n};\n"],"names":["idx","ptr","len","obj","f","args","e","ret","arg","view","buf","malloc","realloc","mem","offset","code","x","state","arg0","arg1","dtor","real","a","val","type","description","name","length","debug","i","builtInMatches","className","arg2","arg3","subscription_id","requests_data","shared_buffer","ptr0","len0","ptr1","len1","signer_type","private_key","retptr","r0","r1","message_obj","module","imports","bytes","instance","arg4","deferred0_0","deferred0_1","result","state0","cb0","v","module_or_path","init","error","event"],"mappings":"yBAAA,IAAI,KAEJ,MAAM,KAAO,IAAI,MAAM,GAAG,EAAE,KAAK,MAAS,EAE1C,KAAK,KAAK,OAAW,KAAM,GAAM,EAAK,EAEtC,SAAS,UAAUA,EAAK,CAAE,OAAO,KAAKA,CAAG,CAAG,CAE5C,MAAM,kBAAqB,OAAO,YAAgB,IAAc,IAAI,YAAY,QAAS,CAAE,UAAW,GAAM,MAAO,GAAM,EAAI,CAAE,OAAQ,IAAM,CAAE,MAAM,MAAM,2BAA2B,CAAE,GAEpL,OAAO,YAAgB,KAAe,kBAAkB,OAAM,EAElE,IAAI,wBAA0B,KAE9B,SAAS,sBAAuB,CAC5B,OAAI,0BAA4B,MAAQ,wBAAwB,aAAe,KAC3E,wBAA0B,IAAI,WAAW,KAAK,OAAO,MAAM,GAExD,uBACX,CAEA,SAAS,mBAAmBC,EAAKC,EAAK,CAClC,OAAAD,EAAMA,IAAQ,EACP,kBAAkB,OAAO,qBAAoB,EAAG,SAASA,EAAKA,EAAMC,CAAG,CAAC,CACnF,CAEA,IAAI,UAAY,KAAK,OAErB,SAAS,cAAcC,EAAK,CACpB,YAAc,KAAK,QAAQ,KAAK,KAAK,KAAK,OAAS,CAAC,EACxD,MAAMH,EAAM,UACZ,iBAAY,KAAKA,CAAG,EAEpB,KAAKA,CAAG,EAAIG,EACLH,CACX,CAEA,SAAS,YAAYI,EAAGC,EAAM,CAC1B,GAAI,CACA,OAAOD,EAAE,MAAM,KAAMC,CAAI,CAC7B,OAASC,EAAG,CACR,KAAK,oBAAoB,cAAcA,CAAC,CAAC,CAC7C,CACJ,CAEA,SAAS,WAAWN,EAAK,CACjBA,EAAM,MACV,KAAKA,CAAG,EAAI,UACZ,UAAYA,EAChB,CAEA,SAAS,WAAWA,EAAK,CACrB,MAAMO,EAAM,UAAUP,CAAG,EACzB,kBAAWA,CAAG,EACPO,CACX,CAEA,IAAI,gBAAkB,EAEtB,MAAM,kBAAqB,OAAO,YAAgB,IAAc,IAAI,YAAY,OAAO,EAAI,CAAE,OAAQ,IAAM,CAAE,MAAM,MAAM,2BAA2B,CAAE,CAAC,EAEjJ,aAAgB,OAAO,kBAAkB,YAAe,WACxD,SAAUC,EAAKC,EAAM,CACvB,OAAO,kBAAkB,WAAWD,EAAKC,CAAI,CACjD,EACM,SAAUD,EAAKC,EAAM,CACvB,MAAMC,EAAM,kBAAkB,OAAOF,CAAG,EACxC,OAAAC,EAAK,IAAIC,CAAG,EACL,CACH,KAAMF,EAAI,OACV,QAASE,EAAI,MACrB,CACA,EAEA,SAAS,kBAAkBF,EAAKG,EAAQC,EAAS,CAE7C,GAAIA,IAAY,OAAW,CACvB,MAAMF,EAAM,kBAAkB,OAAOF,CAAG,EAClCP,EAAMU,EAAOD,EAAI,OAAQ,CAAC,IAAM,EACtC,4BAAoB,EAAG,SAAST,EAAKA,EAAMS,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC9D,gBAAkBA,EAAI,OACfT,CACX,CAEA,IAAIC,EAAMM,EAAI,OACVP,EAAMU,EAAOT,EAAK,CAAC,IAAM,EAE7B,MAAMW,EAAM,qBAAoB,EAEhC,IAAIC,EAAS,EAEb,KAAOA,EAASZ,EAAKY,IAAU,CAC3B,MAAMC,EAAOP,EAAI,WAAWM,CAAM,EAClC,GAAIC,EAAO,IAAM,MACjBF,EAAIZ,EAAMa,CAAM,EAAIC,CACxB,CAEA,GAAID,IAAWZ,EAAK,CACZY,IAAW,IACXN,EAAMA,EAAI,MAAMM,CAAM,GAE1Bb,EAAMW,EAAQX,EAAKC,EAAKA,EAAMY,EAASN,EAAI,OAAS,EAAG,CAAC,IAAM,EAC9D,MAAMC,EAAO,uBAAuB,SAASR,EAAMa,EAAQb,EAAMC,CAAG,EAC9DK,EAAM,aAAaC,EAAKC,CAAI,EAElCK,GAAUP,EAAI,QACdN,EAAMW,EAAQX,EAAKC,EAAKY,EAAQ,CAAC,IAAM,CAC3C,CAEA,uBAAkBA,EACXb,CACX,CAEA,IAAI,sBAAwB,KAE5B,SAAS,oBAAqB,CAC1B,OAAI,wBAA0B,MAAQ,sBAAsB,OAAO,WAAa,IAAS,sBAAsB,OAAO,WAAa,QAAa,sBAAsB,SAAW,KAAK,OAAO,UACzL,sBAAwB,IAAI,SAAS,KAAK,OAAO,MAAM,GAEpD,qBACX,CAEA,SAAS,oBAAoBA,EAAKC,EAAK,CACnC,OAAAD,EAAMA,IAAQ,EACP,qBAAoB,EAAG,SAASA,EAAM,EAAGA,EAAM,EAAIC,CAAG,CACjE,CAEA,SAAS,WAAWc,EAAG,CACnB,OAA0BA,GAAM,IACpC,CAEA,MAAM,cAAiB,OAAO,qBAAyB,IACjD,CAAE,SAAU,IAAM,CAAC,EAAG,WAAY,IAAM,CAAC,CAAC,EAC1C,IAAI,qBAAqBC,GAAS,CACpC,KAAK,oBAAoB,IAAIA,EAAM,IAAI,EAAEA,EAAM,EAAGA,EAAM,CAAC,CAC7D,CAAC,EAED,SAAS,eAAeC,EAAMC,EAAMC,EAAMhB,EAAG,CACzC,MAAMa,EAAQ,CAAE,EAAGC,EAAM,EAAGC,EAAM,IAAK,EAAG,KAAAC,CAAI,EACxCC,EAAO,IAAIhB,IAAS,CAItBY,EAAM,MACN,MAAMK,EAAIL,EAAM,EAChBA,EAAM,EAAI,EACV,GAAI,CACA,OAAOb,EAAEkB,EAAGL,EAAM,EAAG,GAAGZ,CAAI,CAChC,QAAC,CACO,EAAEY,EAAM,MAAQ,GAChB,KAAK,oBAAoB,IAAIA,EAAM,IAAI,EAAEK,EAAGL,EAAM,CAAC,EACnD,cAAc,WAAWA,CAAK,GAE9BA,EAAM,EAAIK,CAElB,CACJ,EACA,OAAAD,EAAK,SAAWJ,EAChB,cAAc,SAASI,EAAMJ,EAAOA,CAAK,EAClCI,CACX,CAEA,SAAS,YAAYE,EAAK,CAEtB,MAAMC,EAAO,OAAOD,EACpB,GAAIC,GAAQ,UAAYA,GAAQ,WAAaD,GAAO,KAChD,MAAQ,GAAGA,CAAG,GAElB,GAAIC,GAAQ,SACR,MAAO,IAAID,CAAG,IAElB,GAAIC,GAAQ,SAAU,CAClB,MAAMC,EAAcF,EAAI,YACxB,OAAIE,GAAe,KACR,SAEA,UAAUA,CAAW,GAEpC,CACA,GAAID,GAAQ,WAAY,CACpB,MAAME,EAAOH,EAAI,KACjB,OAAI,OAAOG,GAAQ,UAAYA,EAAK,OAAS,EAClC,YAAYA,CAAI,IAEhB,UAEf,CAEA,GAAI,MAAM,QAAQH,CAAG,EAAG,CACpB,MAAMI,EAASJ,EAAI,OACnB,IAAIK,EAAQ,IACRD,EAAS,IACTC,GAAS,YAAYL,EAAI,CAAC,CAAC,GAE/B,QAAQM,EAAI,EAAGA,EAAIF,EAAQE,IACvBD,GAAS,KAAO,YAAYL,EAAIM,CAAC,CAAC,EAEtC,OAAAD,GAAS,IACFA,CACX,CAEA,MAAME,EAAiB,sBAAsB,KAAK,SAAS,KAAKP,CAAG,CAAC,EACpE,IAAIQ,EACJ,GAAID,GAAkBA,EAAe,OAAS,EAC1CC,EAAYD,EAAe,CAAC,MAG5B,QAAO,SAAS,KAAKP,CAAG,EAE5B,GAAIQ,GAAa,SAIb,GAAI,CACA,MAAO,UAAY,KAAK,UAAUR,CAAG,EAAI,GAC7C,MAAY,CACR,MAAO,QACX,CAGJ,OAAIA,aAAe,MACR,GAAGA,EAAI,IAAI,KAAKA,EAAI,OAAO;AAAA,EAAKA,EAAI,KAAK,GAG7CQ,CACX,CAEA,SAAS,kBAAkBvB,EAAKG,EAAQ,CACpC,MAAMV,EAAMU,EAAOH,EAAI,OAAS,EAAG,CAAC,IAAM,EAC1C,4BAAoB,EAAG,IAAIA,EAAKP,EAAM,CAAC,EACvC,gBAAkBO,EAAI,OACfP,CACX,CAIO,SAAS,mBAAoB,CAChC,MAAMM,EAAM,KAAK,kBAAiB,EAClC,OAAO,WAAWA,CAAG,CACzB,CAEA,SAAS,iBAAiBW,EAAMC,EAAMa,EAAM,CACxC,KAAK,oBAAoBd,EAAMC,EAAM,cAAca,CAAI,CAAC,CAC5D,CAEA,SAAS,iBAAiBd,EAAMC,EAAM,CAClC,KAAK,oBAAoBD,EAAMC,CAAI,CACvC,CAEA,SAAS,iBAAiBD,EAAMC,EAAMa,EAAM,CACxC,KAAK,oBAAoBd,EAAMC,EAAM,cAAca,CAAI,CAAC,CAC5D,CAEA,SAAS,iBAAiBd,EAAMC,EAAMa,EAAM,CACxC,KAAK,oBAAoBd,EAAMC,EAAM,cAAca,CAAI,CAAC,CAC5D,CAEA,SAAS,iBAAiBd,EAAMC,EAAMa,EAAM,CACxC,KAAK,oBAAoBd,EAAMC,EAAM,cAAca,CAAI,CAAC,CAC5D,CAEA,SAAS,iBAAiBd,EAAMC,EAAM,CAClC,KAAK,qBAAqBD,EAAMC,CAAI,CACxC,CAEA,SAAS,kBAAkBD,EAAMC,EAAMa,EAAMC,EAAM,CAC/C,KAAK,qBAAqBf,EAAMC,EAAM,cAAca,CAAI,EAAG,cAAcC,CAAI,CAAC,CAClF,CAEA,MAAM,2BAA6B,CAAC,OAAQ,aAAa,EAE/B,OAAO,qBAAyB,KAEpD,IAAI,qBAAqBhC,GAAO,KAAK,gBAAgBA,IAAQ,EAAG,CAAC,CAAC,EA0IxE,MAAM,wBAA2B,OAAO,qBAAyB,IAC3D,CAAE,SAAU,IAAM,CAAC,EAAG,WAAY,IAAM,CAAC,CAAC,EAC1C,IAAI,qBAAqBA,GAAO,KAAK,uBAAuBA,IAAQ,EAAG,CAAC,CAAC,EAExE,MAAM,WAAY,CAErB,OAAO,OAAOA,EAAK,CACfA,EAAMA,IAAQ,EACd,MAAME,EAAM,OAAO,OAAO,YAAY,SAAS,EAC/C,OAAAA,EAAI,UAAYF,EAChB,wBAAwB,SAASE,EAAKA,EAAI,UAAWA,CAAG,EACjDA,CACX,CAEA,oBAAqB,CACjB,MAAMF,EAAM,KAAK,UACjB,YAAK,UAAY,EACjB,wBAAwB,WAAW,IAAI,EAChCA,CACX,CAEA,MAAO,CACH,MAAMA,EAAM,KAAK,mBAAkB,EACnC,KAAK,uBAAuBA,EAAK,CAAC,CACtC,CAIA,OAAO,KAAM,CACT,MAAMM,EAAM,KAAK,gBAAe,EAChC,OAAO,WAAWA,CAAG,CACzB,CAOA,kBAAkB2B,EAAiBC,EAAeC,EAAe,CAC7D,MAAMC,EAAO,kBAAkBH,EAAiB,KAAK,oBAAqB,KAAK,mBAAmB,EAC5FI,EAAO,gBACPC,EAAO,kBAAkBJ,EAAe,KAAK,mBAAmB,EAChEK,EAAO,gBACPjC,EAAM,KAAK,8BAA8B,KAAK,UAAW8B,EAAMC,EAAMC,EAAMC,EAAM,cAAcJ,CAAa,CAAC,EACnH,OAAO,WAAW7B,CAAG,CACzB,CAKA,mBAAmB2B,EAAiB,CAChC,MAAMG,EAAO,kBAAkBH,EAAiB,KAAK,oBAAqB,KAAK,mBAAmB,EAC5FI,EAAO,gBACP/B,EAAM,KAAK,+BAA+B,KAAK,UAAW8B,EAAMC,CAAI,EAC1E,OAAO,WAAW/B,CAAG,CACzB,CAKA,WAAWkC,EAAaC,EAAa,CACjC,GAAI,CACA,MAAMC,EAAS,KAAK,gCAAgC,GAAG,EACjDN,EAAO,kBAAkBI,EAAa,KAAK,oBAAqB,KAAK,mBAAmB,EACxFH,EAAO,gBACPC,EAAO,kBAAkBG,EAAa,KAAK,oBAAqB,KAAK,mBAAmB,EACxFF,EAAO,gBACb,KAAK,uBAAuBG,EAAQ,KAAK,UAAWN,EAAMC,EAAMC,EAAMC,CAAI,EAC1E,IAAII,EAAK,qBAAqB,SAASD,EAAS,EAAI,EAAG,EAAI,EACvDE,EAAK,qBAAqB,SAASF,EAAS,EAAI,EAAG,EAAI,EAC3D,GAAIE,EACA,MAAM,WAAWD,CAAE,CAE3B,QAAC,CACG,KAAK,gCAAgC,EAAE,CAC3C,CACJ,CACA,gBAAiB,CACb,GAAI,CACA,MAAMD,EAAS,KAAK,gCAAgC,GAAG,EACvD,KAAK,2BAA2BA,EAAQ,KAAK,SAAS,EACtD,IAAIC,EAAK,qBAAqB,SAASD,EAAS,EAAI,EAAG,EAAI,EACvDE,EAAK,qBAAqB,SAASF,EAAS,EAAI,EAAG,EAAI,EAC3D,GAAIE,EACA,MAAM,WAAWD,CAAE,CAE3B,QAAC,CACG,KAAK,gCAAgC,EAAE,CAC3C,CACJ,CAIA,+BAAgC,CAC5B,MAAMrC,EAAM,KAAK,0CAA0C,KAAK,SAAS,EACzE,OAAO,WAAWA,CAAG,CACzB,CAIA,sBAAuB,CACnB,MAAMA,EAAM,KAAK,iCAAiC,KAAK,SAAS,EAChE,OAAO,WAAWA,CAAG,CACzB,CAKA,eAAeuC,EAAa,CACxB,MAAMvC,EAAM,KAAK,2BAA2B,KAAK,UAAW,cAAcuC,CAAW,CAAC,EACtF,OAAO,WAAWvC,CAAG,CACzB,CACJ,CAEA,eAAe,WAAWwC,EAAQC,EAAS,CACvC,GAAI,OAAO,UAAa,YAAcD,aAAkB,SAAU,CAC9D,GAAI,OAAO,YAAY,sBAAyB,WAC5C,GAAI,CACA,OAAO,MAAM,YAAY,qBAAqBA,EAAQC,CAAO,CAEjE,OAAS1C,EAAG,CACR,GAAIyC,EAAO,QAAQ,IAAI,cAAc,GAAK,mBACtC,QAAQ,KAAK,oMAAqMzC,CAAC,MAGnN,OAAMA,CAEd,CAGJ,MAAM2C,EAAQ,MAAMF,EAAO,YAAW,EACtC,OAAO,MAAM,YAAY,YAAYE,EAAOD,CAAO,CAEvD,KAAO,CACH,MAAME,EAAW,MAAM,YAAY,YAAYH,EAAQC,CAAO,EAE9D,OAAIE,aAAoB,YAAY,SACzB,CAAE,SAAAA,EAAU,OAAAH,CAAM,EAGlBG,CAEf,CACJ,CAEA,SAAS,mBAAoB,CACzB,MAAM,QAAU,CAAA,EAChB,eAAQ,IAAM,CAAA,EACd,QAAQ,IAAI,wCAA0C,UAAW,CAAE,OAAO,YAAY,SAAUhC,EAAMC,EAAMa,EAAMC,EAAMkB,EAAM,CAC1H,UAAUjC,CAAI,EAAE,iBAAiB,mBAAmBC,EAAMa,CAAI,EAAG,UAAUC,CAAI,EAAG,UAAUkB,CAAI,CAAC,CACrG,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,wCAA0C,UAAW,CAAE,OAAO,YAAY,SAAUjC,EAAMC,EAAMa,EAAMC,EAAM,CACpH,UAAUf,CAAI,EAAE,iBAAiB,mBAAmBC,EAAMa,CAAI,EAAG,UAAUC,CAAI,CAAC,CACpF,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,SAASf,EAAM,CACpD,MAAMX,EAAM,QAAQ,IAAI,UAAUW,CAAI,CAAC,EACvC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,6BAA+B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAMa,EAAM,CACnG,MAAMzB,EAAM,QAAQ,MAAM,UAAUW,CAAI,EAAG,UAAUC,CAAI,EAAG,UAAUa,CAAI,CAAC,EAC3E,OAAO,cAAczB,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,8BAAgC,SAASW,EAAM,CACvD,MAAMX,EAAM,UAAUW,CAAI,EAAE,OAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAC5F,MAAMZ,EAAM,UAAUW,CAAI,EAAE,KAAK,UAAUC,CAAI,CAAC,EAChD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAMa,EAAM,CAClG,MAAMzB,EAAM,UAAUW,CAAI,EAAE,KAAK,UAAUC,CAAI,EAAG,UAAUa,CAAI,CAAC,EACjE,OAAO,cAAczB,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,oCAAsC,SAASW,EAAM,CAC7D,MAAMX,EAAM,aAAa,WAAWW,CAAI,CAAC,EACzC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,6BAA+B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAM,CACvF,UAAUA,CAAI,EAAE,MAAK,CACzB,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,6BAA+B,UAAW,CAAE,OAAO,YAAY,SAAUA,EAAMC,EAAM,CAC7F,UAAUD,CAAI,EAAE,MAAMC,CAAI,CAC9B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,6BAA+B,UAAW,CAAE,OAAO,YAAY,SAAUD,EAAMC,EAAMa,EAAMC,EAAM,CACzG,UAAUf,CAAI,EAAE,MAAMC,EAAM,mBAAmBa,EAAMC,CAAI,CAAC,CAC9D,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,4BAA8B,SAASf,EAAM,CAErD,OADY,UAAUA,CAAI,EAAE,IAEhC,EACA,QAAQ,IAAI,8BAAgC,SAASA,EAAM,CACvD,MAAMX,EAAM,UAAUW,CAAI,EAAE,OAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,SAASW,EAAM,CACrD,MAAMX,EAAM,UAAUW,CAAI,EAAE,KAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,qCAAuC,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAErG,OADY,UAAUD,CAAI,EAAE,cAAc,UAAUC,CAAI,CAAC,CAE7D,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,6BAA+B,SAASD,EAAM,CACtD,QAAQ,MAAM,UAAUA,CAAI,CAAC,CACjC,EACA,QAAQ,IAAI,6BAA+B,SAASA,EAAMC,EAAM,CAC5D,IAAIiC,EACAC,EACJ,GAAI,CACAD,EAAclC,EACdmC,EAAclC,EACd,QAAQ,MAAM,mBAAmBD,EAAMC,CAAI,CAAC,CAChD,QAAC,CACG,KAAK,oBAAoBiC,EAAaC,EAAa,CAAC,CACxD,CACJ,EACA,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAU,KAAM,KAAM,CAC5F,MAAM,IAAM,KAAK,mBAAmB,KAAM,IAAI,CAAC,EAC/C,OAAO,cAAc,GAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,6BAA+B,SAASnC,EAAMC,EAAM,CAC5D,MAAMZ,EAAM,UAAUW,CAAI,EAAE,MAAM,UAAUC,CAAI,CAAC,EACjD,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,6BAA+B,SAASW,EAAMC,EAAM,CAC5D,MAAMZ,EAAM,UAAUW,CAAI,EAAE,MAAM,UAAUC,CAAI,CAAC,EACjD,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,uCAAyC,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CACvG,UAAUD,CAAI,EAAE,gBAAgB,UAAUC,CAAI,CAAC,CACnD,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUD,EAAMC,EAAM,CAC3F,MAAMZ,EAAM,QAAQ,IAAI,UAAUW,CAAI,EAAG,UAAUC,CAAI,CAAC,EACxD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,SAASW,EAAMC,EAAM,CAC1D,MAAMZ,EAAM,UAAUW,CAAI,EAAEC,IAAS,CAAC,EACtC,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAE3F,OADY,QAAQ,IAAI,UAAUD,CAAI,EAAG,UAAUC,CAAI,CAAC,CAE5D,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,8CAAgD,SAASD,EAAM,CACvE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,WACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,wCAA0C,SAASpC,EAAM,CACjE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,KACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,yCAA2C,SAASpC,EAAM,CAClE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,MACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,2CAA6C,SAASpC,EAAM,CACpE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,QACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,oDAAsD,SAASpC,EAAM,CAC7E,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,iBACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,6CAA+C,SAASpC,EAAM,CACtE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,UACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,yCAA2C,SAASpC,EAAM,CAClE,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,MACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,oDAAsD,SAASpC,EAAM,CAC7E,IAAIoC,EACJ,GAAI,CACAA,EAAS,UAAUpC,CAAI,YAAa,iBACxC,MAAY,CACRoC,EAAS,EACb,CAEA,OADYA,CAEhB,EACA,QAAQ,IAAI,+BAAiC,SAASpC,EAAM,CAExD,OADY,MAAM,QAAQ,UAAUA,CAAI,CAAC,CAE7C,EACA,QAAQ,IAAI,8BAAgC,SAASA,EAAM,CAEvD,OADY,UAAUA,CAAI,EAAE,MAEhC,EACA,QAAQ,IAAI,8BAAgC,SAASA,EAAM,CAEvD,OADY,UAAUA,CAAI,EAAE,MAEhC,EACA,QAAQ,IAAI,2BAA6B,SAASA,EAAM,CACpD,QAAQ,IAAI,UAAUA,CAAI,CAAC,CAC/B,EACA,QAAQ,IAAI,+BAAiC,SAASA,EAAM,CACxD,MAAMX,EAAM,UAAUW,CAAI,EAAE,QAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAM,CACzD,MAAMX,EAAM,UAAUW,CAAI,EAAE,SAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,SAASW,EAAM,CACrD,MAAMX,EAAM,UAAUW,CAAI,EAAE,KAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,UAAY,CACjF,MAAMA,EAAM,IAAI,QAChB,OAAO,cAAcA,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,SAASW,EAAMC,EAAM,CAC1D,GAAI,CACA,IAAIoC,EAAS,CAAC,EAAGrC,EAAM,EAAGC,CAAI,EAC1BqC,EAAM,CAACtC,EAAMC,IAAS,CACtB,MAAMG,EAAIiC,EAAO,EACjBA,EAAO,EAAI,EACX,GAAI,CACA,OAAO,kBAAkBjC,EAAGiC,EAAO,EAAGrC,EAAMC,CAAI,CACpD,QAAC,CACGoC,EAAO,EAAIjC,CACf,CACJ,EACA,MAAMf,EAAM,IAAI,QAAQiD,CAAG,EAC3B,OAAO,cAAcjD,CAAG,CAC5B,QAAC,CACGgD,EAAO,EAAIA,EAAO,EAAI,CAC1B,CACJ,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAChD,MAAMhD,EAAM,IAAI,OAChB,OAAO,cAAcA,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAChD,MAAMA,EAAM,IAAI,MAChB,OAAO,cAAcA,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,UAAY,CACjF,MAAMA,EAAM,IAAI,gBAChB,OAAO,cAAcA,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,UAAW,CAChD,MAAMA,EAAM,IAAI,MAChB,OAAO,cAAcA,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAC3F,MAAMZ,EAAM,IAAI,UAAU,mBAAmBW,EAAMC,CAAI,CAAC,EACxD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAC3F,MAAMZ,EAAM,IAAI,IAAI,mBAAmBW,EAAMC,CAAI,CAAC,EAClD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,SAASW,EAAM,CACpD,MAAMX,EAAM,IAAI,WAAW,UAAUW,CAAI,CAAC,EAC1C,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,iCAAmC,SAASW,EAAMC,EAAM,CAChE,MAAMZ,EAAM,IAAI,SAAS,mBAAmBW,EAAMC,CAAI,CAAC,EACvD,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,kDAAoD,SAASW,EAAMC,EAAMa,EAAM,CACvF,MAAMzB,EAAM,IAAI,WAAW,UAAUW,CAAI,EAAGC,IAAS,EAAGa,IAAS,CAAC,EAClE,OAAO,cAAczB,CAAG,CAC5B,EACA,QAAQ,IAAI,4CAA8C,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAMa,EAAM,CAClH,MAAMzB,EAAM,IAAI,WAAW,mBAAmBW,EAAMC,CAAI,EAAG,UAAUa,CAAI,CAAC,EAC1E,OAAO,cAAczB,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,qCAAuC,SAASW,EAAM,CAC9D,MAAMX,EAAM,IAAI,WAAWW,IAAS,CAAC,EACrC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,kCAAoC,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CAClG,MAAMZ,EAAM,IAAI,QAAQ,mBAAmBW,EAAMC,CAAI,CAAC,EACtD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,yCAA2C,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAMa,EAAM,CAC/G,MAAMzB,EAAM,IAAI,QAAQ,mBAAmBW,EAAMC,CAAI,EAAG,UAAUa,CAAI,CAAC,EACvE,OAAO,cAAczB,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,4BAA8B,SAASW,EAAM,CACrD,MAAMX,EAAM,UAAUW,CAAI,EAAE,KAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,sBAAwB,SAASW,EAAM,CAC/C,MAAMX,EAAM,YAAY,OAAOW,CAAI,EACnC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAEhD,OADY,KAAK,IAAG,CAExB,EACA,QAAQ,IAAI,0BAA4B,SAASW,EAAM,CAEnD,OADY,UAAUA,CAAI,EAAE,EAEhC,EACA,QAAQ,IAAI,6BAA+B,UAAW,CAAE,OAAO,YAAY,SAAUA,EAAMC,EAAM,CAC7F,MAAMZ,EAAM,KAAK,MAAM,mBAAmBW,EAAMC,CAAI,CAAC,EACrD,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,mCAAqC,SAASW,EAAM,CAC5D,KAAK,YAAY,UAAUA,CAAI,CAAC,CACpC,EACA,QAAQ,IAAI,+BAAiC,SAASA,EAAM,CACxD,MAAMX,EAAM,UAAUW,CAAI,EAAE,QAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,SAASW,EAAMC,EAAM,CAE3D,OADY,UAAUD,CAAI,EAAE,KAAK,UAAUC,CAAI,CAAC,CAEpD,EACA,QAAQ,IAAI,sCAAwC,SAASD,EAAM,CAC/D,eAAe,UAAUA,CAAI,CAAC,CAClC,EACA,QAAQ,IAAI,sCAAwC,SAASA,EAAM,CAC/D,MAAMX,EAAM,UAAUW,CAAI,EAAE,eAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,sCAAwC,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAM,CACtG,UAAUD,CAAI,EAAE,eAAe,WAAWC,CAAI,CAAC,CACnD,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,kCAAoC,SAASD,EAAM,CAE3D,OADY,UAAUA,CAAI,EAAE,UAEhC,EACA,QAAQ,IAAI,8BAAgC,SAASA,EAAMC,EAAM,CAC7D,MAAMZ,EAAM,UAAUY,CAAI,EAAE,OACtBoB,EAAO,kBAAkBhC,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EAChFiC,EAAO,gBACb,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,2CAA6C,UAAW,CAAE,OAAO,YAAY,SAAUrB,EAAMC,EAAMa,EAAMC,EAAM,CACvH,UAAUf,CAAI,EAAE,oBAAoB,mBAAmBC,EAAMa,CAAI,EAAG,UAAUC,CAAI,CAAC,CACvF,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,+BAAiC,UAAW,CAAE,OAAO,YAAY,UAAY,CACrF,MAAM1B,EAAM,OAAO,QACnB,OAAO,cAAcA,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,+BAAiC,SAASW,EAAM,CACxD,MAAMX,EAAM,QAAQ,QAAQ,UAAUW,CAAI,CAAC,EAC3C,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,8BAAgC,SAASW,EAAMC,EAAM,CAC7D,MAAMZ,EAAM,UAAUY,CAAI,EAAE,OACtBoB,EAAO,kBAAkBhC,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EAChFiC,EAAO,gBACb,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAUrB,EAAMC,EAAMa,EAAM,CAClG,UAAUd,CAAI,EAAE,KAAK,mBAAmBC,EAAMa,CAAI,CAAC,CACvD,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAUd,EAAMC,EAAMa,EAAM,CAClG,UAAUd,CAAI,EAAE,KAAK,oBAAoBC,EAAMa,CAAI,CAAC,CACxD,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,kCAAoC,UAAW,CAAE,OAAO,YAAY,SAAUd,EAAMC,EAAM,CAClG,MAAMZ,EAAM,WAAW,UAAUW,CAAI,EAAGC,CAAI,EAC5C,OAAO,cAAcZ,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAMC,EAAMa,EAAMC,EAAMkB,EAAM,CAC7G,UAAUjC,CAAI,EAAE,IAAI,mBAAmBC,EAAMa,CAAI,EAAG,mBAAmBC,EAAMkB,CAAI,CAAC,CACtF,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,2BAA6B,SAASjC,EAAMC,EAAMa,EAAM,CAChE,UAAUd,CAAI,EAAE,IAAI,UAAUC,CAAI,EAAGa,IAAS,CAAC,CACnD,EACA,QAAQ,IAAI,2BAA6B,UAAW,CAAE,OAAO,YAAY,SAAUd,EAAMC,EAAMa,EAAM,CAEjG,OADY,QAAQ,IAAI,UAAUd,CAAI,EAAG,UAAUC,CAAI,EAAG,UAAUa,CAAI,CAAC,CAE7E,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,qCAAuC,SAASd,EAAMC,EAAM,CACpE,UAAUD,CAAI,EAAE,WAAa,2BAA2BC,CAAI,CAChE,EACA,QAAQ,IAAI,+BAAiC,SAASD,EAAMC,EAAM,CAC9D,UAAUD,CAAI,EAAE,KAAO,UAAUC,CAAI,CACzC,EACA,QAAQ,IAAI,+BAAiC,SAASD,EAAMC,EAAM,CAC9D,UAAUD,CAAI,EAAE,KAAOC,CAC3B,EACA,QAAQ,IAAI,kCAAoC,SAASD,EAAMC,EAAM,CACjE,UAAUD,CAAI,EAAE,QAAU,UAAUC,CAAI,CAC5C,EACA,QAAQ,IAAI,iCAAmC,SAASD,EAAMC,EAAMa,EAAM,CACtE,UAAUd,CAAI,EAAE,OAAS,mBAAmBC,EAAMa,CAAI,CAC1D,EACA,QAAQ,IAAI,+BAAiC,SAASd,EAAMC,EAAM,CAC9D,UAAUD,CAAI,EAAE,KAAOC,IAAS,CACpC,EACA,QAAQ,IAAI,iCAAmC,SAASD,EAAMC,EAAMa,EAAM,CACtE,UAAUd,CAAI,EAAE,OAAS,mBAAmBC,EAAMa,CAAI,CAC1D,EACA,QAAQ,IAAI,iCAAmC,SAASd,EAAMC,EAAMa,EAAM,CACtE,UAAUd,CAAI,EAAE,OAAS,mBAAmBC,EAAMa,CAAI,CAC1D,EACA,QAAQ,IAAI,6BAA+B,SAASd,EAAMC,EAAM,CAC5D,MAAMZ,EAAM,UAAUY,CAAI,EAAE,MACtBoB,EAAO,kBAAkBhC,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EAChFiC,EAAO,gBACb,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,8CAAgD,UAAW,CACnE,MAAMhC,EAAM,OAAO,OAAW,IAAc,KAAO,OACnD,OAAO,WAAWA,CAAG,EAAI,EAAI,cAAcA,CAAG,CAClD,EACA,QAAQ,IAAI,mDAAqD,UAAW,CACxE,MAAMA,EAAM,OAAO,WAAe,IAAc,KAAO,WACvD,OAAO,WAAWA,CAAG,EAAI,EAAI,cAAcA,CAAG,CAClD,EACA,QAAQ,IAAI,4CAA8C,UAAW,CACjE,MAAMA,EAAM,OAAO,KAAS,IAAc,KAAO,KACjD,OAAO,WAAWA,CAAG,EAAI,EAAI,cAAcA,CAAG,CAClD,EACA,QAAQ,IAAI,8CAAgD,UAAW,CACnE,MAAMA,EAAM,OAAO,OAAW,IAAc,KAAO,OACnD,OAAO,WAAWA,CAAG,EAAI,EAAI,cAAcA,CAAG,CAClD,EACA,QAAQ,IAAI,8BAAgC,SAASW,EAAM,CAEvD,OADY,UAAUA,CAAI,EAAE,MAEhC,EACA,QAAQ,IAAI,iCAAmC,UAAW,CAAE,OAAO,YAAY,SAAUA,EAAM,CAC3F,MAAMX,EAAM,KAAK,UAAU,UAAUW,CAAI,CAAC,EAC1C,OAAO,cAAcX,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,UAAUW,CAAI,EAAE,SAASC,IAAS,EAAGa,IAAS,CAAC,EAC3D,OAAO,cAAczB,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,UAAW,CAAE,OAAO,YAAY,SAAUW,EAAM,CACtF,MAAMX,EAAM,UAAUW,CAAI,EAAE,KAAI,EAChC,OAAO,cAAcX,CAAG,CAC5B,EAAG,SAAS,CAAE,EACd,QAAQ,IAAI,4BAA8B,SAASW,EAAMC,EAAM,CAC3D,MAAMZ,EAAM,UAAUW,CAAI,EAAE,KAAK,UAAUC,CAAI,CAAC,EAChD,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,4BAA8B,SAASW,EAAMC,EAAMa,EAAM,CACjE,MAAMzB,EAAM,UAAUW,CAAI,EAAE,KAAK,UAAUC,CAAI,EAAG,UAAUa,CAAI,CAAC,EACjE,OAAO,cAAczB,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAM,CACzD,MAAMX,EAAM,UAAUW,CAAI,EAAE,SAAQ,EACpC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAM,CACzD,MAAMX,EAAM,UAAUW,CAAI,EAAE,SAAQ,EACpC,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,SAASW,EAAMC,EAAM,CAC1D,MAAMZ,EAAM,UAAUY,CAAI,EAAE,IACtBoB,EAAO,kBAAkBhC,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EAChFiC,EAAO,gBACb,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,gCAAkC,SAASrB,EAAM,CACzD,MAAMX,EAAM,UAAUW,CAAI,EAAE,SAC5B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAM,CAEzD,OADY,UAAUA,CAAI,EAAE,QAEhC,EACA,QAAQ,IAAI,uBAAyB,SAASA,EAAM,CAChD,MAAMuC,EAAI,UAAUvC,CAAI,EAExB,OADY,OAAOuC,GAAO,UAAaA,EAAI,EAAI,EAAK,CAExD,EACA,QAAQ,IAAI,mBAAqB,SAASvC,EAAM,CAC5C,MAAMf,EAAM,WAAWe,CAAI,EAAE,SAC7B,OAAIf,EAAI,OAAS,GACbA,EAAI,EAAI,EACD,IAEC,EAEhB,EACA,QAAQ,IAAI,gCAAkC,SAASe,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,IAAK,gBAAgB,EAC5D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,IAAK,gBAAgB,EAC5D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,IAAK,gBAAgB,EAC5D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,IAAK,gBAAgB,EAC5D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,KAAM,gBAAgB,EAC7D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,gCAAkC,SAASW,EAAMC,EAAMa,EAAM,CACrE,MAAMzB,EAAM,eAAeW,EAAMC,EAAM,KAAM,gBAAgB,EAC7D,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,wBAA0B,SAASW,EAAMC,EAAM,CACvD,MAAMZ,EAAM,YAAY,UAAUY,CAAI,CAAC,EACjCoB,EAAO,kBAAkBhC,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EAChFiC,EAAO,gBACb,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,uBAAyB,SAASrB,EAAM,CAEhD,OADY,OAAO,UAAUA,CAAI,GAAO,UAE5C,EACA,QAAQ,IAAI,mBAAqB,SAASA,EAAM,CAE5C,OADY,UAAUA,CAAI,IAAM,IAEpC,EACA,QAAQ,IAAI,qBAAuB,SAASA,EAAM,CAC9C,MAAMK,EAAM,UAAUL,CAAI,EAE1B,OADY,OAAOK,GAAS,UAAYA,IAAQ,IAEpD,EACA,QAAQ,IAAI,qBAAuB,SAASL,EAAM,CAE9C,OADY,OAAO,UAAUA,CAAI,GAAO,QAE5C,EACA,QAAQ,IAAI,wBAA0B,SAASA,EAAM,CAEjD,OADY,UAAUA,CAAI,IAAM,MAEpC,EACA,QAAQ,IAAI,kBAAoB,UAAW,CACvC,MAAMX,EAAM,KAAK,OACjB,OAAO,cAAcA,CAAG,CAC5B,EACA,QAAQ,IAAI,sBAAwB,SAASW,EAAMC,EAAM,CACrD,MAAMhB,EAAM,UAAUgB,CAAI,EACpBZ,EAAM,OAAOJ,GAAS,SAAWA,EAAM,OAC7C,qBAAqB,WAAWe,EAAO,EAAI,EAAG,WAAWX,CAAG,EAAI,EAAIA,EAAK,EAAI,EAC7E,mBAAkB,EAAG,SAASW,EAAO,EAAI,EAAG,CAAC,WAAWX,CAAG,EAAG,EAAI,CACtE,EACA,QAAQ,IAAI,sBAAwB,SAASW,EAAM,CAE/C,OAAO,cADKA,CACY,CAC5B,EACA,QAAQ,IAAI,4BAA8B,SAASA,EAAM,CACrD,MAAMX,EAAM,UAAUW,CAAI,EAC1B,OAAO,cAAcX,CAAG,CAC5B,EACA,QAAQ,IAAI,2BAA6B,SAASW,EAAM,CACpD,WAAWA,CAAI,CACnB,EACA,QAAQ,IAAI,sBAAwB,SAASA,EAAMC,EAAM,CACrD,MAAMhB,EAAM,UAAUgB,CAAI,EACpBZ,EAAM,OAAOJ,GAAS,SAAWA,EAAM,OAC7C,IAAIoC,EAAO,WAAWhC,CAAG,EAAI,EAAI,kBAAkBA,EAAK,KAAK,oBAAqB,KAAK,mBAAmB,EACtGiC,EAAO,gBACX,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGsB,EAAM,EAAI,EACtD,mBAAkB,EAAG,SAAStB,EAAO,EAAI,EAAGqB,EAAM,EAAI,CAC1D,EACA,QAAQ,IAAI,sBAAwB,SAASrB,EAAMC,EAAM,CACrD,MAAMZ,EAAM,mBAAmBW,EAAMC,CAAI,EACzC,OAAO,cAAcZ,CAAG,CAC5B,EACA,QAAQ,IAAI,iBAAmB,SAASW,EAAMC,EAAM,CAChD,MAAM,IAAI,MAAM,mBAAmBD,EAAMC,CAAI,CAAC,CAClD,EAEO,OACX,CAMA,SAAS,oBAAoB+B,EAAUH,EAAQ,CAC3C,YAAOG,EAAS,QAChB,WAAW,uBAAyBH,EACpC,sBAAwB,KACxB,wBAA0B,KAInB,IACX,CA2BA,eAAe,WAAWW,EAAgB,CACtC,GAAI,OAAS,OAAW,OAAO,KAG3B,OAAOA,EAAmB,MACtB,OAAO,eAAeA,CAAc,IAAM,OAAO,UAChD,CAAC,eAAAA,CAAc,EAAIA,EAEpB,QAAQ,KAAK,2FAA2F,GAI5G,OAAOA,EAAmB,MAC1BA,EAAiB,IAAA,IAAA,g69/OAAA,kBAAA,GAErB,MAAMV,EAAU,kBAAiB,GAE7B,OAAOU,GAAmB,UAAa,OAAO,SAAY,YAAcA,aAA0B,SAAa,OAAO,KAAQ,YAAcA,aAA0B,OACtKA,EAAiB,MAAMA,CAAc,GAKzC,KAAM,CAAE,SAAAR,EAAU,OAAAH,CAAM,EAAK,MAAM,WAAW,MAAMW,EAAgBV,CAAO,EAE3E,OAAO,oBAAoBE,EAAUH,CAAM,CAC/C,CCtqCA,MAAM,YAAc,SAAY,CAC9B,GAAI,CACF,eAAQ,IAAI,6CAA6C,EACzD,MAAMY,WAAI,EACH,MAAM,kBAAiB,CAChC,OAASC,EAAO,CACd,cAAQ,IAAI,MAAM,EAClB,QAAQ,MAAM,2CAA4CA,CAAK,EACzDA,CACR,CACF,EAEM,UAAY,YAAW,EAE7B,KAAK,UAAY,MAAOC,GAAU,EAC/B,MAAM,WAAW,eAAeA,EAAM,IAAI,CAC7C"}
@@ -0,0 +1,5 @@
1
+ import { SubscriptionOptions } from '.';
2
+ import { Request } from './types';
3
+
4
+ export declare function useSubscription(subId: string, requests: Request[], callback?: any, options?: SubscriptionOptions): () => void;
5
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAEtD,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,GAAE,GAAc,EACxB,OAAO,GAAE,mBAA4C,cA0EtD"}
package/dist/hooks.js ADDED
@@ -0,0 +1 @@
1
+ import{n as b,S as p}from"./index3.js";function f(n,u,s=()=>{},a={closeOnEose:!1}){if(!n)return console.warn("useSharedSubscription: No subscription ID provided"),()=>{};let i=null,l=4,e=null,t=15;const d=4e3;let r=!0;if(u.length>0){i=b.subscribe(n,u,a);const E=()=>{if(!r||!i){e!==null&&clearTimeout(e);return}const c=p.readMessages(i,l);c.hasNewData?(t=5,c.messages.forEach(o=>{"SubscriptionEvent"in o?o.SubscriptionEvent.event_data.forEach(m=>{s(m,o.SubscriptionEvent.event_type)}):"Eose"in o?(a.closeOnEose&&(console.log("close"),r=!1,e&&clearTimeout(e)),s(o.Eose.data,"EOSE")):"Eoce"in o?s([],"EOCE"):"Proofs"in o&&s(o.Proofs)}),l=c.newReadPosition):t=Math.min(t*2,d),e!==null&&clearTimeout(e),e=window.setTimeout(E,t)};e=window.setTimeout(E,0)}return()=>{r=!1,e!==null&&clearTimeout(e),b.unsubscribe(n)}}export{f as useSubscription};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { nostrManager, SubscriptionOptions } from \".\";\nimport { SharedBufferReader } from \"src/lib/sharedBuffer\";\nimport type { WorkerToMainMessage, Request } from \"src/types\";\n\nexport function useSubscription(\n subId: string,\n requests: Request[],\n callback: any = () => {},\n options: SubscriptionOptions = { closeOnEose: false },\n) {\n if (!subId) {\n console.warn(\"useSharedSubscription: No subscription ID provided\");\n return () => {};\n }\n let buffer: SharedArrayBuffer | null = null;\n let lastReadPos: number = 4;\n let timeoutId: number | null = null;\n let pollInterval: number = 15; // Start at 5ms - very aggressive\n const maxInterval: number = 4000; // Max 4 seconds\n let running: boolean = true;\n\n if (requests.length > 0) {\n buffer = nostrManager.subscribe(subId, requests, options);\n\n const processEvents = (): void => {\n if (!running || !buffer) {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n return;\n }\n\n const result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\n if (result.hasNewData) {\n // Found new data - reset to aggressive polling\n pollInterval = 5;\n\n result.messages.forEach((message: WorkerToMainMessage) => {\n if (\"SubscriptionEvent\" in message) {\n message.SubscriptionEvent.event_data.forEach((event) => {\n callback(event, message.SubscriptionEvent.event_type);\n });\n } else if (\"Eose\" in message) {\n if (options.closeOnEose) {\n console.log(\"close\");\n running = false;\n timeoutId && clearTimeout(timeoutId);\n }\n callback(message.Eose.data, \"EOSE\");\n } else if (\"Eoce\" in message) {\n callback([], \"EOCE\");\n } else if (\"Proofs\" in message) {\n callback(message.Proofs);\n }\n });\n lastReadPos = result.newReadPosition;\n } else {\n // No new data - back off exponentially (faster backoff)\n pollInterval = Math.min(pollInterval * 2, maxInterval);\n }\n\n // Clear any existing timeout before scheduling a new one\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n\n // Schedule next poll\n timeoutId = window.setTimeout(processEvents, pollInterval);\n };\n\n // Start after a minimal delay to ensure the return function is available\n timeoutId = window.setTimeout(processEvents, 0);\n }\n\n return (): void => {\n running = false;\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n nostrManager.unsubscribe(subId);\n };\n}\n"],"names":["useSubscription","subId","requests","callback","options","buffer","lastReadPos","timeoutId","pollInterval","maxInterval","running","nostrManager","processEvents","result","SharedBufferReader","message","event"],"mappings":";AAIO,SAASA,EACdC,GACAC,GACAC,IAAgB,MAAM;AAAC,GACvBC,IAA+B,EAAE,aAAa,MAC9C;AACA,MAAI,CAACH;AACH,mBAAQ,KAAK,oDAAoD,GAC1D,MAAM;AAAA,IAAC;AAEhB,MAAII,IAAmC,MACnCC,IAAsB,GACtBC,IAA2B,MAC3BC,IAAuB;AAC3B,QAAMC,IAAsB;AAC5B,MAAIC,IAAmB;AAEvB,MAAIR,EAAS,SAAS,GAAG;AACvB,IAAAG,IAASM,EAAa,UAAUV,GAAOC,GAAUE,CAAO;AAExD,UAAMQ,IAAgB,MAAY;AAChC,UAAI,CAACF,KAAW,CAACL,GAAQ;AACvB,QAAIE,MAAc,QAChB,aAAaA,CAAS;AAExB;AAAA,MACF;AAEA,YAAMM,IAASC,EAAmB,aAAaT,GAAQC,CAAW;AAElE,MAAIO,EAAO,cAETL,IAAe,GAEfK,EAAO,SAAS,QAAQ,CAACE,MAAiC;AACxD,QAAI,uBAAuBA,IACzBA,EAAQ,kBAAkB,WAAW,QAAQ,CAACC,MAAU;AACtD,UAAAb,EAASa,GAAOD,EAAQ,kBAAkB,UAAU;AAAA,QACtD,CAAC,IACQ,UAAUA,KACfX,EAAQ,gBACV,QAAQ,IAAI,OAAO,GACnBM,IAAU,IACVH,KAAa,aAAaA,CAAS,IAErCJ,EAASY,EAAQ,KAAK,MAAM,MAAM,KACzB,UAAUA,IACnBZ,EAAS,CAAA,GAAI,MAAM,IACV,YAAYY,KACrBZ,EAASY,EAAQ,MAAM;AAAA,MAE3B,CAAC,GACDT,IAAcO,EAAO,mBAGrBL,IAAe,KAAK,IAAIA,IAAe,GAAGC,CAAW,GAInDF,MAAc,QAChB,aAAaA,CAAS,GAIxBA,IAAY,OAAO,WAAWK,GAAeJ,CAAY;AAAA,IAC3D;AAGA,IAAAD,IAAY,OAAO,WAAWK,GAAe,CAAC;AAAA,EAChD;AAEA,SAAO,MAAY;AACjB,IAAAF,IAAU,IACNH,MAAc,QAChB,aAAaA,CAAS,GAExBI,EAAa,YAAYV,CAAK;AAAA,EAChC;AACF;"}
@@ -0,0 +1,87 @@
1
+ import { PipelineConfig, RelayStatusUpdate, Request } from '../../rust-main/dist';
2
+ import { AnyKind, ParsedEvent, SubscribeKind, PublishKind } from './types';
3
+ import { NostrEvent } from 'nostr-tools';
4
+
5
+ export type { Request };
6
+ export type SubscriptionCallback = (data: ParsedEvent<AnyKind>[] | number, type: SubscribeKind) => void;
7
+ type PublishCallback = (data: RelayStatusUpdate, type: PublishKind) => void;
8
+ export declare enum PublishStatus {
9
+ StatusPending = "pending",
10
+ StatusSent = "sent",
11
+ StatusSuccess = "success",
12
+ StatusFailed = "failed",
13
+ StatusRejected = "rejected",
14
+ StatusConnError = "connection_error"
15
+ }
16
+ export type RelayStatus = {
17
+ relay: string;
18
+ status: PublishStatus;
19
+ message: string;
20
+ timestamp: number;
21
+ };
22
+ export interface SubscriptionOptions {
23
+ pipeline?: PipelineConfig;
24
+ closeOnEose?: boolean;
25
+ cacheFirst?: boolean;
26
+ timeoutMs?: number;
27
+ maxEvents?: number;
28
+ enableOptimization?: boolean;
29
+ skipCache?: boolean;
30
+ force?: boolean;
31
+ bytesPerEvent?: number;
32
+ }
33
+ /**
34
+ * Configuration for the Nostr Manager
35
+ */
36
+ export interface NostrManagerConfig {
37
+ /**
38
+ * Custom worker URL. If not provided, uses the bundled worker.
39
+ */
40
+ workerUrl?: string;
41
+ /**
42
+ * Custom worker instance. If provided, workerUrl is ignored.
43
+ */
44
+ worker?: Worker;
45
+ }
46
+ /**
47
+ * Pure TypeScript NostrClient that manages worker communication and state.
48
+ * Uses WASM utilities for heavy lifting (encoding, decoding, crypto).
49
+ */
50
+ declare class NostrManager {
51
+ private worker;
52
+ private subscriptions;
53
+ private publishes;
54
+ private signers;
55
+ PERPETUAL_SUBSCRIPTIONS: string[];
56
+ constructor(config?: NostrManagerConfig);
57
+ private createWorker;
58
+ private setupWorkerListener;
59
+ private handleWorkerMessage;
60
+ private handlePublishStatus;
61
+ private handleSignedEvent;
62
+ private handlePublicKey;
63
+ private createShortId;
64
+ subscribe(subscriptionId: string, requests: Request[], options?: SubscriptionOptions): SharedArrayBuffer;
65
+ getBuffer(subId: string): SharedArrayBuffer | undefined;
66
+ unsubscribe(subscriptionId: string): void;
67
+ publish(publish_id: string, event: NostrEvent, callback?: PublishCallback): void;
68
+ setSigner(name: string, secretKeyHex: string): void;
69
+ signEvent(event: NostrEvent): void;
70
+ getPublicKey(): void;
71
+ addPublishCallbackAll(callback: (status: RelayStatusUpdate, eventId: string) => void): void;
72
+ cleanup(): void;
73
+ }
74
+ /**
75
+ * Factory function to create a new NostrManager instance.
76
+ * @param config - Configuration for the NostrManager.
77
+ * @returns A new instance of NostrManager.
78
+ */
79
+ export declare function createNostrManager(config?: NostrManagerConfig): NostrManager;
80
+ /**
81
+ * Default singleton instance of the NostrManager.
82
+ * Useful for applications that only need one instance.
83
+ */
84
+ export declare const nostrManager: NostrManager;
85
+ export declare function cleanup(): void;
86
+ export * from './types';
87
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{P as a,R as s,a as r,c as t,i as e,n as o}from"./index3.js";import"@msgpack/msgpack";import{S as i}from"./index2.js";export{a as PublishStatus,s as ReactionType,i as SignerTypes,r as cleanup,t as createNostrManager,e as isKind39089,o as nostrManager};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
package/dist/index2.js ADDED
@@ -0,0 +1 @@
1
+ const e={PK:"privkey"};export{e as S};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../src/types/index.ts"],"sourcesContent":["export {\n type MainToWorkerMessage,\n type PipeConfig,\n type PipelineConfig,\n type RelayStatusUpdate,\n type Request,\n type SubscriptionConfig,\n type WorkerToMainMessage,\n} from \"@candypoets/rust-main\";\n\nimport type { NostrEvent } from \"nostr-tools\";\n\nimport { type Kind0Parsed } from \"./kind0\";\nimport { type Kind1Parsed } from \"./kind1\";\nimport { type Kind10002Parsed } from \"./kind10002\";\nimport { type Kind10019Parsed } from \"./kind10019\";\nimport { type Kind17Parsed } from \"./kind17\";\nimport { type Kind17375Parsed } from \"./kind17375\";\nimport { type Kind3Parsed } from \"./kind3\";\nimport { type Kind39089Parsed } from \"./kind39089\";\nimport { type Kind4Parsed } from \"./kind4\";\nimport { type Kind6Parsed } from \"./kind6\";\nimport { type Kind7Parsed } from \"./kind7\";\nimport { type Kind7374Parsed } from \"./kind7374\";\nimport { type Kind7375Parsed } from \"./kind7375\";\nimport type { Kind7376Parsed } from \"./kind7376\";\nimport { type Kind9321Parsed } from \"./kind9321\";\nimport { type Kind9735Parsed } from \"./kind9735\";\n\nexport * from \"./proofs\";\n\nexport * from \"./kind0\";\nexport * from \"./kind1\";\nexport * from \"./kind10002\";\nexport * from \"./kind10019\";\nexport * from \"./kind17\";\nexport * from \"./kind17375\";\nexport * from \"./kind3\";\nexport * from \"./kind39089\";\nexport * from \"./kind4\";\nexport * from \"./kind6\";\nexport * from \"./kind7\";\nexport * from \"./kind7374\";\nexport * from \"./kind7375\";\nexport * from \"./kind7376\";\nexport * from \"./kind9321\";\nexport * from \"./kind9735\";\n\nexport type ParsedEvent<T> = NostrEvent & {\n parsed?: T | null;\n requests?: Request[];\n relays?: string[];\n};\n\nexport type ContentBlock = {\n type:\n | \"text\"\n | \"image\"\n | \"video\"\n | \"mediaGrid\"\n | \"code\"\n | \"link\"\n | \"npub\"\n | \"nprofile\"\n | \"note\"\n | \"nevent\"\n | \"naddr\"\n | \"hashtag\"\n | \"cashu\";\n text: string;\n data?: Record<string, any>;\n};\n\nexport type AnyKind =\n | Kind0Parsed\n | Kind1Parsed\n | Kind3Parsed\n | Kind4Parsed\n | Kind6Parsed\n | Kind7Parsed\n | Kind17Parsed\n | Kind9735Parsed\n | Kind9321Parsed // For Kind9321 which seems to use Kind1Parsed\n | Kind10002Parsed\n | Kind10019Parsed\n | Kind17375Parsed\n | Kind7374Parsed\n | Kind7375Parsed\n | Kind7376Parsed\n | Kind39089Parsed;\n\nexport type SubscribeKind =\n | \"CACHED_EVENT\"\n | \"FETCHED_EVENT\"\n | \"COUNT\"\n | \"EOSE\"\n | \"EOCE\";\n\nexport type PublishKind = \"PUBLISH_STATUS\";\n\nexport type SignerType = string;\n\n// Enum-like object for SignerType\nexport const SignerTypes = {\n PK: \"privkey\" as SignerType,\n // SignerTypeNone: \"none\" as SignerType\n} as const;\n"],"names":["SignerTypes"],"mappings":"AAuGO,MAAMA,IAAc;AAAA,EACzB,IAAI;AAAA;AAEN;"}
package/dist/index3.js ADDED
@@ -0,0 +1 @@
1
+ import{unpack as P}from"msgpackr";import{decode as y,encode as l}from"@msgpack/msgpack";import"./index2.js";class p{static readMessages(e,t=0){const s=new DataView(e),i=new Uint8Array(e),a=s.getUint32(0,!0),n=Math.max(t,4);if(a<=n)return{messages:[],newReadPosition:n,hasNewData:!1};const u=[];let o=n;try{for(;o<a&&!(o+4>a);){const c=s.getUint32(o,!0);if(o+=4,o+c>a)break;const g=i.slice(o,o+c),d=P(g);u.push(d),o+=c}return{messages:u,newReadPosition:o,hasNewData:u.length>0}}catch(c){return console.error("Failed to decode length-prefixed msgpack data from SharedArrayBuffer:",c),{messages:u,newReadPosition:n,hasNewData:!1}}}static readAllMessages(e){const t=this.readMessages(e,0);return{messages:t.messages,totalMessages:t.messages.length}}static getCurrentWritePosition(e){return new DataView(e).getUint32(0,!0)}static hasNewData(e,t){const s=this.getCurrentWritePosition(e),i=Math.max(t,4);return s>i}static calculateBufferSize(e=100,t=3072){const s=e*t,i=Math.floor(s*.25);return 4+s+i}}function b(r){return new Worker("/assets/worker-Yodgjxhx.js",{name:r?.name})}function M(r){return r.kind===39089}var f=(r=>(r.LIKE="+",r.DISLIKE="-",r.EMOJI="emoji",r.CUSTOM="custom",r))(f||{}),S=(r=>(r.StatusPending="pending",r.StatusSent="sent",r.StatusSuccess="success",r.StatusFailed="failed",r.StatusRejected="rejected",r.StatusConnError="connection_error",r))(S||{});class k{constructor(e={}){this.subscriptions=new Map,this.publishes=new Map,this.signers=new Map,this.PERPETUAL_SUBSCRIPTIONS=["notifications","starterpack"],this.worker=this.createWorker(e),this.setupWorkerListener()}createWorker(e){return console.log(import.meta.url,b),new b}setupWorkerListener(){this.worker.onmessage=async e=>{if(e.data instanceof Uint8Array){let t=e.data;try{const s=y(t);this.handleWorkerMessage(s)}catch(s){console.error("Failed to decode worker message:",s)}finally{t&&(t.fill(0),t=null)}}else console.log("Received non-arrayBuffer message:",e.data)},this.worker.onerror=e=>{console.error("Worker error:",e)}}handleWorkerMessage(e){"PublishStatus"in e?this.handlePublishStatus(e.PublishStatus.publish_id,e.PublishStatus.status):"Count"in e||("SignedEvent"in e?this.handleSignedEvent(e.SignedEvent.content,e.SignedEvent.signed_event):"PublicKey"in e?this.handlePublicKey(e.PublicKey.public_key):"Debug"in e?console.debug("Worker debug:",e.Debug.message,e.Debug.data):console.warn("Unknown message type from worker:",e))}handlePublishStatus(e,t){const s=this.publishes.get(e);if(t[0]){if(!s){const i=this.publishes.get("*");return i&&i(t[0],"PUBLISH_STATUS")}t.length>0&&s(t[0],"PUBLISH_STATUS")}}handleSignedEvent(e,t){console.log("Signed event received:",e,t)}handlePublicKey(e){console.log("Public key received:",e)}createShortId(e){let t=0;for(let s=0;s<e.length;s++){const i=e.charCodeAt(s);t=(t<<5)-t+i,t=t&t}return Math.abs(t).toString(36).substring(0,63)}subscribe(e,t,s={}){const i=e.length<64?e:this.createShortId(e),a=this.subscriptions.get(i);if(a)return a.refCount++,a.buffer;const n={closeOnEose:!1,cacheFirst:!0,skipCache:!1,force:!1,enableOptimization:!0,...s},u=t.reduce((h,m)=>h+(m.limit||100),0),o=p.calculateBufferSize(u,s.bytesPerEvent),c=new SharedArrayBuffer(o);new DataView(c).setUint32(0,4,!0),this.subscriptions.set(i,{buffer:c,options:n,refCount:1});const g={pipeline:n.pipeline,closeOnEose:n.closeOnEose,cacheFirst:n.cacheFirst,timeoutMs:n.timeoutMs,maxEvents:n.maxEvents,enableOptimization:n.enableOptimization,skipCache:n.skipCache,force:n.force,bytesPerEvent:n.bytesPerEvent},d={Subscribe:{subscription_id:i,requests:t,config:g}};try{const h=l(d);return this.worker.postMessage({serializedMessage:h,sharedBuffer:c}),c}catch(h){throw this.subscriptions.delete(i),h}}getBuffer(e){const t=this.subscriptions.get(e);if(t)return t.refCount++,t.buffer}unsubscribe(e){const t=e.length<64?e:this.createShortId(e),s=this.subscriptions.get(t);s&&s.refCount--}publish(e,t,s){try{s&&this.publishes.set(e,s);const i={kind:t.kind,content:t.content,tags:t.tags||[]},a=l({Publish:{publish_id:e,template:i}});this.worker.postMessage(a)}catch(i){throw console.error("Failed to publish event:",i),i}}setSigner(e,t){const s=l({SetSigner:{signer_type:e,private_key:t}});this.worker.postMessage(s),this.signers.set(e,t)}signEvent(e){const t={SignEvent:{template:{kind:e.kind,content:e.content,tags:e.tags}}},s=l(t);this.worker.postMessage(s)}getPublicKey(){const e=l({GetPublicKey:{}});this.worker.postMessage(e)}addPublishCallbackAll(e){this.publishes.set("*",e)}cleanup(){const e=[];for(const[t,s]of this.subscriptions.entries())s.refCount<=0&&!this.PERPETUAL_SUBSCRIPTIONS.includes(t)&&e.push(t);for(const t of e)if(this.subscriptions.get(t)){const s=l({Unsubscribe:{subscription_id:t}});this.worker.postMessage(s),this.subscriptions.delete(t)}}}function E(r={}){return new k(r)}const w=new k;function v(){w.cleanup()}export{S as P,f as R,p as S,v as a,E as c,M as i,w as n};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index3.js","sources":["../src/lib/sharedBuffer.ts","../src/types/kind39089.ts","../src/types/kind7.ts","../src/index.ts"],"sourcesContent":["import { unpack } from \"msgpackr\";\nimport type { WorkerToMainMessage } from \"src/types\";\n\n/**\n * Utility library for reading from SharedArrayBuffer with 4-byte header approach\n * Header format: [0-3]: Write position (4 bytes, little endian)\n * Data format: [4+]: [4-byte length][msgpack event][4-byte length][msgpack event]...\n */\nexport class SharedBufferReader {\n /**\n * Read new messages from SharedArrayBuffer since last read position\n * @param buffer The SharedArrayBuffer to read from\n * @param lastReadPosition Last position read (default: 0, meaning read from beginning)\n * @returns Object containing new messages and updated read position\n */\n static readMessages(\n buffer: SharedArrayBuffer,\n lastReadPosition: number = 0,\n ): {\n messages: WorkerToMainMessage[];\n newReadPosition: number;\n hasNewData: boolean;\n } {\n const view = new DataView(buffer);\n const uint8View = new Uint8Array(buffer);\n\n // Read current write position from header (first 4 bytes, little endian)\n const currentWritePosition = view.getUint32(0, true);\n\n // Check if there's new data to read\n const dataStartOffset = 4; // Skip 4-byte write position header\n const actualLastReadPosition = Math.max(lastReadPosition, dataStartOffset);\n\n if (currentWritePosition <= actualLastReadPosition) {\n return {\n messages: [],\n newReadPosition: actualLastReadPosition,\n hasNewData: false,\n };\n }\n\n const messages: WorkerToMainMessage[] = [];\n let currentPos = actualLastReadPosition;\n\n try {\n // Read length-prefixed events\n while (currentPos < currentWritePosition) {\n // Read 4-byte length prefix (little endian)\n if (currentPos + 4 > currentWritePosition) break;\n const eventLength = view.getUint32(currentPos, true);\n currentPos += 4;\n\n // Read the event data\n if (currentPos + eventLength > currentWritePosition) break;\n const eventData = uint8View.slice(currentPos, currentPos + eventLength);\n\n // Decode the event\n const message = unpack(eventData) as WorkerToMainMessage;\n messages.push(message);\n\n currentPos += eventLength;\n }\n\n return {\n messages,\n newReadPosition: currentPos,\n hasNewData: messages.length > 0,\n };\n } catch (error) {\n console.error(\n \"Failed to decode length-prefixed msgpack data from SharedArrayBuffer:\",\n error,\n );\n return {\n messages,\n newReadPosition: actualLastReadPosition,\n hasNewData: false,\n };\n }\n }\n\n /**\n * Read all messages from SharedArrayBuffer from the beginning (ignores lastReadPosition)\n * @param buffer The SharedArrayBuffer to read from\n * @returns Object containing all messages in the buffer\n */\n static readAllMessages(buffer: SharedArrayBuffer): {\n messages: WorkerToMainMessage[];\n totalMessages: number;\n } {\n const result = this.readMessages(buffer, 0); // Always start from beginning\n return {\n messages: result.messages,\n totalMessages: result.messages.length,\n };\n }\n\n /**\n * Get current write position from buffer header\n * @param buffer The SharedArrayBuffer to read from\n * @returns Current write position\n */\n static getCurrentWritePosition(buffer: SharedArrayBuffer): number {\n const view = new DataView(buffer);\n return view.getUint32(0, true);\n }\n\n /**\n * Check if buffer has new data since last read\n * @param buffer The SharedArrayBuffer to check\n * @param lastReadPosition Last position read\n * @returns True if there's new data to read\n */\n static hasNewData(\n buffer: SharedArrayBuffer,\n lastReadPosition: number,\n ): boolean {\n const currentWritePosition = this.getCurrentWritePosition(buffer);\n const dataStartOffset = 4;\n const actualLastReadPosition = Math.max(lastReadPosition, dataStartOffset);\n return currentWritePosition > actualLastReadPosition;\n }\n\n /**\n * Calculate recommended buffer size based on request limits\n * @param totalEventLimit Total expected events across all requests\n * @param bytesPerEvent Estimated bytes per event (default: 3072)\n * @returns Recommended buffer size in bytes\n */\n static calculateBufferSize(\n totalEventLimit: number = 100,\n bytesPerEvent: number = 3072,\n ): number {\n const headerSize = 4;\n const dataSize = totalEventLimit * bytesPerEvent;\n const overhead = Math.floor(dataSize * 0.25); // 25% overhead\n return headerSize + dataSize + overhead;\n }\n}\n","import type { ParsedEvent } from 'src/types';\n\nexport interface Kind39089Parsed {\n\tlist_identifier: string;\n\tpeople: string[];\n\ttitle?: string;\n\tdescription?: string;\n\timage?: string;\n}\n\nexport function isKind39089(event: ParsedEvent<unknown>): event is ParsedEvent<Kind39089Parsed> {\n\treturn event.kind === 39089;\n}\n","export enum ReactionType {\n\tLIKE = '+',\n\tDISLIKE = '-',\n\tEMOJI = 'emoji',\n\tCUSTOM = 'custom'\n}\n\nexport type Kind7Parsed = {\n\ttype: ReactionType;\n\teventId: string; // The id of the event being reacted to\n\tpubkey: string; // The pubkey of the author of the reacted event\n\teventKind?: number; // The kind of the event being reacted to (from k tag)\n\temoji?: {\n\t\tshortcode: string;\n\t\turl: string;\n\t};\n\ttargetCoordinates?: string; // For addressable events (from a tag)\n};\n","import { SharedBufferReader } from \"src/lib/sharedBuffer\";\nimport {\n type MainToWorkerMessage,\n type PipelineConfig,\n type RelayStatusUpdate,\n type Request,\n type SubscriptionConfig,\n type WorkerToMainMessage,\n} from \"@candypoets/rust-main\";\n// import mainWasmUrl from \"src/wasm/main/nostr_main_bg.wasm?url\";\n\nimport type { AnyKind, ParsedEvent } from \"src/types\";\n\nimport { decode, encode } from \"@msgpack/msgpack\";\nimport type { NostrEvent } from \"nostr-tools\";\nimport type { SubscribeKind, PublishKind } from \"src/types\";\nimport NipWorker from \"@candypoets/rust-worker/worker.js?worker\";\n// Re-export types for external use\nexport type { Request };\n\n// Callback for subscription events\nexport type SubscriptionCallback = (\n data: ParsedEvent<AnyKind>[] | number,\n type: SubscribeKind,\n) => void;\ntype PublishCallback = (data: RelayStatusUpdate, type: PublishKind) => void;\n\nexport enum PublishStatus {\n StatusPending = \"pending\",\n StatusSent = \"sent\",\n StatusSuccess = \"success\",\n StatusFailed = \"failed\",\n StatusRejected = \"rejected\",\n StatusConnError = \"connection_error\",\n}\n\nexport type RelayStatus = {\n relay: string;\n status: PublishStatus;\n message: string;\n timestamp: number;\n};\n\nexport interface SubscriptionOptions {\n pipeline?: PipelineConfig;\n closeOnEose?: boolean;\n cacheFirst?: boolean;\n timeoutMs?: number;\n maxEvents?: number;\n enableOptimization?: boolean;\n skipCache?: boolean;\n force?: boolean;\n bytesPerEvent?: number;\n}\n\n/**\n * Configuration for the Nostr Manager\n */\nexport interface NostrManagerConfig {\n /**\n * Custom worker URL. If not provided, uses the bundled worker.\n */\n workerUrl?: string;\n /**\n * Custom worker instance. If provided, workerUrl is ignored.\n */\n worker?: Worker;\n}\n\n// const wasmReady = init(mainWasmUrl);\n\n/**\n * Pure TypeScript NostrClient that manages worker communication and state.\n * Uses WASM utilities for heavy lifting (encoding, decoding, crypto).\n */\nclass NostrManager {\n private worker: Worker;\n private subscriptions = new Map<\n string,\n {\n buffer: SharedArrayBuffer;\n options: SubscriptionOptions;\n refCount: number;\n }\n >();\n private publishes = new Map<string, PublishCallback>();\n private signers = new Map<string, string>(); // name -> secret key hex\n\n public PERPETUAL_SUBSCRIPTIONS = [\"notifications\", \"starterpack\"];\n\n constructor(config: NostrManagerConfig = {}) {\n this.worker = this.createWorker(config);\n this.setupWorkerListener();\n }\n\n private createWorker(config: NostrManagerConfig): Worker {\n console.log(import.meta.url, NipWorker);\n\n return new NipWorker();\n }\n\n private setupWorkerListener() {\n this.worker.onmessage = async (event) => {\n // await wasmReady;\n if (event.data instanceof Uint8Array) {\n let uint8Array = event.data;\n try {\n const message: any = decode(uint8Array);\n this.handleWorkerMessage(message);\n } catch (error) {\n console.error(\"Failed to decode worker message:\", error);\n } finally {\n // Aggressively clear memory references\n if (uint8Array) {\n uint8Array.fill(0);\n (uint8Array as any) = null;\n }\n }\n } else {\n console.log(\"Received non-arrayBuffer message:\", event.data);\n }\n };\n\n this.worker.onerror = (error) => {\n console.error(\"Worker error:\", error);\n };\n }\n\n private handleWorkerMessage(message: WorkerToMainMessage) {\n if (\"PublishStatus\" in message) {\n this.handlePublishStatus(\n message.PublishStatus.publish_id,\n message.PublishStatus.status,\n );\n } else if (\"Count\" in message) {\n // this.handleSubscriptionCount(message.Count.subscription_id, message.Count.count);\n } else if (\"SignedEvent\" in message) {\n this.handleSignedEvent(\n message.SignedEvent.content,\n message.SignedEvent.signed_event,\n );\n } else if (\"PublicKey\" in message) {\n this.handlePublicKey(message.PublicKey.public_key);\n } else if (\"Debug\" in message) {\n console.debug(\"Worker debug:\", message.Debug.message, message.Debug.data);\n } else {\n console.warn(\"Unknown message type from worker:\", message);\n }\n }\n\n private handlePublishStatus(\n publishId: string,\n statuses: RelayStatusUpdate[],\n ) {\n const publishCallback = this.publishes.get(publishId);\n if (!statuses[0]) return;\n if (!publishCallback) {\n const publishAllCallback = this.publishes.get(\"*\");\n return (\n publishAllCallback && publishAllCallback(statuses[0], \"PUBLISH_STATUS\")\n );\n }\n\n if (statuses.length > 0) {\n publishCallback(statuses[0], \"PUBLISH_STATUS\");\n }\n }\n\n private handleSignedEvent(content: string, signedEvent: any) {\n console.log(\"Signed event received:\", content, signedEvent);\n }\n\n private handlePublicKey(publicKey: string) {\n console.log(\"Public key received:\", publicKey);\n }\n\n private createShortId(input: string): string {\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n const shortId = Math.abs(hash).toString(36);\n return shortId.substring(0, 63);\n }\n\n subscribe(\n subscriptionId: string,\n requests: Request[],\n options: SubscriptionOptions = {},\n ): SharedArrayBuffer {\n const subId =\n subscriptionId.length < 64\n ? subscriptionId\n : this.createShortId(subscriptionId);\n\n const existingSubscription = this.subscriptions.get(subId);\n if (existingSubscription) {\n existingSubscription.refCount++;\n return existingSubscription.buffer;\n }\n\n const defaultOptions: SubscriptionOptions = {\n closeOnEose: false,\n cacheFirst: true,\n skipCache: false,\n force: false,\n enableOptimization: true,\n ...options,\n };\n\n const totalLimit = requests.reduce(\n (sum, req) => sum + (req.limit || 100),\n 0,\n );\n\n const bufferSize = SharedBufferReader.calculateBufferSize(\n totalLimit,\n options.bytesPerEvent,\n );\n\n const buffer = new SharedArrayBuffer(bufferSize);\n\n const view = new DataView(buffer);\n view.setUint32(0, 4, true);\n\n this.subscriptions.set(subId, {\n buffer,\n options: defaultOptions,\n refCount: 1,\n });\n\n // Convert SubscriptionOptions to SubscriptionConfig for the worker\n const config: SubscriptionConfig = {\n pipeline: defaultOptions.pipeline,\n closeOnEose: defaultOptions.closeOnEose,\n cacheFirst: defaultOptions.cacheFirst,\n timeoutMs: defaultOptions.timeoutMs,\n maxEvents: defaultOptions.maxEvents,\n enableOptimization: defaultOptions.enableOptimization,\n skipCache: defaultOptions.skipCache,\n force: defaultOptions.force,\n bytesPerEvent: defaultOptions.bytesPerEvent,\n };\n\n const message: MainToWorkerMessage = {\n Subscribe: {\n subscription_id: subId,\n requests: requests,\n config: config,\n },\n };\n\n try {\n const pack = encode(message);\n this.worker.postMessage({\n serializedMessage: pack,\n sharedBuffer: buffer,\n });\n return buffer;\n } catch (error) {\n this.subscriptions.delete(subId);\n throw error;\n }\n }\n\n getBuffer(subId: string): SharedArrayBuffer | undefined {\n const existingSubscription = this.subscriptions.get(subId);\n if (existingSubscription) {\n existingSubscription.refCount++;\n return existingSubscription.buffer;\n }\n return undefined;\n }\n\n unsubscribe(subscriptionId: string): void {\n const subId =\n subscriptionId.length < 64\n ? subscriptionId\n : this.createShortId(subscriptionId);\n const subscription = this.subscriptions.get(subId);\n if (subscription) {\n subscription.refCount--;\n }\n }\n\n publish(publish_id: string, event: NostrEvent, callback?: PublishCallback) {\n try {\n if (callback) {\n this.publishes.set(publish_id, callback);\n }\n\n const template = {\n kind: event.kind,\n content: event.content,\n tags: event.tags || [],\n };\n\n const message: MainToWorkerMessage = {\n Publish: {\n publish_id: publish_id,\n template,\n },\n };\n\n const p = encode(message);\n this.worker.postMessage(p);\n } catch (error) {\n console.error(\"Failed to publish event:\", error);\n throw error;\n }\n }\n\n setSigner(name: string, secretKeyHex: string): void {\n const message: MainToWorkerMessage = {\n SetSigner: {\n signer_type: name,\n private_key: secretKeyHex,\n },\n };\n\n const pack = encode(message);\n this.worker.postMessage(pack);\n this.signers.set(name, secretKeyHex);\n }\n\n signEvent(event: NostrEvent) {\n const template = {\n kind: event.kind,\n content: event.content,\n tags: event.tags,\n };\n\n const message: MainToWorkerMessage = {\n SignEvent: {\n template: template,\n },\n };\n const pack = encode(message);\n this.worker.postMessage(pack);\n }\n\n getPublicKey() {\n const message: MainToWorkerMessage = {\n GetPublicKey: {},\n };\n const pack = encode(message);\n this.worker.postMessage(pack);\n }\n\n addPublishCallbackAll(\n callback: (status: RelayStatusUpdate, eventId: string) => void,\n ) {\n this.publishes.set(\"*\", callback as any);\n }\n\n cleanup(): void {\n const subscriptionsToDelete: string[] = [];\n\n for (const [subId, subscription] of this.subscriptions.entries()) {\n if (\n subscription.refCount <= 0 &&\n !this.PERPETUAL_SUBSCRIPTIONS.includes(subId)\n ) {\n subscriptionsToDelete.push(subId);\n }\n }\n\n for (const subId of subscriptionsToDelete) {\n const subscription = this.subscriptions.get(subId);\n if (subscription) {\n const message: MainToWorkerMessage = {\n Unsubscribe: {\n subscription_id: subId,\n },\n };\n const pack = encode(message);\n this.worker.postMessage(pack);\n this.subscriptions.delete(subId);\n }\n }\n }\n}\n\n/**\n * Factory function to create a new NostrManager instance.\n * @param config - Configuration for the NostrManager.\n * @returns A new instance of NostrManager.\n */\nexport function createNostrManager(\n config: NostrManagerConfig = {},\n): NostrManager {\n return new NostrManager(config);\n}\n\n/**\n * Default singleton instance of the NostrManager.\n * Useful for applications that only need one instance.\n */\nexport const nostrManager = new NostrManager();\n\nexport function cleanup(): void {\n nostrManager.cleanup();\n}\n\nexport * from \"./types\";\n"],"names":["SharedBufferReader","buffer","lastReadPosition","view","uint8View","currentWritePosition","actualLastReadPosition","messages","currentPos","eventLength","eventData","message","unpack","error","result","totalEventLimit","bytesPerEvent","dataSize","overhead","isKind39089","event","ReactionType","PublishStatus","NostrManager","config","NipWorker","uint8Array","decode","publishId","statuses","publishCallback","publishAllCallback","content","signedEvent","publicKey","input","hash","i","char","subscriptionId","requests","options","subId","existingSubscription","defaultOptions","totalLimit","sum","req","bufferSize","pack","encode","subscription","publish_id","callback","template","p","name","secretKeyHex","subscriptionsToDelete","createNostrManager","nostrManager","cleanup"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { WorkerToMainMessage } from '../types';
2
+
3
+ /**
4
+ * Utility library for reading from SharedArrayBuffer with 4-byte header approach
5
+ * Header format: [0-3]: Write position (4 bytes, little endian)
6
+ * Data format: [4+]: [4-byte length][msgpack event][4-byte length][msgpack event]...
7
+ */
8
+ export declare class SharedBufferReader {
9
+ /**
10
+ * Read new messages from SharedArrayBuffer since last read position
11
+ * @param buffer The SharedArrayBuffer to read from
12
+ * @param lastReadPosition Last position read (default: 0, meaning read from beginning)
13
+ * @returns Object containing new messages and updated read position
14
+ */
15
+ static readMessages(buffer: SharedArrayBuffer, lastReadPosition?: number): {
16
+ messages: WorkerToMainMessage[];
17
+ newReadPosition: number;
18
+ hasNewData: boolean;
19
+ };
20
+ /**
21
+ * Read all messages from SharedArrayBuffer from the beginning (ignores lastReadPosition)
22
+ * @param buffer The SharedArrayBuffer to read from
23
+ * @returns Object containing all messages in the buffer
24
+ */
25
+ static readAllMessages(buffer: SharedArrayBuffer): {
26
+ messages: WorkerToMainMessage[];
27
+ totalMessages: number;
28
+ };
29
+ /**
30
+ * Get current write position from buffer header
31
+ * @param buffer The SharedArrayBuffer to read from
32
+ * @returns Current write position
33
+ */
34
+ static getCurrentWritePosition(buffer: SharedArrayBuffer): number;
35
+ /**
36
+ * Check if buffer has new data since last read
37
+ * @param buffer The SharedArrayBuffer to check
38
+ * @param lastReadPosition Last position read
39
+ * @returns True if there's new data to read
40
+ */
41
+ static hasNewData(buffer: SharedArrayBuffer, lastReadPosition: number): boolean;
42
+ /**
43
+ * Calculate recommended buffer size based on request limits
44
+ * @param totalEventLimit Total expected events across all requests
45
+ * @param bytesPerEvent Estimated bytes per event (default: 3072)
46
+ * @returns Recommended buffer size in bytes
47
+ */
48
+ static calculateBufferSize(totalEventLimit?: number, bytesPerEvent?: number): number;
49
+ }
50
+ //# sourceMappingURL=sharedBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedBuffer.d.ts","sourceRoot":"","sources":["../../src/lib/sharedBuffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,GAAE,MAAU,GAC3B;QACD,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,OAAO,CAAC;KACrB;IA2DD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG;QACjD,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC;KACvB;IAQD;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAKjE;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,MAAM,GACvB,OAAO;IAOV;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CACxB,eAAe,GAAE,MAAY,EAC7B,aAAa,GAAE,MAAa,GAC3B,MAAM;CAMV"}
@@ -0,0 +1,53 @@
1
+ import { NostrEvent } from 'nostr-tools';
2
+ import { Kind0Parsed } from './kind0';
3
+ import { Kind1Parsed } from './kind1';
4
+ import { Kind10002Parsed } from './kind10002';
5
+ import { Kind10019Parsed } from './kind10019';
6
+ import { Kind17Parsed } from './kind17';
7
+ import { Kind17375Parsed } from './kind17375';
8
+ import { Kind3Parsed } from './kind3';
9
+ import { Kind39089Parsed } from './kind39089';
10
+ import { Kind4Parsed } from './kind4';
11
+ import { Kind6Parsed } from './kind6';
12
+ import { Kind7Parsed } from './kind7';
13
+ import { Kind7374Parsed } from './kind7374';
14
+ import { Kind7375Parsed } from './kind7375';
15
+ import { Kind7376Parsed } from './kind7376';
16
+ import { Kind9321Parsed } from './kind9321';
17
+ import { Kind9735Parsed } from './kind9735';
18
+ export { type MainToWorkerMessage, type PipeConfig, type PipelineConfig, type RelayStatusUpdate, type Request, type SubscriptionConfig, type WorkerToMainMessage, } from '../../../rust-main/dist';
19
+ export * from './proofs';
20
+ export * from './kind0';
21
+ export * from './kind1';
22
+ export * from './kind10002';
23
+ export * from './kind10019';
24
+ export * from './kind17';
25
+ export * from './kind17375';
26
+ export * from './kind3';
27
+ export * from './kind39089';
28
+ export * from './kind4';
29
+ export * from './kind6';
30
+ export * from './kind7';
31
+ export * from './kind7374';
32
+ export * from './kind7375';
33
+ export * from './kind7376';
34
+ export * from './kind9321';
35
+ export * from './kind9735';
36
+ export type ParsedEvent<T> = NostrEvent & {
37
+ parsed?: T | null;
38
+ requests?: Request[];
39
+ relays?: string[];
40
+ };
41
+ export type ContentBlock = {
42
+ type: "text" | "image" | "video" | "mediaGrid" | "code" | "link" | "npub" | "nprofile" | "note" | "nevent" | "naddr" | "hashtag" | "cashu";
43
+ text: string;
44
+ data?: Record<string, any>;
45
+ };
46
+ export type AnyKind = Kind0Parsed | Kind1Parsed | Kind3Parsed | Kind4Parsed | Kind6Parsed | Kind7Parsed | Kind17Parsed | Kind9735Parsed | Kind9321Parsed | Kind10002Parsed | Kind10019Parsed | Kind17375Parsed | Kind7374Parsed | Kind7375Parsed | Kind7376Parsed | Kind39089Parsed;
47
+ export type SubscribeKind = "CACHED_EVENT" | "FETCHED_EVENT" | "COUNT" | "EOSE" | "EOCE";
48
+ export type PublishKind = "PUBLISH_STATUS";
49
+ export type SignerType = string;
50
+ export declare const SignerTypes: {
51
+ readonly PK: SignerType;
52
+ };
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface Kind0Parsed {
2
+ pubkey?: string;
3
+ name?: string;
4
+ display_name?: string;
5
+ picture?: string;
6
+ banner?: string;
7
+ about?: string;
8
+ website?: string;
9
+ nip05?: string;
10
+ lud06?: string;
11
+ lud16?: string;
12
+ github?: string;
13
+ twitter?: string;
14
+ mastodon?: string;
15
+ nostr?: string;
16
+ displayName?: string;
17
+ username?: string;
18
+ bio?: string;
19
+ image?: string;
20
+ avatar?: string;
21
+ background?: string;
22
+ [key: string]: string | undefined;
23
+ }
24
+ //# sourceMappingURL=kind0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind0.d.ts","sourceRoot":"","sources":["../../src/types/kind0.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC"}
@@ -0,0 +1,17 @@
1
+ import { parseReferences } from 'nostr-tools';
2
+ import { EventPointer, ProfilePointer } from 'nostr-tools/nip19';
3
+ import { ContentBlock } from '.';
4
+
5
+ type Reference = ReturnType<typeof parseReferences>[0];
6
+ export type Kind1Parsed = {
7
+ content: string;
8
+ parsedContent: ContentBlock[];
9
+ shortenedContent: ContentBlock[];
10
+ references: Reference[];
11
+ quotes: ProfilePointer[];
12
+ mentions: EventPointer[];
13
+ reply?: EventPointer | undefined;
14
+ root?: EventPointer | undefined;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=kind1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind1.d.ts","sourceRoot":"","sources":["../../src/types/kind1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAEjC,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface RelayInfo {
2
+ url: string;
3
+ read: boolean;
4
+ write: boolean;
5
+ }
6
+ export type Kind10002Parsed = RelayInfo[];
7
+ //# sourceMappingURL=kind10002.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind10002.d.ts","sourceRoot":"","sources":["../../src/types/kind10002.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type Kind10019Parsed = {
2
+ trustedMints?: {
3
+ url: string;
4
+ baseUnits?: string[];
5
+ }[];
6
+ p2pkPubkey?: string;
7
+ readRelays?: string[];
8
+ };
9
+ //# sourceMappingURL=kind10019.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind10019.d.ts","sourceRoot":"","sources":["../../src/types/kind10019.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Kind7Parsed } from './kind7';
2
+
3
+ export type Kind17Parsed = Kind7Parsed;
4
+ //# sourceMappingURL=kind17.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind17.d.ts","sourceRoot":"","sources":["../../src/types/kind17.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type Kind17375Parsed = {
2
+ mints: string[];
3
+ p2pkPrivKey?: string;
4
+ p2pkPubKey?: string;
5
+ decrypted: boolean;
6
+ };
7
+ //# sourceMappingURL=kind17375.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind17375.d.ts","sourceRoot":"","sources":["../../src/types/kind17375.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface Contact {
2
+ pubkey: string;
3
+ relays?: string[];
4
+ petname?: string;
5
+ }
6
+ export type Kind3Parsed = Contact[];
7
+ //# sourceMappingURL=kind3.d.ts.map