hakuban 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/hakuban.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hakuban.js","sources":["pkg/hakuban.js","coffee/manager.coffee","coffee/common.coffee","coffee/hakuban.coffee"],"sourcesContent":["\nlet wasm;\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction dropObject(idx) {\n if (idx < 36) 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 cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\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 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.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\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedTextEncoder = new TextEncoder('utf-8');\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);\n getUint8Memory0().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);\n\n const mem = getUint8Memory0();\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);\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\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_2.get(state.dtor)(a, state.b);\n\n } else {\n state.a = a;\n }\n }\n };\n real.original = state;\n\n return real;\n}\nfunction __wbg_adapter_16(arg0, arg1, arg2) {\n wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h2cb5c9e37b253332(arg0, arg1, addHeapObject(arg2));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst uint64CvtShim = new BigUint64Array(u32CvtShim.buffer);\n/**\n* @param {string} json_string\n* @returns {WasmHashResult}\n*/\nexport function hakuban_json_hash(json_string) {\n var ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_json_hash(ptr0, len0);\n return WasmHashResult.__wrap(ret);\n}\n\n/**\n* @param {string} default_log_level\n* @returns {number}\n*/\nexport function hakuban_logger_initialize(default_log_level) {\n var ptr0 = passStringToWasm0(default_log_level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_logger_initialize(ptr0, len0);\n return ret;\n}\n\n/**\n* @param {string} name_str\n* @returns {WasmLocalNodeNewResult}\n*/\nexport function hakuban_local_node_new(name_str) {\n var ptr0 = passStringToWasm0(name_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_local_node_new(ptr0, len0);\n return WasmLocalNodeNewResult.__wrap(ret);\n}\n\n/**\n* @param {number} local_node\n*/\nexport function hakuban_local_node_drop(local_node) {\n wasm.hakuban_local_node_drop(local_node);\n}\n\n/**\n* @param {number} local_node\n* @param {string} descriptor\n* @returns {WasmObjectObserveResult}\n*/\nexport function hakuban_object_observe_new(local_node, descriptor) {\n var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_object_observe_new(local_node, ptr0, len0);\n return WasmObjectObserveResult.__wrap(ret);\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_observe_drop(object_ptr) {\n wasm.hakuban_object_observe_drop(object_ptr);\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_object_observe_state_borrow(object_observe_pointer) {\n var ret = wasm.hakuban_object_observe_state_borrow(object_observe_pointer);\n return ret;\n}\n\n/**\n* @param {number} state_ptr\n*/\nexport function hakuban_object_observe_state_return(state_ptr) {\n wasm.hakuban_object_observe_state_return(state_ptr);\n}\n\n/**\n* @param {number} state_ptr\n* @returns {BigInt}\n*/\nexport function hakuban_object_observe_state_synchronized(state_ptr) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_observe_state_synchronized(retptr, state_ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n u32CvtShim[0] = r0;\n u32CvtShim[1] = r1;\n const n0 = uint64CvtShim[0];\n return n0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} state_ptr\n* @returns {string}\n*/\nexport function hakuban_object_observe_state_data_version(state_ptr) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_observe_state_data_version(retptr, state_ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} state_ptr\n* @returns {string}\n*/\nexport function hakuban_object_observe_state_data_type(state_ptr) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_observe_state_data_type(retptr, state_ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n/**\n* @param {number} state_ptr\n* @returns {Uint8Array}\n*/\nexport function hakuban_object_observe_state_data(state_ptr) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_observe_state_data(retptr, state_ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_observe_ptr\n* @returns {number}\n*/\nexport function hakuban_object_observe_events_get(object_observe_ptr) {\n var ret = wasm.hakuban_object_observe_events_get(object_observe_ptr);\n return ret;\n}\n\n/**\n* @param {number} events_pointer\n*/\nexport function hakuban_object_descriptor_events_drop(events_pointer) {\n wasm.hakuban_object_descriptor_events_drop(events_pointer);\n}\n\n/**\n* @param {number} events_pointer\n* @param {Promise<any>} cancel\n* @returns {Promise<any>}\n*/\nexport function hakuban_object_descriptor_events_next(events_pointer, cancel) {\n var ret = wasm.hakuban_object_descriptor_events_next(events_pointer, addHeapObject(cancel));\n return takeObject(ret);\n}\n\n/**\n* @param {number} local_node\n* @param {string} descriptor\n* @returns {WasmTagObserveResult}\n*/\nexport function hakuban_tag_observe_new(local_node, descriptor) {\n var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_tag_observe_new(local_node, ptr0, len0);\n return WasmTagObserveResult.__wrap(ret);\n}\n\n/**\n* @param {number} tag_observe_pointer\n*/\nexport function hakuban_tag_observe_drop(tag_observe_pointer) {\n wasm.hakuban_tag_observe_drop(tag_observe_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @param {string} object_descriptor\n* @returns {WasmTagObserveObjectStateBorrowResult}\n*/\nexport function hakuban_tag_observe_object_state_borrow(tag_observe_pointer, object_descriptor) {\n var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_tag_observe_object_state_borrow(tag_observe_pointer, ptr0, len0);\n return WasmTagObserveObjectStateBorrowResult.__wrap(ret);\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @returns {string}\n*/\nexport function hakuban_tag_observe_object_descriptors(tag_observe_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_observe_object_descriptors(retptr, tag_observe_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} tag_observe_ptr\n* @returns {number}\n*/\nexport function hakuban_tag_observe_events_get(tag_observe_ptr) {\n var ret = wasm.hakuban_tag_observe_events_get(tag_observe_ptr);\n return ret;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n* @param {number} local_node_pointer\n* @param {boolean} upstream\n* @param {boolean | undefined} diff_produce\n* @param {boolean | undefined} diff_request\n* @returns {WasmRemoteNodeNewResult}\n*/\nexport function hakuban_remote_node_new(local_node_pointer, upstream, diff_produce, diff_request) {\n var ret = wasm.hakuban_remote_node_new(local_node_pointer, upstream, isLikeNone(diff_produce) ? 0xFFFFFF : diff_produce ? 1 : 0, isLikeNone(diff_request) ? 0xFFFFFF : diff_request ? 1 : 0);\n return WasmRemoteNodeNewResult.__wrap(ret);\n}\n\n/**\n* @param {number} remote_node_pointer\n*/\nexport function hakuban_remote_node_drop(remote_node_pointer) {\n wasm.hakuban_remote_node_drop(remote_node_pointer);\n}\n\n/**\n* @param {number} remote_node_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_remote_node_connected(remote_node_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_remote_node_connected(retptr, remote_node_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n if (r3) {\n throw takeObject(r2);\n }\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_node_pointer\n*/\nexport function hakuban_remote_node_disconnected(remote_node_pointer) {\n wasm.hakuban_remote_node_disconnected(remote_node_pointer);\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {number} remote_node_pointer\n* @param {Uint8Array} data\n* @returns {Uint8Array}\n*/\nexport function hakuban_remote_node_received_message(remote_node_pointer, data) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n var ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.hakuban_remote_node_received_message(retptr, remote_node_pointer, ptr0, len0);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n if (r3) {\n throw takeObject(r2);\n }\n var v1 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_node_pointer\n* @param {Promise<any>} cancel\n* @returns {Promise<any>}\n*/\nexport function hakuban_remote_node_next_local_node_event(remote_node_pointer, cancel) {\n var ret = wasm.hakuban_remote_node_next_local_node_event(remote_node_pointer, addHeapObject(cancel));\n return takeObject(ret);\n}\n\n/**\n* @param {number} remote_node_pointer\n* @param {string} event\n* @returns {Uint8Array}\n*/\nexport function hakuban_remote_node_received_local_node_event(remote_node_pointer, event) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n var ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.hakuban_remote_node_received_local_node_event(retptr, remote_node_pointer, ptr0, len0);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n if (r3) {\n throw takeObject(r2);\n }\n var v1 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_node_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_remote_node_ack(remote_node_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_remote_node_ack(retptr, remote_node_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_node\n* @param {string} descriptor\n* @returns {WasmTagExposeResult}\n*/\nexport function hakuban_tag_expose_new(local_node, descriptor) {\n var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_tag_expose_new(local_node, ptr0, len0);\n return WasmTagExposeResult.__wrap(ret);\n}\n\n/**\n* @param {number} tag_expose_pointer\n*/\nexport function hakuban_tag_expose_drop(tag_expose_pointer) {\n wasm.hakuban_tag_expose_drop(tag_expose_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {string}\n*/\nexport function hakuban_tag_expose_object_descriptors(tag_expose_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_expose_object_descriptors(retptr, tag_expose_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @param {string} object_descriptor\n* @param {string} data_version\n* @param {string} data_type\n* @param {Uint8Array} data\n* @param {BigInt} assignment_id\n* @returns {WasmTagExposeSetObjectStateResult}\n*/\nexport function hakuban_tag_expose_set_object_state(tag_expose_pointer, object_descriptor, data_version, data_type, data, assignment_id) {\n var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passStringToWasm0(data_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passStringToWasm0(data_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n uint64CvtShim[0] = assignment_id;\n const low4 = u32CvtShim[0];\n const high4 = u32CvtShim[1];\n var ret = wasm.hakuban_tag_expose_set_object_state(tag_expose_pointer, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, low4, high4);\n return WasmTagExposeSetObjectStateResult.__wrap(ret);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @param {string} object_descriptor\n* @returns {WasmTagExposeAssignmentResult}\n*/\nexport function hakuban_tag_expose_assignment(tag_expose_pointer, object_descriptor) {\n var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_tag_expose_assignment(tag_expose_pointer, ptr0, len0);\n return WasmTagExposeAssignmentResult.__wrap(ret);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @param {string} object_descriptor\n* @param {BigInt} assignment_id\n* @returns {number}\n*/\nexport function hakuban_tag_expose_desynchronize(tag_expose_pointer, object_descriptor, assignment_id) {\n var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n uint64CvtShim[0] = assignment_id;\n const low1 = u32CvtShim[0];\n const high1 = u32CvtShim[1];\n var ret = wasm.hakuban_tag_expose_desynchronize(tag_expose_pointer, ptr0, len0, low1, high1);\n return ret >>> 0;\n}\n\n/**\n* @param {number} tag_expose_ptr\n* @returns {number}\n*/\nexport function hakuban_tag_expose_events_get(tag_expose_ptr) {\n var ret = wasm.hakuban_tag_expose_events_get(tag_expose_ptr);\n return ret;\n}\n\n/**\n* @param {number} local_node\n* @param {string} descriptor\n* @returns {WasmObjectExposeResult}\n*/\nexport function hakuban_object_expose_new(local_node, descriptor) {\n var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.hakuban_object_expose_new(local_node, ptr0, len0);\n return WasmObjectExposeResult.__wrap(ret);\n}\n\n/**\n* @param {number} object_expose_pointer\n*/\nexport function hakuban_object_expose_drop(object_expose_pointer) {\n wasm.hakuban_object_expose_drop(object_expose_pointer);\n}\n\n/**\n* @param {number} object_expose_pointer\n* @param {string} data_version\n* @param {string} data_type\n* @param {Uint8Array} data\n* @param {BigInt} assignment_id\n* @returns {WasmObjectExposeStateResult}\n*/\nexport function hakuban_object_expose_set_state(object_expose_pointer, data_version, data_type, data, assignment_id) {\n var ptr0 = passStringToWasm0(data_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passStringToWasm0(data_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n uint64CvtShim[0] = assignment_id;\n const low3 = u32CvtShim[0];\n const high3 = u32CvtShim[1];\n var ret = wasm.hakuban_object_expose_set_state(object_expose_pointer, ptr0, len0, ptr1, len1, ptr2, len2, low3, high3);\n return WasmObjectExposeStateResult.__wrap(ret);\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {BigInt}\n*/\nexport function hakuban_object_expose_assignment(object_expose_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_expose_assignment(retptr, object_expose_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n u32CvtShim[0] = r0;\n u32CvtShim[1] = r1;\n const n0 = uint64CvtShim[0];\n return n0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_expose_pointer\n* @param {BigInt} assignment_id\n*/\nexport function hakuban_object_expose_desynchronize(object_expose_pointer, assignment_id) {\n uint64CvtShim[0] = assignment_id;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.hakuban_object_expose_desynchronize(object_expose_pointer, low0, high0);\n}\n\n/**\n* @param {number} object_expose_ptr\n* @returns {number}\n*/\nexport function hakuban_object_expose_events_get(object_expose_ptr) {\n var ret = wasm.hakuban_object_expose_events_get(object_expose_ptr);\n return ret;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\nfunction __wbg_adapter_120(arg0, arg1, arg2, arg3) {\n wasm.wasm_bindgen__convert__closures__invoke2_mut__h3fbc4a767cc461bf(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\n/**\n*/\nexport const WasmError = Object.freeze({ None:0,\"0\":\"None\",InvalidString:1,\"1\":\"InvalidString\",InvalidJSON:2,\"2\":\"InvalidJSON\",InvalidURL:3,\"3\":\"InvalidURL\",ObjectNotFound:4,\"4\":\"ObjectNotFound\", });\n/**\n*/\nexport class WasmHashResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmHashResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmhashresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmhashresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmhashresult_error(this.ptr, arg0);\n }\n /**\n */\n get hash() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_wasmhashresult_hash(retptr, this.ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n u32CvtShim[0] = r0;\n u32CvtShim[1] = r1;\n const n0 = uint64CvtShim[0];\n return n0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {BigInt} arg0\n */\n set hash(arg0) {\n uint64CvtShim[0] = arg0;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.__wbg_set_wasmhashresult_hash(this.ptr, low0, high0);\n }\n}\n/**\n*/\nexport class WasmLocalNodeNewResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmLocalNodeNewResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmlocalnodenewresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmlocalnodenewresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmlocalnodenewresult_error(this.ptr, arg0);\n }\n /**\n */\n get local_node_pointer() {\n var ret = wasm.__wbg_get_wasmlocalnodenewresult_local_node_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set local_node_pointer(arg0) {\n wasm.__wbg_set_wasmlocalnodenewresult_local_node_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmObjectExposeResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmObjectExposeResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmobjectexposeresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmobjectexposeresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmobjectexposeresult_error(this.ptr, arg0);\n }\n /**\n */\n get object_expose_pointer() {\n var ret = wasm.__wbg_get_wasmobjectexposeresult_object_expose_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set object_expose_pointer(arg0) {\n wasm.__wbg_set_wasmobjectexposeresult_object_expose_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmObjectExposeStateResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmObjectExposeStateResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmobjectexposestateresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmobjectexposestateresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmobjectexposestateresult_error(this.ptr, arg0);\n }\n /**\n */\n get changed() {\n var ret = wasm.__wbg_get_wasmobjectexposestateresult_changed(this.ptr);\n return ret !== 0;\n }\n /**\n * @param {boolean} arg0\n */\n set changed(arg0) {\n wasm.__wbg_set_wasmobjectexposestateresult_changed(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmObjectObserveResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmObjectObserveResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmobjectobserveresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmobjectobserveresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmobjectobserveresult_error(this.ptr, arg0);\n }\n /**\n */\n get object_observe_pointer() {\n var ret = wasm.__wbg_get_wasmobjectobserveresult_object_observe_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set object_observe_pointer(arg0) {\n wasm.__wbg_set_wasmobjectobserveresult_object_observe_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmRemoteNode {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmremotenode_free(ptr);\n }\n}\n/**\n*/\nexport class WasmRemoteNodeNewResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmRemoteNodeNewResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmremotenodenewresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmremotenodenewresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmremotenodenewresult_error(this.ptr, arg0);\n }\n /**\n */\n get remote_node_pointer() {\n var ret = wasm.__wbg_get_wasmremotenodenewresult_remote_node_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set remote_node_pointer(arg0) {\n wasm.__wbg_set_wasmremotenodenewresult_remote_node_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmTagExposeAssignmentResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmTagExposeAssignmentResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmtagexposeassignmentresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmtagexposeassignmentresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmtagexposeassignmentresult_error(this.ptr, arg0);\n }\n /**\n */\n get assignment() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_wasmtagexposeassignmentresult_assignment(retptr, this.ptr);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n u32CvtShim[0] = r0;\n u32CvtShim[1] = r1;\n const n0 = uint64CvtShim[0];\n return n0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {BigInt} arg0\n */\n set assignment(arg0) {\n uint64CvtShim[0] = arg0;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.__wbg_set_wasmtagexposeassignmentresult_assignment(this.ptr, low0, high0);\n }\n}\n/**\n*/\nexport class WasmTagExposeResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmTagExposeResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmtagexposeresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmtagexposeresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmtagexposeresult_error(this.ptr, arg0);\n }\n /**\n */\n get tag_expose_pointer() {\n var ret = wasm.__wbg_get_wasmtagexposeresult_tag_expose_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set tag_expose_pointer(arg0) {\n wasm.__wbg_set_wasmtagexposeresult_tag_expose_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmTagExposeSetObjectStateResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmTagExposeSetObjectStateResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmtagexposesetobjectstateresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmtagexposesetobjectstateresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmtagexposesetobjectstateresult_error(this.ptr, arg0);\n }\n /**\n */\n get changed() {\n var ret = wasm.__wbg_get_wasmtagexposesetobjectstateresult_changed(this.ptr);\n return ret !== 0;\n }\n /**\n * @param {boolean} arg0\n */\n set changed(arg0) {\n wasm.__wbg_set_wasmtagexposesetobjectstateresult_changed(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmTagObserveObjectStateBorrowResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmTagObserveObjectStateBorrowResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmtagobserveobjectstateborrowresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmtagobserveobjectstateborrowresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmtagobserveobjectstateborrowresult_error(this.ptr, arg0);\n }\n /**\n */\n get state_pointer() {\n var ret = wasm.__wbg_get_wasmtagobserveobjectstateborrowresult_state_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set state_pointer(arg0) {\n wasm.__wbg_set_wasmtagobserveobjectstateborrowresult_state_pointer(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmTagObserveResult {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmTagObserveResult.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmtagobserveresult_free(ptr);\n }\n /**\n */\n get error() {\n var ret = wasm.__wbg_get_wasmtagobserveresult_error(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set error(arg0) {\n wasm.__wbg_set_wasmtagobserveresult_error(this.ptr, arg0);\n }\n /**\n */\n get tag_observe_pointer() {\n var ret = wasm.__wbg_get_wasmtagobserveresult_tag_observe_pointer(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set tag_observe_pointer(arg0) {\n wasm.__wbg_set_wasmtagobserveresult_tag_observe_pointer(this.ptr, arg0);\n }\n}\n\nasync function 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\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('hakuban_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n var ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(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 var ret = false;\n return ret;\n };\n imports.wbg.__wbg_debug_6e114a5b27d7915d = function(arg0) {\n console.debug(getObject(arg0));\n };\n imports.wbg.__wbg_error_ca520cb687b085a1 = function(arg0) {\n console.error(getObject(arg0));\n };\n imports.wbg.__wbg_info_32ab782ec7072fac = function(arg0) {\n console.info(getObject(arg0));\n };\n imports.wbg.__wbg_log_fbd13631356d44e4 = function(arg0) {\n console.log(getObject(arg0));\n };\n imports.wbg.__wbg_warn_97f10a6b0dbb8c5c = function(arg0) {\n console.warn(getObject(arg0));\n };\n imports.wbg.__wbg_now_5fa0ca001e042f8a = function(arg0) {\n var ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_newnoargs_f579424187aa1717 = function(arg0, arg1) {\n var ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_8bbb82393651dd9c = function() { return handleError(function (arg0, arg1) {\n var ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_89558c3e96703ca1 = function() { return handleError(function (arg0, arg1) {\n var ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_94697a95cb7e239c = function() { return handleError(function (arg0, arg1, arg2) {\n var ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_4beacc9c71572250 = 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_120(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n var ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n };\n imports.wbg.__wbg_resolve_4f8f547f26b30b27 = function(arg0) {\n var ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_a6860c82b90816ca = function(arg0, arg1) {\n var ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_then_58a04e42527f52c6 = function(arg0, arg1, arg2) {\n var ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_self_e23d74ae45fb17d1 = function() { return handleError(function () {\n var ret = self.self;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_window_b4be7f48b24ac56e = function() { return handleError(function () {\n var ret = window.window;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_globalThis_d61b1f48a57191ae = function() { return handleError(function () {\n var ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_global_e7669da72fd7f239 = function() { return handleError(function () {\n var ret = global.global;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n var ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n var ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_693216e109162396 = function() {\n var ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_0ddaca5d1abfb52f = function(arg0, arg1) {\n var ret = getObject(arg1).stack;\n var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_error_09919627ac0992f5 = function(arg0, arg1) {\n try {\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(arg0, arg1);\n }\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n var ret = debugString(getObject(arg1));\n var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbindgen_closure_wrapper2024 = function(arg0, arg1, arg2) {\n var ret = makeMutClosure(arg0, arg1, 490, __wbg_adapter_16);\n return addHeapObject(ret);\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","\nclass Queue\n\n\tconstructor: ->\n\t\t@queue = []\n\t\t@wake = null\n\t\n\tpush: (value)->\n\t\t@queue.push(value)\n\t\tif @wake?\n\t\t\t@wake()\n\t\t\t@wake = null\n\t\n\tshift: ->\n\t\tloop\n\t\t\tvalue = @queue.shift()\n\t\t\tif value?\n\t\t\t\treturn value\n\t\t\telse\n\t\t\t\tthrow \"2 concurrent shifts on a single queue\" if @wake?\n\t\t\t\tawait new Promise (@wake)=> null\n\t\n\tclear: ->\n\t\t@queue = []\n\n\nexport class ObjectManagerBuilder\n\n\tconstructor: (@contract, @managed_object_class)->\n\t\t@_on_exception_policy = \"retry\"\n\t\t@_retry_backoff = [0.01, 0.1, 1.0, 10.0]\n\t\t@_terminate_on_deactivation = false\n\t\t\n\ton_exception: (policy)->\n\t\t@_on_exception_policy = policy\n\t\t@\n\n\t#terminate_on_deactivation: ()->\n\t#\t@terminate_on_deactivation = true\n\t#\t@\n\n\tretry_backoff: (times)->\n\t\t@_retry_backoff = times\n\t\t@\n\n\twith_async: (block)->\n\t\tnew ObjectManager(@contract, @managed_object_class, block, @_retry_backoff, @_terminate_on_deactivation, @_on_exception_policy)\n\n\nexport class ObjectManager\n\tconstructor: (@contract, object_class, block, retry_backoff, terminate_on_deactivation, on_exception_policy)->\n\t\t@_existing_objects = {}\n\t\t@_active_objects = {}\n\t\t@event_queue = new Queue()\n\n\t\t#TODO: make one loop out of following two\n\n\t\tevent_loop_stop_requested = new Promise (@event_loop_stop)=> null\n\t\t@event_loop_stopped = new Promise (resolve, reject)=>\n\t\t\tevents = @contract.events()\n\t\t\twhile event = await Promise.race([events.next(), event_loop_stop_requested])\n\t\t\t\tbreak if not event?\n\t\t\t\t@event_queue.push(event)\n\t\t\tevents.drop()\n\t\t\tresolve()\n\n\t\t@async_loop_stopped = new Promise (resolve, reject)=>\n\t\t\twhile (event = await @event_queue.shift())?\n\t\t\t\tswitch event.action\n\t\t\t\t\twhen \"Insert\", \"Change\", \"Remove\", \"Stopped\", \"Timer\"\n\t\t\t\t\t\tobject = @_existing_objects[event.descriptor.hash()] ||= new object_class(@contract, event.descriptor)\n\t\t\t\t\t\tif !object.running and object.block_result?\n\t\t\t\t\t\t\terror = await object.block_result\n\t\t\t\t\t\t\tobject.block_result = null\n\t\t\t\t\t\t\tif object.last_exception_at?\n\t\t\t\t\t\t\t\tinterval_since_last_exception = Date.now() - object.last_exception_at\n\t\t\t\t\t\t\t\theal_multiplier = 10\n\t\t\t\t\t\t\t\tobject.current_delay_index -= Math.floor(interval_since_last_exception / (retry_backoff[retry_backoff.length-1]*1000.0*heal_multiplier))\n\t\t\t\t\t\t\t\tobject.current_delay_index = 0 if object.current_delay_index < 0\n\t\t\t\t\t\t\tif error?\n\t\t\t\t\t\t\t\tswitch on_exception_policy\n\t\t\t\t\t\t\t\t\twhen \"throw\", \"raise\"\n\t\t\t\t\t\t\t\t\t\tthrow error.exception\n\t\t\t\t\t\t\t\t\twhen \"retry\"\n\t\t\t\t\t\t\t\t\t\tobject.last_exception_at = Date.now()\n\t\t\t\t\t\t\t\t\t\tobject.earliest_next_run = Date.now() + retry_backoff[object.current_delay_index]*1000.0\n\t\t\t\t\t\t\t\t\t\t#wrapped to avoid weird capture effects of coffee\n\t\t\t\t\t\t\t\t\t\t((lambda_sleep_time, lambda_descriptor, lambda_event_queue)-> \n\t\t\t\t\t\t\t\t\t\t\tsetTimeout((()=>lambda_event_queue.push({action: \"Timer\", descriptor: lambda_descriptor})),lambda_sleep_time)\n\t\t\t\t\t\t\t\t\t\t)(object.earliest_next_run - Date.now(), event.descriptor, @event_queue)\n\t\t\t\t\t\t\t\t\t\tobject.current_delay_index += 1 if object.current_delay_index < retry_backoff.length - 1\n\t\t\t\t\t\t\t\t\t#when \"ignore_failing_descriptor\"\n\t\t\t\t\t\t\t\t\t#when \"drop_contract\"\n\t\t\t\t\t\tif object.check_active()\n\t\t\t\t\t\t\tif block? and !object.running and (!object.earliest_next_run? or Date.now() >= object.earliest_next_run)\n\t\t\t\t\t\t\t\tdescriptor_for_lambda = event.descriptor\n\t\t\t\t\t\t\t\tobject.running = true\n\t\t\t\t\t\t\t\t#wrapped to avoid weird capture effects of coffee\n\t\t\t\t\t\t\t\tobject.block_result = ((descriptor, object, block, event_queue)-> new Promise((resolve,reject)=>\n\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\tawait object.run(block)\n\t\t\t\t\t\t\t\t\t\tresolve(undefined)\n\t\t\t\t\t\t\t\t\tcatch error\n\t\t\t\t\t\t\t\t\t\tconsole.error(\"Exception in hakuban manager lambda:\",error)\n\t\t\t\t\t\t\t\t\t\tresolve(error)\n\t\t\t\t\t\t\t\t\tfinally\n\t\t\t\t\t\t\t\t\t\tobject.running = false\n\t\t\t\t\t\t\t\t\t\tevent_queue.push({action: \"Stopped\", descriptor: descriptor_for_lambda})\n\t\t\t\t\t\t\t\t))(event.descriptor, object, block, @event_queue)\n\t\t\t\t\t\t\t@_active_objects[event.descriptor.hash()] ||= object\n\t\t\t\t\t\t\tobject.change()\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdelete @_active_objects[event.descriptor.hash()]\n\t\t\t\t\t\t\tif object.running\n\t\t\t\t\t\t\t\tobject.stop()\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdelete @_existing_objects[event.descriptor.hash()]\n\t\t\t\t\twhen \"Drop\"\n\t\t\t\t\t\t@event_loop_stop()\n\t\t\t\t\t\tawait @event_loop_stopped\n\t\t\t\t\t\tfor key, object of { @_existing_objects... }\n\t\t\t\t\t\t\tif object.running\n\t\t\t\t\t\t\t\tobject.stop()\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdelete @_existing_objects[key]\n\t\t\t\t\t\twhile Object.keys(@_existing_objects).length > 0\n\t\t\t\t\t\t\tevent = await @event_queue.shift()\n\t\t\t\t\t\t\tif event.action == \"Stopped\"\n\t\t\t\t\t\t\t\tdelete @_existing_objects[event.descriptor.hash()]\n\t\t\t\t\t\t@event_queue.clear()\n\t\t\t\t\t\tdelete @_active_objects[key] for key in Object.keys(@_active_objects)\n\t\t\t\t\t\t@contract.drop()\n\t\t\t\t\t\t@contract = null\n\t\t\t\t\t\t@event_queue = null\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t\treturn \n\t\t\t\t\telse\n\t\t\t\t\t\tthrow \"Unknown action: \" + event.action\n\t\t\treject(\"Queue died unexpectedly\")\n\t\t\n\tobjects: ()=> Object.values(@_active_objects)\n\tobject: ()=> Object.values(@_active_objects)[0]\n\n\tdrop: ()=>\n\t\tif @contract\n\t\t\t@event_queue.push(action: 'Drop')\n\t\t\tawait @async_loop_stopped\n\n\n\n\nexport class ManagedObject\n\tconstructor: (@contract, @descriptor)->\n\t\t@_changes = new Queue()\n\t\t@current_delay_index = 0\n\n\trun: (handler)=>\n\t\tawait handler(@)\n\n\tnext_event: ()=> @next_change()\n\tnext_change: ()=>\n\t\tloop\n\t\t\tswitch await @_changes.shift()\n\t\t\t\twhen \"change\" then return true\n\t\t\t\twhen \"stop\" then return false\n\n\tchange: ()=>\n\t\t@_changes.push(\"change\")\n\n\tstop: ()=>\n\t\t@_changes.push(\"stop\")\n\n","import * as hakuban_js from \"../pkg/hakuban.js\"\nimport * as manager from \"./manager.coffee\"\n\nlogger_initialized = false\n\nexport initialize_wasm = (wasm)->\n\t\tawait hakuban_js.default(wasm)\n\nexport logger_initialize = (log_level, skip_if_already_initialized=false) ->\n\t\tif logger_initialized and skip_if_already_initialized\n\t\t\treturn true\n\n\t\tif 0 == (error = await hakuban_js.hakuban_logger_initialize(log_level))\n\t\t\tlogger_initialized = true\n\t\telse\n\t\t\tconsole.error \"Failed to initialize logger, error \" + error \n\t\t\tfalse\n\n\nraise_if_error = (error_code)->\n\tif error_code != 0\n\t\tthrow \"Hakuban error: \"+error_code\n\n\nexport JSON_serialize = (data_type, cooked)->\n\t{\n\t\tdata_type: [\"JSON\"].concat(data_type)\n\t\tdata: new TextEncoder().encode(JSON.stringify(cooked))\n\t}\n\nexport JSON_deserialize = (data_type, raw)-> \n\tthrow \"Expected JSON data_type, got: \"+data_type if data_type.length == 0 or data_type[0] != \"JSON\"\n\t{\n\t\tdata_type: data_type.slice(1)\n\t\tdata: JSON.parse(new TextDecoder().decode(raw))\n\t}\n\n\nexport class ObjectDescriptor\n\tconstructor: (tags, @json) -> @tags = ((if tag instanceof TagDescriptor then tag else new TagDescriptor(tag)) for tag in tags)\n\tas_json: ()->JSON.stringify(tags: @tags.map((tag)->tag.json), json: @json)\n\thash: ()-> \n\t\tif not @_hash?\n\t\t\t@_hash = @tags.map((tag)->tag.hash().toString()).sort().join(\",\") + \"|\"\n\t\t\tret = hakuban_js.hakuban_json_hash(JSON.stringify(@json))\n\t\t\traise_if_error(ret.error)\n\t\t\t@_hash += ret.hash.toString()\n\t\t@_hash\n\t\n\n\nexport class TagDescriptor\n\tconstructor: (@json) -> null\n\tas_json: ()->JSON.stringify(@json)\n\thash: ()-> \n\t\tif not @_hash?\n\t\t\tret = hakuban_js.hakuban_json_hash(JSON.stringify(@json))\n\t\t\traise_if_error(ret.error)\n\t\t\t@_hash = ret.hash\n\t\t@_hash\n\n\n\n\nLocalNode_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_local_node_drop(pointer)\n\nexport class LocalNode\n\tconstructor: (@name=\"wasm\") ->\n\t\tlogger_initialize(\"warn\", true)\n\t\tresult = hakuban_js.hakuban_local_node_new(@name)\n\t\traise_if_error(result.error)\n\t\t@pointer = result.local_node_pointer\n\t\tLocalNode_finalization_registry.register(@, @pointer, @)\n\t\t@with_default_serializer(JSON_serialize)\n\t\t@with_default_deserializer(JSON_deserialize)\n\n\tdestroy: () ->\n\t\thakuban_js.hakuban_local_node_drop(@pointer)\n\t\tLocalNode_finalization_registry.unregister(@)\n\n\tobject: (tags, json) ->\n\t\tnew ObjectBuilder(@, @default_serializer, @default_deserializer, tags, json)\n\n\ttag: (json) ->\n\t\tnew TagBuilder(@, @default_serializer, @default_deserializer, json)\n\n\twith_default_serializer: (@default_serializer) -> @\n\twith_default_deserializer: (@default_deserializer) -> @\n\n\nclass ObjectBuilder\n\tconstructor: (@local_node, @serializer, @deserializer, @tags, @json) -> null\n\tobserve: () -> new ObjectObserve(@local_node, new ObjectDescriptor(@tags, @json), @deserializer)\n\texpose: () -> new ObjectExpose(@local_node, new ObjectDescriptor(@tags, @json), @serializer)\n\twith_serializer: (@serializer) -> @\n\twith_deserializer: (@deserializer) -> @\n\nclass TagBuilder\n\tconstructor: (@local_node, @serializer, @deserializer, @json) -> null\n\tobserve: () -> new TagObserve(@local_node, new TagDescriptor(@json), @deserializer)\n\texpose: () -> new TagExpose(@local_node, new TagDescriptor(@json), @serializer)\n\twith_serializer: (@serializer) -> @\n\twith_deserializer: (@deserializer) -> @\n\n\n\nObjectDescriptorEvents_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_object_descriptor_events_drop(pointer)\n\nclass ObjectDescriptorEvents\n\n\tconstructor: (@pointer)->\n\t\tObjectDescriptorEvents_finalization_registry.register(@, @pointer, @)\n\n\twait: ()=>next()\n\tnext: ()=>\n\t\t@wait_released = new Promise (@wait_release)=>null\n\t\tcancel_waiting_promise = new Promise (resolve)=> @cancel_waiting_resolve = resolve\n\t\tnext_event_promise = hakuban_js.hakuban_object_descriptor_events_next(@pointer, cancel_waiting_promise)\n\t\tnext_event_promise.cancel = (value)=>\n\t\t\t@cancel_waiting_resolve.resolve(value)\n\t\t\tawait next_event_promise\n\t\tnext_event_promise.then (value)=>\n\t\t\t@wait_release()\n\t\t\t@wait_released = null\n\t\t\t@cancel_waiting_resolve = null\n\t\t\tparsed = JSON.parse(value)\n\t\t\t{ action: parsed.action, descriptor: new ObjectDescriptor(parsed.key.tags, parsed.key.json) }\n\n\tdrop: ()=>\n\t\tif @cancel_waiting_resolve?\n\t\t\t@cancel_waiting_resolve()\n\t\t\tawait @wait_released\n\t\tObjectDescriptorEvents_finalization_registry.unregister(@)\n\t\thakuban_js.hakuban_object_descriptor_events_drop(@pointer)\n\t\t@pointer = null\n\n\n\nObjectObserve_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_object_observe_drop(pointer)\n\nclass ObjectObserve\n\n\tconstructor: (@local_node, @descriptor, @deserializer) ->\n\t\tresult = hakuban_js.hakuban_object_observe_new(@local_node.pointer, @descriptor.as_json())\n\t\traise_if_error(result.error)\n\t\t@pointer = result.object_observe_pointer\n\t\tObjectObserve_finalization_registry.register(@, @pointer, @)\n\t\t@dropped = false\n\t\n\tdrop: ()=>\n\t\t@dropped = true\n\t\thakuban_js.hakuban_object_observe_drop(@pointer)\n\t\tObjectObserve_finalization_registry.unregister(@)\n\t\t@pointer = null\n\n\tobject_state: ()=>\n\t\treturn null if not @pointer?\n\t\tstate_pointer = hakuban_js.hakuban_object_observe_state_borrow(@pointer)\n\t\treturn null if state_pointer == 0\n\t\tsynchronized = hakuban_js.hakuban_object_observe_state_synchronized(state_pointer)\n\t\tversion = JSON.parse(hakuban_js.hakuban_object_observe_state_data_version(state_pointer))\n\t\tdata_type = JSON.parse(hakuban_js.hakuban_object_observe_state_data_type(state_pointer))\n\t\traw = hakuban_js.hakuban_object_observe_state_data(state_pointer)\n\t\thakuban_js.hakuban_object_observe_state_return(state_pointer)\n\t\tdeserialized = @deserializer(data_type, raw)\n\t\t{\n\t\t\tversion: version\n\t\t\tdata: deserialized.data\n\t\t\tdata_type: deserialized.data_type\n\t\t\tsynchronized: synchronized\n\t\t}\n\n\tevents: ()=>\n\t\tnew ObjectDescriptorEvents(hakuban_js.hakuban_object_observe_events_get(@pointer))\n\n\tmanage: ()=>\t\n\t\tclass ManagedObject extends manager.ManagedObject\n\t\t\tstate: ()->\n\t\t\t\t@contract?.object_state()\n\t\t\tdata: ()->\n\t\t\t\t@contract?.object_state()?.data\n\t\t\tcheck_active: ()->\n\t\t\t\t!!@state()\n\n\t\tnew manager.ObjectManagerBuilder(@, ManagedObject)\n\n\nObjectExpose_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_object_expose_drop(pointer)\n\nclass ObjectExpose\n\tconstructor: (@local_node, @descriptor, @serializer)->\n\t\tresult = hakuban_js.hakuban_object_expose_new(@local_node.pointer, @descriptor.as_json())\n\t\traise_if_error(result.error)\n\t\t@pointer = result.object_expose_pointer\n\t\tObjectExpose_finalization_registry.register(@, @pointer, @)\n\t\t@dropped = false\n\n\tdrop: ()=>\n\t\t@dropped = true\n\t\thakuban_js.hakuban_object_expose_drop(@pointer)\n\t\tObjectExpose_finalization_registry.unregister(@)\n\n\tset_object_state: (version, cooked_data, data_type=[], assignment=0)=>\n\t\tserialized = @serializer(data_type, cooked_data)\n\t\tassignment = BigInt(assignment) if not (typeof assignment == 'bigint')\n\t\tresult = hakuban_js.hakuban_object_expose_set_state(@pointer, JSON.stringify(version), JSON.stringify(serialized.data_type), serialized.data, assignment)\n\t\traise_if_error(result.error)\n\t\tresult.changed\n\n\tassignment: ()=>\n\t\thakuban_js.hakuban_object_expose_assignment(@pointer)\n\n\tassigned: ()=>\n\t\t@assignment() > 0\n\n\tdesynchronize: (assignment)=>\n\t\tassignment = BigInt(assignment) if not (typeof assignment == 'bigint')\n\t\thakuban_js.hakuban_object_expose_desynchronize(@pointer, assignment)\n\n\tevents: ()=>\n\t\tnew ObjectDescriptorEvents(hakuban_js.hakuban_object_expose_events_get(@pointer))\n\n\tmanage: ()=>\t\n\t\tclass ManagedObject extends manager.ManagedObject\n\t\t\tconstructor: (contract, descriptor)->\n\t\t\t\tsuper(contract, descriptor)\n\t\t\t\t@_assignment = contract.assignment()\n\t\t\trun: (handler)=>\n\t\t\t\tawait super(handler)\n\t\t\t\t@contract?.desynchronize(@_assignment)\n\t\t\tdo_change: (change)=>\n\t\t\t\t@_assignment = @contract?.assignment()\n\t\t\t\tsuper(change)\n\t\t\tassignment: ()=>\n\t\t\t\t@contract?.assignment()\n\t\t\tassigned: ()=>\n\t\t\t\t@contract?.assigned()\n\t\t\tset_state: (version, cooked_data, data_type=[])=>\n\t\t\t\t@contract?.set_object_state(version, cooked_data, data_type, @_assignment)\n\t\t\tset_data: (data)=>\n\t\t\t\ttimestamp = new Date().getTime()\n\t\t\t\t@set_state([1, Math.floor(timestamp/1000), timestamp - Math.floor(timestamp/1000)*1000, 0], data)\n\t\t\tcheck_active: ()->\n\t\t\t\t@assigned()\n\n\t\tnew manager.ObjectManagerBuilder(@, ManagedObject)\n\n\nTagObserve_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_tag_observe_drop(pointer)\n\nclass TagObserve\n\tconstructor: (@local_node, @descriptor, @deserializer) ->\n\t\tresult = hakuban_js.hakuban_tag_observe_new(@local_node.pointer, @descriptor.as_json())\n\t\traise_if_error(result.error)\n\t\t@pointer = result.tag_observe_pointer\n\t\tTagObserve_finalization_registry.register(@, @pointer, @)\n\t\t@dropped = false\n\t\n\tdrop: ()=>\n\t\t@dropped = true\n\t\thakuban_js.hakuban_tag_observe_drop(@pointer)\n\t\tTagObserve_finalization_registry.unregister(@)\n\n\tobject_descriptors: ()=>\n\t\tresult = hakuban_js.hakuban_tag_observe_object_descriptors(@pointer)\n\t\tfor descriptor_as_json in JSON.parse(result)\n\t\t\tnew ObjectDescriptor(descriptor_as_json.tags, descriptor_as_json.json)\n\n\tobject_state: (object_descriptor)=>\n\t\tresult = hakuban_js.hakuban_tag_observe_object_state_borrow(@pointer, object_descriptor.as_json())\n\t\treturn null if result.error == 4\n\t\treturn null if result.state_pointer == 0\n\t\tsynchronized = hakuban_js.hakuban_object_observe_state_synchronized(result.state_pointer)\n\t\tversion = JSON.parse(hakuban_js.hakuban_object_observe_state_data_version(result.state_pointer))\n\t\tdata_type = JSON.parse(hakuban_js.hakuban_object_observe_state_data_type(result.state_pointer))\n\t\traw = hakuban_js.hakuban_object_observe_state_data(result.state_pointer)\n\t\thakuban_js.hakuban_object_observe_state_return(result.state_pointer)\n\t\tdeserialized = @deserializer(data_type, raw)\n\t\t{\n\t\t\tversion: version\n\t\t\tdata: deserialized.data\n\t\t\tdata_type: deserialized.data_type\n\t\t\tsynchronized: synchronized\n\t\t}\n\n\tevents: ()->\n\t\tnew ObjectDescriptorEvents(hakuban_js.hakuban_tag_observe_events_get(@pointer))\n\n\n\tmanage: ()->\n\t\tclass ManagedObject extends manager.ManagedObject\n\t\t\tstate: ()->\n\t\t\t\t@contract?.object_state(@descriptor)\n\t\t\tdata: ()->\n\t\t\t\t@contract?.object_state(@descriptor)?.data\n\t\t\tcheck_active: ()->\n\t\t\t\t!!@state()\n\n\t\tnew manager.ObjectManagerBuilder(@, ManagedObject)\n\n\nTagExpose_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_tag_expose_drop(pointer)\n\nclass TagExpose\n\tconstructor: (@local_node, @descriptor, @serializer)->\n\t\tresult = hakuban_js.hakuban_tag_expose_new(@local_node.pointer, @descriptor.as_json())\n\t\traise_if_error(result.error)\n\t\t@pointer = result.tag_expose_pointer\n\t\tTagExpose_finalization_registry.register(@, @pointer, @)\n\t\t@dropped = false\n\t\n\tdrop: ()=>\n\t\t@dropped = true\n\t\thakuban_js.hakuban_tag_expose_drop(@pointer)\n\t\tTagExpose_finalization_registry.unregister(@)\n\n\tobject_descriptors: ()=>\n\t\tresult = hakuban_js.hakuban_tag_expose_object_descriptors(@pointer)\n\t\tfor descriptor_as_json in JSON.parse(result)\n\t\t\tnew ObjectDescriptor(descriptor_as_json.tags, descriptor_as_json.json)\n\n\tset_object_state: (object_descriptor, version, cooked_data, data_type=[], assignment=0)=>\n\t\tserialized = @serializer(data_type, cooked_data)\n\t\tassignment = BigInt(assignment) if not (typeof assignment == 'bigint')\n\t\tresult = hakuban_js.hakuban_tag_expose_set_object_state(@pointer, object_descriptor.as_json(), JSON.stringify(version), JSON.stringify(serialized.data_type), serialized.data, assignment)\n\t\traise_if_error(result.error)\n\t\tresult.changed\n\n\tassignment: (object_descriptor)=>\n\t\tresult = hakuban_js.hakuban_tag_expose_assignment(@pointer, object_descriptor.as_json())\n\t\traise_if_error(result.error)\n\t\tresult.assignment\n\n\tassigned: (object_descriptor)=>\n\t\t@assignment(object_descriptor) > 0\n\n\tdesynchronize: (object_descriptor, assignment)=>\n\t\tassignment = BigInt(assignment) if not (typeof assignment == 'bigint')\n\t\terror = hakuban_js.hakuban_tag_expose_desynchronize(@pointer, object_descriptor.as_json(), assignment)\n\t\traise_if_error(error)\n\n\tevents: ()=>\n\t\tnew ObjectDescriptorEvents(hakuban_js.hakuban_tag_expose_events_get(@pointer))\n\n\tmanage: ()=>\t\n\t\tclass ManagedObject extends manager.ManagedObject\n\t\t\tconstructor: (contract, descriptor)->\n\t\t\t\tsuper(contract, descriptor)\n\t\t\t\t@_assignment = contract.assignment(@descriptor)\n\t\t\trun: (handler)=>\n\t\t\t\tawait super(handler)\n\t\t\t\t@contract?.desynchronize(@descriptor, @_assignment)\n\t\t\tdo_change: (change)=>\n\t\t\t\t@_assignment = @contract?.assignment(@descriptor)\n\t\t\t\tsuper(change)\n\t\t\tassignment: ()=>\n\t\t\t\t@contract?.assignment(@descriptor)\n\t\t\tassigned: ()=>\n\t\t\t\t@contract?.assigned(@descriptor)\n\t\t\tset_state: (version, cooked_data, data_type=[])=>\n\t\t\t\t@contract?.set_object_state(@descriptor, version, cooked_data, data_type, @_assignment)\n\t\t\tset_data: (data)=>\n\t\t\t\ttimestamp = new Date().getTime()\n\t\t\t\t@set_state([1, Math.floor(timestamp/1000), timestamp - Math.floor(timestamp/1000)*1000, 0], data)\n\t\t\tcheck_active: ()->\n\t\t\t\t@assigned()\n\n\t\tnew manager.ObjectManagerBuilder(@, ManagedObject)\n\n\nWebsocketConnector_finalization_registry = new FinalizationRegistry (pointer)=>\n\thakuban_js.hakuban_remote_node_drop(pointer)\n\n#TODO: hide private methods\n#TODO: handle errors somehow\nexport class WebsocketConnector\n\n\tconstructor: (@local_node, @uri, @options={})->\n\t\t@connected = false\n\t\t@socket = undefined\n\t\t@error = undefined\n\t\t@reconnection_timer = undefined\n\t\t@reconnect_on_close = true\n\t\t@ack_timer = undefined\n\t\tresult = hakuban_js.hakuban_remote_node_new(@local_node.pointer, true, true, true)\n\t\traise_if_error(result.error)\t\t\n\t\t@remote_node_pointer = result.remote_node_pointer\n\t\t@event_loop_stop = new Promise (resolve) => @event_loop_stop_resolve = resolve\n\t\t@event_loop_promise = @event_loop()\n\t\tWebsocketConnector_finalization_registry.register(@, @remote_node_pointer, @)\n\t\t@connect()\n\n\tdestroy: () ->\n\t\t@event_loop_stop_resolve([\"stop\"])\n\t\tawait @event_loop_promise\n\t\t@reconnect_on_close = false\n\t\tif @keep_alive_interval\n\t\t\tclearInterval(@keep_alive_interval) \n\t\tif @reconnection_timer?\n\t\t\tclearTimeout(@reconnection_timer)\n\t\t\t@reconnection_timer = null\n\t\tif @socket?\n\t\t\t@socket.onclose = null\n\t\t\t@socket.onerror = null\n\t\t\t@socket.onmessage = null\n\t\t\t@socket.close()\n\t\t\t@socket_onclose()\n\t\tif @ack_timer?\n\t\t\tclearTimeout(@ack_timer)\n\t\t\t@ack_timer = null\n\t\thakuban_js.hakuban_remote_node_drop(@remote_node_pointer)\n\t\tWebsocketConnector_finalization_registry.unregister(@)\n\n\t\t\n\tconnect: ()=>\n\t\t@reconnection_timer = undefined\n\n\t\ttry\n\t\t\t@socket = new WebSocket(@uri)\n\t\tcatch error\n\t\t\t@error = { while: \"connecting\", error: error }\n\t\t\t@onstatuschange_proc(@) if @onstatuschange_proc?\n\t\t\treturn false\n\n\t\t@socket.binaryType = \"arraybuffer\"\n\n\t\t@socket.onopen = ()=>\n\t\t\tconsole.debug('Connected to hakuban remote node') if @options.debug\n\t\t\t@connected = true\n\t\t\t@error = undefined\n\t\t\t@onstatuschange_proc(@) if @onstatuschange_proc?\n\t\t\tbytes_to_send = hakuban_js.hakuban_remote_node_connected(@remote_node_pointer)\n\t\t\t@send(bytes_to_send)\n\n\t\t@socket.onclose = @socket_onclose = ()=>\n\t\t\tconsole.debug('Disconnected from hakuban remote node') if @options.debug\n\t\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t\t@connected = false\n\t\t\t@socket = undefined\n\t\t\thakuban_js.hakuban_remote_node_disconnected(@remote_node_pointer)\n\t\t\t@onstatuschange_proc(@) if @onstatuschange_proc?\n\t\t\tclearTimeout(@reconnection_timer) if @reconnection_timer?\n\t\t\t@reconnection_timer = null\n\t\t\t@reconnection_timer = setTimeout(@connect, 1000) if @reconnect_on_close\n\n\t\t@socket.onerror = (error)=>\n\t\t\tconsole.debug('Hakuban socket error', error) if @options.debug\n\t\t\t@error = { while: \"connected\", error: error }\n\n\t\t@socket.onmessage = (event) =>\n\t\t\tbytes_to_send = hakuban_js.hakuban_remote_node_received_message(@remote_node_pointer, new Uint8Array(event.data))\n\t\t\t@send(bytes_to_send)\n\t\t\tclearTimeout(@ack_timer) if @ack_timer?\n\t\t\t@ack_timer = setTimeout(@ack, 1000)\n\t\t\tnull\n\n\tping: ()=>\n\t\t@socket.send(new Uint8Array()) if @socket\n\n\tsend: (bytes_to_send)=>\n\t\tif bytes_to_send.length > 0\n\t\t\t@socket.send(bytes_to_send)\n\t\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t\t@keep_alive_interval = setInterval(@ping, 10000)\n\n\tack: ()=>\n\t\tif @socket?\n\t\t\tbytes_to_send = hakuban_js.hakuban_remote_node_ack(@remote_node_pointer)\n\t\t\t@send(bytes_to_send) if bytes_to_send.length > 0\n\n\tevent_loop: ()->\n\t\tnext_local_node_event = false\n\t\tcancel_waiting_resolve = null\n\t\tcancel_waiting_promise = new Promise (resolve) -> cancel_waiting_resolve = resolve\n\t\twhile true\n\t\t\tnext_local_node_event = hakuban_js.hakuban_remote_node_next_local_node_event(@remote_node_pointer, cancel_waiting_promise).then((event)->[\"local_node_event\", event]) if not next_local_node_event\n\t\t\t[promise, event] = await Promise.any([@event_loop_stop, next_local_node_event])\n\t\t\tif promise == \"local_node_event\"\n\t\t\t\tnext_local_node_event = false\n\t\t\t\tsetTimeout(((event)=>\n\t\t\t\t\tif @connected\n\t\t\t\t\t\tbytes_to_send = hakuban_js.hakuban_remote_node_received_local_node_event(@remote_node_pointer, event)\n\t\t\t\t\t\t@send(bytes_to_send)\n\t\t\t\t), 0, event)\n\t\t\telse\n\t\t\t\tbreak\n\t\tif next_local_node_event\n\t\t\tcancel_waiting_resolve(true)\n\t\t\tawait next_local_node_event\n\n\tonstatuschange: (proc)->\n\t\t@onstatuschange_proc = proc\n\t\t@onstatuschange_proc() if @onstatuschange_proc?\n\t\t@\n","import { initialize_wasm } from \"./common.coffee\"\nimport * as hakuban_js from \"../pkg/hakuban.js\"\n\nexport * from './common.coffee'\n\nexport initialize = (wasm)->\n\t\tawait initialize_wasm(wasm)\n"],"names":["hakuban_js.default","hakuban_js.hakuban_logger_initialize","hakuban_js.hakuban_json_hash","hakuban_js.hakuban_local_node_drop","hakuban_js.hakuban_local_node_new","hakuban_js.hakuban_object_descriptor_events_drop","hakuban_js.hakuban_object_descriptor_events_next","hakuban_js.hakuban_object_observe_drop","hakuban_js.hakuban_object_observe_new","hakuban_js.hakuban_object_observe_state_borrow","hakuban_js.hakuban_object_observe_state_synchronized","hakuban_js.hakuban_object_observe_state_data_version","hakuban_js.hakuban_object_observe_state_data_type","hakuban_js.hakuban_object_observe_state_data","hakuban_js.hakuban_object_observe_state_return","hakuban_js.hakuban_object_observe_events_get","ManagedObject","manager.ManagedObject","manager.ObjectManagerBuilder","hakuban_js.hakuban_object_expose_drop","hakuban_js.hakuban_object_expose_new","hakuban_js.hakuban_object_expose_set_state","hakuban_js.hakuban_object_expose_assignment","hakuban_js.hakuban_object_expose_desynchronize","hakuban_js.hakuban_object_expose_events_get","hakuban_js.hakuban_tag_observe_drop","hakuban_js.hakuban_tag_observe_new","hakuban_js.hakuban_tag_observe_object_descriptors","hakuban_js.hakuban_tag_observe_object_state_borrow","hakuban_js.hakuban_tag_observe_events_get","hakuban_js.hakuban_tag_expose_drop","hakuban_js.hakuban_tag_expose_new","hakuban_js.hakuban_tag_expose_object_descriptors","hakuban_js.hakuban_tag_expose_set_object_state","hakuban_js.hakuban_tag_expose_assignment","hakuban_js.hakuban_tag_expose_desynchronize","hakuban_js.hakuban_tag_expose_events_get","hakuban_js.hakuban_remote_node_drop","hakuban_js.hakuban_remote_node_new","hakuban_js.hakuban_remote_node_connected","hakuban_js.hakuban_remote_node_disconnected","hakuban_js.hakuban_remote_node_received_message","hakuban_js.hakuban_remote_node_ack","hakuban_js.hakuban_remote_node_next_local_node_event","hakuban_js.hakuban_remote_node_received_local_node_event"],"mappings":"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"}
1
+ {"version":3,"file":"hakuban.js","sources":["pkg/hakuban.js","coffee/ffi.coffee","coffee/logger.coffee","coffee/ffi-object.coffee","coffee/descriptor.coffee","coffee/object-state.coffee","coffee/stream.coffee","coffee/object-state-stream.coffee","coffee/object-state-sink.coffee","coffee/contract.coffee","coffee/exchange.coffee","coffee/remote-exchange.coffee","coffee/websocket-connector.coffee","coffee/hakuban.coffee"],"sourcesContent":["\nlet wasm;\n\nconst cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachedUint8Memory0 = new Uint8Array();\n\nfunction getUint8Memory0() {\n if (cachedUint8Memory0.byteLength === 0) {\n cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\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 getObject(idx) { return heap[idx]; }\n\nfunction dropObject(idx) {\n if (idx < 36) 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 = new TextEncoder('utf-8');\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);\n getUint8Memory0().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);\n\n const mem = getUint8Memory0();\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);\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nlet cachedInt32Memory0 = new Int32Array();\n\nfunction getInt32Memory0() {\n if (cachedInt32Memory0.byteLength === 0) {\n cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32Memory0;\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.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/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_observe_contract_drop(object_ptr) {\n wasm.hakuban_object_observe_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_observe_pointer\n*/\nexport function hakuban_object_observe_contract_terminate(object_observe_pointer) {\n wasm.hakuban_object_observe_contract_terminate(object_observe_pointer);\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_object_observe_contract_next(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_next(object_observe_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_observe_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_observe_contract_ready(object_observe_pointer) {\n const ret = wasm.hakuban_object_observe_contract_ready(object_observe_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_observe_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_pointer\n*/\nexport function hakuban_tag_observe_contract_drop(tag_pointer) {\n wasm.hakuban_tag_observe_contract_drop(tag_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n*/\nexport function hakuban_tag_observe_contract_terminate(tag_observe_pointer) {\n wasm.hakuban_tag_observe_contract_terminate(tag_observe_pointer);\n}\n\n/**\n* @param {number} tag_observe_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_observe_contract_next(tag_observe_pointer) {\n const ret = wasm.hakuban_tag_observe_contract_next(tag_observe_pointer);\n return ret;\n}\n\nlet cachedUint32Memory0 = new Uint32Array();\n\nfunction getUint32Memory0() {\n if (cachedUint32Memory0.byteLength === 0) {\n cachedUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32Memory0;\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n return getUint32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {number} tag_observe_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_observe_contract_ready(tag_observe_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_observe_contract_ready(retptr, tag_observe_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {string} json_string\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_tag_descriptor_new(json_string) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_tag_descriptor_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_tag_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_tag_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_tag_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {string} json_string\n* @param {Uint32Array} tag_pointers\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_descriptor_new(json_string, tag_pointers) {\n const ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(tag_pointers, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_descriptor_new(ptr0, len0, ptr1, len1);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} descriptor_pointer\n*/\nexport function hakuban_object_descriptor_drop(descriptor_pointer) {\n wasm.hakuban_object_descriptor_drop(descriptor_pointer);\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {string}\n*/\nexport function hakuban_object_descriptor_json(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_json(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(r0, r1);\n }\n}\n\n/**\n* @param {number} descriptor_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_object_descriptor_tags(descriptor_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_descriptor_tags(retptr, descriptor_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_tag_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} tag_expose_contract_pointer\n*/\nexport function hakuban_tag_expose_contract_drop(tag_expose_contract_pointer) {\n wasm.hakuban_tag_expose_contract_drop(tag_expose_contract_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n*/\nexport function hakuban_tag_expose_contract_terminate(tag_expose_pointer) {\n wasm.hakuban_tag_expose_contract_terminate(tag_expose_pointer);\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_tag_expose_contract_next(tag_expose_pointer) {\n const ret = wasm.hakuban_tag_expose_contract_next(tag_expose_pointer);\n return ret;\n}\n\n/**\n* @param {number} tag_expose_pointer\n* @returns {Uint32Array}\n*/\nexport function hakuban_tag_expose_contract_ready(tag_expose_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_tag_expose_contract_ready(retptr, tag_expose_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachedBigUint64Memory0 = new BigUint64Array();\n\nfunction getBigUint64Memory0() {\n if (cachedBigUint64Memory0.byteLength === 0) {\n cachedBigUint64Memory0 = new BigUint64Array(wasm.memory.buffer);\n }\n return cachedBigUint64Memory0;\n}\n\nfunction passArray64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getBigUint64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4);\n const mem = getUint32Memory0();\n for (let i = 0; i < array.length; i++) {\n mem[ptr / 4 + i] = addHeapObject(array[i]);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt64Array} version\n* @param {any[]} format_jsvalues\n* @param {Uint8Array} data\n* @param {bigint} synchronized_us_ago\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_new(version, format_jsvalues, data, synchronized_us_ago) {\n const ptr0 = passArray64ToWasm0(version, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(format_jsvalues, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_object_state_new(ptr0, len0, ptr1, len1, ptr2, len2, synchronized_us_ago);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_pointer\n*/\nexport function hakuban_object_state_drop(object_state_pointer) {\n wasm.hakuban_object_state_drop(object_state_pointer);\n}\n\nlet cachedBigInt64Memory0 = new BigInt64Array();\n\nfunction getBigInt64Memory0() {\n if (cachedBigInt64Memory0.byteLength === 0) {\n cachedBigInt64Memory0 = new BigInt64Array(wasm.memory.buffer);\n }\n return cachedBigInt64Memory0;\n}\n\nfunction getArrayI64FromWasm0(ptr, len) {\n return getBigInt64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {BigInt64Array}\n*/\nexport function hakuban_object_state_version(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_version(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_pointer\n* @returns {bigint}\n*/\nexport function hakuban_object_state_synchronized_ago(object_state_pointer) {\n const ret = wasm.hakuban_object_state_synchronized_ago(object_state_pointer);\n return BigInt.asUintN(64, ret);\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n const mem = getUint32Memory0();\n const slice = mem.subarray(ptr / 4, ptr / 4 + len);\n const result = [];\n for (let i = 0; i < slice.length; i++) {\n result.push(takeObject(slice[i]));\n }\n return result;\n}\n/**\n* @param {number} object_state_pointer\n* @returns {any[]}\n*/\nexport function hakuban_object_state_format(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_format(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n/**\n* @param {number} object_state_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_object_state_data(object_state_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_object_state_data(retptr, object_state_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} object_state_stream_pointer\n*/\nexport function hakuban_object_state_stream_drop(object_state_stream_pointer) {\n wasm.hakuban_object_state_stream_drop(object_state_stream_pointer);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_next(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_next(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_stream_current(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_current(object_state_stream_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_stream_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_stream_descriptor(object_state_stream_pointer) {\n const ret = wasm.hakuban_object_state_stream_descriptor(object_state_stream_pointer);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {boolean} upstream\n* @param {boolean} diff_produce\n* @param {boolean} diff_request\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request) {\n const ret = wasm.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request);\n return ret;\n}\n\n/**\n* @param {number} remote_exchange_pointer\n*/\nexport function hakuban_remote_exchange_drop(remote_exchange_pointer) {\n wasm.hakuban_remote_exchange_drop(remote_exchange_pointer);\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer) {\n const ret = wasm.hakuban_remote_exchange_next_message_to_network(remote_exchange_pointer);\n return ret;\n}\n\n/**\n* @param {number} message_pointer\n* @returns {Uint8Array}\n*/\nexport function hakuban_message_take(message_pointer) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_message_take(retptr, message_pointer);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} remote_exchange_pointer\n* @param {Uint8Array} message_data\n* @returns {number}\n*/\nexport function hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, message_data) {\n const ptr0 = passArray8ToWasm0(message_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_remote_exchange_send_message_from_network(remote_exchange_pointer, ptr0, len0);\n return ret;\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_pointer_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_pointer_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {number} local_exchange_pointer\n* @param {number} future_pointer\n* @param {bigint} waker_id\n* @returns {WasmResultWithNothing}\n*/\nexport function hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_returning_nothing_poll(local_exchange_pointer, future_pointer, waker_id);\n return WasmResultWithNothing.__wrap(ret);\n}\n\n/**\n* @param {number} future\n*/\nexport function hakuban_future_returning_nothing_drop(future) {\n wasm.hakuban_future_returning_nothing_drop(future);\n}\n\n/**\n* @param {string} default_log_level\n* @returns {number}\n*/\nexport function hakuban_logger_initialize(default_log_level) {\n const ptr0 = passStringToWasm0(default_log_level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_logger_initialize(ptr0, len0);\n return ret >>> 0;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_descriptor(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_descriptor(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_drop(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_drop(object_state_sink_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_next(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_next(object_state_sink_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_state_sink_current(object_state_sink_pointer) {\n const ret = wasm.hakuban_object_state_sink_current(object_state_sink_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n* @param {number} object_state_pointer\n* @returns {number}\n*/\nexport function hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer) {\n const ret = wasm.hakuban_object_state_sink_push(object_state_sink_pointer, object_state_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_state_sink_params_pointer\n*/\nexport function hakuban_object_state_sink_params_drop(object_state_sink_params_pointer) {\n wasm.hakuban_object_state_sink_params_drop(object_state_sink_params_pointer);\n}\n\n/**\n* @param {number} object_state_sink_pointer\n*/\nexport function hakuban_object_state_sink_desynchronize(object_state_sink_pointer) {\n wasm.hakuban_object_state_sink_desynchronize(object_state_sink_pointer);\n}\n\n/**\n* @param {string} name_str\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_local_exchange_new(name_str) {\n const ptr0 = passStringToWasm0(name_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_local_exchange_new(ptr0, len0);\n return WasmResultWithPointer.__wrap(ret);\n}\n\n/**\n* @param {number} local_exchange\n*/\nexport function hakuban_local_exchange_drop(local_exchange) {\n wasm.hakuban_local_exchange_drop(local_exchange);\n}\n\nfunction getArrayU64FromWasm0(ptr, len) {\n return getBigUint64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {number} local_exchange\n* @returns {BigUint64Array}\n*/\nexport function hakuban_local_exchange_notified(local_exchange) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.hakuban_local_exchange_notified(retptr, local_exchange);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayU64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} local_exchange\n* @param {number} descriptor\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_new(local_exchange, descriptor) {\n const ret = wasm.hakuban_object_expose_contract_new(local_exchange, descriptor);\n return ret;\n}\n\n/**\n* @param {number} object_ptr\n*/\nexport function hakuban_object_expose_contract_drop(object_ptr) {\n wasm.hakuban_object_expose_contract_drop(object_ptr);\n}\n\n/**\n* @param {number} object_expose_pointer\n*/\nexport function hakuban_object_expose_contract_terminate(object_expose_pointer) {\n wasm.hakuban_object_expose_contract_terminate(object_expose_pointer);\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {number}\n*/\nexport function hakuban_object_expose_contract_next(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_next(object_expose_pointer);\n return ret;\n}\n\n/**\n* @param {number} object_expose_pointer\n* @returns {WasmResultWithPointer}\n*/\nexport function hakuban_object_expose_contract_ready(object_expose_pointer) {\n const ret = wasm.hakuban_object_expose_contract_ready(object_expose_pointer);\n return WasmResultWithPointer.__wrap(ret);\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n/**\n*/\nexport const WasmResultStatus = Object.freeze({ Ok:0,\"0\":\"Ok\",Pending:1,\"1\":\"Pending\",NotAvailable:2,\"2\":\"NotAvailable\",InvalidString:3,\"3\":\"InvalidString\",InvalidJSON:4,\"4\":\"InvalidJSON\",InvalidURL:5,\"5\":\"InvalidURL\",InvalidLogLevel:6,\"6\":\"InvalidLogLevel\",UnknownError:7,\"7\":\"UnknownError\", });\n/**\n*/\nexport class WasmResultWithNothing {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithNothing.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithnothing_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithnothing_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithnothing_status(this.ptr, arg0);\n }\n}\n/**\n*/\nexport class WasmResultWithPointer {\n\n static __wrap(ptr) {\n const obj = Object.create(WasmResultWithPointer.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresultwithpointer_free(ptr);\n }\n /**\n * @returns {number}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_status(this.ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_status(this.ptr, arg0);\n }\n /**\n * @returns {number}\n */\n get value() {\n const ret = wasm.__wbg_get_wasmresultwithpointer_value(this.ptr);\n return ret;\n }\n /**\n * @param {number} arg0\n */\n set value(arg0) {\n wasm.__wbg_set_wasmresultwithpointer_value(this.ptr, arg0);\n }\n}\n\nasync function 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 getImports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\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 ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_debug_f15cb542ea509609 = function(arg0) {\n console.debug(getObject(arg0));\n };\n imports.wbg.__wbg_error_ef9a0be47931175f = function(arg0) {\n console.error(getObject(arg0));\n };\n imports.wbg.__wbg_info_2874fdd5393f35ce = function(arg0) {\n console.info(getObject(arg0));\n };\n imports.wbg.__wbg_log_4b5638ad60bdc54a = function(arg0) {\n console.log(getObject(arg0));\n };\n imports.wbg.__wbg_warn_58110c4a199df084 = function(arg0) {\n console.warn(getObject(arg0));\n };\n imports.wbg.__wbg_now_8172cd917e5eda6b = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_newnoargs_b5b063fc6c2f0376 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_765201544a2b6869 = 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_call_97ae9d8645dc388b = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_self_6d479506f72c6a71 = function() { return handleError(function () {\n const ret = self.self;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_window_f2557cc78490aceb = function() { return handleError(function () {\n const ret = window.window;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_globalThis_7f206bda628d5286 = function() { return handleError(function () {\n const ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_global_ba75c50d1cf384f4 = function() { return handleError(function () {\n const ret = global.global;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_abda76e883ba8a5f = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) {\n try {\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(arg0, arg1);\n }\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len0;\n getInt32Memory0()[arg0 / 4 + 0] = ptr0;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction initMemory(imports, maybe_memory) {\n\n}\n\nfunction finalizeInit(instance, module) {\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n cachedBigInt64Memory0 = new BigInt64Array();\n cachedBigUint64Memory0 = new BigUint64Array();\n cachedInt32Memory0 = new Int32Array();\n cachedUint32Memory0 = new Uint32Array();\n cachedUint8Memory0 = new Uint8Array();\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n const imports = getImports();\n\n initMemory(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 finalizeInit(instance, module);\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('hakuban_bg.wasm', import.meta.url);\n }\n const imports = getImports();\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n initMemory(imports);\n\n const { instance, module } = await load(await input, imports);\n\n return finalizeInit(instance, module);\n}\n\nexport { initSync }\nexport default init;\n","export * from \"../pkg/hakuban.js\"\n\n\nexport unwrap_pointer = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\nexport unwrap_pointer_or_null = (result)->\n\tif result.status == 0\n\t\tresult.value\n\telse if result.status == 2 #unavailable\n\t\tnull\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\n\nexport class Future\n\n\tconstructor: (@local_exchange, @future_owner, @poll_function, @drop_function, @_pointer)->\n\n\tawait_and_drop: (aborted=null)->\n\t\ttry\n\t\t\tabout_to_drop_notification_received = new Promise (about_to_drop_notification)=>\n\t\t\t\t@lock_id = @future_owner.drop_lock(about_to_drop_notification)\n\t\t\twhile true\n\t\t\t\tnotified = @local_exchange.notified()\n\t\t\t\tresult = @local_exchange.with_pointer (local_exchange_pointer)=> @poll_function(local_exchange_pointer, @_pointer, notified.id)\n\t\t\t\tswitch result.status\n\t\t\t\t\twhen 0 #ok\n\t\t\t\t\t\treturn result.value\n\t\t\t\t\twhen 1 #pending\n\t\t\t\t\t\tto_listen = [notified, about_to_drop_notification_received]\n\t\t\t\t\t\tto_listen.push(aborted) if aborted?\n\t\t\t\t\t\tswitch await Promise.race(to_listen)\n\t\t\t\t\t\t\twhen \"ABORT\" then return false\n\t\t\t\t\t\t\twhen \"DROP\" then return null\n\t\t\t\t\twhen 2 #unavailable, channel closed\n\t\t\t\t\t\treturn null\n\t\t\t\t\telse\n\t\t\t\t\t\tthrow result.status #TODO: convert that to specific error\n\t\tfinally\n\t\t\t@drop_function(@_pointer)\n\t\t\t@future_owner.drop_release(@lock_id)\n\t\t\t@local_exchange.return_notified(notified) if notified?\n\n","import * as FFI from \"./ffi.coffee\"\n\n\nexport logger_initialize = (log_level, skip_if_already_initialized=false) ->\n\t\tif 0 == (error = FFI.hakuban_logger_initialize(log_level))\n\t\t\tlogger_initialized = true\n\t\telse\n\t\t\tconsole.error \"Failed to initialize logger, error \" + error \n\t\t\tfalse\n","\nfinalization_registry = new FinalizationRegistry (function_and_arg)-> function_and_arg[0](function_and_arg[1])\n\n\ndo_and_drop = (object_or_objects, block)->\n\t\ttry\n\t\t\tblock_returned_promise = false\n\t\t\tret = block(object_or_objects)\n\t\t\tif ret? and typeof ret.then == 'function'\n\t\t\t\tblock_returned_promise = true\n\t\t\t\tret.finally ()=>\n\t\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\t\tobject.drop()\n\t\t\telse\n\t\t\t\tret\n\t\tfinally\n\t\t\tif not block_returned_promise\n\t\t\t\tfor object in [object_or_objects].flat()\n\t\t\t\t\tobject.drop()\n\n\nexport do_and_drop_or_return = (object_or_objects, block)->\n\t\tif block?\n\t\t\tdo_and_drop(object_or_objects, block)\n\t\telse\n\t\t\tobject_or_objects\n\n\nexport class PointerAlreadyDropped\n\tconstructor: ()->@message=\"PointerAlreadyDropped\"\n\n\nexport class FFIObject\n\n\n\tinitialize_pointer: (@_local_exchange, @_pointer, @_drop_function)->\n\t\t@_was_dropped = null\n\t\t@_drop_locks_sequence = 0\n\t\t@_drop_locks = {}\n\t\tfinalization_registry.register(@, [@_drop_function, @_pointer], @)\n\t\n\tdropped: ()->\n\t\t@_was_dropped?\n\n\tdrop: ()-> \n\t\tif not @_was_dropped?\n\t\t\t@_was_dropped = new Promise (resolve)=>\n\t\t\t\tif @_pointer?\n\t\t\t\t\tif Object.keys(@_drop_locks).length > 0\n\t\t\t\t\t\tall_locks_dropped = new Promise (@_all_locks_dropped_set)=>\n\t\t\t\t\t\tfor about_to_drop_notification in Object.values(@_drop_locks)\n\t\t\t\t\t\t\tabout_to_drop_notification(\"DROP\")\n\t\t\t\t\t\tawait all_locks_dropped\n\t\t\t\t\tthrow \"Hakuban internal error: drop was attempted with existing drop locks\" if Object.keys(@_drop_locks).length > 0\n\t\t\t\t\tfinalization_registry.unregister(@)\n\t\t\t\t\t@_drop_function(@_pointer)\n\t\t\t\t\t@_local_exchange.notify() if @_local_exchange?\n\t\t\t\t@_pointer = false\n\t\t\t\tresolve()\n\t\t@_was_dropped\n\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tblock(@_pointer)\n\n\tdo_and_drop_or_return: (block)->\n\t\tdo_and_drop_or_return(@, block)\n\n\tdrop_lock: (about_to_drop_notification)->\n\t\traise FFIObject::PointerAlreadyDropped if @_was_dropped?\n\t\tlock_id = @_drop_locks_sequence++\n\t\t@_drop_locks[lock_id] = about_to_drop_notification\n\t\tlock_id\n\t\n\tdrop_release: (lock_id)->\n\t\tdelete @_drop_locks[lock_id]\n\t\tif @_was_dropped? and Object.keys(@_drop_locks).length == 0\n\t\t\t@_all_locks_dropped_set()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nexport class ObjectDescriptor extends FFIObject\n\n\tconstructor: (tags, json, pointer=null) -> \n\t\tsuper()\n\t\tif pointer?\n\t\t\t@json = JSON.parse(FFI.hakuban_object_descriptor_json(pointer))\n\t\t\t@tags = (new TagDescriptor(null, null, tag_pointer) for tag_pointer in FFI.hakuban_object_descriptor_tags(pointer))\n\t\telse\n\t\t\t@json = json\n\t\t\t@tags = ((if tag instanceof TagDescriptor then tag else new TagDescriptor(tag)) for tag in tags)\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_descriptor_new(JSON.stringify(@json), (tag._pointer for tag in @tags)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_descriptor_drop)\n\n\nexport class TagDescriptor extends FFIObject\n\n\tconstructor: (json) -> \n\t\tsuper()\n\t\t@json = json\n\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_tag_descriptor_new(JSON.stringify(@json)))\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_tag_descriptor_drop)\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\n\n\nObjectState_last_generated_version = [0,0,0]\n\n#TODO: make this immutable for the users somehow\nexport class ObjectState extends FFIObject\n\n\tconstructor: (data=null, version=null, format=null, synchronized_us_ago=0, pointer=null)->\n\t\tsuper()\n\t\tif pointer?\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\t@version = (x for x in FFI.hakuban_object_state_version(pointer))\n\t\t\t@synchronized_us_ago = FFI.hakuban_object_state_synchronized_ago(pointer)\n\t\t\t@format = FFI.hakuban_object_state_format(pointer)\n\t\t\t@data = new TextDecoder().decode(FFI.hakuban_object_state_data(pointer))\n\t\telse\n\t\t\tif !version?\n\t\t\t\ttimestamp = new Date().getTime()\n\t\t\t\tversion = [0, Math.floor(timestamp/1000), (timestamp % 1000) * 1000]\n\t\t\t\tversion[2]++ while version[1] == ObjectState_last_generated_version[1] and version[2] <= ObjectState_last_generated_version[2]\n\t\t\t\tObjectState_last_generated_version = version\n\t\t\t@version = (BigInt(version_element) for version_element in version)\n\t\t\tif !format?\n\t\t\t\tformat = []\n\t\t\t@format = [format].flat(Infinity)\n\t\t\t@synchronized_us_ago = BigInt(synchronized_us_ago)\n\t\t\t@data = data\n\t\t\n\twith_pointer: (block)->\n\t\tthrow new PointerAlreadyDropped() if @dropped()\n\t\tif @_pointer?\n\t\t\tblock(@_pointer)\n\t\telse\n\t\t\tpointer = FFI.unwrap_pointer(FFI.hakuban_object_state_new(@version, @format, new TextEncoder().encode(@data), @synchronized_us_ago))\n\t\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_drop)\n\t\t\tblock(@_pointer)\n\n\twith_data: (data)->\n\t\tnew ObjectState(data, @version, @format, @synchronized_us_ago)\n\n\twith_version: (version)->\n\t\tnew ObjectState(@data, version, @format, @synchronized_us_ago)\n\n\twith_format: (format)->\n\t\tnew ObjectState(@data, @version, format, @synchronized_us_ago)\n\n\twith_synchronized_us_ago: (synchronized_us_ago)->\n\t\tnew ObjectState(@data, @version, @format, synchronized_us_ago)\n\n\tjson_deserialize: ()->\n\t\tthrow \"Invalid data format\" if @format[@format.length - 1] != \"JSON\"\n\t\tnew ObjectState(JSON.parse(@data), @version, @format.slice(0, -1), @synchronized_us_ago)\n\n\tjson_serialize: ()->\n\t\tnew ObjectState(JSON.stringify(@data), @version, @format.concat(\"JSON\"), @synchronized_us_ago)\n","export class StreamEnumerator\n\n\tconstructor: (@_stream, @_without_implicit_drop=false, @_async=false)->\n\n\tasync: (block)->\n\t\tnew StreamEnumerator(@_stream, @_without_implicit_drop, true).call_or_return(block)\n\n\twithout_implicit_drop: (block)->\n\t\tnew StreamEnumerator(@_stream, true, @_async).call_or_return(block)\n\n\tcall_or_return: (block)->\n\t\tif block?\n\t\t\t@call(block)\n\t\telse\n\t\t\t@\n\n\tcall: (block)->\n\t\twhile (new_item = await @_stream.next())?\n\t\t\tif @_async\n\t\t\t\t#TODO: will GC eat it before it fullfils?\n\t\t\t\t_promise = new Promise (_resolve)=>\n\t\t\t\t\titem = new_item # :(\n\t\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\t\tawait block(item)\n\t\t\t\t\telse\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tawait block(item)\n\t\t\t\t\t\tfinally\n\t\t\t\t\t\t\tawait item.drop()\n\t\t\telse\n\t\t\t\tif @_without_implicit_drop\n\t\t\t\t\tawait block(new_item)\n\t\t\t\telse\n\t\t\t\t\ttry\n\t\t\t\t\t\tawait block(new_item)\n\t\t\t\t\tfinally\n\t\t\t\t\t\tawait new_item.drop()\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { ObjectState } from \"./object-state.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateStream extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_stream_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_stream_descriptor(pointer))\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_stream_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=> FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_stream_current(pointer))\n\t\t\tif pointer? then new ObjectState(null, null, null, null, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nexport class ObjectStateSinkParams extends FFIObject\n\n\tconstructor: (pointer)->\n\t\tsuper()\n\t\t@initialize_pointer(null, pointer, FFI.hakuban_object_state_sink_params_drop)\n\n\nexport class ObjectStateSink extends FFIObject\n\n\tconstructor: (local_exchange, pointer)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@initialize_pointer(@local_exchange, pointer, FFI.hakuban_object_state_sink_drop)\n\n\tdescriptor: ()->\n\t\t@with_pointer (pointer)->new ObjectDescriptor(null, null, FFI.hakuban_object_state_sink_descriptor(pointer))\n\n\tsend: (object_state)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (sink_pointer)=>\n\t\t\t\tobject_state.with_pointer (object_state_pointer)=>\n\t\t\t\t\tFFI.hakuban_object_state_sink_push(sink_pointer, object_state_pointer)\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_state_sink_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\tcurrent: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_state_sink_current(pointer))\n\t\t\tif pointer? then new ObjectStateSinkParams(pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tdesynchronize: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_state_sink_desynchronize(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\ttrue\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped, do_and_drop_or_return } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nimport { ObjectStateStream } from \"./object-state-stream.coffee\"\nimport { ObjectStateSink } from \"./object-state-sink.coffee\"\nimport { StreamEnumerator } from \"./stream.coffee\"\n\n\nclass Contract extends FFIObject\n\n\teach: (block)->\n\t\tnew StreamEnumerator(@).call_or_return(block)\n\n\nexport class ObjectObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...) \n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\t\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_observe_contract_drop)\n\t\t@local_exchange.notify()\n\t\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\t\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_observe_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class ObjectExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = if descriptor[0] instanceof ObjectDescriptor\n\t\t\tdescriptor[0]\n\t\telse\n\t\t\tnew ObjectDescriptor(descriptor...)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_object_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_object_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_object_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_object_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then await new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointer = @with_pointer (pointer)=>FFI.unwrap_pointer_or_null(FFI.hakuban_object_expose_contract_ready(pointer))\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagObserveContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_observe_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_observe_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\t\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateStream(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_observe_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateStream(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\nexport class TagExposeContract extends Contract\n\n\tconstructor: (local_exchange, descriptor) ->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_tag_expose_contract_new(local_exchange_pointer, descriptor_pointer), FFI.hakuban_tag_expose_contract_drop)\n\t\t@local_exchange.notify()\n\n\tterminate: ()->\n\t\ttry\n\t\t\t@with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_terminate(pointer)\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tnext: (block)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_next(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tif pointer? then new ObjectStateSink(@local_exchange, pointer).do_and_drop_or_return(block) else null\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tready: (block)->\n\t\ttry\n\t\t\tpointers = @with_pointer (pointer)=>FFI.hakuban_tag_expose_contract_ready(pointer)\n\t\t\t@local_exchange.notify()\n\t\t\tdo_and_drop_or_return(new ObjectStateSink(@local_exchange, pointer) for pointer in pointers, block)\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\n\n\nexport class LocalExchange extends FFIObject\n\n\tconstructor: (name=\"wasm\") ->\n\t\tsuper()\n\t\t@name = name\n\t\t@_notification_sequence = BigInt(0)\n\t\t@_notification_resolve = {}\n\t\t@initialize_pointer(null, FFI.unwrap_pointer(FFI.hakuban_local_exchange_new(@name)),FFI.hakuban_local_exchange_drop)\n\n\tobject: (descriptor_or_tags, json_or_nothing) ->\n\t\tnew ObjectContractBuilder(@, [descriptor_or_tags, json_or_nothing])\n\n\ttag: (descriptor) ->\n\t\tnew TagContractBuilder(@, descriptor)\n\n\tnotified: ()->\n\t\tid = ++@_notification_sequence\n\t\tpromise = new Promise((resolve)=>@_notification_resolve[id]=resolve)\n\t\tpromise.id = id\n\t\tpromise\n\n\tnotify: ()->\n\t\tfor id in @with_pointer (pointer)->FFI.hakuban_local_exchange_notified(pointer)\n\t\t\t# if you want to put console.log here, you forgot to await\n\t\t\tif @_notification_resolve[id]?\n\t\t\t\t@_notification_resolve[id](true)\n\t\t\t\tdelete @_notification_resolve[id]\n\t\n\treturn_notified: (notification_promise)->\n\t\tdelete @_notification_resolve[notification_promise.id]\n\n\nclass ObjectContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new ObjectObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new ObjectExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\n\nclass TagContractBuilder\n\tconstructor: (@local_exchange, @descriptor) -> null\n\tobserve: (block) -> new TagObserveContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n\texpose: (block) -> new TagExposeContract(@local_exchange, @descriptor).do_and_drop_or_return(block)\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\n\n\nexport class RemoteExchange extends FFIObject\n\n\tconstructor: (local_exchange, upstream, diff_produce, diff_request)->\n\t\tsuper()\n\t\t@local_exchange = local_exchange\n\t\t@local_exchange.with_pointer (local_exchange_pointer)=>\n\t\t\t@initialize_pointer(@local_exchange, FFI.hakuban_remote_exchange_new(local_exchange_pointer, upstream, diff_produce, diff_request), FFI.hakuban_remote_exchange_drop)\n\t\t\n\tnext: ()->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_next_message_to_network(pointer)\n\t\t\tpointer = await new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_pointer_poll, FFI.hakuban_future_returning_pointer_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\t\tpointer\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n\n\tsend: (data)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_remote_exchange_send_message_from_network(pointer, new Uint8Array(data))\n\t\t\tawait new FFI.Future(@local_exchange, @, FFI.hakuban_future_returning_nothing_poll, FFI.hakuban_future_returning_nothing_drop, future_pointer).await_and_drop()\n\t\t\t@local_exchange.notify()\n\t\tcatch error\n\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\tthrow error\n","import * as FFI from \"./ffi.coffee\"\nimport { RemoteExchange } from \"./remote-exchange.coffee\"\n\n\n#TODO: hide private methods\nexport class WebsocketConnector\n\n\tconstructor: (@local_exchange, @uri, @options={})->\n\t\t@_status_change({ connected: false })\n\t\t@socket = undefined\n\t\t@reconnection_timer = undefined\n\t\t@reconnect_on_close = true\n\t\t@connect()\n\n\tstatus: ()->\n\t\tPromise.resolve([ @status, @next_status_promise ])\n\n\t_status_change: (new_status)->\n\t\t@status = new_status\n\t\told_next_status_promise_resolve = @next_status_promise_resolve\n\t\t@next_status_promise = new Promise (@next_status_promise_resolve)=>\n\t\told_next_status_promise_resolve([@status, @next_status_promise]) if old_next_status_promise_resolve?\n\n\tdisconnect: () ->\n\t\t@reconnect_on_close = false\n\t\t@socket.close() if @socket?\n\t\t\n\tconnect: ()=>\n\t\tclearTimeout(@reconnection_timer) if @reconnection_timer?\n\t\t@reconnection_timer = undefined\n\n\t\ttry\n\t\t\t@socket = new WebSocket(@uri)\n\t\tcatch error\n\t\t\tconsole.error('Error connecting to hakuban remote exchange:', error) \n\t\t\t@_status_change({ connected: false, error: error })\n\t\t\treturn false\n\n\t\t@socket.binaryType = \"arraybuffer\"\n\n\t\t@socket.onopen = ()=>\n\t\t\tconsole.debug('Connected to hakuban remote exchange') if @options.debug\n\t\t\t@remote_exchange = new RemoteExchange(@local_exchange, true, true, true)\n\t\t\t@forwarding_to_network_stopped = new Promise (resolve)=>\n\t\t\t\ttry \n\t\t\t\t\twhile @remote_exchange? and (message_pointer = await @remote_exchange.next())?\n\t\t\t\t\t\t@send(FFI.hakuban_message_take(message_pointer))\n\t\t\t\tcatch error\n\t\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t\t@socket.close() if @socket?\n\t\t\t\tresolve()\n\t\t\t@_status_change({ connected: true })\n\n\t\t# this may fire even if onopen never did\n\t\t@socket.onclose = (event)=>\n\t\t\tconsole.debug('Disconnected from hakuban remote exchange') if @options.debug and @remote_exchange?\n\t\t\tconsole.debug('Failed to connect to hakuban remote exchange') if @options.debug and !@remote_exchange?\n\t\t\t@_status_change({ connected: false, disconnect_reason: event.reason, clean_disconnect: event.wasClean })\n\t\t\t@socket = undefined\n\t\t\tif @keep_alive_interval?\n\t\t\t\tclearInterval(@keep_alive_interval) \n\t\t\t\t@keep_alive_interval = null\n\t\t\tif @reconnection_timer?\n\t\t\t\tclearTimeout(@reconnection_timer) \n\t\t\t\t@reconnection_timer = null\n\t\t\tif @remote_exchange?\n\t\t\t\tawait @remote_exchange.drop()\n\t\t\t\tawait @forwarding_to_network_stopped\n\t\t\t\t@forwarding_to_network_stopped = null\n\t\t\t\t@remote_exchange = null\n\t\t\tif @reconnect_on_close\n\t\t\t\t@reconnection_timer = setTimeout(@connect, 1000)\n\n\t\t@socket.onmessage = (event) =>\n\t\t\treturn if not @remote_exchange?\n\t\t\ttry\n\t\t\t\tawait @remote_exchange.send(event.data)\n\t\t\tcatch error\n\t\t\t\tconsole.error('Error processing hakuban connection:', error)\n\t\t\t\t@socket.close() if @socket?\n\n\tping: ()=>\n\t\t@socket.send(new Uint8Array()) if @socket\n\n\tsend: (bytes_to_send)=>\n\t\tif bytes_to_send.length > 0\n\t\t\t@socket.send(bytes_to_send)\n\t\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t\t@keep_alive_interval = setInterval(@ping, 10000)\n","import * as hakuban_js from \"../pkg/hakuban.js\"\nimport { logger_initialize } from \"./logger.coffee\"\n\nexport initialize = (wasm, log_level)->\n\tresult = await hakuban_js.default(wasm)\n\tlogger_initialize(log_level)\n\tresult\n\n\nexport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\nexport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nexport { LocalExchange } from \"./exchange.coffee\"\nexport { ObjectState } from \"./object-state.coffee\"\nexport { WebsocketConnector } from \"./websocket-connector.coffee\"\n"],"names":["FFI.hakuban_logger_initialize","PointerAlreadyDropped","FFI.hakuban_object_descriptor_json","FFI.hakuban_object_descriptor_tags","FFI.unwrap_pointer","FFI.hakuban_object_descriptor_new","FFI.hakuban_object_descriptor_drop","FFI.hakuban_tag_descriptor_new","FFI.hakuban_tag_descriptor_drop","FFI.hakuban_object_state_drop","FFI.hakuban_object_state_version","FFI.hakuban_object_state_synchronized_ago","FFI.hakuban_object_state_format","FFI.hakuban_object_state_data","FFI.hakuban_object_state_new","FFI.hakuban_object_state_stream_drop","FFI.hakuban_object_state_stream_descriptor","FFI.hakuban_object_state_stream_next","FFI.Future","FFI.hakuban_future_returning_pointer_poll","FFI.hakuban_future_returning_pointer_drop","FFI.unwrap_pointer_or_null","FFI.hakuban_object_state_stream_current","FFI.hakuban_object_state_sink_params_drop","FFI.hakuban_object_state_sink_drop","FFI.hakuban_object_state_sink_descriptor","FFI.hakuban_object_state_sink_push","FFI.hakuban_future_returning_nothing_poll","FFI.hakuban_future_returning_nothing_drop","FFI.hakuban_object_state_sink_next","FFI.hakuban_object_state_sink_current","FFI.hakuban_object_state_sink_desynchronize","FFI.hakuban_object_observe_contract_new","FFI.hakuban_object_observe_contract_drop","FFI.hakuban_object_observe_contract_terminate","FFI.hakuban_object_observe_contract_next","FFI.hakuban_object_observe_contract_ready","FFI.hakuban_object_expose_contract_new","FFI.hakuban_object_expose_contract_drop","FFI.hakuban_object_expose_contract_terminate","FFI.hakuban_object_expose_contract_next","FFI.hakuban_object_expose_contract_ready","FFI.hakuban_tag_observe_contract_new","FFI.hakuban_tag_observe_contract_drop","FFI.hakuban_tag_observe_contract_terminate","FFI.hakuban_tag_observe_contract_next","FFI.hakuban_tag_observe_contract_ready","FFI.hakuban_tag_expose_contract_new","FFI.hakuban_tag_expose_contract_drop","FFI.hakuban_tag_expose_contract_terminate","FFI.hakuban_tag_expose_contract_next","FFI.hakuban_tag_expose_contract_ready","FFI.hakuban_local_exchange_new","FFI.hakuban_local_exchange_drop","FFI.hakuban_remote_exchange_new","FFI.hakuban_remote_exchange_drop","FFI.hakuban_remote_exchange_next_message_to_network","FFI.hakuban_remote_exchange_send_message_from_network","FFI.hakuban_message_take","hakuban_js.default"],"mappings":"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"}