@sladg/apex-state 4.0.0 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -215
- package/dist/index.d.ts +264 -363
- package/dist/index.js +2 -3404
- package/dist/index.js.map +1 -1
- package/dist/preload.d.ts +2 -0
- package/dist/preload.js +3 -0
- package/dist/preload.js.map +1 -0
- package/dist/testing/index.js +2 -2015
- package/dist/testing/index.js.map +1 -1
- package/package.json +12 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../rust/pkg/apex_state_wasm_bg.js","wasm-module:/home/runner/work/apex-state/apex-state/rust/pkg/apex_state_wasm_bg.wasm","../rust/pkg/apex_state_wasm.js","../src/wasm/lifecycle.tsx","../src/utils/json.ts","../src/wasm/bridge.ts","../src/preload.ts"],"sourcesContent":["export function init() {\n wasm.init();\n}\n\n/**\n * Create a new isolated pipeline instance. Returns the pipeline ID.\n *\n * Accepts an optional options object with:\n * - `debug` (bool): Enable WASM-side trace collection from creation.\n * @param {any | null} [options]\n * @returns {number}\n */\nexport function pipeline_create(options) {\n const ret = wasm.pipeline_create(isLikeNone(options) ? 0 : addToExternrefTable0(options));\n return ret >>> 0;\n}\n\n/**\n * Destroy a pipeline instance, freeing all its state.\n * @param {number} pipeline_id\n */\nexport function pipeline_destroy(pipeline_id) {\n wasm.pipeline_destroy(pipeline_id);\n}\n\n/**\n * Reset the entire pipeline to a fresh state (testing only).\n *\n * Clears all internal state: shadow, registrations, graphs, router, BoolLogic registry.\n * Call this between tests to ensure isolation.\n * @param {number} pipeline_id\n */\nexport function pipeline_reset(pipeline_id) {\n wasm.pipeline_reset(pipeline_id);\n}\n\n/**\n * Reset ALL pipelines and the ID counter (testing only).\n */\nexport function pipeline_reset_all() {\n wasm.pipeline_reset_all();\n}\n\n/**\n * Process a batch of state changes through the full pipeline (EP17).\n *\n * ```text\n * input changes\n * │\n * ▼\n * ┌──────────────────┐\n * │ diff pre-pass │ ← filter no-ops against shadow\n * └────────┬─────────┘\n * ▼\n * ┌──────────────────┐\n * │ propagation │ ← aggregation → sync → flip → clear → derived\n * └────────┬─────────┘\n * ▼\n * ┌──────────────────┐\n * │ BoolLogic eval │ ← reverse index → re-evaluate affected expressions\n * └────────┬─────────┘\n * ▼\n * ┌──────────────────┐\n * │ listener waves │ ← externref dispatch via JsFn::call2, wave-by-wave\n * └────────┬─────────┘\n * ▼\n * ProcessResult { changes, listener_errors }\n * ```\n *\n * Input: JS array of `{ path: \"...\", value_json: \"...\" }`\n * Output: JS object `{ changes: [...], listener_errors: [...] }`\n * @param {number} pipeline_id\n * @param {any} changes\n * @returns {any}\n */\nexport function process_changes(pipeline_id, changes) {\n const ret = wasm.process_changes(pipeline_id, changes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * Register a BoolLogic expression. Returns logic_id for cleanup.\n *\n * - `output_path`: full concern path, e.g. `_concerns.user.email.disabledWhen`\n * - `tree_json`: JSON string of the BoolLogic tree, e.g. `{\"IS_EQUAL\": [\"user.role\", \"admin\"]}`\n * @param {number} pipeline_id\n * @param {string} output_path\n * @param {string} tree_json\n * @returns {number}\n */\nexport function register_boollogic(pipeline_id, output_path, tree_json) {\n const ptr0 = passStringToWasm0(output_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(tree_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.register_boollogic(pipeline_id, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ret[0] >>> 0;\n}\n\n/**\n * Register expressions and listener-wrapped subscribers.\n *\n * Expressions (logic, value) produce changes via evaluation.\n * Subscribers registered here with function refs are dispatched as listeners\n * (wave 200 by default) via externref — WASM treats them identically to listeners.\n *\n * `subscriber_fns`: `{ [subscriber_id: string]: [name: string, Function] }` — same format as listener_fns\n * @param {number} pipeline_id\n * @param {any} registration\n * @param {Map<any, any>} subscriber_fns\n * @returns {any}\n */\nexport function register_concerns(pipeline_id, registration, subscriber_fns) {\n const ret = wasm.register_concerns(pipeline_id, registration, subscriber_fns);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * Register all side effects at once (sync, flip, aggregation, listeners).\n *\n * Consolidates sync pairs, flip pairs, aggregations, and listeners into a single WASM call.\n * Computes initial changes from shadow state and returns listener IDs for cleanup tracking.\n *\n * **Input JSON Format:**\n * ```json\n * {\n * \"registration_id\": \"my-effects\",\n * \"sync_pairs\": [[\"user.email\", \"profile.email\"], [\"user.name\", \"profile.name\"]],\n * \"flip_pairs\": [[\"settings.darkMode\", \"settings.lightMode\"]],\n * \"aggregation_pairs\": [[\"totals.sum\", \"items.0.price\"], [\"totals.sum\", \"items.1.price\"]],\n * \"listeners\": [\n * {\"subscriber_id\": 100, \"topic_path\": \"user\", \"scope_path\": \"user\"},\n * {\"subscriber_id\": 101, \"topic_path\": \"settings.darkMode\", \"scope_path\": \"settings\"}\n * ]\n * }\n * ```\n *\n * **Output JSON Format:**\n * ```json\n * {\n * \"sync_changes\": [\n * {\"path\": \"profile.email\", \"value_json\": \"\\\"alice@example.com\\\"\"},\n * {\"path\": \"profile.name\", \"value_json\": \"\\\"Alice\\\"\"}\n * ],\n * \"aggregation_changes\": [\n * {\"path\": \"totals.sum\", \"value_json\": \"100\"}\n * ],\n * \"registered_listener_ids\": [100, 101]\n * }\n * ```\n *\n * **Example Behavior:**\n * - **sync_changes**: Computed from shadow state. If user.email=\"alice@test.com\" and\n * profile.email is empty, returns change to set profile.email to match.\n * - **aggregation_changes**: Reads source paths from shadow state and computes initial\n * target value. If items exist, aggregates their values (e.g., sums prices).\n * - **registered_listener_ids**: Echo of the input subscriber_ids for cleanup tracking.\n * - **flip_pairs**: Registered silently, no changes returned (used for bidirectional toggling).\n *\n * All registrations happen atomically in a single WASM call, reducing JS↔WASM boundary crossings.\n * @param {number} pipeline_id\n * @param {any} registration\n * @param {Map<any, any>} subscriber_fns\n * @returns {any}\n */\nexport function register_side_effects(pipeline_id, registration, subscriber_fns) {\n const ret = wasm.register_side_effects(pipeline_id, registration, subscriber_fns);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * Dump shadow state as JSON (debug/testing).\n * @param {number} pipeline_id\n * @returns {string}\n */\nexport function shadow_dump(pipeline_id) {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.shadow_dump(pipeline_id);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Initialize shadow state from a JSON string (produced by fastStringify on the JS side).\n *\n * Uses the JSON string path so that `undefined` values encoded as the\n * `__APEX_UNDEFINED__` sentinel survive the boundary crossing consistently\n * (serde-wasm-bindgen would convert JS `undefined` to `null` instead).\n * @param {number} pipeline_id\n * @param {string} state_json\n */\nexport function shadow_init(pipeline_id, state_json) {\n const ptr0 = passStringToWasm0(state_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.shadow_init(pipeline_id, ptr0, len0);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n}\n\n/**\n * Unregister a BoolLogic expression by its logic_id.\n * @param {number} pipeline_id\n * @param {number} logic_id\n */\nexport function unregister_boollogic(pipeline_id, logic_id) {\n const ret = wasm.unregister_boollogic(pipeline_id, logic_id);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n}\n\n/**\n * Unregister concerns by registration ID (placeholder).\n *\n * Currently a no-op. In future, could track registrations for bulk cleanup.\n * @param {number} pipeline_id\n * @param {string} registration_id\n */\nexport function unregister_concerns(pipeline_id, registration_id) {\n const ptr0 = passStringToWasm0(registration_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.unregister_concerns(pipeline_id, ptr0, len0);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n}\n\n/**\n * Unregister side effects by registration ID.\n *\n * Returns the same `SideEffectsResult` shape as register (with empty change arrays).\n * `listener_names` reflects all remaining listeners after removal.\n * @param {number} pipeline_id\n * @param {string} registration_id\n * @returns {any}\n */\nexport function unregister_side_effects(pipeline_id, registration_id) {\n const ptr0 = passStringToWasm0(registration_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.unregister_side_effects(pipeline_id, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\nexport function __wbg_Error_8c4e43fe74559d73(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n}\nexport function __wbg_Number_04624de7d0e8332d(arg0) {\n const ret = Number(arg0);\n return ret;\n}\nexport function __wbg_String_8f0eb39a4a4c2f66(arg0, arg1) {\n const ret = String(arg1);\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}\nexport function __wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2(arg0, arg1) {\n const v = arg1;\n const ret = typeof(v) === 'bigint' ? v : undefined;\n getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n}\nexport function __wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n}\nexport function __wbg___wbindgen_debug_string_0bc8482c6e3508ae(arg0, arg1) {\n const ret = debugString(arg1);\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}\nexport function __wbg___wbindgen_in_47fa6863be6f2f25(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n}\nexport function __wbg___wbindgen_is_bigint_31b12575b56f32fc(arg0) {\n const ret = typeof(arg0) === 'bigint';\n return ret;\n}\nexport function __wbg___wbindgen_is_function_0095a73b8b156f76(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n}\nexport function __wbg___wbindgen_is_null_ac34f5003991759a(arg0) {\n const ret = arg0 === null;\n return ret;\n}\nexport function __wbg___wbindgen_is_object_5ae8e5880f2c1fbd(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n}\nexport function __wbg___wbindgen_is_string_cd444516edc5b180(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n}\nexport function __wbg___wbindgen_is_undefined_9e4d92534c42d778(arg0) {\n const ret = arg0 === undefined;\n return ret;\n}\nexport function __wbg___wbindgen_jsval_eq_11888390b0186270(arg0, arg1) {\n const ret = arg0 === arg1;\n return ret;\n}\nexport function __wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n}\nexport function __wbg___wbindgen_number_get_8ff4255516ccad3e(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n}\nexport function __wbg___wbindgen_string_get_72fb696202c56729(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}\nexport function __wbg___wbindgen_throw_be289d5034ed271b(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n}\nexport function __wbg_call_389efe28435a9388() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n}, arguments); }\nexport function __wbg_call_812d25f1510c13c8() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.call(arg1, arg2, arg3);\n return ret;\n}, arguments); }\nexport function __wbg_done_57b39ecd9addfe81(arg0) {\n const ret = arg0.done;\n return ret;\n}\nexport function __wbg_entries_58c7934c745daac7(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n}\nexport function __wbg_error_7534b8e9a36f1ab4(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}\nexport function __wbg_from_bddd64e7d5ff6941(arg0) {\n const ret = Array.from(arg0);\n return ret;\n}\nexport function __wbg_get_9b94d73e6221f75c(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n}\nexport function __wbg_get_b3ed3ad4be2bc8ac() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n}, arguments); }\nexport function __wbg_get_c60162cf03da5a6e(arg0, arg1) {\n const ret = arg0.get(arg1);\n return ret;\n}\nexport function __wbg_get_with_ref_key_1dc361bd10053bfe(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n}\nexport function __wbg_instanceof_ArrayBuffer_c367199e2fa2aa04(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n}\nexport function __wbg_instanceof_Map_53af74335dec57f4(arg0) {\n let result;\n try {\n result = arg0 instanceof Map;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n}\nexport function __wbg_instanceof_Uint8Array_9b9075935c74707c(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n}\nexport function __wbg_isArray_d314bb98fcf08331(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n}\nexport function __wbg_isSafeInteger_bfbc7332a9768d2a(arg0) {\n const ret = Number.isSafeInteger(arg0);\n return ret;\n}\nexport function __wbg_iterator_6ff6560ca1568e55() {\n const ret = Symbol.iterator;\n return ret;\n}\nexport function __wbg_keys_0eee252dfbfa253e(arg0) {\n const ret = arg0.keys();\n return ret;\n}\nexport function __wbg_length_32ed9a279acd054c(arg0) {\n const ret = arg0.length;\n return ret;\n}\nexport function __wbg_length_35a7bace40f36eac(arg0) {\n const ret = arg0.length;\n return ret;\n}\nexport function __wbg_name_07a54d72942d5492(arg0) {\n const ret = arg0.name;\n return ret;\n}\nexport function __wbg_new_361308b2356cecd0() {\n const ret = new Object();\n return ret;\n}\nexport function __wbg_new_3eb36ae241fe6f44() {\n const ret = new Array();\n return ret;\n}\nexport function __wbg_new_8a6f238a6ece86ea() {\n const ret = new Error();\n return ret;\n}\nexport function __wbg_new_dca287b076112a51() {\n const ret = new Map();\n return ret;\n}\nexport function __wbg_new_dd2b680c8bf6ae29(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n}\nexport function __wbg_new_no_args_1c7c842f08d00ebb(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n}\nexport function __wbg_new_with_length_1763c527b2923202(arg0) {\n const ret = new Array(arg0 >>> 0);\n return ret;\n}\nexport function __wbg_next_3482f54c49e8af19() { return handleError(function (arg0) {\n const ret = arg0.next();\n return ret;\n}, arguments); }\nexport function __wbg_next_418f80d8f5303233(arg0) {\n const ret = arg0.next;\n return ret;\n}\nexport function __wbg_now_2c95c9de01293173(arg0) {\n const ret = arg0.now();\n return ret;\n}\nexport function __wbg_parse_708461a1feddfb38() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return ret;\n}, arguments); }\nexport function __wbg_performance_7a3ffd0b17f663ad(arg0) {\n const ret = arg0.performance;\n return ret;\n}\nexport function __wbg_prototypesetcall_bdcdcc5842e4d77d(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n}\nexport function __wbg_push_8ffdcb2063340ba5(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n}\nexport function __wbg_set_1eb0999cf5d27fc8(arg0, arg1, arg2) {\n const ret = arg0.set(arg1, arg2);\n return ret;\n}\nexport function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n}\nexport function __wbg_set_6cb8631f80447a67() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n}, arguments); }\nexport function __wbg_set_f43e577aea94465b(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n}\nexport function __wbg_stack_0ed75d68575b0f3c(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}\nexport function __wbg_static_accessor_GLOBAL_12837167ad935116() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}\nexport function __wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}\nexport function __wbg_static_accessor_SELF_a621d3dfbb60d0ce() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}\nexport function __wbg_static_accessor_WINDOW_f8727f0cf888e0bd() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}\nexport function __wbg_stringify_8d1cc6ff383e8bae() { return handleError(function (arg0) {\n const ret = JSON.stringify(arg0);\n return ret;\n}, arguments); }\nexport function __wbg_value_0546255b415e96c1(arg0) {\n const ret = arg0.value;\n return ret;\n}\nexport function __wbindgen_cast_0000000000000001(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n}\nexport function __wbindgen_cast_0000000000000002(arg0) {\n // Cast intrinsic for `I64 -> Externref`.\n const ret = arg0;\n return ret;\n}\nexport function __wbindgen_cast_0000000000000003(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n}\nexport function __wbindgen_cast_0000000000000004(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n}\nexport function __wbindgen_init_externref_table() {\n const table = wasm.__wbindgen_externrefs;\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}\nexport function __wbindgen_object_is_undefined(arg0) {\n const ret = arg0 === undefined;\n return ret;\n}\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction 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\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\n\nlet wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n","\n import wasmModule from \"/home/runner/work/apex-state/apex-state/rust/pkg/apex_state_wasm_bg.wasm\";\n\n \n // Import from JS modules\n import { __wbindgen_object_is_undefined, __wbg_new_8a6f238a6ece86ea, __wbg_stack_0ed75d68575b0f3c, __wbg_error_7534b8e9a36f1ab4, __wbg_performance_7a3ffd0b17f663ad, __wbg_now_2c95c9de01293173, __wbg_get_with_ref_key_1dc361bd10053bfe, __wbg_set_3f1d0b984ed272ed, __wbg_String_8f0eb39a4a4c2f66, __wbg_new_dca287b076112a51, __wbg_new_3eb36ae241fe6f44, __wbg_new_361308b2356cecd0, __wbg_new_no_args_1c7c842f08d00ebb, __wbg_new_dd2b680c8bf6ae29, __wbg_length_32ed9a279acd054c, __wbg_prototypesetcall_bdcdcc5842e4d77d, __wbg_done_57b39ecd9addfe81, __wbg_value_0546255b415e96c1, __wbg_instanceof_Map_53af74335dec57f4, __wbg_instanceof_Uint8Array_9b9075935c74707c, __wbg_instanceof_ArrayBuffer_c367199e2fa2aa04, __wbg_get_c60162cf03da5a6e, __wbg_set_1eb0999cf5d27fc8, __wbg_keys_0eee252dfbfa253e, __wbg_parse_708461a1feddfb38, __wbg_stringify_8d1cc6ff383e8bae, __wbg_new_with_length_1763c527b2923202, __wbg_get_9b94d73e6221f75c, __wbg_set_f43e577aea94465b, __wbg_from_bddd64e7d5ff6941, __wbg_length_35a7bace40f36eac, __wbg_push_8ffdcb2063340ba5, __wbg_isArray_d314bb98fcf08331, __wbg_isSafeInteger_bfbc7332a9768d2a, __wbg_entries_58c7934c745daac7, __wbg_iterator_6ff6560ca1568e55, __wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f, __wbg_call_389efe28435a9388, __wbg_static_accessor_SELF_a621d3dfbb60d0ce, __wbg_static_accessor_GLOBAL_12837167ad935116, __wbg_static_accessor_WINDOW_f8727f0cf888e0bd, __wbg_get_b3ed3ad4be2bc8ac, __wbg_set_6cb8631f80447a67, __wbg_name_07a54d72942d5492, __wbg_call_812d25f1510c13c8, __wbg_next_418f80d8f5303233, __wbg_next_3482f54c49e8af19, __wbg___wbindgen_string_get_72fb696202c56729, __wbg___wbindgen_number_get_8ff4255516ccad3e, __wbg___wbindgen_in_47fa6863be6f2f25, __wbg___wbindgen_throw_be289d5034ed271b, __wbg___wbindgen_is_null_ac34f5003991759a, __wbg___wbindgen_jsval_eq_11888390b0186270, __wbg_Number_04624de7d0e8332d, __wbg_Error_8c4e43fe74559d73, __wbg___wbindgen_is_bigint_31b12575b56f32fc, __wbg___wbindgen_is_object_5ae8e5880f2c1fbd, __wbg___wbindgen_is_string_cd444516edc5b180, __wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25, __wbg___wbindgen_is_function_0095a73b8b156f76, __wbg___wbindgen_is_undefined_9e4d92534c42d778, __wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811, __wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2, __wbg___wbindgen_debug_string_0bc8482c6e3508ae, __wbindgen_init_externref_table, __wbindgen_cast_0000000000000001, __wbindgen_cast_0000000000000002, __wbindgen_cast_0000000000000003, __wbindgen_cast_0000000000000004 } from \"./apex_state_wasm_bg.js\";\n\n // Build the WASM import object\n const imports = {\n [\"./apex_state_wasm_bg.js\"]: {\n __wbindgen_object_is_undefined,\n__wbg_new_8a6f238a6ece86ea,\n__wbg_stack_0ed75d68575b0f3c,\n__wbg_error_7534b8e9a36f1ab4,\n__wbg_performance_7a3ffd0b17f663ad,\n__wbg_now_2c95c9de01293173,\n__wbg_get_with_ref_key_1dc361bd10053bfe,\n__wbg_set_3f1d0b984ed272ed,\n__wbg_String_8f0eb39a4a4c2f66,\n__wbg_new_dca287b076112a51,\n__wbg_new_3eb36ae241fe6f44,\n__wbg_new_361308b2356cecd0,\n__wbg_new_no_args_1c7c842f08d00ebb,\n__wbg_new_dd2b680c8bf6ae29,\n__wbg_length_32ed9a279acd054c,\n__wbg_prototypesetcall_bdcdcc5842e4d77d,\n__wbg_done_57b39ecd9addfe81,\n__wbg_value_0546255b415e96c1,\n__wbg_instanceof_Map_53af74335dec57f4,\n__wbg_instanceof_Uint8Array_9b9075935c74707c,\n__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04,\n__wbg_get_c60162cf03da5a6e,\n__wbg_set_1eb0999cf5d27fc8,\n__wbg_keys_0eee252dfbfa253e,\n__wbg_parse_708461a1feddfb38,\n__wbg_stringify_8d1cc6ff383e8bae,\n__wbg_new_with_length_1763c527b2923202,\n__wbg_get_9b94d73e6221f75c,\n__wbg_set_f43e577aea94465b,\n__wbg_from_bddd64e7d5ff6941,\n__wbg_length_35a7bace40f36eac,\n__wbg_push_8ffdcb2063340ba5,\n__wbg_isArray_d314bb98fcf08331,\n__wbg_isSafeInteger_bfbc7332a9768d2a,\n__wbg_entries_58c7934c745daac7,\n__wbg_iterator_6ff6560ca1568e55,\n__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f,\n__wbg_call_389efe28435a9388,\n__wbg_static_accessor_SELF_a621d3dfbb60d0ce,\n__wbg_static_accessor_GLOBAL_12837167ad935116,\n__wbg_static_accessor_WINDOW_f8727f0cf888e0bd,\n__wbg_get_b3ed3ad4be2bc8ac,\n__wbg_set_6cb8631f80447a67,\n__wbg_name_07a54d72942d5492,\n__wbg_call_812d25f1510c13c8,\n__wbg_next_418f80d8f5303233,\n__wbg_next_3482f54c49e8af19,\n__wbg___wbindgen_string_get_72fb696202c56729,\n__wbg___wbindgen_number_get_8ff4255516ccad3e,\n__wbg___wbindgen_in_47fa6863be6f2f25,\n__wbg___wbindgen_throw_be289d5034ed271b,\n__wbg___wbindgen_is_null_ac34f5003991759a,\n__wbg___wbindgen_jsval_eq_11888390b0186270,\n__wbg_Number_04624de7d0e8332d,\n__wbg_Error_8c4e43fe74559d73,\n__wbg___wbindgen_is_bigint_31b12575b56f32fc,\n__wbg___wbindgen_is_object_5ae8e5880f2c1fbd,\n__wbg___wbindgen_is_string_cd444516edc5b180,\n__wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25,\n__wbg___wbindgen_is_function_0095a73b8b156f76,\n__wbg___wbindgen_is_undefined_9e4d92534c42d778,\n__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811,\n__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2,\n__wbg___wbindgen_debug_string_0bc8482c6e3508ae,\n__wbindgen_init_externref_table,\n__wbindgen_cast_0000000000000001,\n__wbindgen_cast_0000000000000002,\n__wbindgen_cast_0000000000000003,\n__wbindgen_cast_0000000000000004\n }\n };\n\n async function loadWasm(module, imports) {\n if (typeof module === 'string') {\n\n // Resolve relative urls from the runtime script path\n if (module.startsWith('./')) {\n module = new URL(module, import.meta.url).href\n }\n\n \n\n const moduleRequest = await fetch(module);\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(moduleRequest, imports);\n } catch (e) {\n if (moduleRequest.headers.get('Content-Type') != 'application/wasm') {\n console.warn(e);\n } else {\n throw e;\n }\n }\n }\n module = await moduleRequest.arrayBuffer();\n\n \n }\n return await WebAssembly.instantiate(module, imports);\n }\n\n export const { instance, module } = await loadWasm(wasmModule, imports);\n\n export const memory = instance.exports.memory;\nexport const pipeline_create = instance.exports.pipeline_create;\nexport const pipeline_destroy = instance.exports.pipeline_destroy;\nexport const pipeline_reset = instance.exports.pipeline_reset;\nexport const pipeline_reset_all = instance.exports.pipeline_reset_all;\nexport const process_changes = instance.exports.process_changes;\nexport const register_boollogic = instance.exports.register_boollogic;\nexport const register_concerns = instance.exports.register_concerns;\nexport const register_side_effects = instance.exports.register_side_effects;\nexport const shadow_dump = instance.exports.shadow_dump;\nexport const shadow_init = instance.exports.shadow_init;\nexport const unregister_boollogic = instance.exports.unregister_boollogic;\nexport const unregister_concerns = instance.exports.unregister_concerns;\nexport const unregister_side_effects = instance.exports.unregister_side_effects;\nexport const init = instance.exports.init;\nexport const __wbindgen_malloc = instance.exports.__wbindgen_malloc;\nexport const __wbindgen_realloc = instance.exports.__wbindgen_realloc;\nexport const __wbindgen_exn_store = instance.exports.__wbindgen_exn_store;\nexport const __externref_table_alloc = instance.exports.__externref_table_alloc;\nexport const __wbindgen_externrefs = instance.exports.__wbindgen_externrefs;\nexport const __wbindgen_free = instance.exports.__wbindgen_free;\nexport const __externref_table_dealloc = instance.exports.__externref_table_dealloc;\nexport const __wbindgen_start = instance.exports.__wbindgen_start;\n ","/* @ts-self-types=\"./apex_state_wasm.d.ts\" */\n\nimport * as wasm from \"./apex_state_wasm_bg.wasm\";\nimport { __wbg_set_wasm } from \"./apex_state_wasm_bg.js\";\n__wbg_set_wasm(wasm);\nwasm.__wbindgen_start();\nexport {\n init, pipeline_create, pipeline_destroy, pipeline_reset, pipeline_reset_all, process_changes, register_boollogic, register_concerns, register_side_effects, shadow_dump, shadow_init, unregister_boollogic, unregister_concerns, unregister_side_effects\n} from \"./apex_state_wasm_bg.js\";\n","/**\n * WASM Lifecycle — Loading, instance management, gating, and teardown.\n *\n * Owns the singleton WASM instance. All loading and reset logic lives here.\n * bridge.ts imports `getWasmInstance()` to power the `wasm` namespace.\n *\n * - Production: `WasmGate` component loads WASM before rendering children\n * - Tests: `loadWasm()` called in `beforeEach`\n *\n * @module wasm/lifecycle\n */\n\nimport { useEffect, useState } from 'react'\n\nimport type * as WasmExports from '../../rust/pkg/apex_state_wasm'\nimport type { InternalState } from '../core/types'\nimport { createWasmPipeline } from './bridge'\n\n// ---------------------------------------------------------------------------\n// State\n// ---------------------------------------------------------------------------\n\nlet wasmInstance: typeof WasmExports | null = null\nlet loadingPromise: Promise<void> | null = null\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Load the WASM module (async, call once at startup).\n * Deduplicates concurrent calls — safe to call from multiple components.\n */\nexport const loadWasm = async (): Promise<typeof WasmExports> => {\n if (wasmInstance) return wasmInstance\n if (!loadingPromise) {\n loadingPromise = import('../../rust/pkg/apex_state_wasm.js').then((m) => {\n wasmInstance = m as typeof WasmExports\n })\n }\n await loadingPromise\n return wasmInstance!\n}\n\n/** Check if WASM module is loaded and ready for sync calls. */\nexport const isWasmLoaded = (): boolean => wasmInstance !== null\n\n/** Create a per-store WASM pipeline and initialize its shadow state. */\nexport const initPipeline = (\n internal: InternalState,\n initialState: object,\n options?: { debug?: boolean },\n): void => {\n const pipeline = createWasmPipeline(options)\n pipeline.shadowInit(initialState)\n internal.pipeline = pipeline\n}\n\n// ---------------------------------------------------------------------------\n// WasmGate — React component that blocks children until WASM is loaded.\n//\n// Separates async WASM loading from Provider's synchronous store setup.\n// Provider can assume WASM is always available — no async logic needed.\n// ---------------------------------------------------------------------------\n\n/**\n * Blocks rendering of children until the WASM module is loaded.\n * Renders `null` while loading, then renders children once ready.\n */\nexport const WasmGate = ({ children }: { children: React.ReactNode }) => {\n const [loaded, setLoaded] = useState(isWasmLoaded)\n\n useEffect(() => {\n if (loaded) return\n\n let cancelled = false\n loadWasm()\n .then(() => {\n if (!cancelled) setLoaded(true)\n })\n .catch((error) => {\n console.error('[apex-state] Failed to load WASM:', error)\n })\n\n return () => {\n cancelled = true\n }\n }, [loaded])\n\n if (!loaded) return null\n\n return <>{children}</>\n}\n\nWasmGate.displayName = 'WasmGate'\n\n// ---------------------------------------------------------------------------\n// Internal — used by bridge.ts\n// ---------------------------------------------------------------------------\n\n/** Get the loaded WASM instance or throw. */\nexport const getWasmInstance = (): typeof WasmExports => {\n if (!wasmInstance) {\n throw new Error('WASM not loaded. Call loadWasm() first.')\n }\n return wasmInstance\n}\n","/**\n * A placeholder maps a JS value (e.g. `undefined`) to a JSON-encoded string\n * sentinel (e.g. `'\"__APEX_UNDEFINED__\"'`) so values that cannot be represented\n * in JSON survive a round-trip through stringify → parse.\n */\nexport interface Placeholder {\n value: unknown\n /** The exact JSON-encoded string to use (include surrounding quotes for string sentinels). */\n encoded: string\n}\n\n/**\n * Create a symmetric fast stringify/parse pair with optional placeholder substitutions.\n *\n * Bypasses JSON.stringify / JSON.parse for primitives (number, boolean, null) — ~4.7x faster.\n * Placeholders are checked first via O(1) Map lookup before the fast-path logic.\n * See docs/BENCHMARK_JSON_SERIALIZATION.md for performance data.\n *\n * @example\n * const { stringify, parse } = createFastJson([\n * { value: undefined, encoded: '\"__UNDEFINED__\"' },\n * ])\n */\nexport const createFastJson = (placeholders: Placeholder[] = []) => {\n const encodeMap = new Map<unknown, string>()\n const decodeMap = new Map<string, unknown>()\n\n for (const p of placeholders) {\n encodeMap.set(p.value, p.encoded)\n decodeMap.set(p.encoded, p.value)\n }\n\n // Build a replacer for JSON.stringify that substitutes placeholder values\n // inside nested objects/arrays (e.g. undefined → \"__APEX_UNDEFINED__\").\n // Pre-decode the sentinel strings so the replacer avoids JSON.parse per call.\n // Only created if placeholders exist.\n const replacerMap = new Map<unknown, unknown>()\n for (const p of placeholders) {\n replacerMap.set(p.value, JSON.parse(p.encoded))\n }\n const replacer =\n replacerMap.size > 0\n ? (_key: string, val: unknown) =>\n replacerMap.has(val) ? replacerMap.get(val) : val\n : undefined\n\n // Build a post-parse walker that converts sentinel strings back to their\n // original JS values (e.g. \"__APEX_UNDEFINED__\" → undefined).\n // We can't use JSON.parse's reviver because returning undefined from a\n // reviver DELETES the key (per spec). A post-parse walk preserves keys.\n const decodeSentinelMap = new Map<unknown, unknown>()\n for (const p of placeholders) {\n decodeSentinelMap.set(JSON.parse(p.encoded), p.value)\n }\n\n const walkRestore = (val: unknown): unknown => {\n if (decodeSentinelMap.has(val)) return decodeSentinelMap.get(val)\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n val[i] = walkRestore(val[i])\n }\n return val\n }\n if (val !== null && typeof val === 'object') {\n const obj = val as Record<string, unknown>\n for (const key of Object.keys(obj)) {\n obj[key] = walkRestore(obj[key])\n }\n return obj\n }\n return val\n }\n\n const stringify = (value: unknown): string => {\n if (encodeMap.has(value)) return encodeMap.get(value)!\n if (typeof value === 'number' || typeof value === 'boolean')\n return String(value)\n if (value === null) return 'null'\n return JSON.stringify(value, replacer)\n }\n\n const parse = (json: string): unknown => {\n if (decodeMap.has(json)) return decodeMap.get(json)\n const c = json.charCodeAt(0)\n // Numbers: starts with 0-9 or minus sign\n if ((c >= 48 && c <= 57) || c === 45) return Number(json)\n if (json === 'true') return true\n if (json === 'false') return false\n if (json === 'null') return null\n const parsed = JSON.parse(json) as unknown\n return decodeSentinelMap.size > 0 ? walkRestore(parsed) : parsed\n }\n\n return { stringify, parse }\n}\n\n/**\n * Create a new object with undefined values removed (keeps null).\n * Cleaner alternative to conditional spread operators.\n */\nexport const stripNil = <T extends Record<string, unknown>>(\n obj: T,\n): { [K in keyof T as T[K] extends undefined ? never : K]: T[K] } => {\n const result: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(obj)) {\n if (value !== undefined) {\n result[key] = value\n }\n }\n return result as any\n}\n","/**\n * WASM Bridge — Thin namespace over Rust/WASM exports.\n *\n * Uses serde-wasm-bindgen for hot-path functions (processChanges,\n * shadowInit) — JS objects cross the boundary directly without JSON\n * string intermediary. Registration functions still use JSON strings\n * (cold path, simpler).\n *\n * Loading is handled by `wasm/lifecycle.ts`. After loading, all bridge\n * functions are synchronous.\n *\n * @module wasm/bridge\n */\n\nimport type { GenericMeta } from '../types/meta'\nimport { createFastJson, stripNil } from '../utils/json'\nimport type * as Wasm from './generated/types'\nimport { getWasmInstance } from './lifecycle'\n\n/**\n * JS-facing change — derived from Wasm.Change with `value_json` replaced by\n * parsed `value: unknown` and `meta` typed as GenericMeta.\n *\n * `kind`, `lineage`, and `audit` are optional: they are populated on changes\n * returned from WASM (output) but absent on changes constructed in JS (input).\n */\nexport interface Change {\n path: string\n value: unknown\n meta: GenericMeta\n kind?: Wasm.ChangeKind\n lineage?: Wasm.Lineage\n audit?: Wasm.ChangeAudit\n}\n\n// ---------------------------------------------------------------------------\n// Bool-logic shorthand transformation\n// ---------------------------------------------------------------------------\n\n/** Check if a value is a shorthand [path, value] tuple: 2-element array, string first, primitive second. */\nconst isShorthand = (v: unknown): v is [string, unknown] =>\n Array.isArray(v) &&\n v.length === 2 &&\n typeof v[0] === 'string' &&\n (typeof v[1] === 'string' ||\n typeof v[1] === 'number' ||\n typeof v[1] === 'boolean' ||\n v[1] === null)\n\n/** Check if an expression object is already a ValueExpr (IF/THEN/ELSE or MATCH/CASES/DEFAULT). */\nconst isValueExpr = (node: unknown): boolean => {\n if (typeof node !== 'object' || node === null || Array.isArray(node))\n return false\n const obj = node as Record<string, unknown>\n return ('IF' in obj && 'THEN' in obj) || ('MATCH' in obj && 'CASES' in obj)\n}\n\n/** Wrap a LogicExpr as ValueExpr { IF: logic, THEN: true, ELSE: false }. No-op if already a ValueExpr. */\nconst wrapAsValueExpr = (node: unknown): unknown =>\n isValueExpr(node) ? node : { IF: node, THEN: true, ELSE: false }\n\n/** Recursively expand shorthand [path, value] → { IS_EQUAL: [path, value] } in a bool-logic tree. */\nconst expandBoolLogicShorthand = (node: unknown): unknown => {\n if (isShorthand(node)) return { IS_EQUAL: node }\n if (typeof node !== 'object' || node === null || Array.isArray(node))\n return node\n\n const obj = node as Record<string, unknown>\n const result: Record<string, unknown> = {}\n for (const key of Object.keys(obj)) {\n const val = obj[key]\n if ((key === 'AND' || key === 'OR') && Array.isArray(val)) {\n result[key] = val.map(expandBoolLogicShorthand)\n } else if (key === 'NOT') {\n result[key] = expandBoolLogicShorthand(val)\n } else {\n result[key] = val\n }\n }\n return result\n}\n\n// ---------------------------------------------------------------------------\n// Helpers — conversion between JS Change[] and WASM WasmChangeWire[]\n// ---------------------------------------------------------------------------\n\n/**\n * Sentinel for JS `undefined` crossing the WASM boundary.\n * JSON has no `undefined` concept, so we encode it as a JSON string sentinel.\n * Never collides with user data — no sane user value matches this marker.\n */\nconst UNDEFINED_SENTINEL_JSON = '\"__APEX_UNDEFINED__\"'\n\nconst { stringify: fastStringify, parse: fastParse } = createFastJson([\n { value: undefined, encoded: UNDEFINED_SENTINEL_JSON },\n])\n\n/** Convert JS Change[] to WASM wire format for serde-wasm-bindgen. */\nconst changesToWasm = (changes: Change[]) =>\n changes.map(({ path, value, meta }) => ({\n path,\n value_json: fastStringify(value),\n meta,\n }))\n\n/** Map a WASM lineage stage to the appropriate GenericMeta boolean flag + stage name. */\nconst lineageToMeta = (lineage: Wasm.Lineage): Partial<GenericMeta> => {\n if (lineage === 'Input') return {}\n const via = lineage.Derived.via\n switch (via) {\n case 'sync':\n return { isSyncPathChange: true, stage: 'sync' }\n case 'flip':\n return { isFlipPathChange: true, stage: 'flip' }\n case 'aggregation_write':\n return { isAggregationChange: true, stage: 'aggregation_write' }\n case 'aggregation_read':\n return { isAggregationChange: true, stage: 'aggregation_read' }\n case 'listeners':\n return { isListenerChange: true, stage: 'listeners' }\n case 'clear_path':\n return { isClearPathChange: true, stage: 'clear_path' }\n case 'computation':\n return { isComputationChange: true, stage: 'computation' }\n case 'expression':\n return { isExpressionChange: true, stage: 'expression' }\n default:\n return { isProgramaticChange: true, stage: via }\n }\n}\n\n/** Convert WASM wire format back to JS Change[], preserving kind/lineage/audit. */\nconst wasmChangesToJs = (wasmChanges: Wasm.Change[]): Change[] =>\n wasmChanges.map(\n ({ path, value_json, meta, lineage, kind, audit }) =>\n stripNil({\n path,\n value: fastParse(value_json),\n meta: { ...(meta as GenericMeta), ...lineageToMeta(lineage) },\n kind,\n lineage,\n audit,\n }) as Change,\n )\n\n/**\n * Create a new isolated WASM pipeline instance.\n * Each store should call this once and store the result.\n * Call pipeline.destroy() on cleanup.\n */\nexport const createWasmPipeline = (options?: { debug?: boolean }) => {\n const wasm = getWasmInstance()\n const id = wasm.pipeline_create(options)\n let destroyed = false\n\n return {\n id,\n get destroyed() {\n return destroyed\n },\n\n shadowInit: (state: object) => {\n wasm.shadow_init(id, fastStringify(state))\n },\n shadowDump: () => fastParse(wasm.shadow_dump(id)),\n processChanges: (changes: Change[]) => {\n const result = wasm.process_changes(\n id,\n changesToWasm(changes),\n ) as unknown as Wasm.ProcessResult\n\n return {\n changes: wasmChangesToJs(result.changes),\n listener_errors: result.listener_errors ?? [],\n trace: result.trace,\n }\n },\n\n registerSideEffects: (\n reg: Partial<Wasm.SideEffectsRegistration>,\n subscriberFns?: Map<number, (...args: unknown[]) => unknown>,\n ) => {\n // EP17: 3rd arg is Map<subscriber_id, Function> for externref dispatch.\n const result = (wasm.register_side_effects as CallableFunction)(\n id,\n reg,\n subscriberFns ?? new Map(),\n ) as Wasm.SideEffectsResult\n\n return {\n sync_changes: wasmChangesToJs(result.sync_changes),\n aggregation_changes: wasmChangesToJs(result.aggregation_changes),\n computation_changes: wasmChangesToJs(result.computation_changes),\n registered_side_effects: result.registered_side_effects,\n }\n },\n\n unregisterSideEffects: (registrationId: string) => {\n if (destroyed)\n return {\n sync_changes: [],\n aggregation_changes: [],\n computation_changes: [],\n registered_side_effects: {},\n }\n const result = (wasm.unregister_side_effects as CallableFunction)(\n id,\n registrationId,\n ) as Wasm.SideEffectsResult\n return {\n sync_changes: wasmChangesToJs(result.sync_changes),\n aggregation_changes: wasmChangesToJs(result.aggregation_changes),\n computation_changes: wasmChangesToJs(result.computation_changes),\n registered_side_effects: result.registered_side_effects,\n }\n },\n\n registerConcerns: (\n reg: Partial<Wasm.ConcernsRegistration>,\n subscriberFns?: Map<number, (...args: unknown[]) => unknown>,\n ) => {\n // Expand shorthand + wrap LogicExpr as ValueExpr in expressions\n if (reg.expressions) {\n for (const entry of reg.expressions) {\n const parsed = JSON.parse(entry.tree_json)\n const expanded = expandBoolLogicShorthand(parsed)\n entry.tree_json = JSON.stringify(wrapAsValueExpr(expanded))\n }\n }\n // EP17: 3rd arg is Map<subscriber_id, Function> for externref dispatch.\n const result = (wasm.register_concerns as CallableFunction)(\n id,\n reg,\n subscriberFns ?? new Map(),\n ) as Wasm.ConcernsResult\n\n return {\n expression_changes: wasmChangesToJs(result.expression_changes),\n registered_expression_ids: result.registered_expression_ids,\n registered_subscriber_ids: result.registered_subscriber_ids,\n initial_listener_changes: wasmChangesToJs(\n result.initial_listener_changes ?? [],\n ),\n }\n },\n\n unregisterConcerns: (registrationId: string) => {\n if (destroyed) return\n wasm.unregister_concerns(id, registrationId)\n },\n\n registerBoolLogic: (outputPath: string, tree: unknown) =>\n wasm.register_boollogic(\n id,\n outputPath,\n JSON.stringify(wrapAsValueExpr(expandBoolLogicShorthand(tree))),\n ),\n\n unregisterBoolLogic: (logicId: number) => {\n if (destroyed) return\n wasm.unregister_boollogic(id, logicId)\n },\n\n pipelineReset: () => {\n wasm.pipeline_reset(id)\n },\n\n destroy: () => {\n if (destroyed) return\n destroyed = true\n wasm.pipeline_destroy(id)\n },\n }\n}\n\nexport type WasmPipeline = ReturnType<typeof createWasmPipeline>\nexport type { Wasm }\n","/**\n * WASM Preload — import this at the top of your app to start loading WASM early.\n *\n * Usage:\n * import '@sladg/apex-state/preload'\n *\n * This kicks off WASM loading immediately on import, before any store or\n * Provider is created. By the time WasmGate renders, the module is likely\n * already cached — eliminating the loading flash.\n *\n * Safe to import multiple times (deduplicates internally).\n */\n\nimport { loadWasm } from './wasm/lifecycle'\n\nloadWasm()\n"],"mappings":"8pqhCAAO,SAASA,GAAO,CACnBC,EAAK,KAAK,CACd,CAUO,SAASC,EAAgBC,EAAS,CAErC,OADYF,EAAK,gBAAgBG,EAAWD,CAAO,EAAI,EAAIE,EAAqBF,CAAO,CAAC,IACzE,CACnB,CAMO,SAASG,EAAiBC,EAAa,CAC1CN,EAAK,iBAAiBM,CAAW,CACrC,CASO,SAASC,EAAeD,EAAa,CACxCN,EAAK,eAAeM,CAAW,CACnC,CAKO,SAASE,GAAqB,CACjCR,EAAK,mBAAmB,CAC5B,CAkCO,SAASS,EAAgBH,EAAaI,EAAS,CAClD,IAAMC,EAAMX,EAAK,gBAAgBM,EAAaI,CAAO,EACrD,GAAIC,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAOC,EAAwBD,EAAI,CAAC,CAAC,CACzC,CAYO,SAASE,EAAmBP,EAAaQ,EAAaC,EAAW,CACpE,IAAMC,EAAOC,EAAkBH,EAAad,EAAK,kBAAmBA,EAAK,kBAAkB,EACrFkB,EAAOC,EACPC,EAAOH,EAAkBF,EAAWf,EAAK,kBAAmBA,EAAK,kBAAkB,EACnFqB,EAAOF,EACPR,EAAMX,EAAK,mBAAmBM,EAAaU,EAAME,EAAME,EAAMC,CAAI,EACvE,GAAIV,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAOA,EAAI,CAAC,IAAM,CACtB,CAeO,SAASW,EAAkBhB,EAAaiB,EAAcC,EAAgB,CACzE,IAAMb,EAAMX,EAAK,kBAAkBM,EAAaiB,EAAcC,CAAc,EAC5E,GAAIb,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAOC,EAAwBD,EAAI,CAAC,CAAC,CACzC,CAkDO,SAASc,EAAsBnB,EAAaiB,EAAcC,EAAgB,CAC7E,IAAMb,EAAMX,EAAK,sBAAsBM,EAAaiB,EAAcC,CAAc,EAChF,GAAIb,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAOC,EAAwBD,EAAI,CAAC,CAAC,CACzC,CAOO,SAASe,EAAYpB,EAAa,CACrC,IAAIqB,EACAC,EACJ,GAAI,CACA,IAAMjB,EAAMX,EAAK,YAAYM,CAAW,EACxC,IAAIc,EAAOT,EAAI,CAAC,EACZU,EAAOV,EAAI,CAAC,EAChB,GAAIA,EAAI,CAAC,EACL,MAAAS,EAAO,EAAGC,EAAO,EACXT,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAAgB,EAAcP,EACdQ,EAAcP,EACPQ,EAAmBT,EAAMC,CAAI,CACxC,QAAE,CACErB,EAAK,gBAAgB2B,EAAaC,EAAa,CAAC,CACpD,CACJ,CAWO,SAASE,EAAYxB,EAAayB,EAAY,CACjD,IAAMf,EAAOC,EAAkBc,EAAY/B,EAAK,kBAAmBA,EAAK,kBAAkB,EACpFkB,EAAOC,EACPR,EAAMX,EAAK,YAAYM,EAAaU,EAAME,CAAI,EACpD,GAAIP,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,CAE5C,CAOO,SAASqB,EAAqB1B,EAAa2B,EAAU,CACxD,IAAMtB,EAAMX,EAAK,qBAAqBM,EAAa2B,CAAQ,EAC3D,GAAItB,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,CAE5C,CASO,SAASuB,EAAoB5B,EAAa6B,EAAiB,CAC9D,IAAMnB,EAAOC,EAAkBkB,EAAiBnC,EAAK,kBAAmBA,EAAK,kBAAkB,EACzFkB,EAAOC,EACPR,EAAMX,EAAK,oBAAoBM,EAAaU,EAAME,CAAI,EAC5D,GAAIP,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,CAE5C,CAWO,SAASyB,GAAwB9B,EAAa6B,EAAiB,CAClE,IAAMnB,EAAOC,EAAkBkB,EAAiBnC,EAAK,kBAAmBA,EAAK,kBAAkB,EACzFkB,EAAOC,EACPR,EAAMX,EAAK,wBAAwBM,EAAaU,EAAME,CAAI,EAChE,GAAIP,EAAI,CAAC,EACL,MAAMC,EAAwBD,EAAI,CAAC,CAAC,EAExC,OAAOC,EAAwBD,EAAI,CAAC,CAAC,CACzC,CACO,SAAS0B,GAA6BC,EAAMC,EAAM,CAErD,OADY,MAAMV,EAAmBS,EAAMC,CAAI,CAAC,CAEpD,CACO,SAASC,GAA8BF,EAAM,CAEhD,OADY,OAAOA,CAAI,CAE3B,CACO,SAASG,GAA8BH,EAAMC,EAAM,CACtD,IAAM5B,EAAM,OAAO4B,CAAI,EACjBnB,EAAOH,EAAkBN,EAAKX,EAAK,kBAAmBA,EAAK,kBAAkB,EAC7EqB,EAAOF,EACbuB,EAAmB,EAAE,SAASJ,EAAO,EAAOjB,EAAM,EAAI,EACtDqB,EAAmB,EAAE,SAASJ,EAAO,EAAOlB,EAAM,EAAI,CAC1D,CACO,SAASuB,GAAoDL,EAAMC,EAAM,CAC5E,IAAMK,EAAIL,EACJ5B,EAAM,OAAOiC,GAAO,SAAWA,EAAI,OACzCF,EAAmB,EAAE,YAAYJ,EAAO,EAAOnC,EAAWQ,CAAG,EAAI,OAAO,CAAC,EAAIA,EAAK,EAAI,EACtF+B,EAAmB,EAAE,SAASJ,EAAO,EAAO,CAACnC,EAAWQ,CAAG,EAAG,EAAI,CACtE,CACO,SAASkC,GAA8CP,EAAM,CAChE,IAAMM,EAAIN,EACJ3B,EAAM,OAAOiC,GAAO,UAAYA,EAAI,OAC1C,OAAOzC,EAAWQ,CAAG,EAAI,SAAWA,EAAM,EAAI,CAClD,CACO,SAASmC,GAA+CR,EAAMC,EAAM,CACvE,IAAM5B,EAAMoC,EAAYR,CAAI,EACtBnB,EAAOH,EAAkBN,EAAKX,EAAK,kBAAmBA,EAAK,kBAAkB,EAC7EqB,EAAOF,EACbuB,EAAmB,EAAE,SAASJ,EAAO,EAAOjB,EAAM,EAAI,EACtDqB,EAAmB,EAAE,SAASJ,EAAO,EAAOlB,EAAM,EAAI,CAC1D,CACO,SAAS4B,GAAqCV,EAAMC,EAAM,CAE7D,OADYD,KAAQC,CAExB,CACO,SAASU,GAA4CX,EAAM,CAE9D,OADY,OAAOA,GAAU,QAEjC,CACO,SAASY,GAA8CZ,EAAM,CAEhE,OADY,OAAOA,GAAU,UAEjC,CACO,SAASa,GAA0Cb,EAAM,CAE5D,OADYA,IAAS,IAEzB,CACO,SAASc,GAA4Cd,EAAM,CAC9D,IAAMe,EAAMf,EAEZ,OADY,OAAOe,GAAS,UAAYA,IAAQ,IAEpD,CACO,SAASC,GAA4ChB,EAAM,CAE9D,OADY,OAAOA,GAAU,QAEjC,CACO,SAASiB,GAA+CjB,EAAM,CAEjE,OADYA,IAAS,MAEzB,CACO,SAASkB,GAA2ClB,EAAMC,EAAM,CAEnE,OADYD,IAASC,CAEzB,CACO,SAASkB,GAAiDnB,EAAMC,EAAM,CAEzE,OADYD,GAAQC,CAExB,CACO,SAASmB,GAA6CpB,EAAMC,EAAM,CACrE,IAAMoB,EAAMpB,EACN5B,EAAM,OAAOgD,GAAS,SAAWA,EAAM,OAC7CjB,EAAmB,EAAE,WAAWJ,EAAO,EAAOnC,EAAWQ,CAAG,EAAI,EAAIA,EAAK,EAAI,EAC7E+B,EAAmB,EAAE,SAASJ,EAAO,EAAO,CAACnC,EAAWQ,CAAG,EAAG,EAAI,CACtE,CACO,SAASiD,GAA6CtB,EAAMC,EAAM,CACrE,IAAMoB,EAAMpB,EACN5B,EAAM,OAAOgD,GAAS,SAAWA,EAAM,OAC7C,IAAIvC,EAAOjB,EAAWQ,CAAG,EAAI,EAAIM,EAAkBN,EAAKX,EAAK,kBAAmBA,EAAK,kBAAkB,EACnGqB,EAAOF,EACXuB,EAAmB,EAAE,SAASJ,EAAO,EAAOjB,EAAM,EAAI,EACtDqB,EAAmB,EAAE,SAASJ,EAAO,EAAOlB,EAAM,EAAI,CAC1D,CACO,SAASyC,GAAwCvB,EAAMC,EAAM,CAChE,MAAM,IAAI,MAAMV,EAAmBS,EAAMC,CAAI,CAAC,CAClD,CACO,SAASuB,IAA8B,CAAE,OAAOC,EAAY,SAAUzB,EAAMC,EAAM,CAErF,OADYD,EAAK,KAAKC,CAAI,CAE9B,EAAG,SAAS,CAAG,CACR,SAASyB,IAA8B,CAAE,OAAOD,EAAY,SAAUzB,EAAMC,EAAM0B,EAAMC,EAAM,CAEjG,OADY5B,EAAK,KAAKC,EAAM0B,EAAMC,CAAI,CAE1C,EAAG,SAAS,CAAG,CACR,SAASC,GAA4B7B,EAAM,CAE9C,OADYA,EAAK,IAErB,CACO,SAAS8B,GAA+B9B,EAAM,CAEjD,OADY,OAAO,QAAQA,CAAI,CAEnC,CACO,SAAS+B,GAA6B/B,EAAMC,EAAM,CACrD,IAAI+B,EACAC,EACJ,GAAI,CACAD,EAAchC,EACdiC,EAAchC,EACd,QAAQ,MAAMV,EAAmBS,EAAMC,CAAI,CAAC,CAChD,QAAE,CACEvC,EAAK,gBAAgBsE,EAAaC,EAAa,CAAC,CACpD,CACJ,CACO,SAASC,GAA4BlC,EAAM,CAE9C,OADY,MAAM,KAAKA,CAAI,CAE/B,CACO,SAASmC,GAA2BnC,EAAMC,EAAM,CAEnD,OADYD,EAAKC,IAAS,CAAC,CAE/B,CACO,SAASmC,IAA6B,CAAE,OAAOX,EAAY,SAAUzB,EAAMC,EAAM,CAEpF,OADY,QAAQ,IAAID,EAAMC,CAAI,CAEtC,EAAG,SAAS,CAAG,CACR,SAASoC,GAA2BrC,EAAMC,EAAM,CAEnD,OADYD,EAAK,IAAIC,CAAI,CAE7B,CACO,SAASqC,GAAwCtC,EAAMC,EAAM,CAEhE,OADYD,EAAKC,CAAI,CAEzB,CACO,SAASsC,GAA8CvC,EAAM,CAChE,IAAIwC,EACJ,GAAI,CACAA,EAASxC,aAAgB,WAC7B,MAAY,CACRwC,EAAS,EACb,CAEA,OADYA,CAEhB,CACO,SAASC,GAAsCzC,EAAM,CACxD,IAAIwC,EACJ,GAAI,CACAA,EAASxC,aAAgB,GAC7B,MAAY,CACRwC,EAAS,EACb,CAEA,OADYA,CAEhB,CACO,SAASE,GAA6C1C,EAAM,CAC/D,IAAIwC,EACJ,GAAI,CACAA,EAASxC,aAAgB,UAC7B,MAAY,CACRwC,EAAS,EACb,CAEA,OADYA,CAEhB,CACO,SAASG,GAA+B3C,EAAM,CAEjD,OADY,MAAM,QAAQA,CAAI,CAElC,CACO,SAAS4C,GAAqC5C,EAAM,CAEvD,OADY,OAAO,cAAcA,CAAI,CAEzC,CACO,SAAS6C,IAAkC,CAE9C,OADY,OAAO,QAEvB,CACO,SAASC,GAA4B9C,EAAM,CAE9C,OADYA,EAAK,KAAK,CAE1B,CACO,SAAS+C,GAA8B/C,EAAM,CAEhD,OADYA,EAAK,MAErB,CACO,SAASgD,GAA8BhD,EAAM,CAEhD,OADYA,EAAK,MAErB,CACO,SAASiD,GAA4BjD,EAAM,CAE9C,OADYA,EAAK,IAErB,CACO,SAASkD,IAA6B,CAEzC,OADY,IAAI,MAEpB,CACO,SAASC,IAA6B,CAEzC,OADY,IAAI,KAEpB,CACO,SAASC,IAA6B,CAEzC,OADY,IAAI,KAEpB,CACO,SAASC,IAA6B,CAEzC,OADY,IAAI,GAEpB,CACO,SAASC,GAA2BtD,EAAM,CAE7C,OADY,IAAI,WAAWA,CAAI,CAEnC,CACO,SAASuD,GAAmCvD,EAAMC,EAAM,CAE3D,OADY,IAAI,SAASV,EAAmBS,EAAMC,CAAI,CAAC,CAE3D,CACO,SAASuD,GAAuCxD,EAAM,CAEzD,OADY,IAAI,MAAMA,IAAS,CAAC,CAEpC,CACO,SAASyD,IAA8B,CAAE,OAAOhC,EAAY,SAAUzB,EAAM,CAE/E,OADYA,EAAK,KAAK,CAE1B,EAAG,SAAS,CAAG,CACR,SAAS0D,GAA4B1D,EAAM,CAE9C,OADYA,EAAK,IAErB,CACO,SAAS2D,GAA2B3D,EAAM,CAE7C,OADYA,EAAK,IAAI,CAEzB,CACO,SAAS4D,IAA+B,CAAE,OAAOnC,EAAY,SAAUzB,EAAMC,EAAM,CAEtF,OADY,KAAK,MAAMV,EAAmBS,EAAMC,CAAI,CAAC,CAEzD,EAAG,SAAS,CAAG,CACR,SAAS4D,GAAmC7D,EAAM,CAErD,OADYA,EAAK,WAErB,CACO,SAAS8D,GAAwC9D,EAAMC,EAAM0B,EAAM,CACtE,WAAW,UAAU,IAAI,KAAKoC,GAAoB/D,EAAMC,CAAI,EAAG0B,CAAI,CACvE,CACO,SAASqC,GAA4BhE,EAAMC,EAAM,CAEpD,OADYD,EAAK,KAAKC,CAAI,CAE9B,CACO,SAASgE,GAA2BjE,EAAMC,EAAM0B,EAAM,CAEzD,OADY3B,EAAK,IAAIC,EAAM0B,CAAI,CAEnC,CACO,SAASuC,GAA2BlE,EAAMC,EAAM0B,EAAM,CACzD3B,EAAKC,CAAI,EAAI0B,CACjB,CACO,SAASwC,IAA6B,CAAE,OAAO1C,EAAY,SAAUzB,EAAMC,EAAM0B,EAAM,CAE1F,OADY,QAAQ,IAAI3B,EAAMC,EAAM0B,CAAI,CAE5C,EAAG,SAAS,CAAG,CACR,SAASyC,GAA2BpE,EAAMC,EAAM0B,EAAM,CACzD3B,EAAKC,IAAS,CAAC,EAAI0B,CACvB,CACO,SAAS0C,GAA6BrE,EAAMC,EAAM,CACrD,IAAM5B,EAAM4B,EAAK,MACXnB,EAAOH,EAAkBN,EAAKX,EAAK,kBAAmBA,EAAK,kBAAkB,EAC7EqB,EAAOF,EACbuB,EAAmB,EAAE,SAASJ,EAAO,EAAOjB,EAAM,EAAI,EACtDqB,EAAmB,EAAE,SAASJ,EAAO,EAAOlB,EAAM,EAAI,CAC1D,CACO,SAASwF,IAAgD,CAC5D,IAAMjG,EAAM,OAAO,OAAW,IAAc,KAAO,OACnD,OAAOR,EAAWQ,CAAG,EAAI,EAAIP,EAAqBO,CAAG,CACzD,CACO,SAASkG,IAAqD,CACjE,IAAMlG,EAAM,OAAO,WAAe,IAAc,KAAO,WACvD,OAAOR,EAAWQ,CAAG,EAAI,EAAIP,EAAqBO,CAAG,CACzD,CACO,SAASmG,IAA8C,CAC1D,IAAMnG,EAAM,OAAO,KAAS,IAAc,KAAO,KACjD,OAAOR,EAAWQ,CAAG,EAAI,EAAIP,EAAqBO,CAAG,CACzD,CACO,SAASoG,IAAgD,CAC5D,IAAMpG,EAAM,OAAO,OAAW,IAAc,KAAO,OACnD,OAAOR,EAAWQ,CAAG,EAAI,EAAIP,EAAqBO,CAAG,CACzD,CACO,SAASqG,IAAmC,CAAE,OAAOjD,EAAY,SAAUzB,EAAM,CAEpF,OADY,KAAK,UAAUA,CAAI,CAEnC,EAAG,SAAS,CAAG,CACR,SAAS2E,GAA6B3E,EAAM,CAE/C,OADYA,EAAK,KAErB,CACO,SAAS4E,GAAiC5E,EAAM,CAGnD,OADYA,CAEhB,CACO,SAAS6E,GAAiC7E,EAAM,CAGnD,OADYA,CAEhB,CACO,SAAS8E,GAAiC9E,EAAMC,EAAM,CAGzD,OADYV,EAAmBS,EAAMC,CAAI,CAE7C,CACO,SAAS8E,GAAiC/E,EAAM,CAGnD,OADY,OAAO,QAAQ,GAAIA,CAAI,CAEvC,CACO,SAASgF,IAAkC,CAC9C,IAAMC,EAAQvH,EAAK,sBACbwH,EAASD,EAAM,KAAK,CAAC,EAC3BA,EAAM,IAAI,EAAG,MAAS,EACtBA,EAAM,IAAIC,EAAS,EAAG,MAAS,EAC/BD,EAAM,IAAIC,EAAS,EAAG,IAAI,EAC1BD,EAAM,IAAIC,EAAS,EAAG,EAAI,EAC1BD,EAAM,IAAIC,EAAS,EAAG,EAAK,CAC/B,CACO,SAASC,GAA+BnF,EAAM,CAEjD,OADYA,IAAS,MAEzB,CACA,SAASlC,EAAqBuD,EAAK,CAC/B,IAAM+D,EAAM1H,EAAK,wBAAwB,EACzC,OAAAA,EAAK,sBAAsB,IAAI0H,EAAK/D,CAAG,EAChC+D,CACX,CAEA,SAAS3E,EAAYM,EAAK,CAEtB,IAAMsE,EAAO,OAAOtE,EACpB,GAAIsE,GAAQ,UAAYA,GAAQ,WAAatE,GAAO,KAChD,MAAQ,GAAGA,CAAG,GAElB,GAAIsE,GAAQ,SACR,MAAO,IAAItE,CAAG,IAElB,GAAIsE,GAAQ,SAAU,CAClB,IAAMC,EAAcvE,EAAI,YACxB,OAAIuE,GAAe,KACR,SAEA,UAAUA,CAAW,GAEpC,CACA,GAAID,GAAQ,WAAY,CACpB,IAAME,EAAOxE,EAAI,KACjB,OAAI,OAAOwE,GAAQ,UAAYA,EAAK,OAAS,EAClC,YAAYA,CAAI,IAEhB,UAEf,CAEA,GAAI,MAAM,QAAQxE,CAAG,EAAG,CACpB,IAAMyE,EAASzE,EAAI,OACf0E,EAAQ,IACRD,EAAS,IACTC,GAAShF,EAAYM,EAAI,CAAC,CAAC,GAE/B,QAAQ2E,EAAI,EAAGA,EAAIF,EAAQE,IACvBD,GAAS,KAAOhF,EAAYM,EAAI2E,CAAC,CAAC,EAEtC,OAAAD,GAAS,IACFA,CACX,CAEA,IAAME,EAAiB,sBAAsB,KAAK,SAAS,KAAK5E,CAAG,CAAC,EAChE6E,EACJ,GAAID,GAAkBA,EAAe,OAAS,EAC1CC,EAAYD,EAAe,CAAC,MAG5B,QAAO,SAAS,KAAK5E,CAAG,EAE5B,GAAI6E,GAAa,SAIb,GAAI,CACA,MAAO,UAAY,KAAK,UAAU7E,CAAG,EAAI,GAC7C,MAAY,CACR,MAAO,QACX,CAGJ,OAAIA,aAAe,MACR,GAAGA,EAAI,IAAI,KAAKA,EAAI,OAAO;AAAA,EAAKA,EAAI,KAAK,GAG7C6E,CACX,CAEA,SAAS7B,GAAoB8B,EAAKC,EAAK,CACnC,OAAAD,EAAMA,IAAQ,EACPE,EAAqB,EAAE,SAASF,EAAM,EAAGA,EAAM,EAAIC,CAAG,CACjE,CAGA,SAAS1F,GAAqB,CAC1B,OAAI4F,IAA0B,MAAQA,EAAsB,OAAO,WAAa,IAASA,EAAsB,OAAO,WAAa,QAAaA,EAAsB,SAAWtI,EAAK,OAAO,UACzLsI,EAAwB,IAAI,SAAStI,EAAK,OAAO,MAAM,GAEpDsI,CACX,CAEA,SAASzG,EAAmBsG,EAAKC,EAAK,CAClC,OAAAD,EAAMA,IAAQ,EACPI,GAAWJ,EAAKC,CAAG,CAC9B,CAGA,SAASC,GAAuB,CAC5B,OAAIG,IAA4B,MAAQA,EAAwB,aAAe,KAC3EA,EAA0B,IAAI,WAAWxI,EAAK,OAAO,MAAM,GAExDwI,CACX,CAEA,SAASzE,EAAY0E,EAAGC,EAAM,CAC1B,GAAI,CACA,OAAOD,EAAE,MAAM,KAAMC,CAAI,CAC7B,OAASC,EAAG,CACR,IAAMjB,EAAMtH,EAAqBuI,CAAC,EAClC3I,EAAK,qBAAqB0H,CAAG,CACjC,CACJ,CAEA,SAASvH,EAAWyI,EAAG,CACnB,OAA0BA,GAAM,IACpC,CAEA,SAAS3H,EAAkB4H,EAAKC,EAAQC,EAAS,CAC7C,GAAIA,IAAY,OAAW,CACvB,IAAMC,EAAMC,EAAkB,OAAOJ,CAAG,EAClCV,EAAMW,EAAOE,EAAI,OAAQ,CAAC,IAAM,EACtC,OAAAX,EAAqB,EAAE,SAASF,EAAKA,EAAMa,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC9D7H,EAAkB6H,EAAI,OACfb,CACX,CAEA,IAAIC,EAAMS,EAAI,OACVV,EAAMW,EAAOV,EAAK,CAAC,IAAM,EAEvBc,EAAMb,EAAqB,EAE7Bb,EAAS,EAEb,KAAOA,EAASY,EAAKZ,IAAU,CAC3B,IAAM2B,EAAON,EAAI,WAAWrB,CAAM,EAClC,GAAI2B,EAAO,IAAM,MACjBD,EAAIf,EAAMX,CAAM,EAAI2B,CACxB,CACA,GAAI3B,IAAWY,EAAK,CACZZ,IAAW,IACXqB,EAAMA,EAAI,MAAMrB,CAAM,GAE1BW,EAAMY,EAAQZ,EAAKC,EAAKA,EAAMZ,EAASqB,EAAI,OAAS,EAAG,CAAC,IAAM,EAC9D,IAAMO,EAAOf,EAAqB,EAAE,SAASF,EAAMX,EAAQW,EAAMC,CAAG,EAC9DzH,EAAMsI,EAAkB,WAAWJ,EAAKO,CAAI,EAElD5B,GAAU7G,EAAI,QACdwH,EAAMY,EAAQZ,EAAKC,EAAKZ,EAAQ,CAAC,IAAM,CAC3C,CAEA,OAAArG,EAAkBqG,EACXW,CACX,CAEA,SAASvH,EAAwB8G,EAAK,CAClC,IAAM2B,EAAQrJ,EAAK,sBAAsB,IAAI0H,CAAG,EAChD,OAAA1H,EAAK,0BAA0B0H,CAAG,EAC3B2B,CACX,CAMA,SAASd,GAAWJ,EAAKC,EAAK,CAC1B,OAAAkB,GAAmBlB,EACfkB,GAAmBC,KACnBC,EAAoB,IAAI,YAAY,QAAS,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAC7EA,EAAkB,OAAO,EACzBF,EAAkBlB,GAEfoB,EAAkB,OAAOnB,EAAqB,EAAE,SAASF,EAAKA,EAAMC,CAAG,CAAC,CACnF,CAmBO,SAASqB,GAAepG,EAAK,CAChCrD,EAAOqD,CACX,CA7wBA,IA+pBIiF,EAaAE,EAgEAgB,EAEED,GACFD,EAWEL,EAaF9H,EAGAnB,EA1wBJ0J,EAAAC,EAAA,kBA+pBIrB,EAAwB,KAaxBE,EAA0B,KAgE1BgB,EAAoB,IAAI,YAAY,QAAS,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EACjFA,EAAkB,OAAO,EACnBD,GAA0B,WAC5BD,EAAkB,EAWhBL,EAAoB,IAAI,YAExB,eAAgBA,IAClBA,EAAkB,WAAa,SAAUJ,EAAKO,EAAM,CAChD,IAAMJ,EAAMC,EAAkB,OAAOJ,CAAG,EACxC,OAAAO,EAAK,IAAIJ,CAAG,EACL,CACH,KAAMH,EAAI,OACV,QAASG,EAAI,MACjB,CACJ,GAGA7H,EAAkB,ICvwBtB,IAAAyI,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,GAAA,8BAAAC,GAAA,yBAAAC,GAAA,0BAAAC,GAAA,oBAAAC,GAAA,sBAAAC,GAAA,uBAAAC,GAAA,qBAAAC,EAAA,SAAAC,GAAA,aAAAC,EAAA,WAAAC,GAAA,WAAAC,GAAA,oBAAAC,GAAA,qBAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,GAAA,uBAAAC,GAAA,sBAAAC,GAAA,0BAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,yBAAAC,GAAA,wBAAAC,GAAA,4BAAAC,KAkFQ,eAAeC,GAASd,EAAQe,EAAS,CACrC,GAAI,OAAOf,GAAW,SAAU,CAGxBA,EAAO,WAAW,IAAI,IACtBA,EAAS,IAAI,IAAIA,EAAQ,YAAY,GAAG,EAAE,MAK9C,IAAMgB,EAAgB,MAAM,MAAMhB,CAAM,EACxC,GAAI,OAAO,YAAY,sBAAyB,WAC5C,GAAI,CACA,OAAO,MAAM,YAAY,qBAAqBgB,EAAeD,CAAO,CACxE,OAASE,EAAG,CACR,GAAID,EAAc,QAAQ,IAAI,cAAc,GAAK,mBAC7C,QAAQ,KAAKC,CAAC,MAEd,OAAMA,CAEd,CAEJjB,EAAS,MAAMgB,EAAc,YAAY,CAG7C,CACA,OAAO,MAAM,YAAY,YAAYhB,EAAQe,CAAO,CACxD,CA7GR,IAQcA,GAuGSjB,EAAUE,GAEZD,GACRE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAhB,GACAH,GACAC,GACAJ,GACAF,GACAG,GACAC,GACAH,GACAM,EAvIbsB,GAAAC,EAAA,uBACQD,IAIAA,IAGMH,GAAU,CACX,0BAA4B,CACzB,+BAAAK,GAChB,2BAAAC,GACA,6BAAAC,GACA,6BAAAC,GACA,mCAAAC,GACA,2BAAAC,GACA,wCAAAC,GACA,2BAAAC,GACA,8BAAAC,GACA,2BAAAC,GACA,2BAAAC,GACA,2BAAAC,GACA,mCAAAC,GACA,2BAAAC,GACA,8BAAAC,GACA,wCAAAC,GACA,4BAAAC,GACA,6BAAAC,GACA,sCAAAC,GACA,6CAAAC,GACA,8CAAAC,GACA,2BAAAC,GACA,2BAAAC,GACA,4BAAAC,GACA,6BAAAC,GACA,iCAAAC,GACA,uCAAAC,GACA,2BAAAC,GACA,2BAAAC,GACA,4BAAAC,GACA,8BAAAC,GACA,4BAAAC,GACA,+BAAAC,GACA,qCAAAC,GACA,+BAAAC,GACA,gCAAAC,GACA,mDAAAC,GACA,4BAAAC,GACA,4CAAAC,GACA,8CAAAC,GACA,8CAAAC,GACA,2BAAAC,GACA,2BAAAC,GACA,4BAAAC,GACA,4BAAAC,GACA,4BAAAC,GACA,4BAAAC,GACA,6CAAAC,GACA,6CAAAC,GACA,qCAAAC,GACA,wCAAAC,GACA,0CAAAC,GACA,2CAAAC,GACA,8BAAAC,GACA,6BAAAC,GACA,4CAAAC,GACA,4CAAAC,GACA,4CAAAC,GACA,8CAAAC,GACA,8CAAAC,GACA,+CAAAC,GACA,iDAAAC,GACA,oDAAAC,GACA,+CAAAC,GACA,gCAAAC,GACA,iCAAAC,GACA,iCAAAC,GACA,iCAAAC,GACA,iCAAAC,EACY,CACJ,GA+Ba,CAAE,SAAA1F,EAAU,OAAAE,IAAW,MAAMc,GAAS2E,EAAY1E,EAAO,GAEzDhB,GAASD,EAAS,QAAQ,OAClCG,GAAkBH,EAAS,QAAQ,gBACnCI,GAAmBJ,EAAS,QAAQ,iBACpCK,GAAiBL,EAAS,QAAQ,eAClCM,GAAqBN,EAAS,QAAQ,mBACtCO,GAAkBP,EAAS,QAAQ,gBACnCQ,GAAqBR,EAAS,QAAQ,mBACtCS,GAAoBT,EAAS,QAAQ,kBACrCU,GAAwBV,EAAS,QAAQ,sBACzCW,GAAcX,EAAS,QAAQ,YAC/BY,GAAcZ,EAAS,QAAQ,YAC/Ba,GAAuBb,EAAS,QAAQ,qBACxCc,GAAsBd,EAAS,QAAQ,oBACvCe,GAA0Bf,EAAS,QAAQ,wBAC3CD,GAAOC,EAAS,QAAQ,KACxBJ,GAAoBI,EAAS,QAAQ,kBACrCH,GAAqBG,EAAS,QAAQ,mBACtCP,GAAuBO,EAAS,QAAQ,qBACxCT,GAA0BS,EAAS,QAAQ,wBAC3CN,GAAwBM,EAAS,QAAQ,sBACzCL,GAAkBK,EAAS,QAAQ,gBACnCR,GAA4BQ,EAAS,QAAQ,0BAC7CF,EAAmBE,EAAS,QAAQ,mBCvIjD,IAAA4F,GAAA,GAAAC,EAAAD,GAAA,UAAAE,EAAA,oBAAAC,EAAA,qBAAAC,EAAA,mBAAAC,EAAA,uBAAAC,EAAA,oBAAAC,EAAA,uBAAAC,EAAA,sBAAAC,EAAA,0BAAAC,EAAA,gBAAAC,EAAA,gBAAAC,EAAA,yBAAAC,EAAA,wBAAAC,EAAA,4BAAAC,KAAA,IAAAC,GAAAC,EAAA,uBAEA,MAAAC,KACAA,IAGAA,IAFAC,GAAeC,CAAI,EACdC,EAAiB,ICOtB,OAAS,aAAAC,GAAW,YAAAC,OAAgB,QCW7B,IAAMC,EAAiB,CAACC,EAA8B,CAAC,IAAM,CAClE,IAAMC,EAAY,IAAI,IAChBC,EAAY,IAAI,IAEtB,QAAWC,KAAKH,EACdC,EAAU,IAAIE,EAAE,MAAOA,EAAE,OAAO,EAChCD,EAAU,IAAIC,EAAE,QAASA,EAAE,KAAK,EAOlC,IAAMC,EAAc,IAAI,IACxB,QAAWD,KAAKH,EACdI,EAAY,IAAID,EAAE,MAAO,KAAK,MAAMA,EAAE,OAAO,CAAC,EAEhD,IAAME,EACJD,EAAY,KAAO,EACf,CAACE,EAAcC,IACbH,EAAY,IAAIG,CAAG,EAAIH,EAAY,IAAIG,CAAG,EAAIA,EAChD,OAMAC,EAAoB,IAAI,IAC9B,QAAWL,KAAKH,EACdQ,EAAkB,IAAI,KAAK,MAAML,EAAE,OAAO,EAAGA,EAAE,KAAK,EAGtD,IAAMM,EAAeF,GAA0B,CAC7C,GAAIC,EAAkB,IAAID,CAAG,EAAG,OAAOC,EAAkB,IAAID,CAAG,EAChE,GAAI,MAAM,QAAQA,CAAG,EAAG,CACtB,QAASG,EAAI,EAAGA,EAAIH,EAAI,OAAQG,IAC9BH,EAAIG,CAAC,EAAID,EAAYF,EAAIG,CAAC,CAAC,EAE7B,OAAOH,CACT,CACA,GAAIA,IAAQ,MAAQ,OAAOA,GAAQ,SAAU,CAC3C,IAAMI,EAAMJ,EACZ,QAAWK,KAAO,OAAO,KAAKD,CAAG,EAC/BA,EAAIC,CAAG,EAAIH,EAAYE,EAAIC,CAAG,CAAC,EAEjC,OAAOD,CACT,CACA,OAAOJ,CACT,EAsBA,MAAO,CAAE,UApBUM,GACbZ,EAAU,IAAIY,CAAK,EAAUZ,EAAU,IAAIY,CAAK,EAChD,OAAOA,GAAU,UAAY,OAAOA,GAAU,UACzC,OAAOA,CAAK,EACjBA,IAAU,KAAa,OACpB,KAAK,UAAUA,EAAOR,CAAQ,EAenB,MAZLS,GAA0B,CACvC,GAAIZ,EAAU,IAAIY,CAAI,EAAG,OAAOZ,EAAU,IAAIY,CAAI,EAClD,IAAMC,EAAID,EAAK,WAAW,CAAC,EAE3B,GAAKC,GAAK,IAAMA,GAAK,IAAOA,IAAM,GAAI,OAAO,OAAOD,CAAI,EACxD,GAAIA,IAAS,OAAQ,MAAO,GAC5B,GAAIA,IAAS,QAAS,MAAO,GAC7B,GAAIA,IAAS,OAAQ,OAAO,KAC5B,IAAME,EAAS,KAAK,MAAMF,CAAI,EAC9B,OAAON,EAAkB,KAAO,EAAIC,EAAYO,CAAM,EAAIA,CAC5D,CAE0B,CAC5B,ECHA,IAAMC,GAA0B,uBAE1B,CAAE,UAAWC,GAAe,MAAOC,EAAU,EAAIC,EAAe,CACpE,CAAE,MAAO,OAAW,QAASH,EAAwB,CACvD,CAAC,EFJQ,mBAAAI,GAAA,OAAAC,OAAA,oBArET,IAAIC,EAA0C,KAC1CC,EAAuC,KAU9BC,EAAW,SAClBF,IACCC,IACHA,EAAiB,kBAA4C,KAAME,GAAM,CACvEH,EAAeG,CACjB,CAAC,GAEH,MAAMF,EACCD,GAIII,GAAe,IAAeJ,IAAiB,KAwBrD,IAAMK,GAAW,CAAC,CAAE,SAAAC,CAAS,IAAqC,CACvE,GAAM,CAACC,EAAQC,CAAS,EAAIC,GAASC,EAAY,EAmBjD,OAjBAC,GAAU,IAAM,CACd,GAAIJ,EAAQ,OAEZ,IAAIK,EAAY,GAChB,OAAAC,EAAS,EACN,KAAK,IAAM,CACLD,GAAWJ,EAAU,EAAI,CAChC,CAAC,EACA,MAAOM,GAAU,CAChB,QAAQ,MAAM,oCAAqCA,CAAK,CAC1D,CAAC,EAEI,IAAM,CACXF,EAAY,EACd,CACF,EAAG,CAACL,CAAM,CAAC,EAENA,EAEEQ,GAAAC,GAAA,CAAG,SAAAV,EAAS,EAFC,IAGtB,EAEAD,GAAS,YAAc,WG/EvBY,EAAS","names":["init","wasm","pipeline_create","options","isLikeNone","addToExternrefTable0","pipeline_destroy","pipeline_id","pipeline_reset","pipeline_reset_all","process_changes","changes","ret","takeFromExternrefTable0","register_boollogic","output_path","tree_json","ptr0","passStringToWasm0","len0","WASM_VECTOR_LEN","ptr1","len1","register_concerns","registration","subscriber_fns","register_side_effects","shadow_dump","deferred2_0","deferred2_1","getStringFromWasm0","shadow_init","state_json","unregister_boollogic","logic_id","unregister_concerns","registration_id","unregister_side_effects","__wbg_Error_8c4e43fe74559d73","arg0","arg1","__wbg_Number_04624de7d0e8332d","__wbg_String_8f0eb39a4a4c2f66","getDataViewMemory0","__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2","v","__wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25","__wbg___wbindgen_debug_string_0bc8482c6e3508ae","debugString","__wbg___wbindgen_in_47fa6863be6f2f25","__wbg___wbindgen_is_bigint_31b12575b56f32fc","__wbg___wbindgen_is_function_0095a73b8b156f76","__wbg___wbindgen_is_null_ac34f5003991759a","__wbg___wbindgen_is_object_5ae8e5880f2c1fbd","val","__wbg___wbindgen_is_string_cd444516edc5b180","__wbg___wbindgen_is_undefined_9e4d92534c42d778","__wbg___wbindgen_jsval_eq_11888390b0186270","__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811","__wbg___wbindgen_number_get_8ff4255516ccad3e","obj","__wbg___wbindgen_string_get_72fb696202c56729","__wbg___wbindgen_throw_be289d5034ed271b","__wbg_call_389efe28435a9388","handleError","__wbg_call_812d25f1510c13c8","arg2","arg3","__wbg_done_57b39ecd9addfe81","__wbg_entries_58c7934c745daac7","__wbg_error_7534b8e9a36f1ab4","deferred0_0","deferred0_1","__wbg_from_bddd64e7d5ff6941","__wbg_get_9b94d73e6221f75c","__wbg_get_b3ed3ad4be2bc8ac","__wbg_get_c60162cf03da5a6e","__wbg_get_with_ref_key_1dc361bd10053bfe","__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04","result","__wbg_instanceof_Map_53af74335dec57f4","__wbg_instanceof_Uint8Array_9b9075935c74707c","__wbg_isArray_d314bb98fcf08331","__wbg_isSafeInteger_bfbc7332a9768d2a","__wbg_iterator_6ff6560ca1568e55","__wbg_keys_0eee252dfbfa253e","__wbg_length_32ed9a279acd054c","__wbg_length_35a7bace40f36eac","__wbg_name_07a54d72942d5492","__wbg_new_361308b2356cecd0","__wbg_new_3eb36ae241fe6f44","__wbg_new_8a6f238a6ece86ea","__wbg_new_dca287b076112a51","__wbg_new_dd2b680c8bf6ae29","__wbg_new_no_args_1c7c842f08d00ebb","__wbg_new_with_length_1763c527b2923202","__wbg_next_3482f54c49e8af19","__wbg_next_418f80d8f5303233","__wbg_now_2c95c9de01293173","__wbg_parse_708461a1feddfb38","__wbg_performance_7a3ffd0b17f663ad","__wbg_prototypesetcall_bdcdcc5842e4d77d","getArrayU8FromWasm0","__wbg_push_8ffdcb2063340ba5","__wbg_set_1eb0999cf5d27fc8","__wbg_set_3f1d0b984ed272ed","__wbg_set_6cb8631f80447a67","__wbg_set_f43e577aea94465b","__wbg_stack_0ed75d68575b0f3c","__wbg_static_accessor_GLOBAL_12837167ad935116","__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f","__wbg_static_accessor_SELF_a621d3dfbb60d0ce","__wbg_static_accessor_WINDOW_f8727f0cf888e0bd","__wbg_stringify_8d1cc6ff383e8bae","__wbg_value_0546255b415e96c1","__wbindgen_cast_0000000000000001","__wbindgen_cast_0000000000000002","__wbindgen_cast_0000000000000003","__wbindgen_cast_0000000000000004","__wbindgen_init_externref_table","table","offset","__wbindgen_object_is_undefined","idx","type","description","name","length","debug","i","builtInMatches","className","ptr","len","getUint8ArrayMemory0","cachedDataViewMemory0","decodeText","cachedUint8ArrayMemory0","f","args","e","x","arg","malloc","realloc","buf","cachedTextEncoder","mem","code","view","value","numBytesDecoded","MAX_SAFARI_DECODE_BYTES","cachedTextDecoder","__wbg_set_wasm","init_apex_state_wasm_bg","__esmMin","apex_state_wasm_bg_exports","__export","__externref_table_alloc","__externref_table_dealloc","__wbindgen_exn_store","__wbindgen_externrefs","__wbindgen_free","__wbindgen_malloc","__wbindgen_realloc","__wbindgen_start","init","instance","memory","module","pipeline_create","pipeline_destroy","pipeline_reset","pipeline_reset_all","process_changes","register_boollogic","register_concerns","register_side_effects","shadow_dump","shadow_init","unregister_boollogic","unregister_concerns","unregister_side_effects","loadWasm","imports","moduleRequest","e","init_apex_state_wasm_bg","__esmMin","__wbindgen_object_is_undefined","__wbg_new_8a6f238a6ece86ea","__wbg_stack_0ed75d68575b0f3c","__wbg_error_7534b8e9a36f1ab4","__wbg_performance_7a3ffd0b17f663ad","__wbg_now_2c95c9de01293173","__wbg_get_with_ref_key_1dc361bd10053bfe","__wbg_set_3f1d0b984ed272ed","__wbg_String_8f0eb39a4a4c2f66","__wbg_new_dca287b076112a51","__wbg_new_3eb36ae241fe6f44","__wbg_new_361308b2356cecd0","__wbg_new_no_args_1c7c842f08d00ebb","__wbg_new_dd2b680c8bf6ae29","__wbg_length_32ed9a279acd054c","__wbg_prototypesetcall_bdcdcc5842e4d77d","__wbg_done_57b39ecd9addfe81","__wbg_value_0546255b415e96c1","__wbg_instanceof_Map_53af74335dec57f4","__wbg_instanceof_Uint8Array_9b9075935c74707c","__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04","__wbg_get_c60162cf03da5a6e","__wbg_set_1eb0999cf5d27fc8","__wbg_keys_0eee252dfbfa253e","__wbg_parse_708461a1feddfb38","__wbg_stringify_8d1cc6ff383e8bae","__wbg_new_with_length_1763c527b2923202","__wbg_get_9b94d73e6221f75c","__wbg_set_f43e577aea94465b","__wbg_from_bddd64e7d5ff6941","__wbg_length_35a7bace40f36eac","__wbg_push_8ffdcb2063340ba5","__wbg_isArray_d314bb98fcf08331","__wbg_isSafeInteger_bfbc7332a9768d2a","__wbg_entries_58c7934c745daac7","__wbg_iterator_6ff6560ca1568e55","__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f","__wbg_call_389efe28435a9388","__wbg_static_accessor_SELF_a621d3dfbb60d0ce","__wbg_static_accessor_GLOBAL_12837167ad935116","__wbg_static_accessor_WINDOW_f8727f0cf888e0bd","__wbg_get_b3ed3ad4be2bc8ac","__wbg_set_6cb8631f80447a67","__wbg_name_07a54d72942d5492","__wbg_call_812d25f1510c13c8","__wbg_next_418f80d8f5303233","__wbg_next_3482f54c49e8af19","__wbg___wbindgen_string_get_72fb696202c56729","__wbg___wbindgen_number_get_8ff4255516ccad3e","__wbg___wbindgen_in_47fa6863be6f2f25","__wbg___wbindgen_throw_be289d5034ed271b","__wbg___wbindgen_is_null_ac34f5003991759a","__wbg___wbindgen_jsval_eq_11888390b0186270","__wbg_Number_04624de7d0e8332d","__wbg_Error_8c4e43fe74559d73","__wbg___wbindgen_is_bigint_31b12575b56f32fc","__wbg___wbindgen_is_object_5ae8e5880f2c1fbd","__wbg___wbindgen_is_string_cd444516edc5b180","__wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25","__wbg___wbindgen_is_function_0095a73b8b156f76","__wbg___wbindgen_is_undefined_9e4d92534c42d778","__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811","__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2","__wbg___wbindgen_debug_string_0bc8482c6e3508ae","__wbindgen_init_externref_table","__wbindgen_cast_0000000000000001","__wbindgen_cast_0000000000000002","__wbindgen_cast_0000000000000003","__wbindgen_cast_0000000000000004","apex_state_wasm_bg_default","apex_state_wasm_exports","__export","init","pipeline_create","pipeline_destroy","pipeline_reset","pipeline_reset_all","process_changes","register_boollogic","register_concerns","register_side_effects","shadow_dump","shadow_init","unregister_boollogic","unregister_concerns","unregister_side_effects","init_apex_state_wasm","__esmMin","init_apex_state_wasm_bg","__wbg_set_wasm","apex_state_wasm_bg_exports","__wbindgen_start","useEffect","useState","createFastJson","placeholders","encodeMap","decodeMap","p","replacerMap","replacer","_key","val","decodeSentinelMap","walkRestore","i","obj","key","value","json","c","parsed","UNDEFINED_SENTINEL_JSON","fastStringify","fastParse","createFastJson","Fragment","jsx","wasmInstance","loadingPromise","loadWasm","m","isWasmLoaded","WasmGate","children","loaded","setLoaded","useState","isWasmLoaded","useEffect","cancelled","loadWasm","error","jsx","Fragment","loadWasm"]}
|