hakuban 0.7.3 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"hakuban-with-wasm.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-with-wasm.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_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\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_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\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\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 {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\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 {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\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\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 hakuban_wasm_base64 from \"../pkg/hakuban_bg.wasm\"\nimport { logger_initialize } from \"./logger.coffee\"\n\nexport initialize = (log_level)->\n\t# wow, this is disgusting\n\twasm_string = atob(hakuban_wasm_base64)\n\twasm_array = new Uint8Array(wasm_string.length)\n\tfor i in [0..wasm_string.length]\n\t\twasm_array[i] = wasm_string.charCodeAt(i) \n\tresult = await hakuban_js.default(wasm_array)\n\tlogger_initialize(log_level)\n\tresult\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\n\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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"}
1
+ {"version":3,"file":"hakuban-with-wasm.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/upstream-connection.coffee","coffee/websocket-connector.coffee","coffee/hakuban-with-wasm.coffee"],"sourcesContent":["let wasm;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_export_2.set(idx, obj);\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n * @param {string} default_log_level\n * @returns {WasmResult}\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 WasmResult.__wrap(ret);\n}\n\n/**\n * @param {number} exchange\n * @param {number} descriptor\n * @param {number} capacity\n * @returns {number}\n */\nexport function hakuban_object_expose_contract_new(exchange, descriptor, capacity) {\n const ret = wasm.hakuban_object_expose_contract_new(exchange, descriptor, capacity);\n return ret >>> 0;\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 * @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 >>> 0;\n}\n\n/**\n * @param {number} exchange\n * @param {number} descriptor\n * @returns {number}\n */\nexport function hakuban_object_observe_contract_new(exchange, descriptor) {\n const ret = wasm.hakuban_object_observe_contract_new(exchange, descriptor);\n return ret >>> 0;\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 * @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 >>> 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 >>> 0;\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 >>> 0;\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 >>> 0;\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_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 >>> 0;\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 >>> 0;\n}\n\n/**\n * @param {number} exchange\n * @param {number} descriptor\n * @returns {number}\n */\nexport function hakuban_tag_observe_contract_new(exchange, descriptor) {\n const ret = wasm.hakuban_tag_observe_contract_new(exchange, descriptor);\n return ret >>> 0;\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 * @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 >>> 0;\n}\n\n/**\n * @param {number} exchange_pointer\n * @param {string} local_name\n * @param {string} local_address\n * @returns {number}\n */\nexport function hakuban_upstream_connection_new(exchange_pointer, local_name, local_address) {\n const ptr0 = passStringToWasm0(local_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(local_address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_upstream_connection_new(exchange_pointer, ptr0, len0, ptr1, len1);\n return ret >>> 0;\n}\n\n/**\n * @param {number} wasm_upstream_connection\n */\nexport function hakuban_upstream_connection_drop(wasm_upstream_connection) {\n wasm.hakuban_upstream_connection_drop(wasm_upstream_connection);\n}\n\n/**\n * @param {number} wasm_upstream_connection\n * @returns {number}\n */\nexport function hakuban_upstream_connection_next_message_to_network(wasm_upstream_connection) {\n const ret = wasm.hakuban_upstream_connection_next_message_to_network(wasm_upstream_connection);\n return ret >>> 0;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n/**\n * @param {number} message_pointer\n * @returns {Uint8Array}\n */\nexport function hakuban_message_serialize(message_pointer) {\n const ret = wasm.hakuban_message_serialize(message_pointer);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n * @param {number} wasm_upstream_connection\n * @param {Uint8Array} message_data\n * @returns {number}\n */\nexport function hakuban_upstream_connection_send_message_from_network(wasm_upstream_connection, message_data) {\n const ptr0 = passArray8ToWasm0(message_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.hakuban_upstream_connection_send_message_from_network(wasm_upstream_connection, ptr0, len0);\n return ret >>> 0;\n}\n\nlet cachedBigUint64ArrayMemory0 = null;\n\nfunction getBigUint64ArrayMemory0() {\n if (cachedBigUint64ArrayMemory0 === null || cachedBigUint64ArrayMemory0.byteLength === 0) {\n cachedBigUint64ArrayMemory0 = new BigUint64Array(wasm.memory.buffer);\n }\n return cachedBigUint64ArrayMemory0;\n}\n\nfunction passArray64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8, 8) >>> 0;\n getBigUint64ArrayMemory0().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, 4) >>> 0;\n for (let i = 0; i < array.length; i++) {\n const add = addToExternrefTable0(array[i]);\n getDataViewMemory0().setUint32(ptr + 4 * i, add, true);\n }\n WASM_VECTOR_LEN = array.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 {WasmResult}\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 WasmResult.__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 cachedBigInt64ArrayMemory0 = null;\n\nfunction getBigInt64ArrayMemory0() {\n if (cachedBigInt64ArrayMemory0 === null || cachedBigInt64ArrayMemory0.byteLength === 0) {\n cachedBigInt64ArrayMemory0 = new BigInt64Array(wasm.memory.buffer);\n }\n return cachedBigInt64ArrayMemory0;\n}\n\nfunction getArrayI64FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getBigInt64ArrayMemory0().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 const ret = wasm.hakuban_object_state_version(object_state_pointer);\n var v1 = getArrayI64FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);\n return v1;\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 ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(wasm.__wbindgen_export_2.get(mem.getUint32(i, true)));\n }\n wasm.__externref_drop_slice(ptr, len);\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 const ret = wasm.hakuban_object_state_format(object_state_pointer);\n var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n}\n\n/**\n * @param {number} object_state_pointer\n * @returns {Uint8Array}\n */\nexport function hakuban_object_state_data(object_state_pointer) {\n const ret = wasm.hakuban_object_state_data(object_state_pointer);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n}\n\n/**\n * @param {string} json_string\n * @returns {WasmResult}\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 WasmResult.__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 let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.hakuban_tag_descriptor_json(descriptor_pointer);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\nlet cachedUint32ArrayMemory0 = null;\n\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().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 {WasmResult}\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 WasmResult.__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 let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.hakuban_object_descriptor_json(descriptor_pointer);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n * @param {number} descriptor_pointer\n * @returns {Uint32Array}\n */\nexport function hakuban_object_descriptor_tags(descriptor_pointer) {\n const ret = wasm.hakuban_object_descriptor_tags(descriptor_pointer);\n var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n}\n\n/**\n * @param {number} exchange\n * @param {number} descriptor\n * @param {number} capacity\n * @returns {number}\n */\nexport function hakuban_tag_expose_contract_new(exchange, descriptor, capacity) {\n const ret = wasm.hakuban_tag_expose_contract_new(exchange, descriptor, capacity);\n return ret >>> 0;\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 * @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 >>> 0;\n}\n\n/**\n * @returns {WasmResult}\n */\nexport function hakuban_exchange_new() {\n const ret = wasm.hakuban_exchange_new();\n return WasmResult.__wrap(ret);\n}\n\n/**\n * @param {number} exchange\n */\nexport function hakuban_exchange_drop(exchange) {\n wasm.hakuban_exchange_drop(exchange);\n}\n\nfunction getArrayU64FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getBigUint64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n * @param {number} exchange\n * @returns {BigUint64Array}\n */\nexport function hakuban_exchange_notified(exchange) {\n const ret = wasm.hakuban_exchange_notified(exchange);\n var v1 = getArrayU64FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);\n return v1;\n}\n\n/**\n * @param {number} exchange_pointer\n * @param {number} future_pointer\n * @param {bigint} waker_id\n * @returns {WasmResult}\n */\nexport function hakuban_future_poll(exchange_pointer, future_pointer, waker_id) {\n const ret = wasm.hakuban_future_poll(exchange_pointer, future_pointer, waker_id);\n return WasmResult.__wrap(ret);\n}\n\n/**\n * @param {number} future\n */\nexport function hakuban_future_drop(future) {\n wasm.hakuban_future_drop(future);\n}\n\n/**\n * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}\n */\nexport const WasmResultStatus = Object.freeze({\n Ok: 0, \"0\": \"Ok\",\n Pointer: 1, \"1\": \"Pointer\",\n Pending: 2, \"2\": \"Pending\",\n EndOfStream: 3, \"3\": \"EndOfStream\",\n InvalidString: 4, \"4\": \"InvalidString\",\n InvalidJSON: 5, \"5\": \"InvalidJSON\",\n InvalidURL: 6, \"6\": \"InvalidURL\",\n InvalidLogLevel: 7, \"7\": \"InvalidLogLevel\",\n LoggerInitializationError: 8, \"8\": \"LoggerInitializationError\",\n ConnectionTerminated: 9, \"9\": \"ConnectionTerminated\",\n});\n\nconst WasmResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_wasmresult_free(ptr >>> 0, 1));\n\nexport class WasmResult {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(WasmResult.prototype);\n obj.__wbg_ptr = ptr;\n WasmResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n WasmResultFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_wasmresult_free(ptr, 0);\n }\n /**\n * @returns {WasmResultStatus}\n */\n get status() {\n const ret = wasm.__wbg_get_wasmresult_status(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {WasmResultStatus} arg0\n */\n set status(arg0) {\n wasm.__wbg_set_wasmresult_status(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {number | undefined}\n */\n get pointer() {\n const ret = wasm.__wbg_get_wasmresult_pointer(this.__wbg_ptr);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @param {number | null} [arg0]\n */\n set pointer(arg0) {\n wasm.__wbg_set_wasmresult_pointer(this.__wbg_ptr, isLikeNone(arg0) ? 0x100000001 : (arg0) >>> 0);\n }\n /**\n * @returns {string | undefined}\n */\n get error_message() {\n const ret = wasm.__wbg_get_wasmresult_error_message(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * @param {string | null} [arg0]\n */\n set error_message(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_wasmresult_error_message(this.__wbg_ptr, ptr0, len0);\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_debug_3cb59063b29f58c1 = function(arg0) {\n console.debug(arg0);\n };\n imports.wbg.__wbg_error_524f506f44df1645 = function(arg0) {\n console.error(arg0);\n };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbg_info_3daf2e093e091b66 = function(arg0) {\n console.info(arg0);\n };\n imports.wbg.__wbg_log_c222819a41e063d3 = function(arg0) {\n console.log(arg0);\n };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n const ret = new Error();\n return ret;\n };\n imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg_now_2c95c9de01293173 = function(arg0) {\n const ret = arg0.now();\n return ret;\n };\n imports.wbg.__wbg_performance_7a3ffd0b17f663ad = function(arg0) {\n const ret = arg0.performance;\n return ret;\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_warn_4ca3906c248c47c4 = function(arg0) {\n console.warn(arg0);\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_export_2;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n };\n imports.wbg.__wbindgen_string_get = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedBigInt64ArrayMemory0 = null;\n cachedBigUint64ArrayMemory0 = null;\n cachedDataViewMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('hakuban_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","import { log_level } from \"./logger.coffee\"\n\nexport * from \"../pkg/hakuban.js\"\n\nexport unwrap_pointer = (result)->\n\tif result.status == 1\n\t\tresult.pointer\n\telse\n\t\tthrow \"hakuban wasm call failed: \"+result.status\n\n\t\t\n\nexport class Future\n\n\tconstructor: (@exchange, @future_owner, @poll_function, @drop_function, @_pointer, @debug_description)->\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 = @exchange.notified()\n\t\t\t\tconsole.debug(\"polling \" + @debug_description, notified.id) if @debug_description and log_level() == \"trace\"\n\t\t\t\tresult = @exchange.with_pointer (exchange_pointer)=> @poll_function(exchange_pointer, @_pointer, notified.id)\n\t\t\t\tconsole.debug(\"polled \" + @debug_description, notified.id, result.status) if @debug_description and log_level() == \"trace\"\n\t\t\t\t@exchange.notify()\n\t\t\t\tswitch result.status\n\t\t\t\t\twhen 0 # ok\n\t\t\t\t\t\treturn true\n\t\t\t\t\twhen 1 # pointer\n\t\t\t\t\t\treturn result.pointer\n\t\t\t\t\twhen 2 # 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 3 # end of stream\n\t\t\t\t\t\treturn null\n\t\t\t\t\telse\n\t\t\t\t\t\tconsole.error(result.error_message)\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@exchange.return_notified(notified) if notified?\n\n","import * as FFI from \"./ffi.coffee\"\n\nlogger_initialized = false\nlogger_log_level = undefined\n\nexport logger_initialize = (log_level, skip_if_already_initialized=false) ->\n\tif !logger_initialized || !skip_if_already_initialized \n\t\tresult = FFI.hakuban_logger_initialize(log_level)\n\t\tif result.status == 0\n\t\t\tlogger_initialized = true\n\t\t\tlogger_log_level = log_level\n\t\telse\n\t\t\tconsole.error \"Failed to initialize logger, error \" + result.error_message\n\nexport log_level = () -> logger_log_level\n\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\ndo_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: (@_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@_exchange.notify() if @_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\n\t@from_pointer: (_exchange, pointer)->\n\t\tnew ObjectState(null, null, null, null, pointer)\n\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","import * as FFI from \"./ffi.coffee\"\nimport { PointerAlreadyDropped } from \"./ffi-object.coffee\"\n\nexport class Stream\n\n\t@mixin: (new_object, _ffi_next, _item_constructor, debug_description)->\n\n\t\t# Rust StreamExt-like methods\n\n\t\tnew_object.next = (block)->\n\t\t\ttry\n\t\t\t\tfuture_pointer = @with_pointer (pointer)=>_ffi_next(pointer)\n\t\t\t\tpointer = await new FFI.Future(@exchange, @, FFI.hakuban_future_poll, FFI.hakuban_future_drop, future_pointer, debug_description+\".next\").await_and_drop()\n\t\t\t\tif pointer?\n\t\t\t\t\tif _item_constructor?\n\t\t\t\t\t\tawait new _item_constructor(@exchange, pointer).do_and_drop_or_return(block)\n\t\t\t\t\telse \n\t\t\t\t\t\tpointer\n\t\t\t\telse\n\t\t\t\t\tnull\n\t\t\tcatch error\n\t\t\t\treturn null if error instanceof PointerAlreadyDropped\n\t\t\t\tthrow error\n\n\n\t\tnew_object.for_each_concurrent = (block)->\n\n\t\t\t#TODO: simplify when we get rid of coffee\n\t\t\ttask = (tasks, id, item)->\n\t\t\t\tnew Promise (_resolve)=>\n\t\t\t\t\ttry\n\t\t\t\t\t\tawait block(item)\n\t\t\t\t\tfinally\n\t\t\t\t\t\tawait item.drop()\n\t\t\t\t\t\tdelete tasks[id]\n\n\t\t\ttasks = {}\n\t\t\tsequence = 0\n\t\t\tfor await item from @\n\t\t\t\tid = ++sequence\n\t\t\t\ttasks[id] = task(tasks, id, item)\n\t\t\t\t\n\t\t\tawait Promise.all(Object.values(tasks))\n\n\n\t\tnew_object.for_each = (block)->\n\t\t\tfor await item from @\n\t\t\t\ttry\n\t\t\t\t\tawait block(item)\n\t\t\t\tfinally\n\t\t\t\t\tawait item.drop()\n\n\n\t\t# JS AsyncIterator methods\n\n\t\tclass StreamAsyncIterator\n\t\n\t\t\tconstructor: (stream)->\n\n\t\t\t\t@next = ()->\n\t\t\t\t\titem = await stream.next()\n\t\t\t\t\tif item?\n\t\t\t\t\t\t{ done: false, value: item }\n\t\t\t\t\telse\n\t\t\t\t\t\t{ done: true }\n\n\t\t\t\t@return = (value)->\n\t\t\t\t\tstream.drop()\n\t\t\t\t\t{ done: true, value: value }\n\n\t\tnew_object[Symbol.asyncIterator]=()-> new StreamAsyncIterator(@)\n\n\n\n\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { ObjectState } from \"./object-state.coffee\"\nimport { Stream } from \"./stream.coffee\"\n\n\nexport class ObjectStateStream extends FFIObject\n\n\tconstructor: (exchange, pointer)->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_object_state_stream_next, ((_exchange, pointer)->new ObjectState(null, null, null, null, pointer)), \"ObjectStateStream\")\n\t\t@exchange = exchange\n\t\t@initialize_pointer(@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","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\nimport { ObjectDescriptor } from \"./descriptor.coffee\"\nimport { Stream } from \"./stream.coffee\"\n\n\nexport class ObjectStateSinkParams extends FFIObject\n\n\tconstructor: (_exchange,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: (exchange, pointer)->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_object_state_sink_next, ObjectStateSinkParams)\n\t\t@exchange = exchange\n\t\t@initialize_pointer(@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(@exchange, @, FFI.hakuban_future_poll, FFI.hakuban_future_drop, future_pointer).await_and_drop()\n\t\t\ttrue\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 { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nimport { ObjectStateStream } from \"./object-state-stream.coffee\"\nimport { ObjectStateSink } from \"./object-state-sink.coffee\"\nimport { Stream } from \"./stream.coffee\"\n\n\t\nexport class ObjectObserveContract extends FFIObject\n\n\tconstructor: (exchange, descriptor) ->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_object_observe_contract_next, ObjectStateStream)\n\t\t@exchange = 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@exchange.with_pointer (exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\t\n\t\t\t\t@initialize_pointer(@exchange, FFI.hakuban_object_observe_contract_new(exchange_pointer, descriptor_pointer), FFI.hakuban_object_observe_contract_drop)\n\t\t@exchange.notify()\n\t\t\n\n\nexport class ObjectExposeContract extends FFIObject\n\n\tconstructor: (exchange, descriptor, capacity)->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_object_expose_contract_next, ObjectStateSink)\n\t\t@exchange = 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@exchange.with_pointer (exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@exchange, FFI.hakuban_object_expose_contract_new(exchange_pointer, descriptor_pointer, capacity), FFI.hakuban_object_expose_contract_drop)\n\t\t@exchange.notify()\n\n\n\nexport class TagObserveContract extends FFIObject\n\n\tconstructor: (exchange, descriptor) ->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_tag_observe_contract_next, ObjectStateStream)\n\t\t@exchange = exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@exchange.with_pointer (exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@exchange, FFI.hakuban_tag_observe_contract_new(exchange_pointer, descriptor_pointer), FFI.hakuban_tag_observe_contract_drop)\n\t\t@exchange.notify()\n\n\n\nexport class TagExposeContract extends FFIObject\n\n\tconstructor: (exchange, descriptor, capacity) ->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_tag_expose_contract_next, ObjectStateSink)\n\t\t@exchange = exchange\n\t\t@descriptor = descriptor\n\t\t@descriptor = new TagDescriptor(@descriptor) if not (@descriptor instanceof TagDescriptor)\n\t\t@exchange.with_pointer (exchange_pointer)=>\n\t\t\t@descriptor.with_pointer (descriptor_pointer)=>\n\t\t\t\t@initialize_pointer(@exchange, FFI.hakuban_tag_expose_contract_new(exchange_pointer, descriptor_pointer, capacity), FFI.hakuban_tag_expose_contract_drop)\n\t\t@exchange.notify()\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 Exchange 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_exchange_new(@name)),FFI.hakuban_exchange_drop)\n\n\tobject_observe_contract: (descriptor_or_tags, json_or_nothing) ->\n\t\tnew ObjectObserveContractBuilder(@, [descriptor_or_tags, json_or_nothing])\n\n\tobject_expose_contract: (descriptor_or_tags, json_or_nothing) ->\n\t\tnew ObjectExposeContractBuilder(@, [descriptor_or_tags, json_or_nothing])\n\n\ttag_observe_contract: (descriptor) ->\n\t\tnew TagObserveContractBuilder(@, descriptor)\n\n\ttag_expose_contract: (descriptor) ->\n\t\tnew TagExposeContractBuilder(@, 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_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 ObjectObserveContractBuilder\n\tconstructor: (@exchange, @descriptor) -> null\n\tbuild: (block) -> new ObjectObserveContract(@exchange, @descriptor).do_and_drop_or_return(block)\n\nclass ObjectExposeContractBuilder\n\tconstructor: (@exchange, @descriptor) -> @capacity = 1\n\twith_capacity: (capacity) -> @capacity = capacity\n\tbuild: (block) -> new ObjectExposeContract(@exchange, @descriptor, @capacity).do_and_drop_or_return(block)\n\n\nclass TagObserveContractBuilder\n\tconstructor: (@exchange, @descriptor) -> null\n\tbuild: (block) -> new TagObserveContract(@exchange, @descriptor).do_and_drop_or_return(block)\n\nclass TagExposeContractBuilder\n\tconstructor: (@exchange, @descriptor) -> @capacity = 1\n\twith_capacity: (capacity) -> @capacity = capacity\n\tbuild: (block) -> new TagExposeContract(@exchange, @descriptor, @capacity).do_and_drop_or_return(block)\n","import * as FFI from \"./ffi.coffee\"\nimport { FFIObject, PointerAlreadyDropped } from \"./ffi-object.coffee\"\nimport { Stream } from \"./stream.coffee\"\n\n\nexport class UpstreamConnection extends FFIObject\n\n\tconstructor: (exchange, local_name, local_address)->\n\t\tsuper()\n\t\tStream.mixin(@, FFI.hakuban_upstream_connection_next_message_to_network, undefined, \"UpstreamConnection\")\n\t\t@exchange = exchange\n\t\t@exchange.with_pointer (exchange_pointer)=>\n\t\t\t@initialize_pointer(@exchange, FFI.hakuban_upstream_connection_new(exchange_pointer, local_name, local_address), FFI.hakuban_upstream_connection_drop)\n\n\tsend: (data)->\n\t\ttry\n\t\t\tfuture_pointer = @with_pointer (pointer)=>FFI.hakuban_upstream_connection_send_message_from_network(pointer, new Uint8Array(data))\n\t\t\tawait new FFI.Future(@exchange, @, FFI.hakuban_future_poll, FFI.hakuban_future_drop, future_pointer, \"UpstreamConnection.send\").await_and_drop()\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 { UpstreamConnection } from \"./upstream-connection.coffee\"\n\n\n#TODO: hide private methods\n#TODO: implement timeout\n#TODO: make timeout and keep-alive interval configurable\n\nexport class WebsocketConnector\n\n\tconstructor: (@exchange, @uri)->\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\t#TOOD: make this iterable\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 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 = (event)=>\n\t\t\tconsole.debug('Connected to remote exchange')\n\t\t\t@upstream_connection = new UpstreamConnection(@exchange, \"js-client\", \"unknown\")\n\t\t\t@forwarding_to_network_stopped = new Promise (resolve)=>\n\t\t\t\ttry \n\t\t\t\t\tfor await message_pointer from @upstream_connection\n\t\t\t\t\t\t@send(FFI.hakuban_message_serialize(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 remote exchange')\n\t\t\tconsole.debug('Failed to connect to 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 @upstream_connection?\n\t\t\t\tawait @upstream_connection.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@upstream_connection = 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 (event.data.byteLength == 0) or (event.data.length == 0) or (typeof event.data == 'string') or (event.data instanceof String)\n\t\t\treturn if not @upstream_connection?\n\t\t\ttry\n\t\t\t\tawait @upstream_connection.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(\".\") if @socket?\n\n\tsend: (bytes_to_send)=>\n\t\t@socket.send(bytes_to_send)\n\t\tclearInterval(@keep_alive_interval) if @keep_alive_interval\n\t\t@keep_alive_interval = setInterval(@ping, 10000)\n","import * as hakuban_js from \"../pkg/hakuban.js\"\nimport hakuban_wasm_gzip_base64 from \"../hakuban.wasm.gz\"\nimport { logger_initialize } from \"./logger.coffee\"\n\nexport initialize = (log_level)->\n\twasm_array = new Blob(await Array.fromAsync((await fetch('data:;base64,'+hakuban_wasm_gzip_base64)).body.pipeThrough(new DecompressionStream(\"gzip\")))).arrayBuffer()\n\tresult = await hakuban_js.default(wasm_array)\n\tlogger_initialize(log_level)\n\tresult\n\nexport { ObjectObserveContract, ObjectExposeContract, TagObserveContract, TagExposeContract } from \"./contract.coffee\"\nexport { ObjectDescriptor, TagDescriptor } from \"./descriptor.coffee\"\nexport { Exchange } from \"./exchange.coffee\"\nexport { ObjectState } from \"./object-state.coffee\"\nexport { WebsocketConnector } from \"./websocket-connector.coffee\"\n\n\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.Future","FFI.hakuban_future_poll","FFI.hakuban_future_drop","FFI.hakuban_object_state_stream_next","FFI.hakuban_object_state_stream_drop","FFI.hakuban_object_state_stream_descriptor","FFI.hakuban_object_state_sink_params_drop","FFI.hakuban_object_state_sink_next","FFI.hakuban_object_state_sink_drop","FFI.hakuban_object_state_sink_descriptor","FFI.hakuban_object_state_sink_push","FFI.hakuban_object_observe_contract_next","FFI.hakuban_object_observe_contract_new","FFI.hakuban_object_observe_contract_drop","FFI.hakuban_object_expose_contract_next","FFI.hakuban_object_expose_contract_new","FFI.hakuban_object_expose_contract_drop","FFI.hakuban_tag_observe_contract_next","FFI.hakuban_tag_observe_contract_new","FFI.hakuban_tag_observe_contract_drop","FFI.hakuban_tag_expose_contract_next","FFI.hakuban_tag_expose_contract_new","FFI.hakuban_tag_expose_contract_drop","FFI.hakuban_exchange_new","FFI.hakuban_exchange_drop","FFI.hakuban_upstream_connection_next_message_to_network","FFI.hakuban_upstream_connection_new","FFI.hakuban_upstream_connection_drop","FFI.hakuban_upstream_connection_send_message_from_network","FFI.hakuban_message_serialize","hakuban_js.default"],"mappings":"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"}