@lingxia/bridge 0.14.0 → 0.16.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/dist/bridge-runtime.es2020.js +1 -1
- package/dist/bridge-runtime.es5.js +1 -1
- package/dist/es2020/bridge.js +317 -66
- package/dist/es2020/protocol-v3.js +191 -0
- package/dist/es2020/runtime-env.js +32 -3
- package/dist/es2020/types.js +1 -0
- package/dist/es5/bridge.js +430 -143
- package/dist/es5/protocol-v3.js +215 -0
- package/dist/es5/runtime-env.js +32 -3
- package/dist/es5/types.js +1 -0
- package/dist/protocol-v3.d.ts +43 -0
- package/dist/runtime-env.d.ts +10 -2
- package/dist/types.d.ts +34 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const __LX_RUNTIME_PLATFORM__="all";var __LingXiaBridgeBundle=function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t="BRIDGE_TIMEOUT",n="BRIDGE_CANCELED",o="BRIDGE_HANDSHAKE_FAILED",r="BRIDGE_MALFORMED_MESSAGE",i="BRIDGE_METHOD_NOT_FOUND",s="BRIDGE_CAPABILITY_DENIED",a="BRIDGE_INTERNAL_ERROR",l="BRIDGE_OUTBOX_FULL",c="BRIDGE_STREAM_CLOSED";var d=class extends Error{constructor(e,t,n){super(t),this.name="BridgeInvocationError",this.code=e,this.data=n}};function u(e){if(e instanceof d)return e;if(e&&"object"==typeof e){const t=e;let n=a;("string"==typeof t.code&&""!==t.code.trim()||"number"==typeof t.code&&Number.isFinite(t.code))&&(n=t.code);const o="string"==typeof t.message&&""!==t.message.trim()?t.message:"Unknown error";return new d(n,o,"data"in t?t.data:void 0)}const t=e instanceof Error?e.message:"string"==typeof e?e:"Unknown error";return new d(a,t)}function m(e){const t=u(e);return{code:String(t.code||a),message:"string"==typeof t.message&&""!==t.message.trim()?t.message:"Unknown error",...void 0===t.data?{}:{data:t.data}}}function f({os:e,send:t}){if("undefined"==typeof window)return;if("undefined"==typeof document)return;const n="iOS"===e;if(!n&&"Android"!==e)return;const o=Symbol.for("LingXia.NativeComponentCoverageMonitor");if(window[o]?.installed)return;const r={installed:!0,coveredById:new Map,coveredCount:0,anyCovered:!1,scheduled:!1,hasAnyVideo:!1,scrollLocked:!1,scrollY:0,htmlOverflow:"",bodyOverflow:"",bodyPosition:"",bodyTop:"",bodyWidth:""};function i(e){const t=e.getBoundingClientRect?.();if(!t)return!1;if(t.width<2||t.height<2)return!1;const n=t.left+t.width/2,o=t.top+t.height/2;if(n<0||o<0||n>=window.innerWidth||o>=window.innerHeight)return!1;const r=document.elementFromPoint?.(n,o);return!!r&&(r!==document.documentElement&&r!==document.body&&!(r===e||e.contains(r)))}function s(){r.scheduled=!1;const e=document.querySelectorAll("lx-video[id]");if(r.hasAnyVideo=e.length>0,!r.hasAnyVideo&&0===r.coveredById.size&&!r.anyCovered)return;const o=new Set;for(const n of Array.from(e)){const e=n.id;if(!e)continue;o.add(e);const s=i(n),a=r.coveredById.get(e);a!==s&&(!0===a&&(r.coveredCount-=1),!0===s&&(r.coveredCount+=1),r.coveredById.set(e,s),t({id:e,action:"component.coverage",covered:s}))}const s=[];for(const[e,t]of r.coveredById.entries())o.has(e)||(s.push(e),!0===t&&(r.coveredCount-=1));for(const e of s)r.coveredById.delete(e),t({id:e,action:"component.coverage",covered:!1});const a=r.coveredCount>0;a!==r.anyCovered&&(r.anyCovered=a,n&&(a?function(){if(!n)return;if(r.scrollLocked)return;const e=document.documentElement,t=document.body;e&&t&&(r.scrollLocked=!0,r.scrollY=window.scrollY||e.scrollTop||0,r.htmlOverflow=e.style.overflow||"",r.bodyOverflow=t.style.overflow||"",r.bodyPosition=t.style.position||"",r.bodyTop=t.style.top||"",r.bodyWidth=t.style.width||"",e.style.overflow="hidden",t.style.overflow="hidden",t.style.position="fixed",t.style.top=-r.scrollY+"px",t.style.width="100%")}():function(){if(!n)return;if(!r.scrollLocked)return;const e=document.documentElement,t=document.body;e&&t&&(r.scrollLocked=!1,e.style.overflow=r.htmlOverflow,t.style.overflow=r.bodyOverflow,t.style.position=r.bodyPosition,t.style.top=r.bodyTop,t.style.width=r.bodyWidth,window.scrollTo(0,r.scrollY))}()))}function a(){r.scheduled||(r.scheduled=!0,requestAnimationFrame(s))}window[o]=r,new MutationObserver(a).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0});const l={handleEvent:()=>{(r.hasAnyVideo||0!==r.coveredById.size)&&a()}},c={handleEvent:()=>a()};window.addEventListener("scroll",l,{capture:!0,passive:!0}),window.addEventListener("resize",c),a()}const p="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{},h={value:p.displayLanguage?.trim()||"en-US",listeners:new Set};function g(){return"undefined"==typeof window?h:(window.__lxDisplayLanguage||(window.__lxDisplayLanguage={value:p.displayLanguage?.trim()||"en-US",listeners:new Set}),window.__lxDisplayLanguage)}function v(){"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=g().value)}function y(){return p.os||"unknown"}function w(){return"iOS"===p.os}function x(){return"macOS"===p.os}function b(){return"Windows"===p.os}function k(){return x()||b()}v(),"undefined"==typeof window||window.__lingxiaApplyDisplayLanguage||Object.defineProperty(window,"__lingxiaApplyDisplayLanguage",{configurable:!1,enumerable:!1,value:function(e){const t="string"==typeof e?e.trim():"",n=g();if(t&&t!==n.value){n.value=t,v();for(const e of[...n.listeners])e()}}});const E="__LingXiaRecvMessage",I=5e3,_="[LX.Bridge]",C="messageport",L="jsinterface",T="webmessage",S=p.appleDownstreamURL,M={data:!1,proto:!1,all:!1},N=[];function A(e){return M.all||M[e]}function B(...e){(!0===p.dev||M.all||M.proto||M.data)&&console.log(_,...e)}function j(...e){console.warn(_,...e)}function O(...e){console.error(_,...e)}function P(e){try{return JSON.stringify(e)}catch{return function(e,t){const n=new WeakSet;return JSON.stringify(e,(e,t)=>{if("object"==typeof t&&null!==t){if(n.has(t))return"[Circular]";n.add(t)}return t},t)}(e)}}function D(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return{}}}const R="iOS"===p.os||"macOS"===p.os?"webkit":"Harmony"===p.os?"messageport":"Windows"===p.os?"webmessage":"Android"===p.os?window.LingXiaProxy?.supportsMessagePort?.()?"messageport":"jsinterface":"unknown";"undefined"!=typeof window&&"function"!=typeof window[E]&&(window[E]=e=>{N.push(e)});let F=null,$=!1,X=null,z=null,H=null,q=200,G=!1,U=0;let W=0,J=null;const Y={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},V={handleEvent:e=>{const t=e;if("LingXia-port-init"!==t.data)return;const n=t.ports?.[0];n&&(rt._connectWebMessagePort(n),Y.resolve?.(n))}};function K(){Y.listenerInstalled||(Y.listenerInstalled=!0,window.addEventListener("message",V))}function Q(){null!==Y.timer&&(window.clearTimeout(Y.timer),Y.timer=null),Y.resolve=null,Y.reject=null,Y.promise=null}function Z(){return"webkit"===R&&(w()||x())}function ee(){null!==H&&(clearTimeout(H),H=null)}function te(e){Z()&&!G&&(G=!0,ee(),null!==J&&(clearInterval(J),J=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",ce),ae=!1,z?.abort(),$=!1,oe(e,!0))}function ne(e){for(const t of Array.from(xe.keys()))je(t,{code:c,message:e});for(const t of Array.from(be.keys()))Oe(t,{code:c,message:e});!function(e){for(const[t,n]of Array.from(ke.entries()))ke.delete(t),n._emitClose(c,e)}(e)}function oe(e,t){$e(),ue=null,me=!1,fe=!1,pe=0,t&&ne(e)}function re(e){let t=e;for(;;){const e=t.indexOf("\n");if(e<0)break;const n=t.slice(0,e).trim();if(t=t.slice(e+1),n)try{ie(JSON.parse(n))}catch(e){j("Apple downstream parse error:",e,n)}}return t}function ie(e){if(!e||"object"!=typeof e)return;W=Date.now();const t=e;if(!0!==t.lxshutdown){if(void 0===t.lxhb){if(!0===t.lxreset)return U=0,oe("Apple downstream reset",!0),void Xe();if("number"==typeof t.lxff){if(t.lxff<=U)return;return U=t.lxff,void We(t.m)}We(e)}}else te("Apple downstream closed")}function se(){if(!Z()||G)return;if(X)return;ee();let e=!1;X=async function(){if(!S)throw new Error("Apple downstream URL is not configured");const e=new AbortController;z=e;const t=S.includes("?")?"&":"?",n=`${S}${t}from=${U}`,o=await fetch(n,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal});if(!o.ok)throw new Error(`Apple downstream HTTP ${o.status}`);if("1"===o.headers.get("X-LingXia-Bridge-Shutdown"))return void te("Apple downstream closed");if(!o.body)throw new Error("Apple downstream response body unavailable");$=!0,q=200,W=Date.now(),A("proto")&&B("Apple downstream connected"),Xe();const r=o.body.getReader(),i=new TextDecoder;let s="";try{for(;;){const{value:e,done:t}=await r.read();if(t)break;s+=i.decode(e,{stream:!0}),s=re(s)}s+=i.decode();const e=s.trim();if(e)try{ie(JSON.parse(e))}catch(t){j("Apple downstream trailing parse error:",t,e)}}catch(t){if(e.signal.aborted)return;throw t}finally{try{r.releaseLock()}catch{}}}().then(()=>{e=!0}).catch(e=>{z?.signal.aborted||j("Apple downstream failed:",e)}).finally(()=>{const t=z?.signal.aborted??!1;X=null,z=null,$=!1,t||G||function(e,t=!1){if(!Z()||G)return;ee();const n=t?0:q;t||(q=Math.min(2*q,2e3));const o=t?`Apple downstream completed, reconnecting immediately: ${e}`:`Apple downstream disconnected, retrying in ${n}ms: ${e}`;n<=200?B(o):j(o),H=setTimeout(()=>{H=null,se()},n)}("stream closed",e)})}let ae=!1;function le(){if(!Z()||G)return;if(ae)return;ae=!0;const e=X;z?.abort();const t=()=>{ae=!1,se()};e?e.finally(t):t()}function ce(){"visible"===document.visibilityState&&le()}function de(e){const t=e.kind;"req"!==t&&"notify"!==t||B(`postToNative: ${t} ${e.method}`),A("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===R)return void window.webkit?.messageHandlers.LingXia?.postMessage(e);const t=P(e);if(R===C&&F)return void F.postMessage(t);if((R===L||R===T)&&window.LingXiaProxy?.postMessage)return void window.LingXiaProxy.postMessage(t);j("Transport not ready")}catch(e){O("Send error:",e)}}let ue=null,me=!1,fe=!1,pe=0,he=null;const ge={};let ve=0;function ye(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function we(e,t){const n=ye();let o=!1,r=!1,i=()=>{},s=()=>{};const a=[],l=[],c=new Promise((e,t)=>{i=e,s=t});return{id:e,result:c,on(e,t){return"data"===e&&n.data.add(t),"end"===e&&n.end.add(t),"error"===e&&n.error.add(t),this},[Symbol.asyncIterator]:()=>(r=!0,{next:()=>a.length>0?Promise.resolve({done:!1,value:a.shift()}):o?c.then(e=>({done:!0,value:e}),e=>Promise.reject(e)):new Promise((e,t)=>{l.push({resolve:e,reject:t})})}),cancel(){o||t()},_emitData(e){if(!o){l.length>0?l.shift().resolve({done:!1,value:e}):r&&a.push(e);for(const t of n.data)try{t(e)}catch(e){j("Stream data listener failed:",e)}}},_resolve(e){if(!o){for(o=!0,i(e);l.length>0;)l.shift().resolve({done:!0,value:e});for(const t of n.end)try{t(e)}catch(e){j("Stream end listener failed:",e)}}},_reject(e){if(!o){for(o=!0,s(e);l.length>0;)l.shift().reject(e);for(const t of n.error)try{t(e)}catch(e){j("Stream error listener failed:",e)}}}}}const xe=new Map,be=new Map,ke=new Map,Ee=[];let Ie=-1,_e={};const Ce=new Set,Le=new WeakMap,Te=new Map;function Se(e,t){Te.set(e,t)}function Me(e){if(e.startsWith("host."))return"host";const t=e.indexOf(".");return t>0?e.slice(0,t):"page"}function Ne(e){if(null!=e)return e}function Ae(){return R===C?!!F:Z()?$:"webkit"===R||R===L||R===T}function Be(){return!!me&&(!!Z()||Ae())}function je(e,t){const n=xe.get(e);if(n){xe.delete(e),null!==n.timerId&&clearTimeout(n.timerId);const o=u(t);if("stream"===n.mode&&n.stream)return void n.stream._reject(o);n.reject?.(o)}}function Oe(e,t){const n=be.get(e);if(!n)return;be.delete(e),null!==n.timerId&&clearTimeout(n.timerId);const o=u(t);n.channel._reject(o),n.reject(o)}function Pe(e,t){xe.has(e)?je(e,t):be.has(e)&&Oe(e,t)}function De(e){xe.has(e)?function(e){const n=xe.get(e);n&&(!Number.isFinite(n.timeoutMs)||n.timeoutMs<=0?null!==n.timerId&&(clearTimeout(n.timerId),n.timerId=null):(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(()=>{xe.has(e)&&je(e,{code:t,message:`'${n.method}' timed out`})},n.timeoutMs)))}(e):be.has(e)&&function(e){const n=be.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(()=>{Oe(e,{code:t,message:`Channel '${n.topic}' timed out`})},I))}(e)}function Re(e){for(let t=Ee.length-1;t>=0;t--)if(Ee[t]?.reqId===e)return Ee.splice(t,1),!0;return!1}function Fe(e,t){const n=e.kind,o="hello"===n||"helloAck"===n||"ready"===n;if(!Be()&&!o)return Ee.length>=256?(O("Outbox full"),void(t&&Pe(t,{code:l,message:"Bridge outbox is full"}))):void Ee.push({msg:e,reqId:t});t&&De(t),de(e)}function $e(){null!==he&&(clearTimeout(he),he=null)}function Xe(){if(me)return;if(!Ae())return;$e();const e={v:2,kind:"hello",nonce:p.nonce||"",role:"view",protocolsSupported:[2]};fe=!0,de(e),he=setTimeout(()=>{if(!me)if(pe++,pe<3)j(`Handshake timeout (${pe}/3), retrying...`),fe=!1,Xe();else{for(O("Handshake failed"),$e(),fe=!1,pe=0;Ee.length;){const e=Ee.shift();e?.reqId&&Pe(e.reqId,{code:o,message:"Bridge handshake failed"})}for(const e of Array.from(be.keys()))Oe(e,{code:o,message:"Bridge handshake failed"})}},1e4)}function ze(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function He(e,t,n=!1){const o=function(e){if(""===e)return[];if(!e.startsWith("/"))throw new Error(`Invalid JSON pointer: ${e}`);return e.split("/").slice(1).map(ze)}(t);if(0===o.length)return{container:{$root:e},key:"$root"};let r=e;for(let e=0;e<o.length-1;e++){const t=o[e];if(Array.isArray(r))r=r[Number(t)];else{if(!r||"object"!=typeof r)throw new Error(`Invalid container at ${t}`);{const i=r;if(n&&void 0===i[t]){const n=o[e+1];i[t]=n&&/^\d+$/.test(n)?[]:{}}r=i[t]}}}return{container:r,key:o[o.length-1]}}function qe(e){Ce.forEach(t=>{try{if(!Le.has(t))return Le.set(t,!0),void t(D(_e),{rev:Ie,initial:!0});t(D(_e),{rev:Ie,initial:e})}catch(e){j("Subscriber error:",e)}})}function Ge(e){if("function"!=typeof e)return()=>{};if(Ce.add(e),Ie>=0){Le.set(e,!0);try{e(D(_e),{rev:Ie,initial:!0})}catch(e){O("Callback error:",e)}}return()=>{Ce.delete(e),Le.delete(e)}}function Ue(e){ot.call("state.getSnapshot",{scope:e}).catch(()=>{})}function We(e){if(e&&"object"==typeof e){const t=e;if("event"===t.type&&"nativecomponent"===t.name&&t.payload){const e=t.payload,n=e.id||e.componentId;if("string"==typeof n){const t=Je.get(n);if(t)try{t(e)}catch(e){O("NC handler error:",e)}}return}}const t=function(e){if(!e||"object"!=typeof e)return null;const t=e.v,n=e.kind;return 2!==t||"string"!=typeof n?null:e}(e);if(t)switch(t.kind){case"helloAck":return void(ue=t.sessionId);case"ready":if(ue&&t.sessionId!==ue)return void j("sessionId mismatch");if($e(),me=!0,pe=0,t.hostMethods)for(const[e,n]of Object.entries(t.hostMethods))ge[e]=n;return A("proto")&&B("Handshake complete, hostMethods:",Object.keys(ge).length),void function(){if(Be())for(;Ee.length;){const e=Ee.shift();e&&(e.reqId&&De(e.reqId),de(e.msg))}}();case"res":{const e=xe.get(t.id);if(!e)return;if(xe.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok){if("state.getSnapshot"===e.method&&(function(e){if(!e||"object"!=typeof e)return!1;const t=e;return!("number"!=typeof t.rev||!Number.isFinite(t.rev)||!t.state||"object"!=typeof t.state||(_e=t.state,Ie=t.rev,A("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",Ie,"state:",D(_e)),console.groupEnd()),qe(!0),0))}(t.result)||j("Invalid state.getSnapshot result")),"stream"===e.mode&&e.stream)return void e.stream._resolve(t.result);e.resolve?.(t.result)}else{const n=u(t.error);if("stream"===e.mode&&e.stream)return void e.stream._reject(n);e.reject?.(n)}return}case"event":if(xe.has(t.id)){const e=xe.get(t.id);return void("stream"===e?.mode&&e.stream?(null!==e.timerId&&(clearTimeout(e.timerId),e.timerId=null),e.timeoutMs=0,e.stream._emitData(t.payload)):j(`Received event for non-stream request '${t.id}'`))}return;case"state.snapshot":return _e=t.state||{},Ie=t.rev,A("data")&&(console.group("[LX] snapshot"),console.log("rev:",Ie,"state:",D(_e)),console.groupEnd()),void qe(!0);case"state.patch":if(t.baseRev!==Ie)return j("baseRev mismatch",{have:Ie,want:t.baseRev}),void Ue(t.scope);try{!function(e,t){for(const n of t){const t="add"===n.op||"replace"===n.op,{container:o,key:r}=He(e,n.path,t);if("$root"===r){for(const t of Object.keys(e))delete e[t];if("remove"!==n.op){const t=n.value;t&&"object"==typeof t&&Object.assign(e,t)}continue}if(Array.isArray(o)){const e="-"===r?o.length:Number(r);if(!Number.isFinite(e)||e<0)throw new Error("Invalid index");"remove"===n.op?o.splice(e,1):"add"===n.op?o.splice(e,0,n.value):"replace"===n.op&&(o[e]=n.value);continue}if(!o||"object"!=typeof o)throw new Error("Invalid container");const i=o;"remove"===n.op?delete i[r]:i[r]=n.value}}(_e,t.ops||[]),Ie=t.rev}catch(e){return O("Patch failed:",e),void Ue(t.scope)}return A("data")&&(console.group("[LX] patch"),console.log("rev:",Ie,"ops:",t.ops),console.groupEnd()),qe(!1),void(t.ack&&Fe({v:2,kind:"state.ack",scope:t.scope,rev:t.rev}));case"ch.ack":{const e=be.get(t.id);if(!e)return;if(be.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok)e.channel._markOpen(),ke.set(t.id,e.channel),e.resolve(e.channel);else{const n=u(t.error);e.channel._reject(n),e.reject(n)}return}case"ch.data":{const e=ke.get(t.id);if(!e)return;return void e._emitData(t.payload)}case"ch.close":{if(be.get(t.id))return void Oe(t.id,{code:t.code??c,message:t.reason??"Channel closed before opening"});const e=ke.get(t.id);if(!e)return;return ke.delete(t.id),void e._emitClose(t.code,t.reason)}case"req":{const e=t,n=Me(e.method);if(!e.cap||e.cap!==n)return void Fe({v:2,kind:"res",id:e.id,ok:!1,error:{code:s,message:`Invalid cap for ${e.method}`}});const o=Te.get(e.method);return o?void Promise.resolve().then(()=>o(e.params)).then(t=>{Fe({v:2,kind:"res",id:e.id,ok:!0,result:t})}).catch(t=>{Fe({v:2,kind:"res",id:e.id,ok:!1,error:u(t)})}):void Fe({v:2,kind:"res",id:e.id,ok:!1,error:{code:i,message:`View handler not found: ${e.method}`}})}}else j("Invalid V2 message:",e)}const Je=new Map,Ye=[];let Ve=!1;function Ke(){return"undefined"!=typeof window&&!(!window.webkit?.messageHandlers?.NativeComponent&&!window.NativeComponentBridge?.postMessage)}function Qe(e){try{if(window.webkit?.messageHandlers?.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(window.NativeComponentBridge?.postMessage)return void window.NativeComponentBridge.postMessage(P(e))}catch(e){O("NativeComponent send error:",e)}}function Ze(){if(Ke()&&0!==Ye.length)for(Ve=!0;Ye.length;){const e=Ye.shift();try{Qe(e)}catch{break}}}function et(e){try{if(!Ke())return void Ye.push(e);Ve||Ze(),Qe(e)}catch(e){O("NC send failed:",e)}}function tt(e){return`${e}_${Date.now()}_${ve++}`}function nt(e,t,n){if(!t)return;if(t.aborted)return void n();let o={handleEvent:()=>{t.removeEventListener("abort",o),n()}};t.addEventListener("abort",o)}const ot={call:(e,t,o)=>new Promise((i,s)=>{if(!e||"string"!=typeof e)return void s({code:r,message:"Method name must be a non-empty string"});fe||Xe();const a=tt("c"),l=o?.cap||Me(e),c=o?.timeoutMs??I;xe.set(a,{method:e,mode:"call",resolve:i,reject:e=>s(e),timeoutMs:c,timerId:null}),Fe({v:2,kind:"req",id:a,method:e,params:Ne(t),cap:l},a),nt(0,o?.signal,()=>{const e=Re(a);je(a,{code:n,message:"Bridge request aborted"}),!e&&me&&Fe({v:2,kind:"cancel",id:a})})}),stream(e,t,o){if(!e||"string"!=typeof e){const e=we("invalid",()=>{});return e._reject({code:r,message:"Method name must be a non-empty string"}),e}fe||Xe();const i=tt("c"),s=we(i,()=>{Re(i)?je(i,{code:n,message:"Bridge request aborted"}):me&&Fe({v:2,kind:"cancel",id:i})}),a=o?.cap||Me(e),l=o?.timeoutMs??I;return xe.set(i,{method:e,mode:"stream",stream:s,timeoutMs:l,timerId:null}),Fe({v:2,kind:"req",id:i,method:e,params:Ne(t),cap:a},i),nt(0,o?.signal,()=>s.cancel()),s},notify(e,t,n){e&&"string"==typeof e&&(fe||Xe(),Fe({v:2,kind:"notify",method:e,params:Ne(t),cap:n?.cap||Me(e)}))},state:{subscribe:Ge},channel:{open:(e,t,n)=>e&&"string"==typeof e?(fe||Xe(),new Promise((o,r)=>{const i=tt("ch"),s=function(e,t,n){const o=ye();let r=!1,i=0,s=!1,a=!1;const l=[],d=[],u={id:e,send(n){r?t(n,i++):u._reject({code:c,message:`Channel '${e}' is closed`})},on(e,t){if("data"===e&&(o.data.add(t),l.length>0)){const e=l.splice(0);for(const n of e)try{t(n)}catch(e){j("Channel listener failed:",e)}}return"close"===e&&o.close.add(t),"error"===e&&o.error.add(t),this},[Symbol.asyncIterator]:()=>(a=!0,{next:()=>l.length>0?Promise.resolve({done:!1,value:l.shift()}):s?Promise.resolve({done:!0,value:void 0}):new Promise((e,t)=>{d.push({resolve:e,reject:t})})}),close(e,t){r&&(r=!1,s=!0,n(e,t),u._emitClose(e,t))},_emitData(e){if(r){d.length>0?d.shift().resolve({done:!1,value:e}):(a||0===o.data.size)&&l.push(e);for(const t of o.data)try{t(e)}catch(e){j("Channel listener failed:",e)}}},_emitClose(e,t){for(s=!0;d.length>0;)d.shift().resolve({done:!0,value:void 0});for(const n of o.close)try{n(e,t)}catch(e){j("Channel close listener failed:",e)}},_reject(e){for(s=!0;d.length>0;)d.shift().reject(e);for(const t of o.error)try{t(e)}catch(e){j("Channel error listener failed:",e)}},_markOpen(){r=!0,s=!1},_isOpen:()=>r,_nextSeq:()=>i++};return u}(i,(e,t)=>{Fe({v:2,kind:"ch.data",id:i,seq:t,payload:e})},(e,t)=>{const n=be.get(i);n&&null!==n.timerId&&clearTimeout(n.timerId),be.delete(i),ke.delete(i),Fe({v:2,kind:"ch.close",id:i,code:e,reason:t})});be.set(i,{topic:e,channel:s,resolve:o,reject:r,timerId:null}),Fe({v:2,kind:"ch.open",id:i,topic:e,params:Ne(t),cap:n?.cap||Me(e)},i)})):Promise.reject({code:r,message:"Topic name must be a non-empty string"})}},rt={invoke:(e,t,n)=>ot.call(it(e),t,st(n)).then(e=>e).catch(e=>Promise.reject(m(e))),notify(e,t,n){ot.notify(it(e),t,st(n))},stream:(e,t,n)=>at(ot.stream(it(e),t,st(n))),channel:(e,t,n)=>ot.channel.open(it(e),t,st(n)).then(e=>function(e){const t=new Set,n=new Set;return e.on("data",e=>{for(const n of t)n(e)}),e.on("close",(e,t)=>{const o={code:e,reason:t};for(const e of n)e(o)}),{send(t){e.send(t)},onMessage:e=>(t.add(e),()=>{t.delete(e)}),onClose:e=>(n.add(e),()=>{n.delete(e)}),close(t,n){e.close(t,n)}}}(e)).catch(e=>Promise.reject(m(e))),raw:ot,state:{subscribe:Ge},_connectWebMessagePort(e){if(R===C){if(F&&F!==e)try{F.onmessage=null,F.close()}catch{}F=e,e.onmessage=e=>{let t=e.data;if("string"==typeof t)try{t=JSON.parse(t)}catch{return}We(t)};try{e.start()}catch{}B("Port connected"),Xe()}},_receiveEvaluateMessage(e){try{e&&We(JSON.parse(e))}catch(e){O("Parse error:",e)}},debug:function(e){const t={};return Object.keys(e).forEach(n=>{Object.defineProperty(t,n,{enumerable:!0,configurable:!1,get:()=>e[n],set(t){e[n]=!!t,console.log(`[LX] ${n}: ${t}`)}})}),t}(M),platform:{isHarmony:function(){return"Harmony"===p.os},isIOS:w,isAndroid:function(){return"Android"===p.os},isMacOS:x,isWindows:b,isDesktop:k,isApple:function(){return w()||x()},isRunner:function(){return!0===p.runner},getOS:y},dom:{measureById(e){try{if(!e)return null;const t=document.getElementById(e);if(!t)return null;const n=t.getBoundingClientRect();let o=0;try{o=parseFloat(getComputedStyle(t).borderRadius)||0}catch{}return[n.left+window.scrollX,n.top+window.scrollY,n.width,n.height,o]}catch{return null}}},nativeComponents:{send:et,hasHandler:Ke,flush:Ze,register:(e,t)=>e&&"function"==typeof t?(Je.set(e,t),()=>Je.delete(e)):()=>{},unregister(e){Je.delete(e)}},isReady:()=>me};function it(e){return e.startsWith("host.")?e:`host.${e}`}function st(e){return{...e||{},cap:e?.cap||"host"}}function at(e){const t=new Set,n=new Set;return e.on("data",e=>{for(const n of t)n(e)}),e.on("error",e=>{const t=m(e);for(const e of n)e(t)}),{onEvent:e=>(t.add(e),()=>{t.delete(e)}),onError:e=>(n.add(e),()=>{n.delete(e)}),result:e.result.catch(e=>Promise.reject(m(e))),cancel(){e.cancel()}}}function lt(){if(window.__LX_BRIDGE_INIT_STATE)B(`Bridge already ${window.__LX_BRIDGE_INIT_STATE}, skipping duplicate init`);else{window.__LX_BRIDGE_INIT_STATE="initializing";try{B(`Method: ${R}`),function(e){if("undefined"==typeof window)return;if(window[E]=e,0===N.length)return;const t=N.splice(0,N.length);for(const n of t)try{e(n)}catch(e){j("Failed to replay queued native message:",e)}}(rt._receiveEvaluateMessage),Z()?(se(),Z()&&!G&&null===J&&(J=setInterval(()=>{0!==W&&Date.now()-W>35e3&&(j("Apple downstream stale (no heartbeat), forcing reconnect"),le())},5e3)),Z()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",ce)):R===C?(K(),function(){if(F)return Promise.resolve(F);if(Y.promise)return Y.promise;K(),Y.promise=new Promise((e,t)=>{Y.resolve=t=>{Q(),e(t)},Y.reject=e=>{Q(),t(e)},Y.timer=window.setTimeout(()=>{Y.reject?.(new Error("MessagePort init timed out after 5000ms"))},5e3)});try{window.LingXiaProxy?.getPort("LingXiaPort")}catch(e){Y.reject?.(e)}return Y.promise}().catch(e=>j("Port init failed:",e))):"webkit"===R||R===L||R===T?Xe():j("Unknown method"),window.LingXiaBridge=rt,window.__lxForceDownstreamReconnect=le,f({os:y(),send:et}),window.__LX_BRIDGE_INIT_STATE="initialized",B("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function ct(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function dt(e){const{failedPath:t,reason:n}=e,o=document.createElement("style");o.textContent="\n* { margin: 0; padding: 0; box-sizing: border-box; }\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n background: #f5f5f7;\n color: #1d1d1f;\n padding: 20px;\n -webkit-font-smoothing: antialiased;\n}\n.lx-error {\n text-align: center;\n max-width: 400px;\n}\n.lx-error-code {\n font-size: 120px;\n font-weight: 700;\n color: #d1d1d6;\n line-height: 1;\n letter-spacing: -4px;\n}\n.lx-error-title {\n font-size: 21px;\n font-weight: 600;\n margin: 16px 0 8px;\n color: #1d1d1f;\n}\n.lx-error-desc {\n font-size: 15px;\n color: #86868b;\n line-height: 1.5;\n}\n.lx-error-path {\n display: inline-block;\n margin-top: 20px;\n padding: 10px 16px;\n background: rgba(0,0,0,0.04);\n border-radius: 8px;\n font-family: 'SF Mono', ui-monospace, Menlo, Monaco, monospace;\n font-size: 13px;\n color: #1d1d1f;\n word-break: break-all;\n max-width: 100%;\n}\n@media (prefers-color-scheme: dark) {\n body { background: #000; color: #f5f5f7; }\n .lx-error-code { color: #3a3a3c; }\n .lx-error-title { color: #f5f5f7; }\n .lx-error-desc { color: #86868b; }\n .lx-error-path { background: rgba(255,255,255,0.08); color: #f5f5f7; }\n}\n",document.head.appendChild(o),document.body.innerHTML="",document.body.style.cssText="";const r=document.createElement("div");r.className="lx-error";let i='<div class="lx-error-code">404</div>';i+='<h1 class="lx-error-title">Page Not Found</h1>',i+="<p class=\"lx-error-desc\">The page you're looking for doesn't exist.</p>",t&&(i+=`<div class="lx-error-path">${ct(t)}</div>`),n&&(i+=`<p class="lx-error-desc" style="margin-top:12px">${ct(n)}</p>`),r.innerHTML=i,document.body.appendChild(r)}function ut(){const e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function mt(){return window.__LX_RUNTIME_CONFIG?.error||null}const ft={handleEvent:()=>pt()};function pt(){if(ut()){const e=mt();e&&dt(e)}}function ht(){lt(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",ft):pt()}const gt="lx-action-sheet-style";let vt=null;function yt(e){const t=e,n=t?.itemList??[],o=t?.cancelText??"Cancel",r=t?.itemColor??"#007AFF",i=(vt??Promise.resolve()).then(()=>wt(n,o,r),()=>wt(n,o,r));return vt=i,i}function wt(e,t,n){return new Promise(o=>{let r=!1;const i=k();!function(){if(document.getElementById(gt))return;const e=document.createElement("style");e.id=gt,e.textContent="\n.lx-as-backdrop {\n position: fixed; inset: 0; z-index: 99999;\n background: rgba(0,0,0,0.4);\n opacity: 0; transition: opacity 300ms ease;\n}\n.lx-as-backdrop.lx-as-visible { opacity: 1; }\n\n.lx-as-sheet {\n position: fixed; left: 0; right: 0; bottom: 0; z-index: 100000;\n transform: translateY(100%);\n transition: transform 300ms ease;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n.lx-as-sheet.lx-as-visible { transform: translateY(0); }\n.lx-as-sheet.lx-as-desktop {\n left: 50%;\n right: auto;\n bottom: auto;\n top: 50%;\n width: min(92vw, 460px);\n transform: translate(-50%, calc(-50% + 16px));\n}\n.lx-as-sheet.lx-as-desktop.lx-as-visible { transform: translate(-50%, -50%); }\n\n.lx-as-container {\n background: #fff;\n border-radius: 16px 16px 0 0;\n overflow: hidden;\n}\n.lx-as-container.lx-as-desktop {\n border-radius: 16px;\n}\n\n.lx-as-item {\n display: block; width: 100%;\n height: 56px;\n line-height: 56px;\n padding: 0;\n border: none; background: none;\n font-size: 18px; font-weight: 400;\n text-align: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n position: relative;\n}\n.lx-as-item:active { background: rgba(0,0,0,0.08); }\n.lx-as-item + .lx-as-item::before {\n content: ''; position: absolute; top: 0; left: 0; right: 0;\n height: 1px; background: #E0E0E0;\n}\n.lx-as-separator {\n height: 8px;\n background: #F2F2F2;\n}\n.lx-as-cancel-btn { font-weight: 500; color: #000; }\n",document.head.appendChild(e)}();const s=document.createElement("div");s.className="lx-as-backdrop";const a=document.createElement("div");a.className="lx-as-sheet",i&&a.classList.add("lx-as-desktop");const l=document.createElement("div");l.className="lx-as-container",i&&l.classList.add("lx-as-desktop"),e.forEach((e,t)=>{const o=document.createElement("button");o.className="lx-as-item",o.textContent=e,o.style.color=n,o.addEventListener("click",()=>u(t)),l.appendChild(o)});const c=document.createElement("div");c.className="lx-as-separator",l.appendChild(c);const d=document.createElement("button");function u(e){r||(r=!0,s.classList.remove("lx-as-visible"),a.classList.remove("lx-as-visible"),setTimeout(()=>{s.remove(),a.remove(),o({tapIndex:e})},300))}d.className="lx-as-item lx-as-cancel-btn",d.textContent=t,d.addEventListener("click",()=>u(-1)),l.appendChild(d),a.appendChild(l),document.body.appendChild(s),document.body.appendChild(a),requestAnimationFrame(()=>{s.classList.add("lx-as-visible"),a.classList.add("lx-as-visible")}),s.addEventListener("click",()=>u(-1))})}const xt=200,bt="lx-modal-style";let kt=null;function Et(e){const t=e,n=t?.title??"",o=t?.content??"",r=t?.showCancel??!0,i=t?.cancelText??"Cancel",s=t?.cancelColor,a=t?.confirmText??"OK",l=t?.confirmColor??"#007AFF",c=(kt??Promise.resolve()).then(()=>It(n,o,r,i,s,a,l),()=>It(n,o,r,i,s,a,l));return kt=c,c}function It(e,t,n,o,r,i,s){return new Promise(a=>{let l=!1;!function(){if(document.getElementById(bt))return;const e=document.createElement("style");e.id=bt,e.textContent="\n.lx-modal-backdrop {\n position: fixed; inset: 0; z-index: 99999;\n background: rgba(0,0,0,0.4);\n opacity: 0; transition: opacity 200ms ease;\n display: flex; align-items: center; justify-content: center;\n}\n.lx-modal-backdrop.lx-modal-visible { opacity: 1; }\n\n.lx-modal-dialog {\n width: min(92vw, 320px);\n background: #fff;\n border-radius: 14px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n -webkit-font-smoothing: antialiased;\n transform: scale(0.95); opacity: 0;\n transition: transform 200ms ease, opacity 200ms ease;\n}\n.lx-modal-backdrop.lx-modal-visible .lx-modal-dialog {\n transform: scale(1); opacity: 1;\n}\n\n.lx-modal-body {\n padding: 24px 20px 16px;\n text-align: center;\n}\n.lx-modal-title {\n margin: 0 0 8px;\n font-size: 17px;\n font-weight: 600;\n color: #000;\n line-height: 1.35;\n}\n.lx-modal-content {\n margin: 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n word-break: break-word;\n}\n.lx-modal-body:has(.lx-modal-title:empty) .lx-modal-content {\n font-size: 17px;\n font-weight: 600;\n color: #000;\n}\n\n.lx-modal-footer {\n display: flex;\n border-top: 1px solid #E0E0E0;\n}\n.lx-modal-btn {\n flex: 1;\n height: 44px;\n line-height: 44px;\n padding: 0;\n border: none;\n background: none;\n font-size: 17px;\n text-align: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n}\n.lx-modal-btn:active { background: rgba(0,0,0,0.06); }\n.lx-modal-btn + .lx-modal-btn {\n border-left: 1px solid #E0E0E0;\n}\n.lx-modal-btn-cancel {\n color: #666;\n font-weight: 400;\n}\n.lx-modal-btn-confirm {\n font-weight: 600;\n}\n\n@media (prefers-color-scheme: dark) {\n .lx-modal-dialog { background: #2c2c2e; }\n .lx-modal-title { color: #f5f5f7; }\n .lx-modal-content { color: #ababab; }\n .lx-modal-body:has(.lx-modal-title:empty) .lx-modal-content {\n color: #f5f5f7;\n }\n .lx-modal-footer { border-top-color: #3a3a3c; }\n .lx-modal-btn:active { background: rgba(255,255,255,0.08); }\n .lx-modal-btn + .lx-modal-btn { border-left-color: #3a3a3c; }\n .lx-modal-btn-cancel { color: #ababab; }\n}\n",document.head.appendChild(e)}();const c=document.createElement("div");c.className="lx-modal-backdrop";const d=document.createElement("div");d.className="lx-modal-dialog";const u=document.createElement("div");u.className="lx-modal-body";const m=document.createElement("div");if(m.className="lx-modal-title",m.textContent=e,u.appendChild(m),t){const e=document.createElement("p");e.className="lx-modal-content",e.textContent=t,u.appendChild(e)}d.appendChild(u);const f=document.createElement("div");if(f.className="lx-modal-footer",n){const e=document.createElement("button");e.className="lx-modal-btn lx-modal-btn-cancel",e.textContent=o,r&&(e.style.color=r),e.addEventListener("click",()=>h(!1)),f.appendChild(e)}const p=document.createElement("button");function h(e){l||(l=!0,c.classList.remove("lx-modal-visible"),setTimeout(()=>{c.remove(),a({confirm:e,cancel:!e})},xt))}p.className="lx-modal-btn lx-modal-btn-confirm",p.textContent=i,p.style.color=s,p.addEventListener("click",()=>h(!0)),f.appendChild(p),d.appendChild(f),c.appendChild(d),document.body.appendChild(c),requestAnimationFrame(()=>{c.classList.add("lx-modal-visible")})})}const _t="lx-toast-style";let Ct=null;function Lt(e){const t=e,n=t?.title??"",o=t?.icon??"none",r=t?.duration??1500,i=t?.mask??!1,s=t?.position??"center";if(Ct&&Ct.icon===o&&Ct.position===s&&Ct.mask===i){const e=Ct;return e.titleEl.textContent=n,e.timer&&clearTimeout(e.timer),e.timer=r>0?setTimeout(e.dismiss,r):null,Promise.resolve()}Ct&&(Ct.dismiss(),Ct=null),function(){if(document.getElementById(_t))return;const e=document.createElement("style");e.id=_t,e.textContent="\n.lx-toast-mask {\n position: fixed; inset: 0; z-index: 99998;\n}\n.lx-toast-container {\n position: fixed; left: 0; right: 0; z-index: 99999;\n display: flex; justify-content: center;\n pointer-events: none;\n}\n.lx-toast-container.lx-toast-top { top: 0; padding-top: 80px; }\n.lx-toast-container.lx-toast-center { top: 0; bottom: 0; align-items: center; }\n.lx-toast-container.lx-toast-bottom { bottom: 0; padding-bottom: 80px; }\n\n.lx-toast-box {\n display: flex; flex-direction: column; align-items: center; gap: 10px;\n min-width: 120px; max-width: 280px;\n padding: 20px;\n background: rgba(0,0,0,0.8);\n border-radius: 12px;\n color: #fff;\n pointer-events: auto;\n transform: scale(0.8); opacity: 0;\n transition: transform 200ms ease, opacity 200ms ease;\n}\n.lx-toast-box.lx-toast-no-icon {\n min-width: auto; min-height: auto;\n padding: 12px 20px;\n}\n.lx-toast-box.lx-toast-visible {\n transform: scale(1); opacity: 1;\n}\n.lx-toast-icon {\n width: 36px; height: 36px;\n color: #fff;\n line-height: 0;\n}\n.lx-toast-title {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n font-size: 16px; font-weight: 500;\n text-align: center;\n line-height: 1.4;\n word-break: break-word;\n -webkit-font-smoothing: antialiased;\n}\n",document.head.appendChild(e)}();let a=null;i&&(a=document.createElement("div"),a.className="lx-toast-mask",document.body.appendChild(a));const l=document.createElement("div");l.className="lx-toast-container","top"===s?l.classList.add("lx-toast-top"):"bottom"===s?l.classList.add("lx-toast-bottom"):l.classList.add("lx-toast-center");const c=document.createElement("div");c.className="lx-toast-box";const d="none"!==o;if(d||c.classList.add("lx-toast-no-icon"),d){const e=document.createElement("div");e.className="lx-toast-icon","success"===o?e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="17" stroke="currentColor" stroke-width="2"/><path d="M11 18l5 5 9-9" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>':"error"===o?e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="17" stroke="currentColor" stroke-width="2"/><path d="M13 13l10 10M23 13l-10 10" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>':"loading"===o&&(e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18 4a14 14 0 0 1 14 14" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="0.8s" repeatCount="indefinite"/></path></svg>'),c.appendChild(e)}const u=document.createElement("div");u.className="lx-toast-title",u.textContent=n,c.appendChild(u),l.appendChild(c),document.body.appendChild(l),requestAnimationFrame(()=>{c.classList.add("lx-toast-visible")});let m=!1;function f(){m||(m=!0,p.timer&&clearTimeout(p.timer),Ct===p&&(Ct=null),c.classList.remove("lx-toast-visible"),setTimeout(()=>{l.remove(),a?.remove()},200))}const p={dismiss:f,timer:null,titleEl:u,icon:o,position:s,mask:i};return r>0&&(p.timer=setTimeout(f,r)),Ct=p,Promise.resolve()}function Tt(){return Ct&&(Ct.dismiss(),Ct=null),Promise.resolve()}return Se("ui.showActionSheet",yt),Se("ui.showModal",Et),Se("ui.showToast",Lt),Se("ui.hideToast",Tt),ht(),e.LingXiaBridge=rt,e.boot=function(){lt(),pt()},e.bootWhenReady=ht,e.channel=function(e,t,n){return rt.channel(e,t,n)},e.getDisplayLanguage=function(){return g().value},e.getErrorInfo=mt,e.hasError=ut,e.initBridge=lt,e.invoke=function(e,t,n){return rt.invoke(e,t,n)},e.isNativeError=function(e,t){if(!e||"object"!=typeof e)return!1;const n=e;return"string"==typeof n.code&&""!==n.code.trim()&&("string"==typeof n.message&&(void 0===t||n.code===t))},e.notify=function(e,t,n){ot.notify(it(e),t,st(n))},e.renderErrorUI=dt,e.stream=function(e,t,n){return at(ot.stream(it(e),t,st(n)))},e.subscribeDisplayLanguage=function(e){const t=g().listeners;return t.add(e),()=>{t.delete(e)}},e}({});
|
|
1
|
+
const __LX_RUNTIME_PLATFORM__="all";var __LingXiaBridgeBundle=function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const n="BRIDGE_TIMEOUT",t="BRIDGE_CANCELED",o="BRIDGE_HANDSHAKE_FAILED",r="BRIDGE_MALFORMED_MESSAGE",i="BRIDGE_METHOD_NOT_FOUND",s="BRIDGE_CAPABILITY_DENIED",a="BRIDGE_INTERNAL_ERROR",l="BRIDGE_OUTBOX_FULL",c="BRIDGE_STREAM_CLOSED",d="BRIDGE_MESSAGE_TOO_LARGE";var u=class extends Error{constructor(e,n,t){super(n),this.name="BridgeInvocationError",this.code=e,this.data=t}};function f(e){if(e instanceof u)return e;if(e&&"object"==typeof e){const n=e;let t=a;("string"==typeof n.code&&""!==n.code.trim()||"number"==typeof n.code&&Number.isFinite(n.code))&&(t=n.code);const o="string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error";return new u(t,o,"data"in n?n.data:void 0)}const n=e instanceof Error?e.message:"string"==typeof e?e:"Unknown error";return new u(a,n)}function m(e){const n=f(e);return{code:String(n.code||a),message:"string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error",...void 0===n.data?{}:{data:n.data}}}function p({os:e,send:n}){if("undefined"==typeof window)return;if("undefined"==typeof document)return;const t="iOS"===e;if(!t&&"Android"!==e)return;const o=Symbol.for("LingXia.NativeComponentCoverageMonitor");if(window[o]?.installed)return;const r={installed:!0,coveredById:new Map,coveredCount:0,anyCovered:!1,scheduled:!1,hasAnyVideo:!1,scrollLocked:!1,scrollY:0,htmlOverflow:"",bodyOverflow:"",bodyPosition:"",bodyTop:"",bodyWidth:""};function i(e){const n=e.getBoundingClientRect?.();if(!n)return!1;if(n.width<2||n.height<2)return!1;const t=n.left+n.width/2,o=n.top+n.height/2;if(t<0||o<0||t>=window.innerWidth||o>=window.innerHeight)return!1;const r=document.elementFromPoint?.(t,o);return!!r&&(r!==document.documentElement&&r!==document.body&&!(r===e||e.contains(r)))}function s(){r.scheduled=!1;const e=document.querySelectorAll("lx-video[id]");if(r.hasAnyVideo=e.length>0,!r.hasAnyVideo&&0===r.coveredById.size&&!r.anyCovered)return;const o=new Set;for(const t of Array.from(e)){const e=t.id;if(!e)continue;o.add(e);const s=i(t),a=r.coveredById.get(e);a!==s&&(!0===a&&(r.coveredCount-=1),!0===s&&(r.coveredCount+=1),r.coveredById.set(e,s),n({id:e,action:"component.coverage",covered:s}))}const s=[];for(const[e,n]of r.coveredById.entries())o.has(e)||(s.push(e),!0===n&&(r.coveredCount-=1));for(const e of s)r.coveredById.delete(e),n({id:e,action:"component.coverage",covered:!1});const a=r.coveredCount>0;a!==r.anyCovered&&(r.anyCovered=a,t&&(a?function(){if(!t)return;if(r.scrollLocked)return;const e=document.documentElement,n=document.body;e&&n&&(r.scrollLocked=!0,r.scrollY=window.scrollY||e.scrollTop||0,r.htmlOverflow=e.style.overflow||"",r.bodyOverflow=n.style.overflow||"",r.bodyPosition=n.style.position||"",r.bodyTop=n.style.top||"",r.bodyWidth=n.style.width||"",e.style.overflow="hidden",n.style.overflow="hidden",n.style.position="fixed",n.style.top=-r.scrollY+"px",n.style.width="100%")}():function(){if(!t)return;if(!r.scrollLocked)return;const e=document.documentElement,n=document.body;e&&n&&(r.scrollLocked=!1,e.style.overflow=r.htmlOverflow,n.style.overflow=r.bodyOverflow,n.style.position=r.bodyPosition,n.style.top=r.bodyTop,n.style.width=r.bodyWidth,window.scrollTo(0,r.scrollY))}()))}function a(){r.scheduled||(r.scheduled=!0,requestAnimationFrame(s))}window[o]=r,new MutationObserver(a).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0});const l={handleEvent:()=>{(r.hasAnyVideo||0!==r.coveredById.size)&&a()}},c={handleEvent:()=>a()};window.addEventListener("scroll",l,{capture:!0,passive:!0}),window.addEventListener("resize",c),a()}const h=new Set(["hello","req","res","notify","cancel","ch.open","ch.data","ch.close","state.ack","console"]),g=new Set(["helloAck","ready","req","res","event","state.snapshot","state.patch","ch.ack","ch.data","ch.close"]);function v(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function y(e){if(!v(e)||"string"!=typeof e.sessionId||0===e.sessionId.length||"string"!=typeof e.secret||0===e.secret.length)return{ok:!1,error:"INVALID_DOCUMENT_BINDING"};const{sessionId:n,secret:t}=e;return{ok:!0,value:{encode:(e,o)=>h.has(e)&&v(o)?["v","kind","sessionId","secret"].some(e=>e in o)?{ok:!1,error:"SECURITY_FIELD_IN_PAYLOAD"}:{ok:!0,value:{...o,v:3,kind:e,sessionId:n,secret:t}}:{ok:!1,error:"INVALID_DOCUMENT_PAYLOAD"},parse(e,t=65536){if((new TextEncoder).encode(e).byteLength>t)return{ok:!1,error:"FRAME_TOO_LARGE"};if(function(e){const n=new Set(["v","kind","sessionId","secret"]),t=new Set;let o=0;for(let r=0;r<e.length;r++){const i=e[r];if("{"===i||"["===i){o++;continue}if("}"===i||"]"===i){o--;continue}if('"'!==i)continue;const s=r;for(r++;r<e.length;)if("\\"!==e[r]){if('"'===e[r])break;r++}else r+=2;if(r>=e.length)return!1;if(1!==o)continue;let a,l=r+1;for(;/\s/.test(e[l]??"");)l++;if(":"===e[l]){try{a=JSON.parse(e.slice(s,r+1))}catch{return!1}if("string"==typeof a&&n.has(a)){if(t.has(a))return!0;t.add(a)}}}return!1}(e))return{ok:!1,error:"MALFORMED_ENVELOPE"};let o;try{o=JSON.parse(e)}catch{return{ok:!1,error:"MALFORMED_ENVELOPE"}}if(!v(o))return{ok:!1,error:"MALFORMED_ENVELOPE"};if(3!==o.v)return{ok:!1,error:"UNSUPPORTED_VERSION"};if("string"!=typeof o.kind||!g.has(o.kind))return{ok:!1,error:"UNSUPPORTED_NATIVE_KIND"};if("string"!=typeof o.sessionId||0===o.sessionId.length)return{ok:!1,error:"MALFORMED_ENVELOPE"};if(o.sessionId!==n)return{ok:!1,error:"SESSION_MISMATCH"};if(Object.prototype.hasOwnProperty.call(o,"secret"))return{ok:!1,error:"UNEXPECTED_SECRET"};const{v:r,kind:i,sessionId:s,...a}=o;return{ok:!0,value:{kind:o.kind,payload:a}}}}}}const w="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{},b={value:w.displayLanguage?.trim()||"en-US",listeners:new Set};function x(){return"undefined"==typeof window?b:(window.__lxDisplayLanguage||(window.__lxDisplayLanguage={value:w.displayLanguage?.trim()||"en-US",listeners:new Set}),window.__lxDisplayLanguage)}function k(){"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=x().value)}function E(){return x().value}function I(e){const n=x().listeners;return n.add(e),()=>{n.delete(e)}}function _(){return w.os||"unknown"}function L(){return"mobile"===w.hostClass||"desktop"===w.hostClass?w.hostClass:"macOS"===w.os||"Windows"===w.os?"desktop":"mobile"}function C(){return"iOS"===w.os}function S(){return"macOS"===w.os}function T(){return"desktop"===L()}k(),"undefined"==typeof window||window.__lingxiaApplyDisplayLanguage||Object.defineProperty(window,"__lingxiaApplyDisplayLanguage",{configurable:!1,enumerable:!1,value:function(e){const n="string"==typeof e?e.trim():"",t=x();if(n&&n!==t.value){t.value=n,k();for(const e of[...t.listeners])e(n)}}});const N="__LingXiaRecvMessage",M=5e3,A="[LX.Bridge]",O="messageport",P="jsinterface",D="webmessage",B=w.appleDownstreamURL,j={log:console.log.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),info:(console.info||console.log).bind(console),debug:(console.debug||console.log).bind(console),group:(console.group||console.log).bind(console),groupEnd:(console.groupEnd||(()=>{})).bind(console)},R={data:!1,proto:!1,all:!1},F=[];let X={kind:"v2"},$=!1;function q(){if("undefined"==typeof window)return;const e=window.__LingXiaEarlyNativeMessages;if(Array.isArray(e)&&0!==e.length){window.__LingXiaEarlyNativeMessages=[];for(const n of e)"string"==typeof n&&F.push(n)}}function U(e){if(q(),0===F.length)return;const n=F.splice(0,F.length);for(const t of n)try{e(t)}catch(e){H("Failed to replay queued native message:",e)}}function G(e){return R.all||R[e]}function z(...e){(!0===w.dev||R.all||R.proto||R.data)&&j.log(A,...e)}function H(...e){j.warn(A,...e)}function W(...e){j.error(A,...e)}function V(e){try{return JSON.stringify(e)}catch{return function(e,n){const t=new WeakSet;return JSON.stringify(e,(e,n)=>{if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n},n)}(e)}}function J(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return{}}}const Y="iOS"===w.os||"macOS"===w.os?"webkit":"Harmony"===w.os?"messageport":"Windows"===w.os?"webmessage":"Android"===w.os?window.LingXiaProxy?.supportsMessagePort?.()?"messageport":"jsinterface":"unknown";!function(){if("undefined"==typeof window)return;q();const e=window[N];if("function"==typeof e){if(0===F.length)return;const n=F.splice(0,F.length);for(const t of n)try{e(t)}catch(e){H("Failed to replay queued native message:",e)}return}window[N]=e=>{F.push(e)}}();let K=null,Q=!1,Z=null,ee=null,ne=null,te=200,oe=!1,re=0;let ie=0,se=0;const ae=`${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`;let le=null;const ce={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},de={handleEvent:e=>{const n=e;if("LingXia-port-init"!==n.data)return;const t=n.ports?.[0];t&&(xn._connectWebMessagePort(t),ce.resolve?.(t))}};function ue(){ce.listenerInstalled||(ce.listenerInstalled=!0,window.addEventListener("message",de))}function fe(){null!==ce.timer&&(window.clearTimeout(ce.timer),ce.timer=null),ce.resolve=null,ce.reject=null,ce.promise=null}function me(){return"webkit"===Y&&(C()||S())}function pe(){null!==ne&&(clearTimeout(ne),ne=null)}function he(e){me()&&!oe&&(oe=!0,pe(),null!==le&&(clearInterval(le),le=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",Ee),xe=!1,ee?.abort(),Q=!1,ve(e,!0))}function ge(e){for(const n of Array.from(De.keys()))Je(n,{code:c,message:e});for(const n of Array.from(Be.keys()))Ye(n,{code:c,message:e});!function(e){for(const[n,t]of Array.from(je.entries()))je.delete(n),t._emitClose(c,e)}(e)}function ve(e,n){tn(),"required-v3"!==X.kind&&(Le=null),Ce=!1,Se=!1,Te=!1,Ne=0,n&&ge(e)}function ye(e){let n=e;for(;;){const e=n.indexOf("\n");if(e<0)break;const t=n.slice(0,e).trim();if(n=n.slice(e+1),t)try{we(JSON.parse(t))}catch(e){H("Apple downstream parse error:",e,t)}}return n}function we(e){if(!e||"object"!=typeof e)return;ie=Date.now();const n=e;if(!0!==n.lxshutdown){if(void 0===n.lxhb){if(!0===n.lxreset)return re=0,ve("Apple downstream reset",!0),void on();if("number"==typeof n.lxff){if(n.lxff<=re)return;return re=n.lxff,void dn(n.m)}dn(e)}}else he("Apple downstream closed")}function be(){if(!me()||oe)return;if(Z)return;pe();let e=!1;Z=async function(){if(!B)throw new Error("Apple downstream URL is not configured");const e=new AbortController;ee=e;const n=B.includes("?")?"&":"?",t=`${B}${n}from=${re}&doc=${ae}`;se=Date.now();const o=await fetch(t,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal});if(!o.ok)throw new Error(`Apple downstream HTTP ${o.status}`);if("1"===o.headers.get("X-LingXia-Bridge-Shutdown"))return void he("Apple downstream closed");if(!o.body)throw new Error("Apple downstream response body unavailable");Q=!0,te=200,ie=Date.now(),G("proto")&&z("Apple downstream connected"),on();const r=o.body.getReader(),i=new TextDecoder;let s="";try{for(;;){const{value:e,done:n}=await r.read();if(n)break;s+=i.decode(e,{stream:!0}),s=ye(s)}s+=i.decode();const e=s.trim();if(e)try{we(JSON.parse(e))}catch(n){H("Apple downstream trailing parse error:",n,e)}}catch(n){if(e.signal.aborted)return;throw n}finally{try{r.releaseLock()}catch{}}}().then(()=>{e=!0}).catch(e=>{ee?.signal.aborted||H("Apple downstream failed:",e)}).finally(()=>{const n=ee?.signal.aborted??!1;Z=null,ee=null,Q=!1,n||oe||function(e,n=!1){if(!me()||oe)return;pe();const t=n?0:te;n||(te=Math.min(2*te,2e3));const o=n?`Apple downstream completed, reconnecting immediately: ${e}`:`Apple downstream disconnected, retrying in ${t}ms: ${e}`;t<=200?z(o):H(o),ne=setTimeout(()=>{ne=null,be()},t)}("stream closed",e)})}let xe=!1;function ke(){if(!me()||oe)return;if(xe)return;xe=!0;const e=Z;ee?.abort();const n=()=>{xe=!1,be()};e?e.finally(n):n()}function Ee(){"visible"===document.visibilityState&&ke()}function Ie(e){const n=function(e){if("blocked"===X.kind)return null;if("v2"===X.kind)return e;if(!e||"object"!=typeof e)return null;const{v:n,kind:t,...o}=e;if("string"!=typeof t)return null;const r=X.codec.encode(t,o);return r.ok?r.value:null}(e);if(!n)return null;const t=e.kind;"req"!==t&&"notify"!==t||z(`postToNative: ${t} ${e.method}`),G("proto")&&j.log("→",JSON.stringify(e,null,2));try{const e=V(n),t=function(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e).length;let n=0;for(let t=0;t<e.length;t+=1){const o=e.charCodeAt(t);o<128?n+=1:o<2048?n+=2:o>=55296&&o<=56319?(n+=4,t+=1):n+=3}return n}(e);if(t>65536)return{code:d,message:`Bridge message of ${t} bytes exceeds the 65536-byte native limit`};if("webkit"===Y)return window.webkit?.messageHandlers.LingXia?.postMessage(e),null;if(Y===O&&K)return K.postMessage(e),null;if((Y===P||Y===D)&&window.LingXiaProxy?.postMessage)return window.LingXiaProxy.postMessage(e),null;H("Transport not ready")}catch(e){"required-v3"===X.kind?W("Send error"):W("Send error:",e)}return null}function _e(e){const n=e.map(e=>{if("string"==typeof e)return e;try{const n=V(e);return"string"==typeof n?n:String(e)}catch{return"[Unserializable]"}}).join(" ");return n.length<=12288?n:`${n.slice(0,12288)}…`}let Le=null,Ce=!1,Se=!1,Te=!1,Ne=0,Me=null,Ae=0;function Oe(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function Pe(e,n){const t=Oe();let o=!1,r=!1,i=()=>{},s=()=>{};const a=[],l=[],c=new Promise((e,n)=>{i=e,s=n});return{id:e,result:c,on(e,n){return"data"===e&&t.data.add(n),"end"===e&&t.end.add(n),"error"===e&&t.error.add(n),this},[Symbol.asyncIterator]:()=>(r=!0,{next:()=>a.length>0?Promise.resolve({done:!1,value:a.shift()}):o?c.then(e=>({done:!0,value:e}),e=>Promise.reject(e)):new Promise((e,n)=>{l.push({resolve:e,reject:n})})}),cancel(){o||n()},_emitData(e){if(!o){l.length>0?l.shift().resolve({done:!1,value:e}):r&&a.push(e);for(const n of t.data)try{n(e)}catch(e){H("Stream data listener failed:",e)}}},_resolve(e){if(!o){for(o=!0,i(e);l.length>0;)l.shift().resolve({done:!0,value:e});for(const n of t.end)try{n(e)}catch(e){H("Stream end listener failed:",e)}}},_reject(e){if(!o){for(o=!0,s(e);l.length>0;)l.shift().reject(e);for(const n of t.error)try{n(e)}catch(e){H("Stream error listener failed:",e)}}}}}const De=new Map,Be=new Map,je=new Map,Re=[];let Fe=-1,Xe={};const $e=new Set,qe=new WeakMap,Ue=new Map;function Ge(e,n){Ue.set(e,n)}function ze(e){if(e.startsWith("host."))return"host";const n=e.indexOf(".");return n>0?e.slice(0,n):"page"}function He(e){if(null!=e)return e}function We(){return Y===O?!!K:me()?Q:"webkit"===Y||Y===P||Y===D}function Ve(){return!!Se&&(!!me()||We())}function Je(e,n){const t=De.get(e);if(t){De.delete(e),null!==t.timerId&&clearTimeout(t.timerId);const o=f(n);if("stream"===t.mode&&t.stream)return void t.stream._reject(o);t.reject?.(o)}}function Ye(e,n){const t=Be.get(e);if(!t)return;Be.delete(e),null!==t.timerId&&clearTimeout(t.timerId);const o=f(n);t.channel._reject(o),t.reject(o)}function Ke(e,n){De.has(e)?Je(e,n):Be.has(e)&&Ye(e,n)}function Qe(e){De.has(e)?function(e){const t=De.get(e);t&&(!Number.isFinite(t.timeoutMs)||t.timeoutMs<=0?null!==t.timerId&&(clearTimeout(t.timerId),t.timerId=null):(null!==t.timerId&&clearTimeout(t.timerId),t.timerId=setTimeout(()=>{De.has(e)&&Je(e,{code:n,message:`'${t.method}' timed out`})},t.timeoutMs)))}(e):Be.has(e)&&function(e){const t=Be.get(e);t&&(null!==t.timerId&&clearTimeout(t.timerId),t.timerId=setTimeout(()=>{Ye(e,{code:n,message:`Channel '${t.topic}' timed out`})},M))}(e)}function Ze(e){for(let n=Re.length-1;n>=0;n--)if(Re[n]?.reqId===e)return Re.splice(n,1),!0;return!1}function en(e,n){const t=e.kind,o="hello"===t||"helloAck"===t||"ready"===t;if(!Ve()&&!o)return Re.length>=256?(W("Outbox full"),void(n&&Ke(n,{code:l,message:"Bridge outbox is full"}))):void Re.push({msg:e,reqId:n});n&&Qe(n),nn(Ie(e),n)}function nn(e,n){e&&(W(e.message),n&&Ke(n,e))}function tn(){null!==Me&&(clearTimeout(Me),Me=null)}function on(){if(Se)return;if(!$)return;if("blocked"===X.kind)return;if(!We())return;tn();const e={v:2,kind:"hello",nonce:w.nonce||"",role:"view",protocolsSupported:"required-v3"===X.kind?[3]:[2]};Te=!0,Ie(e),Me=setTimeout(()=>{if(!Se)if(Ne++,Ne<3)H(`Handshake timeout (${Ne}/3), retrying...`),Te=!1,on();else{for(W("Handshake failed"),tn(),Te=!1,Ne=0;Re.length;){const e=Re.shift();e?.reqId&&Ke(e.reqId,{code:o,message:"Bridge handshake failed"})}for(const e of Array.from(Be.keys()))Ye(e,{code:o,message:"Bridge handshake failed"})}},1e4)}function rn(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function sn(e,n,t=!1){const o=function(e){if(""===e)return[];if(!e.startsWith("/"))throw new Error(`Invalid JSON pointer: ${e}`);return e.split("/").slice(1).map(rn)}(n);if(0===o.length)return{container:{$root:e},key:"$root"};let r=e;for(let e=0;e<o.length-1;e++){const n=o[e];if(Array.isArray(r))r=r[Number(n)];else{if(!r||"object"!=typeof r)throw new Error(`Invalid container at ${n}`);{const i=r;if(t&&void 0===i[n]){const t=o[e+1];i[n]=t&&/^\d+$/.test(t)?[]:{}}r=i[n]}}}return{container:r,key:o[o.length-1]}}function an(e){$e.forEach(n=>{try{if(!qe.has(n))return qe.set(n,!0),void n(J(Xe),{rev:Fe,initial:!0});n(J(Xe),{rev:Fe,initial:e})}catch(e){H("Subscriber error:",e)}})}function ln(e){if("function"!=typeof e)return()=>{};if($e.add(e),Fe>=0){qe.set(e,!0);try{e(J(Xe),{rev:Fe,initial:!0})}catch(e){W("Callback error:",e)}}return()=>{$e.delete(e),qe.delete(e)}}function cn(e){bn.call("state.getSnapshot",{scope:e}).catch(()=>{})}function dn(e){let n=e;if("v2"===X.kind&&"string"==typeof n)try{n=JSON.parse(n)}catch{n=null}if("v2"===X.kind&&n&&"object"==typeof n){const e=n;if("event"===e.type&&"nativecomponent"===e.name&&e.payload){const n=e.payload,t=n.id||n.componentId;if("string"==typeof t){const e=un.get(t);if(e)try{e(n)}catch(e){W("NC handler error:",e)}}return}}const t=function(e){if("blocked"===X.kind)return null;if("required-v3"===X.kind){const n="string"==typeof e?e:V(e),t=X.codec.parse(n);return t.ok?{v:3,kind:t.value.kind,...t.value.payload}:null}if("string"==typeof e)try{e=JSON.parse(e)}catch{return null}if(!e||"object"!=typeof e)return null;const n=e.v,t=e.kind;return 2!==n||"string"!=typeof t?null:e}(n);if(t)switch(t.kind){case"helloAck":return t.protocol!==("required-v3"===X.kind?3:2)||t.nonce!==(w.nonce||"")?void H("Invalid helloAck"):"required-v3"===X.kind?void(Ce=!0):Le&&t.sessionId!==Le?void H("sessionId mismatch"):(Le||(Le=t.sessionId),void(Ce=!0));case"ready":if(!Ce)return;return"v2"===X.kind&&Le&&t.sessionId!==Le?void H("sessionId mismatch"):(tn(),Se=!0,Ne=0,G("proto")&&z("Handshake complete, host routes:",Object.keys(t.hostMethods||{}).length+(t.hostChannels||[]).length),void function(){if(Ve())for(;Re.length;){const e=Re.shift();e&&(e.reqId&&Qe(e.reqId),nn(Ie(e.msg),e.reqId))}}());case"res":{const e=De.get(t.id);if(!e)return;if(De.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok){if("state.getSnapshot"===e.method&&(function(e){if(!e||"object"!=typeof e)return!1;const n=e;return!("number"!=typeof n.rev||!Number.isFinite(n.rev)||!n.state||"object"!=typeof n.state||(Xe=n.state,Fe=n.rev,G("data")&&(j.group("[LX] snapshot(res)"),j.log("rev:",Fe,"state:",J(Xe)),j.groupEnd()),an(!0),0))}(t.result)||H("Invalid state.getSnapshot result")),"stream"===e.mode&&e.stream)return void e.stream._resolve(t.result);e.resolve?.(t.result)}else{const n=f(t.error);if("stream"===e.mode&&e.stream)return void e.stream._reject(n);e.reject?.(n)}return}case"event":if(De.has(t.id)){const e=De.get(t.id);return void("stream"===e?.mode&&e.stream?(null!==e.timerId&&(clearTimeout(e.timerId),e.timerId=null),e.timeoutMs=0,e.stream._emitData(t.payload)):H(`Received event for non-stream request '${t.id}'`))}return;case"state.snapshot":return Xe=t.state||{},Fe=t.rev,G("data")&&(j.group("[LX] snapshot"),j.log("rev:",Fe,"state:",J(Xe)),j.groupEnd()),void an(!0);case"state.patch":if(t.baseRev!==Fe)return H("baseRev mismatch",{have:Fe,want:t.baseRev}),void cn(t.scope);try{!function(e,n){for(const t of n){const n="add"===t.op||"replace"===t.op,{container:o,key:r}=sn(e,t.path,n);if("$root"===r){for(const n of Object.keys(e))delete e[n];if("remove"!==t.op){const n=t.value;n&&"object"==typeof n&&Object.assign(e,n)}continue}if(Array.isArray(o)){const e="-"===r?o.length:Number(r);if(!Number.isFinite(e)||e<0)throw new Error("Invalid index");"remove"===t.op?o.splice(e,1):"add"===t.op?o.splice(e,0,t.value):"replace"===t.op&&(o[e]=t.value);continue}if(!o||"object"!=typeof o)throw new Error("Invalid container");const i=o;"remove"===t.op?delete i[r]:i[r]=t.value}}(Xe,t.ops||[]),Fe=t.rev}catch(e){return W("Patch failed:",e),void cn(t.scope)}return G("data")&&(j.group("[LX] patch"),j.log("rev:",Fe,"ops:",t.ops),j.groupEnd()),an(!1),void(t.ack&&en({v:2,kind:"state.ack",scope:t.scope,rev:t.rev}));case"ch.ack":{const e=Be.get(t.id);if(!e)return;if(Be.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok)e.channel._markOpen(),je.set(t.id,e.channel),e.resolve(e.channel);else{const n=f(t.error);e.channel._reject(n),e.reject(n)}return}case"ch.data":{const e=je.get(t.id);if(!e)return;return void e._emitData(t.payload)}case"ch.close":{if(Be.get(t.id))return void Ye(t.id,{code:t.code??c,message:t.reason??"Channel closed before opening"});const e=je.get(t.id);if(!e)return;return je.delete(t.id),void e._emitClose(t.code,t.reason)}case"req":{const e=t,n=ze(e.method);if(!e.cap||e.cap!==n)return void en({v:2,kind:"res",id:e.id,ok:!1,error:{code:s,message:`Invalid cap for ${e.method}`}});const o=Ue.get(e.method);return o?void Promise.resolve().then(()=>o(e.params)).then(n=>{en({v:2,kind:"res",id:e.id,ok:!0,result:n})}).catch(n=>{en({v:2,kind:"res",id:e.id,ok:!1,error:f(n)})}):void en({v:2,kind:"res",id:e.id,ok:!1,error:{code:i,message:`View handler not found: ${e.method}`}})}}else H("Invalid bridge message")}const un=new Map,fn=[];let mn=!1;function pn(){return"undefined"!=typeof window&&!!(window.webkit?.messageHandlers?.NativeComponent||window.NativeComponentBridge?.postMessage||window.LingXiaProxy?.nativeComponentUpdate)}function hn(e){try{if(window.webkit?.messageHandlers?.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(window.NativeComponentBridge?.postMessage)return void window.NativeComponentBridge.postMessage(V(e));const n=window.LingXiaProxy?.nativeComponentUpdate;if("function"==typeof n){const t=e.id||"island",o=V({...e,componentId:t});try{n.call(window.LingXiaProxy,o)}catch{n.call(window.LingXiaProxy,t,o)}return}}catch(e){W("NativeComponent send error:",e)}}function gn(){if(pn()&&0!==fn.length)for(mn=!0;fn.length;){const e=fn.shift();try{hn(e)}catch{break}}}function vn(e){try{if(!pn())return void fn.push(e);mn||gn(),hn(e)}catch(e){W("NC send failed:",e)}}function yn(e){return`${e}_${Date.now()}_${Ae++}`}function wn(e,n,t){if(!n)return;if(n.aborted)return void t();let o={handleEvent:()=>{n.removeEventListener("abort",o),t()}};n.addEventListener("abort",o)}const bn={call:(e,n,o)=>new Promise((i,s)=>{if(!e||"string"!=typeof e)return void s({code:r,message:"Method name must be a non-empty string"});Te||on();const a=yn("c"),l=o?.cap||ze(e),c=o?.timeoutMs??M;De.set(a,{method:e,mode:"call",resolve:i,reject:e=>s(e),timeoutMs:c,timerId:null}),en({v:2,kind:"req",id:a,method:e,params:He(n),cap:l},a),wn(0,o?.signal,()=>{const e=Ze(a);Je(a,{code:t,message:"Bridge request aborted"}),!e&&Se&&en({v:2,kind:"cancel",id:a})})}),stream(e,n,o){if(!e||"string"!=typeof e){const e=Pe("invalid",()=>{});return e._reject({code:r,message:"Method name must be a non-empty string"}),e}Te||on();const i=yn("c"),s=Pe(i,()=>{Ze(i)?Je(i,{code:t,message:"Bridge request aborted"}):Se&&en({v:2,kind:"cancel",id:i})}),a=o?.cap||ze(e),l=o?.timeoutMs??M;return De.set(i,{method:e,mode:"stream",stream:s,timeoutMs:l,timerId:null}),en({v:2,kind:"req",id:i,method:e,params:He(n),cap:a},i),wn(0,o?.signal,()=>s.cancel()),s},notify(e,n,t){e&&"string"==typeof e&&(Te||on(),en({v:2,kind:"notify",method:e,params:He(n),cap:t?.cap||ze(e)}))},state:{subscribe:ln},channel:{open:(e,n,t)=>e&&"string"==typeof e?(Te||on(),new Promise((o,r)=>{const i=yn("ch"),s=function(e,n,t){const o=Oe();let r=!1,i=0,s=!1,a=!1;const l=[],d=[],u={id:e,send(t){r?n(t,i++):u._reject({code:c,message:`Channel '${e}' is closed`})},on(e,n){if("data"===e&&(o.data.add(n),l.length>0)){const e=l.splice(0);for(const t of e)try{n(t)}catch(e){H("Channel listener failed:",e)}}return"close"===e&&o.close.add(n),"error"===e&&o.error.add(n),this},[Symbol.asyncIterator]:()=>(a=!0,{next:()=>l.length>0?Promise.resolve({done:!1,value:l.shift()}):s?Promise.resolve({done:!0,value:void 0}):new Promise((e,n)=>{d.push({resolve:e,reject:n})})}),close(e,n){r&&(r=!1,s=!0,t(e,n),u._emitClose(e,n))},_emitData(e){if(r){d.length>0?d.shift().resolve({done:!1,value:e}):(a||0===o.data.size)&&l.push(e);for(const n of o.data)try{n(e)}catch(e){H("Channel listener failed:",e)}}},_emitClose(e,n){for(s=!0;d.length>0;)d.shift().resolve({done:!0,value:void 0});for(const t of o.close)try{t(e,n)}catch(e){H("Channel close listener failed:",e)}},_reject(e){for(s=!0;d.length>0;)d.shift().reject(e);for(const n of o.error)try{n(e)}catch(e){H("Channel error listener failed:",e)}},_markOpen(){r=!0,s=!1},_isOpen:()=>r,_nextSeq:()=>i++};return u}(i,(e,n)=>{en({v:2,kind:"ch.data",id:i,seq:n,payload:e})},(e,n)=>{const t=Be.get(i);t&&null!==t.timerId&&clearTimeout(t.timerId),Be.delete(i),je.delete(i),en({v:2,kind:"ch.close",id:i,code:e,reason:n})});Be.set(i,{topic:e,channel:s,resolve:o,reject:r,timerId:null}),en({v:2,kind:"ch.open",id:i,topic:e,params:He(n),cap:t?.cap||ze(e)},i)})):Promise.reject({code:r,message:"Topic name must be a non-empty string"})}},xn={invoke:(e,n,t)=>bn.call(kn(e),n,En(t)).then(e=>e).catch(e=>Promise.reject(m(e))),notify(e,n,t){bn.notify(kn(e),n,En(t))},stream:(e,n,t)=>In(bn.stream(kn(e),n,En(t))),channel:(e,n,t)=>bn.channel.open(kn(e),n,En(t)).then(e=>function(e){const n=new Set,t=new Set;return e.on("data",e=>{for(const t of n)t(e)}),e.on("close",(e,n)=>{const o={code:e,reason:n};for(const e of t)e(o)}),{send(n){e.send(n)},onMessage:e=>(n.add(e),()=>{n.delete(e)}),onClose:e=>(t.add(e),()=>{t.delete(e)}),close(n,t){e.close(n,t)}}}(e)).catch(e=>Promise.reject(m(e))),raw:bn,state:{subscribe:ln},_connectWebMessagePort(e){if(Y===O){if(K&&K!==e)try{K.onmessage=null,K.close()}catch{}K=e,e.onmessage=e=>{dn(e.data)};try{e.start()}catch{}z("Port connected"),on()}},_receiveEvaluateMessage(e){e&&dn(e)},debug:function(e){const n={};return Object.keys(e).forEach(t=>{Object.defineProperty(n,t,{enumerable:!0,configurable:!1,get:()=>e[t],set(n){e[t]=!!n,j.log(`[LX] ${t}: ${n}`)}})}),n}(R),displayLanguage:{get:E,subscribe:I},platform:{isHarmony:function(){return"Harmony"===w.os},isIOS:C,isAndroid:function(){return"Android"===w.os},isMacOS:S,isWindows:function(){return"Windows"===w.os},isDesktop:T,isMobile:function(){return"mobile"===L()},isApple:function(){return C()||S()},isRunner:function(){return!0===w.runner},getOS:_},dom:{measureById(e){try{if(!e)return null;const n=document.getElementById(e);if(!n)return null;const t=n.getBoundingClientRect();let o=0;try{o=parseFloat(getComputedStyle(n).borderRadius)||0}catch{}return[t.left+window.scrollX,t.top+window.scrollY,t.width,t.height,o]}catch{return null}}},nativeComponents:{send:vn,hasHandler:pn,flush:gn,register:(e,n)=>e&&"function"==typeof n?(un.set(e,n),()=>un.delete(e)):()=>{},unregister(e){un.delete(e)}},isReady:()=>Se};function kn(e){return e.startsWith("host.")?e:`host.${e}`}function En(e){return{...e||{},cap:e?.cap||"host"}}function In(e){const n=new Set,t=new Set;return e.on("data",e=>{for(const t of n)t(e)}),e.on("error",e=>{const n=m(e);for(const e of t)e(n)}),{onEvent:e=>(n.add(e),()=>{n.delete(e)}),onError:e=>(t.add(e),()=>{t.delete(e)}),result:e.result.catch(e=>Promise.reject(m(e))),cancel(){e.cancel()}}}function _n(){if(window.__LX_BRIDGE_INIT_STATE)z(`Bridge already ${window.__LX_BRIDGE_INIT_STATE}, skipping duplicate init`);else{window.__LX_BRIDGE_INIT_STATE="initializing";try{if(!$){const e=function(){if("undefined"==typeof window)return{kind:"absent"};const e=window.__LingXiaTakeControlBootstrap;if("function"!=typeof e)return{kind:"absent"};try{const n=e();if(!n||3!==n.requiredProtocol||"string"!=typeof n.publicSessionId||0===n.publicSessionId.length||"string"!=typeof n.secret||0===n.secret.length)return{kind:"blocked"};const t=y({sessionId:n.publicSessionId,secret:n.secret});return t.ok?{kind:"required",codec:t.value}:{kind:"blocked"}}catch{return{kind:"blocked"}}finally{try{delete window.__LingXiaTakeControlBootstrap}catch{}}}();X="required"===e.kind?{kind:"required-v3",codec:e.codec}:{kind:"absent"===e.kind?"v2":"blocked"},$=!0}if(function(){if("required-v3"===X.kind)for(const e of["log","error","warn","info","debug"]){const n=j[e];console[e]=(...t)=>{n(...t),Se&&Ie({kind:"console",__lingxia_console__:!0,level:e,message:_e(t)})}}}(),z(`Method: ${Y}`),e=xn._receiveEvaluateMessage,"undefined"!=typeof window&&(window[N]=n=>{U(e),e(n)},U(e)),me())be(),me()&&!oe&&null===le&&(le=setInterval(()=>{0!==ie?Date.now()-ie>35e3&&(H("Apple downstream stale (no heartbeat), forcing reconnect"),ke()):Z&&0!==se&&Date.now()-se>1e4&&(H("Apple downstream did not connect, forcing reconnect"),ke())},5e3)),me()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",Ee);else if(Y===O){ue();const e=n=>{(function(){if(K)return Promise.resolve(K);if(ce.promise)return ce.promise;ue(),ce.promise=new Promise((e,n)=>{ce.resolve=n=>{fe(),e(n)},ce.reject=e=>{fe(),n(e)},ce.timer=window.setTimeout(()=>{ce.reject?.(new Error("MessagePort init timed out after 5000ms"))},5e3)});try{window.LingXiaProxy?.getPort("LingXiaPort")}catch(e){ce.reject?.(e)}return ce.promise})().catch(t=>{H("Port init failed:",t),n<3&&window.setTimeout(()=>e(n+1),500*n)})};e(1)}else"webkit"===Y||Y===P||Y===D?on():H("Unknown method");window.LingXiaBridge=xn,window.__lxForceDownstreamReconnect=ke,p({os:_(),send:vn}),window.__LX_BRIDGE_INIT_STATE="initialized",z("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}var e}}function Ln(e){const n=document.createElement("div");return n.textContent=e,n.innerHTML}function Cn(e){const{failedPath:n,reason:t}=e,o=document.createElement("style");o.textContent="\n* { margin: 0; padding: 0; box-sizing: border-box; }\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n background: #f5f5f7;\n color: #1d1d1f;\n padding: 20px;\n -webkit-font-smoothing: antialiased;\n}\n.lx-error {\n text-align: center;\n max-width: 400px;\n}\n.lx-error-code {\n font-size: 120px;\n font-weight: 700;\n color: #d1d1d6;\n line-height: 1;\n letter-spacing: -4px;\n}\n.lx-error-title {\n font-size: 21px;\n font-weight: 600;\n margin: 16px 0 8px;\n color: #1d1d1f;\n}\n.lx-error-desc {\n font-size: 15px;\n color: #86868b;\n line-height: 1.5;\n}\n.lx-error-path {\n display: inline-block;\n margin-top: 20px;\n padding: 10px 16px;\n background: rgba(0,0,0,0.04);\n border-radius: 8px;\n font-family: 'SF Mono', ui-monospace, Menlo, Monaco, monospace;\n font-size: 13px;\n color: #1d1d1f;\n word-break: break-all;\n max-width: 100%;\n}\n@media (prefers-color-scheme: dark) {\n body { background: #000; color: #f5f5f7; }\n .lx-error-code { color: #3a3a3c; }\n .lx-error-title { color: #f5f5f7; }\n .lx-error-desc { color: #86868b; }\n .lx-error-path { background: rgba(255,255,255,0.08); color: #f5f5f7; }\n}\n",document.head.appendChild(o),document.body.innerHTML="",document.body.style.cssText="";const r=document.createElement("div");r.className="lx-error";let i='<div class="lx-error-code">404</div>';i+='<h1 class="lx-error-title">Page Not Found</h1>',i+="<p class=\"lx-error-desc\">The page you're looking for doesn't exist.</p>",n&&(i+=`<div class="lx-error-path">${Ln(n)}</div>`),t&&(i+=`<p class="lx-error-desc" style="margin-top:12px">${Ln(t)}</p>`),r.innerHTML=i,document.body.appendChild(r)}function Sn(){const e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function Tn(){return window.__LX_RUNTIME_CONFIG?.error||null}const Nn={handleEvent:()=>Mn()};function Mn(){if(Sn()){const e=Tn();e&&Cn(e)}}function An(){_n(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",Nn):Mn()}const On="lx-action-sheet-style";let Pn=null;function Dn(e){const n=e,t=n?.itemList??[],o=n?.cancelText??"Cancel",r=n?.itemColor??"#007AFF",i=(Pn??Promise.resolve()).then(()=>Bn(t,o,r),()=>Bn(t,o,r));return Pn=i,i}function Bn(e,n,t){return new Promise(o=>{let r=!1;const i=T();!function(){if(document.getElementById(On))return;const e=document.createElement("style");e.id=On,e.textContent="\n.lx-as-backdrop {\n position: fixed; inset: 0; z-index: 99999;\n background: rgba(0,0,0,0.4);\n opacity: 0; transition: opacity 300ms ease;\n}\n.lx-as-backdrop.lx-as-visible { opacity: 1; }\n\n.lx-as-sheet {\n position: fixed; left: 0; right: 0; bottom: 0; z-index: 100000;\n transform: translateY(100%);\n transition: transform 300ms ease;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n.lx-as-sheet.lx-as-visible { transform: translateY(0); }\n.lx-as-sheet.lx-as-desktop {\n left: 50%;\n right: auto;\n bottom: auto;\n top: 50%;\n width: min(92vw, 460px);\n transform: translate(-50%, calc(-50% + 16px));\n}\n.lx-as-sheet.lx-as-desktop.lx-as-visible { transform: translate(-50%, -50%); }\n\n.lx-as-container {\n background: #fff;\n border-radius: 16px 16px 0 0;\n overflow: hidden;\n}\n.lx-as-container.lx-as-desktop {\n border-radius: 16px;\n}\n\n.lx-as-item {\n display: block; width: 100%;\n height: 56px;\n line-height: 56px;\n padding: 0;\n border: none; background: none;\n font-size: 18px; font-weight: 400;\n text-align: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n position: relative;\n}\n.lx-as-item:active { background: rgba(0,0,0,0.08); }\n.lx-as-item + .lx-as-item::before {\n content: ''; position: absolute; top: 0; left: 0; right: 0;\n height: 1px; background: #E0E0E0;\n}\n.lx-as-separator {\n height: 8px;\n background: #F2F2F2;\n}\n.lx-as-cancel-btn { font-weight: 500; color: #000; }\n",document.head.appendChild(e)}();const s=document.createElement("div");s.className="lx-as-backdrop";const a=document.createElement("div");a.className="lx-as-sheet",i&&a.classList.add("lx-as-desktop");const l=document.createElement("div");l.className="lx-as-container",i&&l.classList.add("lx-as-desktop"),e.forEach((e,n)=>{const o=document.createElement("button");o.className="lx-as-item",o.textContent=e,o.style.color=t,o.addEventListener("click",()=>u(n)),l.appendChild(o)});const c=document.createElement("div");c.className="lx-as-separator",l.appendChild(c);const d=document.createElement("button");function u(e){r||(r=!0,s.classList.remove("lx-as-visible"),a.classList.remove("lx-as-visible"),setTimeout(()=>{s.remove(),a.remove(),o({tapIndex:e})},300))}d.className="lx-as-item lx-as-cancel-btn",d.textContent=n,d.addEventListener("click",()=>u(-1)),l.appendChild(d),a.appendChild(l),document.body.appendChild(s),document.body.appendChild(a),requestAnimationFrame(()=>{s.classList.add("lx-as-visible"),a.classList.add("lx-as-visible")}),s.addEventListener("click",()=>u(-1))})}const jn=200,Rn="lx-modal-style";let Fn=null;function Xn(e){const n=e,t=n?.title??"",o=n?.content??"",r=n?.showCancel??!0,i=n?.cancelText??"Cancel",s=n?.cancelColor,a=n?.confirmText??"OK",l=n?.confirmColor??"#007AFF",c=(Fn??Promise.resolve()).then(()=>$n(t,o,r,i,s,a,l),()=>$n(t,o,r,i,s,a,l));return Fn=c,c}function $n(e,n,t,o,r,i,s){return new Promise(a=>{let l=!1;!function(){if(document.getElementById(Rn))return;const e=document.createElement("style");e.id=Rn,e.textContent="\n.lx-modal-backdrop {\n position: fixed; inset: 0; z-index: 99999;\n background: rgba(0,0,0,0.4);\n opacity: 0; transition: opacity 200ms ease;\n display: flex; align-items: center; justify-content: center;\n}\n.lx-modal-backdrop.lx-modal-visible { opacity: 1; }\n\n.lx-modal-dialog {\n width: min(92vw, 320px);\n background: #fff;\n border-radius: 14px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n -webkit-font-smoothing: antialiased;\n transform: scale(0.95); opacity: 0;\n transition: transform 200ms ease, opacity 200ms ease;\n}\n.lx-modal-backdrop.lx-modal-visible .lx-modal-dialog {\n transform: scale(1); opacity: 1;\n}\n\n.lx-modal-body {\n padding: 24px 20px 16px;\n text-align: center;\n}\n.lx-modal-title {\n margin: 0 0 8px;\n font-size: 17px;\n font-weight: 600;\n color: #000;\n line-height: 1.35;\n}\n.lx-modal-content {\n margin: 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n word-break: break-word;\n}\n.lx-modal-body:has(.lx-modal-title:empty) .lx-modal-content {\n font-size: 17px;\n font-weight: 600;\n color: #000;\n}\n\n.lx-modal-footer {\n display: flex;\n border-top: 1px solid #E0E0E0;\n}\n.lx-modal-btn {\n flex: 1;\n height: 44px;\n line-height: 44px;\n padding: 0;\n border: none;\n background: none;\n font-size: 17px;\n text-align: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n}\n.lx-modal-btn:active { background: rgba(0,0,0,0.06); }\n.lx-modal-btn + .lx-modal-btn {\n border-left: 1px solid #E0E0E0;\n}\n.lx-modal-btn-cancel {\n color: #666;\n font-weight: 400;\n}\n.lx-modal-btn-confirm {\n font-weight: 600;\n}\n\n@media (prefers-color-scheme: dark) {\n .lx-modal-dialog { background: #2c2c2e; }\n .lx-modal-title { color: #f5f5f7; }\n .lx-modal-content { color: #ababab; }\n .lx-modal-body:has(.lx-modal-title:empty) .lx-modal-content {\n color: #f5f5f7;\n }\n .lx-modal-footer { border-top-color: #3a3a3c; }\n .lx-modal-btn:active { background: rgba(255,255,255,0.08); }\n .lx-modal-btn + .lx-modal-btn { border-left-color: #3a3a3c; }\n .lx-modal-btn-cancel { color: #ababab; }\n}\n",document.head.appendChild(e)}();const c=document.createElement("div");c.className="lx-modal-backdrop";const d=document.createElement("div");d.className="lx-modal-dialog";const u=document.createElement("div");u.className="lx-modal-body";const f=document.createElement("div");if(f.className="lx-modal-title",f.textContent=e,u.appendChild(f),n){const e=document.createElement("p");e.className="lx-modal-content",e.textContent=n,u.appendChild(e)}d.appendChild(u);const m=document.createElement("div");if(m.className="lx-modal-footer",t){const e=document.createElement("button");e.className="lx-modal-btn lx-modal-btn-cancel",e.textContent=o,r&&(e.style.color=r),e.addEventListener("click",()=>h(!1)),m.appendChild(e)}const p=document.createElement("button");function h(e){l||(l=!0,c.classList.remove("lx-modal-visible"),setTimeout(()=>{c.remove(),a({confirm:e,cancel:!e})},jn))}p.className="lx-modal-btn lx-modal-btn-confirm",p.textContent=i,p.style.color=s,p.addEventListener("click",()=>h(!0)),m.appendChild(p),d.appendChild(m),c.appendChild(d),document.body.appendChild(c),requestAnimationFrame(()=>{c.classList.add("lx-modal-visible")})})}const qn="lx-toast-style";let Un=null;function Gn(e){const n=e,t=n?.title??"",o=n?.icon??"none",r=n?.duration??1500,i=n?.mask??!1,s=n?.position??"center";if(Un&&Un.icon===o&&Un.position===s&&Un.mask===i){const e=Un;return e.titleEl.textContent=t,e.timer&&clearTimeout(e.timer),e.timer=r>0?setTimeout(e.dismiss,r):null,Promise.resolve()}Un&&(Un.dismiss(),Un=null),function(){if(document.getElementById(qn))return;const e=document.createElement("style");e.id=qn,e.textContent="\n.lx-toast-mask {\n position: fixed; inset: 0; z-index: 99998;\n}\n.lx-toast-container {\n position: fixed; left: 0; right: 0; z-index: 99999;\n display: flex; justify-content: center;\n pointer-events: none;\n}\n.lx-toast-container.lx-toast-top { top: 0; padding-top: 80px; }\n.lx-toast-container.lx-toast-center { top: 0; bottom: 0; align-items: center; }\n.lx-toast-container.lx-toast-bottom { bottom: 0; padding-bottom: 80px; }\n\n.lx-toast-box {\n display: flex; flex-direction: column; align-items: center; gap: 10px;\n min-width: 120px; max-width: 280px;\n padding: 20px;\n background: rgba(0,0,0,0.8);\n border-radius: 12px;\n color: #fff;\n pointer-events: auto;\n transform: scale(0.8); opacity: 0;\n transition: transform 200ms ease, opacity 200ms ease;\n}\n.lx-toast-box.lx-toast-no-icon {\n min-width: auto; min-height: auto;\n padding: 12px 20px;\n}\n.lx-toast-box.lx-toast-visible {\n transform: scale(1); opacity: 1;\n}\n.lx-toast-icon {\n width: 36px; height: 36px;\n color: #fff;\n line-height: 0;\n}\n.lx-toast-title {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n font-size: 16px; font-weight: 500;\n text-align: center;\n line-height: 1.4;\n word-break: break-word;\n -webkit-font-smoothing: antialiased;\n}\n",document.head.appendChild(e)}();let a=null;i&&(a=document.createElement("div"),a.className="lx-toast-mask",document.body.appendChild(a));const l=document.createElement("div");l.className="lx-toast-container","top"===s?l.classList.add("lx-toast-top"):"bottom"===s?l.classList.add("lx-toast-bottom"):l.classList.add("lx-toast-center");const c=document.createElement("div");c.className="lx-toast-box";const d="none"!==o;if(d||c.classList.add("lx-toast-no-icon"),d){const e=document.createElement("div");e.className="lx-toast-icon","success"===o?e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="17" stroke="currentColor" stroke-width="2"/><path d="M11 18l5 5 9-9" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>':"error"===o?e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="17" stroke="currentColor" stroke-width="2"/><path d="M13 13l10 10M23 13l-10 10" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>':"loading"===o&&(e.innerHTML='<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18 4a14 14 0 0 1 14 14" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="0.8s" repeatCount="indefinite"/></path></svg>'),c.appendChild(e)}const u=document.createElement("div");u.className="lx-toast-title",u.textContent=t,c.appendChild(u),l.appendChild(c),document.body.appendChild(l),requestAnimationFrame(()=>{c.classList.add("lx-toast-visible")});let f=!1;function m(){f||(f=!0,p.timer&&clearTimeout(p.timer),Un===p&&(Un=null),c.classList.remove("lx-toast-visible"),setTimeout(()=>{l.remove(),a?.remove()},200))}const p={dismiss:m,timer:null,titleEl:u,icon:o,position:s,mask:i};return r>0&&(p.timer=setTimeout(m,r)),Un=p,Promise.resolve()}function zn(){return Un&&(Un.dismiss(),Un=null),Promise.resolve()}return Ge("ui.showActionSheet",Dn),Ge("ui.showModal",Xn),Ge("ui.showToast",Gn),Ge("ui.hideToast",zn),An(),e.LingXiaBridge=xn,e.boot=function(){_n(),Mn()},e.bootWhenReady=An,e.channel=function(e,n,t){return xn.channel(e,n,t)},e.getDisplayLanguage=E,e.getErrorInfo=Tn,e.hasError=Sn,e.initBridge=_n,e.invoke=function(e,n,t){return xn.invoke(e,n,t)},e.isNativeError=function(e,n){if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t.code&&""!==t.code.trim()&&("string"==typeof t.message&&(void 0===n||t.code===n))},e.notify=function(e,n,t){bn.notify(kn(e),n,En(t))},e.renderErrorUI=Cn,e.stream=function(e,n,t){return In(bn.stream(kn(e),n,En(t)))},e.subscribeDisplayLanguage=I,e}({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __extends=this&&this.__extends||function(){var e=function(n,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])},e(n,t)};return function(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,n,t,r){return new(t||(t=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,c)}l((r=r.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(e,n){var t,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(l){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=n.call(e,i)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}},__spreadArray=this&&this.__spreadArray||function(e,n,t){if(t||2===arguments.length)for(var r,o=0,i=n.length;o<i;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return e.concat(r||Array.prototype.slice.call(n))},__LX_RUNTIME_PLATFORM__="mobile",__LingXiaBridgeBundle=function(e){var n;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t="BRIDGE_TIMEOUT",r="BRIDGE_CANCELED",o="BRIDGE_HANDSHAKE_FAILED",i="BRIDGE_MALFORMED_MESSAGE",a="BRIDGE_METHOD_NOT_FOUND",c="BRIDGE_CAPABILITY_DENIED",l="BRIDGE_INTERNAL_ERROR",s="BRIDGE_OUTBOX_FULL",d="BRIDGE_STREAM_CLOSED",u=function(e){function n(n,t,r){var o=e.call(this,t)||this;return o.name="BridgeInvocationError",o.code=n,o.data=r,o}return __extends(n,e),n}(Error);function f(e){if(e instanceof u)return e;if(e&&"object"==typeof e){var n=e,t=l;("string"==typeof n.code&&""!==n.code.trim()||"number"==typeof n.code&&Number.isFinite(n.code))&&(t=n.code);var r="string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error";return new u(t,r,"data"in n?n.data:void 0)}var o=e instanceof Error?e.message:"string"==typeof e?e:"Unknown error";return new u(l,o)}function v(e){var n=f(e);return __assign({code:String(n.code||l),message:"string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error"},void 0===n.data?{}:{data:n.data})}function p(e){var n,t=e.os,r=e.send;if("undefined"!=typeof window&&"undefined"!=typeof document){var o="iOS"===t;if(o||"Android"===t){var i=Symbol.for("LingXia.NativeComponentCoverageMonitor");if(!(null===(n=window[i])||void 0===n?void 0:n.installed)){var a={installed:!0,coveredById:new Map,coveredCount:0,anyCovered:!1,scheduled:!1,hasAnyVideo:!1,scrollLocked:!1,scrollY:0,htmlOverflow:"",bodyOverflow:"",bodyPosition:"",bodyTop:"",bodyWidth:""};window[i]=a,new MutationObserver(u).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0});var c={handleEvent:function(){(a.hasAnyVideo||0!==a.coveredById.size)&&u()}},l={handleEvent:function(){return u()}};window.addEventListener("scroll",c,{capture:!0,passive:!0}),window.addEventListener("resize",l),u()}}}function s(e){var n,t,r=null===(n=e.getBoundingClientRect)||void 0===n?void 0:n.call(e);if(!r)return!1;if(r.width<2||r.height<2)return!1;var o=r.left+r.width/2,i=r.top+r.height/2;if(o<0||i<0||o>=window.innerWidth||i>=window.innerHeight)return!1;var a=null===(t=document.elementFromPoint)||void 0===t?void 0:t.call(document,o,i);return!!a&&(a!==document.documentElement&&a!==document.body&&!(a===e||e.contains(a)))}function d(){a.scheduled=!1;var e=document.querySelectorAll("lx-video[id]");if(a.hasAnyVideo=e.length>0,a.hasAnyVideo||0!==a.coveredById.size||a.anyCovered){for(var n=new Set,t=0,i=Array.from(e);t<i.length;t++){var c=i[t];if(m=c.id){n.add(m);var l=s(c),d=a.coveredById.get(m);d!==l&&(!0===d&&(a.coveredCount-=1),!0===l&&(a.coveredCount+=1),a.coveredById.set(m,l),r({id:m,action:"component.coverage",covered:l}))}}for(var u=[],f=0,v=a.coveredById.entries();f<v.length;f++){var p=v[f],m=p[0];l=p[1];n.has(m)||(u.push(m),!0===l&&(a.coveredCount-=1))}for(var h=0,g=u;h<g.length;h++){m=g[h];a.coveredById.delete(m),r({id:m,action:"component.coverage",covered:!1})}var y=a.coveredCount>0;y!==a.anyCovered&&(a.anyCovered=y,o&&(y?function(){if(o&&!a.scrollLocked){var e=document.documentElement,n=document.body;e&&n&&(a.scrollLocked=!0,a.scrollY=window.scrollY||e.scrollTop||0,a.htmlOverflow=e.style.overflow||"",a.bodyOverflow=n.style.overflow||"",a.bodyPosition=n.style.position||"",a.bodyTop=n.style.top||"",a.bodyWidth=n.style.width||"",e.style.overflow="hidden",n.style.overflow="hidden",n.style.position="fixed",n.style.top="".concat(-a.scrollY,"px"),n.style.width="100%")}}():function(){if(o&&a.scrollLocked){var e=document.documentElement,n=document.body;e&&n&&(a.scrollLocked=!1,e.style.overflow=a.htmlOverflow,n.style.overflow=a.bodyOverflow,n.style.position=a.bodyPosition,n.style.top=a.bodyTop,n.style.width=a.bodyWidth,window.scrollTo(0,a.scrollY))}}()))}}function u(){a.scheduled||(a.scheduled=!0,requestAnimationFrame(d))}}var m="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{},h={value:(null===(n=m.displayLanguage)||void 0===n?void 0:n.trim())||"en-US",listeners:new Set};function g(){var e;return"undefined"==typeof window?h:(window.__lxDisplayLanguage||(window.__lxDisplayLanguage={value:(null===(e=m.displayLanguage)||void 0===e?void 0:e.trim())||"en-US",listeners:new Set}),window.__lxDisplayLanguage)}function y(){"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=g().value)}function w(){return m.os||"unknown"}function b(){return"iOS"===m.os}function _(){return"macOS"===m.os}function I(){return"Windows"===m.os}y(),"undefined"==typeof window||window.__lingxiaApplyDisplayLanguage||Object.defineProperty(window,"__lingxiaApplyDisplayLanguage",{configurable:!1,enumerable:!1,value:function(e){var n="string"==typeof e?e.trim():"",t=g();if(n&&n!==t.value){t.value=n,y();for(var r=0,o=__spreadArray([],t.listeners,!0);r<o.length;r++){(0,o[r])()}}}});var k="__LingXiaRecvMessage",E=5e3,x="[LX.Bridge]",S="messageport",L="jsinterface",T="webmessage",A=m.appleDownstreamURL,O={data:!1,proto:!1,all:!1},M=[];function j(e){return O.all||O[e]}function C(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];(!0===m.dev||O.all||O.proto||O.data)&&console.log.apply(console,__spreadArray([x],e,!1))}function N(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.warn.apply(console,__spreadArray([x],e,!1))}function P(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.error.apply(console,__spreadArray([x],e,!1))}function B(e){try{return JSON.stringify(e)}catch(n){return function(e,n){var t=new WeakSet;return JSON.stringify(e,function(e,n){if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n},n)}(e)}}function D(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch(e){return{}}}var R=function(){var e,n;return"iOS"===m.os||"macOS"===m.os?"webkit":"Harmony"===m.os?"messageport":"Windows"===m.os?"webmessage":"Android"===m.os?(null===(n=null===(e=window.LingXiaProxy)||void 0===e?void 0:e.supportsMessagePort)||void 0===n?void 0:n.call(e))?"messageport":"jsinterface":"unknown"}();"undefined"!=typeof window&&"function"!=typeof window[k]&&(window[k]=function(e){M.push(e)});var X=null,F=!1,G=null,H=null,q=null,U=200,W=!1,z=0,J=0,Y=null,V={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},$={handleEvent:function(e){var n,t,r=e;if("LingXia-port-init"===r.data){var o=null===(n=r.ports)||void 0===n?void 0:n[0];o&&(an._connectWebMessagePort(o),null===(t=V.resolve)||void 0===t||t.call(V,o))}}};function K(){V.listenerInstalled||(V.listenerInstalled=!0,window.addEventListener("message",$))}function Q(){null!==V.timer&&(window.clearTimeout(V.timer),V.timer=null),V.resolve=null,V.reject=null,V.promise=null}function Z(){return"webkit"===R&&(b()||_())}function ee(){null!==q&&(clearTimeout(q),q=null)}function ne(e){Z()&&!W&&(W=!0,ee(),null!==Y&&(clearInterval(Y),Y=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",se),ce=!1,null==H||H.abort(),F=!1,re(e,!0))}function te(e){for(var n=0,t=Array.from(be.keys());n<t.length;n++){Ce(t[n],{code:d,message:e})}for(var r=0,o=Array.from(_e.keys());r<o.length;r++){Ne(o[r],{code:d,message:e})}!function(e){for(var n=0,t=Array.from(Ie.entries());n<t.length;n++){var r=t[n],o=r[0],i=r[1];Ie.delete(o),i._emitClose(d,e)}}(e)}function re(e,n){Xe(),ue=null,fe=!1,ve=!1,pe=0,n&&te(e)}function oe(e){if(e&&"object"==typeof e){J=Date.now();var n=e;if(!0!==n.lxshutdown){if(void 0===n.lxhb){if(!0===n.lxreset)return z=0,re("Apple downstream reset",!0),void Fe();if("number"==typeof n.lxff){if(n.lxff<=z)return;return z=n.lxff,void ze(n.m)}ze(e)}}else ne("Apple downstream closed")}}function ie(){return __awaiter(this,void 0,void 0,function(){var e,n,t,r,o,i,a,c,l,s,d;return __generator(this,function(u){switch(u.label){case 0:if(!A)throw new Error("Apple downstream URL is not configured");return e=new AbortController,H=e,n=A.includes("?")?"&":"?",t="".concat(A).concat(n,"from=").concat(z),[4,fetch(t,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal})];case 1:if(!(r=u.sent()).ok)throw new Error("Apple downstream HTTP ".concat(r.status));if("1"===r.headers.get("X-LingXia-Bridge-Shutdown"))return ne("Apple downstream closed"),[2];if(!r.body)throw new Error("Apple downstream response body unavailable");F=!0,U=200,J=Date.now(),j("proto")&&C("Apple downstream connected"),Fe(),o=r.body.getReader(),i=new TextDecoder,a="",u.label=2;case 2:u.trys.push([2,6,7,8]),u.label=3;case 3:return[4,o.read()];case 4:return c=u.sent(),l=c.value,c.done?[3,5]:(a=function(e){for(var n=e;;){var t=n.indexOf("\n");if(t<0)break;var r=n.slice(0,t).trim();if(n=n.slice(t+1),r)try{oe(JSON.parse(r))}catch(e){N("Apple downstream parse error:",e,r)}}return n}(a+=i.decode(l,{stream:!0})),[3,3]);case 5:if(a+=i.decode(),s=a.trim())try{oe(JSON.parse(s))}catch(e){N("Apple downstream trailing parse error:",e,s)}return[3,8];case 6:if(d=u.sent(),e.signal.aborted)return[2];throw d;case 7:try{o.releaseLock()}catch(e){}return[7];case 8:return[2]}})})}function ae(){if(Z()&&!W&&!G){ee();var e=!1;G=ie().then(function(){e=!0}).catch(function(e){(null==H?void 0:H.signal.aborted)||N("Apple downstream failed:",e)}).finally(function(){var n,t=null!==(n=null==H?void 0:H.signal.aborted)&&void 0!==n&&n;G=null,H=null,F=!1,t||W||function(e,n){if(void 0===n&&(n=!1),Z()&&!W){ee();var t=n?0:U;n||(U=Math.min(2*U,2e3));var r=n?"Apple downstream completed, reconnecting immediately: ".concat(e):"Apple downstream disconnected, retrying in ".concat(t,"ms: ").concat(e);t<=200?C(r):N(r),q=setTimeout(function(){q=null,ae()},t)}}("stream closed",e)})}}var ce=!1;function le(){if(Z()&&!W&&!ce){ce=!0;var e=G;null==H||H.abort();var n=function(){ce=!1,ae()};e?e.finally(n):n()}}function se(){"visible"===document.visibilityState&&le()}function de(e){var n,t,r,o=e.kind;"req"!==o&&"notify"!==o||C("postToNative: ".concat(o," ").concat(e.method)),j("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===R)return void(null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers.LingXia)||void 0===t||t.postMessage(e));var i=B(e);if(R===S&&X)return void X.postMessage(i);if((R===L||R===T)&&(null===(r=window.LingXiaProxy)||void 0===r?void 0:r.postMessage))return void window.LingXiaProxy.postMessage(i);N("Transport not ready")}catch(e){P("Send error:",e)}}var ue=null,fe=!1,ve=!1,pe=0,me=null,he={},ge=0;function ye(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function we(e,n){var t,r=ye(),o=!1,i=!1,a=function(){},c=function(){},l=[],s=[],d=new Promise(function(e,n){a=e,c=n});return(t={id:e,result:d,on:function(e,n){return"data"===e&&r.data.add(n),"end"===e&&r.end.add(n),"error"===e&&r.error.add(n),this}})[Symbol.asyncIterator]=function(){return i=!0,{next:function(){return l.length>0?Promise.resolve({done:!1,value:l.shift()}):o?d.then(function(e){return{done:!0,value:e}},function(e){return Promise.reject(e)}):new Promise(function(e,n){s.push({resolve:e,reject:n})})}}},t.cancel=function(){o||n()},t._emitData=function(e){if(!o){s.length>0?s.shift().resolve({done:!1,value:e}):i&&l.push(e);for(var n=0,t=r.data;n<t.length;n++){var a=t[n];try{a(e)}catch(e){N("Stream data listener failed:",e)}}}},t._resolve=function(e){if(!o){for(o=!0,a(e);s.length>0;)s.shift().resolve({done:!0,value:e});for(var n=0,t=r.end;n<t.length;n++){var i=t[n];try{i(e)}catch(e){N("Stream end listener failed:",e)}}}},t._reject=function(e){if(!o){for(o=!0,c(e);s.length>0;)s.shift().reject(e);for(var n=0,t=r.error;n<t.length;n++){var i=t[n];try{i(e)}catch(e){N("Stream error listener failed:",e)}}}},t}var be=new Map,_e=new Map,Ie=new Map,ke=[],Ee=-1,xe={},Se=new Set,Le=new WeakMap,Te=new Map;function Ae(e){if(e.startsWith("host."))return"host";var n=e.indexOf(".");return n>0?e.slice(0,n):"page"}function Oe(e){if(null!=e)return e}function Me(){return R===S?!!X:Z()?F:"webkit"===R||R===L||R===T}function je(){return!!fe&&(!!Z()||Me())}function Ce(e,n){var t,r=be.get(e);if(r){be.delete(e),null!==r.timerId&&clearTimeout(r.timerId);var o=f(n);if("stream"===r.mode&&r.stream)return void r.stream._reject(o);null===(t=r.reject)||void 0===t||t.call(r,o)}}function Ne(e,n){var t=_e.get(e);if(t){_e.delete(e),null!==t.timerId&&clearTimeout(t.timerId);var r=f(n);t.channel._reject(r),t.reject(r)}}function Pe(e,n){be.has(e)?Ce(e,n):_e.has(e)&&Ne(e,n)}function Be(e){if(be.has(e))return n=e,void((r=be.get(n))&&(!Number.isFinite(r.timeoutMs)||r.timeoutMs<=0?null!==r.timerId&&(clearTimeout(r.timerId),r.timerId=null):(null!==r.timerId&&clearTimeout(r.timerId),r.timerId=setTimeout(function(){be.has(n)&&Ce(n,{code:t,message:"'".concat(r.method,"' timed out")})},r.timeoutMs))));var n,r;_e.has(e)&&function(e){var n=_e.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(function(){Ne(e,{code:t,message:"Channel '".concat(n.topic,"' timed out")})},E))}(e)}function De(e){for(var n,t=ke.length-1;t>=0;t--)if((null===(n=ke[t])||void 0===n?void 0:n.reqId)===e)return ke.splice(t,1),!0;return!1}function Re(e,n){var t=e.kind,r="hello"===t||"helloAck"===t||"ready"===t;if(!je()&&!r)return ke.length>=256?(P("Outbox full"),void(n&&Pe(n,{code:s,message:"Bridge outbox is full"}))):void ke.push({msg:e,reqId:n});n&&Be(n),de(e)}function Xe(){null!==me&&(clearTimeout(me),me=null)}function Fe(){if(!fe&&Me()){Xe();var e={v:2,kind:"hello",nonce:m.nonce||"",role:"view",protocolsSupported:[2]};ve=!0,de(e),me=setTimeout(function(){if(!fe)if(++pe<3)N("Handshake timeout (".concat(pe,"/").concat(3,"), retrying...")),ve=!1,Fe();else{for(P("Handshake failed"),Xe(),ve=!1,pe=0;ke.length;){var e=ke.shift();(null==e?void 0:e.reqId)&&Pe(e.reqId,{code:o,message:"Bridge handshake failed"})}for(var n=0,t=Array.from(_e.keys());n<t.length;n++){Ne(t[n],{code:o,message:"Bridge handshake failed"})}}},1e4)}}function Ge(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function He(e,n,t){void 0===t&&(t=!1);var r=function(e){if(""===e)return[];if(!e.startsWith("/"))throw new Error("Invalid JSON pointer: ".concat(e));return e.split("/").slice(1).map(Ge)}(n);if(0===r.length)return{container:{$root:e},key:"$root"};for(var o=e,i=0;i<r.length-1;i++){var a=r[i];if(Array.isArray(o))o=o[Number(a)];else{if(!o||"object"!=typeof o)throw new Error("Invalid container at ".concat(a));var c=o;if(t&&void 0===c[a]){var l=r[i+1];c[a]=l&&/^\d+$/.test(l)?[]:{}}o=c[a]}}return{container:o,key:r[r.length-1]}}function qe(e){Se.forEach(function(n){try{if(!Le.has(n))return Le.set(n,!0),void n(D(xe),{rev:Ee,initial:!0});n(D(xe),{rev:Ee,initial:e})}catch(e){N("Subscriber error:",e)}})}function Ue(e){if("function"!=typeof e)return function(){};if(Se.add(e),Ee>=0){Le.set(e,!0);try{e(D(xe),{rev:Ee,initial:!0})}catch(e){P("Callback error:",e)}}return function(){Se.delete(e),Le.delete(e)}}function We(e){on.call("state.getSnapshot",{scope:e}).catch(function(){})}function ze(e){var n,t,r,o;if(e&&"object"==typeof e){var i=e;if("event"===i.type&&"nativecomponent"===i.name&&i.payload){var l=i.payload,s=l.id||l.componentId;if("string"==typeof s){var u=Je.get(s);if(u)try{u(l)}catch(e){P("NC handler error:",e)}}return}}var v=function(e){if(!e||"object"!=typeof e)return null;var n=e.v,t=e.kind;return 2!==n||"string"!=typeof t?null:e}(e);if(v)switch(v.kind){case"helloAck":return void(ue=v.sessionId);case"ready":if(ue&&v.sessionId!==ue)return void N("sessionId mismatch");if(Xe(),fe=!0,pe=0,v.hostMethods)for(var p=0,m=Object.entries(v.hostMethods);p<m.length;p++){var h=m[p],g=h[0],y=h[1];he[g]=y}return j("proto")&&C("Handshake complete, hostMethods:",Object.keys(he).length),void function(){if(je())for(;ke.length;){var e=ke.shift();e&&(e.reqId&&Be(e.reqId),de(e.msg))}}();case"res":var w=be.get(v.id);if(!w)return;if(be.delete(v.id),null!==w.timerId&&clearTimeout(w.timerId),v.ok){if("state.getSnapshot"===w.method&&(function(e){if(!e||"object"!=typeof e)return!1;var n=e;return!("number"!=typeof n.rev||!Number.isFinite(n.rev)||!n.state||"object"!=typeof n.state||(xe=n.state,Ee=n.rev,j("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",Ee,"state:",D(xe)),console.groupEnd()),qe(!0),0))}(v.result)||N("Invalid state.getSnapshot result")),"stream"===w.mode&&w.stream)return void w.stream._resolve(v.result);null===(n=w.resolve)||void 0===n||n.call(w,v.result)}else{var b=f(v.error);if("stream"===w.mode&&w.stream)return void w.stream._reject(b);null===(t=w.reject)||void 0===t||t.call(w,b)}return;case"event":if(be.has(v.id)){var _=be.get(v.id);return void("stream"===(null==_?void 0:_.mode)&&_.stream?(null!==_.timerId&&(clearTimeout(_.timerId),_.timerId=null),_.timeoutMs=0,_.stream._emitData(v.payload)):N("Received event for non-stream request '".concat(v.id,"'")))}return;case"state.snapshot":return xe=v.state||{},Ee=v.rev,j("data")&&(console.group("[LX] snapshot"),console.log("rev:",Ee,"state:",D(xe)),console.groupEnd()),void qe(!0);case"state.patch":if(v.baseRev!==Ee)return N("baseRev mismatch",{have:Ee,want:v.baseRev}),void We(v.scope);try{!function(e,n){for(var t=0,r=n;t<r.length;t++){var o=r[t],i="add"===o.op||"replace"===o.op,a=He(e,o.path,i),c=a.container,l=a.key;if("$root"!==l)if(Array.isArray(c)){var s="-"===l?c.length:Number(l);if(!Number.isFinite(s)||s<0)throw new Error("Invalid index");"remove"===o.op?c.splice(s,1):"add"===o.op?c.splice(s,0,o.value):"replace"===o.op&&(c[s]=o.value)}else{if(!c||"object"!=typeof c)throw new Error("Invalid container");var d=c;"remove"===o.op?delete d[l]:d[l]=o.value}else{for(var u=0,f=Object.keys(e);u<f.length;u++)delete e[f[u]];if("remove"!==o.op){var v=o.value;v&&"object"==typeof v&&Object.assign(e,v)}}}}(xe,v.ops||[]),Ee=v.rev}catch(e){return P("Patch failed:",e),void We(v.scope)}return j("data")&&(console.group("[LX] patch"),console.log("rev:",Ee,"ops:",v.ops),console.groupEnd()),qe(!1),void(v.ack&&Re({v:2,kind:"state.ack",scope:v.scope,rev:v.rev}));case"ch.ack":var I=_e.get(v.id);if(!I)return;if(_e.delete(v.id),null!==I.timerId&&clearTimeout(I.timerId),v.ok)I.channel._markOpen(),Ie.set(v.id,I.channel),I.resolve(I.channel);else{b=f(v.error);I.channel._reject(b),I.reject(b)}return;case"ch.data":var k=Ie.get(v.id);if(!k)return;return void k._emitData(v.payload);case"ch.close":if(_e.get(v.id))return void Ne(v.id,{code:null!==(r=v.code)&&void 0!==r?r:d,message:null!==(o=v.reason)&&void 0!==o?o:"Channel closed before opening"});var E=Ie.get(v.id);if(!E)return;return Ie.delete(v.id),void E._emitClose(v.code,v.reason);case"req":var x=v,S=Ae(x.method);if(!x.cap||x.cap!==S)return void Re({v:2,kind:"res",id:x.id,ok:!1,error:{code:c,message:"Invalid cap for ".concat(x.method)}});var L=Te.get(x.method);return L?void Promise.resolve().then(function(){return L(x.params)}).then(function(e){Re({v:2,kind:"res",id:x.id,ok:!0,result:e})}).catch(function(e){Re({v:2,kind:"res",id:x.id,ok:!1,error:f(e)})}):void Re({v:2,kind:"res",id:x.id,ok:!1,error:{code:a,message:"View handler not found: ".concat(x.method)}})}else N("Invalid V2 message:",e)}var Je=new Map,Ye=[],Ve=!1;function $e(){var e,n,t;return"undefined"!=typeof window&&!(!(null===(n=null===(e=window.webkit)||void 0===e?void 0:e.messageHandlers)||void 0===n?void 0:n.NativeComponent)&&!(null===(t=window.NativeComponentBridge)||void 0===t?void 0:t.postMessage))}function Ke(e){var n,t,r;try{if(null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers)||void 0===t?void 0:t.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(null===(r=window.NativeComponentBridge)||void 0===r?void 0:r.postMessage)return void window.NativeComponentBridge.postMessage(B(e))}catch(e){P("NativeComponent send error:",e)}}function Qe(){if($e()&&0!==Ye.length)for(Ve=!0;Ye.length;){var e=Ye.shift();try{Ke(e)}catch(e){break}}}function Ze(e){try{if(!$e())return void Ye.push(e);Ve||Qe(),Ke(e)}catch(e){P("NC send failed:",e)}}function en(e){return"".concat(e,"_").concat(Date.now(),"_").concat(ge++)}function nn(e,n,t){if(n)if(n.aborted)t();else{var r={handleEvent:function(){n.removeEventListener("abort",r),t()}};n.addEventListener("abort",r)}}var tn,rn,on={call:function(e,n,t){return new Promise(function(o,a){var c;if(e&&"string"==typeof e){ve||Fe();var l=en("c"),s=(null==t?void 0:t.cap)||Ae(e),d=null!==(c=null==t?void 0:t.timeoutMs)&&void 0!==c?c:E;be.set(l,{method:e,mode:"call",resolve:o,reject:function(e){return a(e)},timeoutMs:d,timerId:null}),Re({v:2,kind:"req",id:l,method:e,params:Oe(n),cap:s},l),nn(0,null==t?void 0:t.signal,function(){var e=De(l);Ce(l,{code:r,message:"Bridge request aborted"}),!e&&fe&&Re({v:2,kind:"cancel",id:l})})}else a({code:i,message:"Method name must be a non-empty string"})})},stream:function(e,n,t){var o;if(!e||"string"!=typeof e){var a=we("invalid",function(){});return a._reject({code:i,message:"Method name must be a non-empty string"}),a}ve||Fe();var c=en("c"),l=we(c,function(){De(c)?Ce(c,{code:r,message:"Bridge request aborted"}):fe&&Re({v:2,kind:"cancel",id:c})}),s=(null==t?void 0:t.cap)||Ae(e),d=null!==(o=null==t?void 0:t.timeoutMs)&&void 0!==o?o:E;return be.set(c,{method:e,mode:"stream",stream:l,timeoutMs:d,timerId:null}),Re({v:2,kind:"req",id:c,method:e,params:Oe(n),cap:s},c),nn(0,null==t?void 0:t.signal,function(){return l.cancel()}),l},notify:function(e,n,t){e&&"string"==typeof e&&(ve||Fe(),Re({v:2,kind:"notify",method:e,params:Oe(n),cap:(null==t?void 0:t.cap)||Ae(e)}))},state:{subscribe:Ue},channel:{open:function(e,n,t){return e&&"string"==typeof e?(ve||Fe(),new Promise(function(r,o){var i=en("ch"),a=function(e,n,t){var r,o=ye(),i=!1,a=0,c=!1,l=!1,s=[],u=[],f=((r={id:e,send:function(t){i?n(t,a++):f._reject({code:d,message:"Channel '".concat(e,"' is closed")})},on:function(e,n){if("data"===e&&(o.data.add(n),s.length>0))for(var t=0,r=s.splice(0);t<r.length;t++){var i=r[t];try{n(i)}catch(e){N("Channel listener failed:",e)}}return"close"===e&&o.close.add(n),"error"===e&&o.error.add(n),this}})[Symbol.asyncIterator]=function(){return l=!0,{next:function(){return s.length>0?Promise.resolve({done:!1,value:s.shift()}):c?Promise.resolve({done:!0,value:void 0}):new Promise(function(e,n){u.push({resolve:e,reject:n})})}}},r.close=function(e,n){i&&(i=!1,c=!0,t(e,n),f._emitClose(e,n))},r._emitData=function(e){if(i){u.length>0?u.shift().resolve({done:!1,value:e}):(l||0===o.data.size)&&s.push(e);for(var n=0,t=o.data;n<t.length;n++){var r=t[n];try{r(e)}catch(e){N("Channel listener failed:",e)}}}},r._emitClose=function(e,n){for(c=!0;u.length>0;)u.shift().resolve({done:!0,value:void 0});for(var t=0,r=o.close;t<r.length;t++){var i=r[t];try{i(e,n)}catch(e){N("Channel close listener failed:",e)}}},r._reject=function(e){for(c=!0;u.length>0;)u.shift().reject(e);for(var n=0,t=o.error;n<t.length;n++){var r=t[n];try{r(e)}catch(e){N("Channel error listener failed:",e)}}},r._markOpen=function(){i=!0,c=!1},r._isOpen=function(){return i},r._nextSeq=function(){return a++},r);return f}(i,function(e,n){Re({v:2,kind:"ch.data",id:i,seq:n,payload:e})},function(e,n){var t=_e.get(i);t&&null!==t.timerId&&clearTimeout(t.timerId),_e.delete(i),Ie.delete(i),Re({v:2,kind:"ch.close",id:i,code:e,reason:n})});_e.set(i,{topic:e,channel:a,resolve:r,reject:o,timerId:null}),Re({v:2,kind:"ch.open",id:i,topic:e,params:Oe(n),cap:(null==t?void 0:t.cap)||Ae(e)},i)})):Promise.reject({code:i,message:"Topic name must be a non-empty string"})}}},an={invoke:function(e,n,t){return on.call(cn(e),n,ln(t)).then(function(e){return e}).catch(function(e){return Promise.reject(v(e))})},notify:function(e,n,t){on.notify(cn(e),n,ln(t))},stream:function(e,n,t){return sn(on.stream(cn(e),n,ln(t)))},channel:function(e,n,t){return on.channel.open(cn(e),n,ln(t)).then(function(e){return function(e){var n=new Set,t=new Set;return e.on("data",function(e){for(var t=0,r=n;t<r.length;t++){(0,r[t])(e)}}),e.on("close",function(e,n){for(var r={code:e,reason:n},o=0,i=t;o<i.length;o++){(0,i[o])(r)}}),{send:function(n){e.send(n)},onMessage:function(e){return n.add(e),function(){n.delete(e)}},onClose:function(e){return t.add(e),function(){t.delete(e)}},close:function(n,t){e.close(n,t)}}}(e)}).catch(function(e){return Promise.reject(v(e))})},raw:on,state:{subscribe:Ue},_connectWebMessagePort:function(e){if(R===S){if(X&&X!==e)try{X.onmessage=null,X.close()}catch(e){}X=e,e.onmessage=function(e){var n=e.data;if("string"==typeof n)try{n=JSON.parse(n)}catch(e){return}ze(n)};try{e.start()}catch(e){}C("Port connected"),Fe()}},_receiveEvaluateMessage:function(e){try{e&&ze(JSON.parse(e))}catch(e){P("Parse error:",e)}},debug:(tn=O,rn={},Object.keys(tn).forEach(function(e){Object.defineProperty(rn,e,{enumerable:!0,configurable:!1,get:function(){return tn[e]},set:function(n){tn[e]=!!n,console.log("[LX] ".concat(e,": ").concat(n))}})}),rn),platform:{isHarmony:function(){return"Harmony"===m.os},isIOS:b,isAndroid:function(){return"Android"===m.os},isMacOS:_,isWindows:I,isDesktop:function(){return _()||I()},isApple:function(){return b()||_()},isRunner:function(){return!0===m.runner},getOS:w},dom:{measureById:function(e){try{if(!e)return null;var n=document.getElementById(e);if(!n)return null;var t=n.getBoundingClientRect(),r=0;try{r=parseFloat(getComputedStyle(n).borderRadius)||0}catch(e){}return[t.left+window.scrollX,t.top+window.scrollY,t.width,t.height,r]}catch(e){return null}}},nativeComponents:{send:Ze,hasHandler:$e,flush:Qe,register:function(e,n){return e&&"function"==typeof n?(Je.set(e,n),function(){return Je.delete(e)}):function(){}},unregister:function(e){Je.delete(e)}},isReady:function(){return fe}};function cn(e){return e.startsWith("host.")?e:"host.".concat(e)}function ln(e){return __assign(__assign({},e||{}),{cap:(null==e?void 0:e.cap)||"host"})}function sn(e){var n=new Set,t=new Set;return e.on("data",function(e){for(var t=0,r=n;t<r.length;t++){(0,r[t])(e)}}),e.on("error",function(e){for(var n=v(e),r=0,o=t;r<o.length;r++){(0,o[r])(n)}}),{onEvent:function(e){return n.add(e),function(){n.delete(e)}},onError:function(e){return t.add(e),function(){t.delete(e)}},result:e.result.catch(function(e){return Promise.reject(v(e))}),cancel:function(){e.cancel()}}}function dn(){if(window.__LX_BRIDGE_INIT_STATE)C("Bridge already ".concat(window.__LX_BRIDGE_INIT_STATE,", skipping duplicate init"));else{window.__LX_BRIDGE_INIT_STATE="initializing";try{C("Method: ".concat(R)),function(e){if("undefined"!=typeof window&&(window[k]=e,0!==M.length))for(var n=0,t=M.splice(0,M.length);n<t.length;n++){var r=t[n];try{e(r)}catch(e){N("Failed to replay queued native message:",e)}}}(an._receiveEvaluateMessage),Z()?(ae(),Z()&&!W&&null===Y&&(Y=setInterval(function(){0!==J&&Date.now()-J>35e3&&(N("Apple downstream stale (no heartbeat), forcing reconnect"),le())},5e3)),Z()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",se)):R===S?(K(),function(){var e,n;if(X)return Promise.resolve(X);if(V.promise)return V.promise;K(),V.promise=new Promise(function(e,n){V.resolve=function(n){Q(),e(n)},V.reject=function(e){Q(),n(e)},V.timer=window.setTimeout(function(){var e;null===(e=V.reject)||void 0===e||e.call(V,new Error("MessagePort init timed out after ".concat(5e3,"ms")))},5e3)});try{null===(e=window.LingXiaProxy)||void 0===e||e.getPort("LingXiaPort")}catch(e){null===(n=V.reject)||void 0===n||n.call(V,e)}return V.promise}().catch(function(e){return N("Port init failed:",e)})):"webkit"===R||R===L||R===T?Fe():N("Unknown method"),window.LingXiaBridge=an,window.__lxForceDownstreamReconnect=le,p({os:w(),send:Ze}),window.__LX_BRIDGE_INIT_STATE="initialized",C("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function un(e){var n=document.createElement("div");return n.textContent=e,n.innerHTML}function fn(e){var n=e.failedPath,t=e.reason,r=document.createElement("style");r.textContent="\n* { margin: 0; padding: 0; box-sizing: border-box; }\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n background: #f5f5f7;\n color: #1d1d1f;\n padding: 20px;\n -webkit-font-smoothing: antialiased;\n}\n.lx-error {\n text-align: center;\n max-width: 400px;\n}\n.lx-error-code {\n font-size: 120px;\n font-weight: 700;\n color: #d1d1d6;\n line-height: 1;\n letter-spacing: -4px;\n}\n.lx-error-title {\n font-size: 21px;\n font-weight: 600;\n margin: 16px 0 8px;\n color: #1d1d1f;\n}\n.lx-error-desc {\n font-size: 15px;\n color: #86868b;\n line-height: 1.5;\n}\n.lx-error-path {\n display: inline-block;\n margin-top: 20px;\n padding: 10px 16px;\n background: rgba(0,0,0,0.04);\n border-radius: 8px;\n font-family: 'SF Mono', ui-monospace, Menlo, Monaco, monospace;\n font-size: 13px;\n color: #1d1d1f;\n word-break: break-all;\n max-width: 100%;\n}\n@media (prefers-color-scheme: dark) {\n body { background: #000; color: #f5f5f7; }\n .lx-error-code { color: #3a3a3c; }\n .lx-error-title { color: #f5f5f7; }\n .lx-error-desc { color: #86868b; }\n .lx-error-path { background: rgba(255,255,255,0.08); color: #f5f5f7; }\n}\n",document.head.appendChild(r),document.body.innerHTML="",document.body.style.cssText="";var o=document.createElement("div");o.className="lx-error";var i='<div class="lx-error-code">404</div>';i+='<h1 class="lx-error-title">Page Not Found</h1>',i+="<p class=\"lx-error-desc\">The page you're looking for doesn't exist.</p>",n&&(i+='<div class="lx-error-path">'.concat(un(n),"</div>")),t&&(i+='<p class="lx-error-desc" style="margin-top:12px">'.concat(un(t),"</p>")),o.innerHTML=i,document.body.appendChild(o)}function vn(){var e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function pn(){var e;return(null===(e=window.__LX_RUNTIME_CONFIG)||void 0===e?void 0:e.error)||null}var mn={handleEvent:function(){return hn()}};function hn(){if(vn()){var e=pn();e&&fn(e)}}function gn(){dn(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",mn):hn()}return gn(),e.LingXiaBridge=an,e.boot=function(){dn(),hn()},e.bootWhenReady=gn,e.channel=function(e,n,t){return an.channel(e,n,t)},e.getDisplayLanguage=function(){return g().value},e.getErrorInfo=pn,e.hasError=vn,e.initBridge=dn,e.invoke=function(e,n,t){return an.invoke(e,n,t)},e.isNativeError=function(e,n){if(!e||"object"!=typeof e)return!1;var t=e;return"string"==typeof t.code&&""!==t.code.trim()&&("string"==typeof t.message&&(void 0===n||t.code===n))},e.notify=function(e,n,t){on.notify(cn(e),n,ln(t))},e.renderErrorUI=fn,e.stream=function(e,n,t){return sn(on.stream(cn(e),n,ln(t)))},e.subscribeDisplayLanguage=function(e){var n=g().listeners;return n.add(e),function(){n.delete(e)}},e}({});
|
|
1
|
+
var __extends=this&&this.__extends||function(){var e=function(n,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])},e(n,t)};return function(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}(),__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,n,t,r){return new(t||(t=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,c)}l((r=r.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(e,n){var t,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(l){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=n.call(e,i)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}},__rest=this&&this.__rest||function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t},__spreadArray=this&&this.__spreadArray||function(e,n,t){if(t||2===arguments.length)for(var r,o=0,i=n.length;o<i;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return e.concat(r||Array.prototype.slice.call(n))},__LX_RUNTIME_PLATFORM__="mobile",__LingXiaBridgeBundle=function(e){var n;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t="BRIDGE_TIMEOUT",r="BRIDGE_CANCELED",o="BRIDGE_HANDSHAKE_FAILED",i="BRIDGE_MALFORMED_MESSAGE",a="BRIDGE_METHOD_NOT_FOUND",c="BRIDGE_CAPABILITY_DENIED",l="BRIDGE_INTERNAL_ERROR",s="BRIDGE_OUTBOX_FULL",d="BRIDGE_STREAM_CLOSED",u="BRIDGE_MESSAGE_TOO_LARGE",f=function(e){function n(n,t,r){var o=e.call(this,t)||this;return o.name="BridgeInvocationError",o.code=n,o.data=r,o}return __extends(n,e),n}(Error);function v(e){if(e instanceof f)return e;if(e&&"object"==typeof e){var n=e,t=l;("string"==typeof n.code&&""!==n.code.trim()||"number"==typeof n.code&&Number.isFinite(n.code))&&(t=n.code);var r="string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error";return new f(t,r,"data"in n?n.data:void 0)}var o=e instanceof Error?e.message:"string"==typeof e?e:"Unknown error";return new f(l,o)}function p(e){var n=v(e);return __assign({code:String(n.code||l),message:"string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error"},void 0===n.data?{}:{data:n.data})}function h(e){var n,t=e.os,r=e.send;if("undefined"!=typeof window&&"undefined"!=typeof document){var o="iOS"===t;if(o||"Android"===t){var i=Symbol.for("LingXia.NativeComponentCoverageMonitor");if(!(null===(n=window[i])||void 0===n?void 0:n.installed)){var a={installed:!0,coveredById:new Map,coveredCount:0,anyCovered:!1,scheduled:!1,hasAnyVideo:!1,scrollLocked:!1,scrollY:0,htmlOverflow:"",bodyOverflow:"",bodyPosition:"",bodyTop:"",bodyWidth:""};window[i]=a,new MutationObserver(u).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0});var c={handleEvent:function(){(a.hasAnyVideo||0!==a.coveredById.size)&&u()}},l={handleEvent:function(){return u()}};window.addEventListener("scroll",c,{capture:!0,passive:!0}),window.addEventListener("resize",l),u()}}}function s(e){var n,t,r=null===(n=e.getBoundingClientRect)||void 0===n?void 0:n.call(e);if(!r)return!1;if(r.width<2||r.height<2)return!1;var o=r.left+r.width/2,i=r.top+r.height/2;if(o<0||i<0||o>=window.innerWidth||i>=window.innerHeight)return!1;var a=null===(t=document.elementFromPoint)||void 0===t?void 0:t.call(document,o,i);return!!a&&(a!==document.documentElement&&a!==document.body&&!(a===e||e.contains(a)))}function d(){a.scheduled=!1;var e=document.querySelectorAll("lx-video[id]");if(a.hasAnyVideo=e.length>0,a.hasAnyVideo||0!==a.coveredById.size||a.anyCovered){for(var n=new Set,t=0,i=Array.from(e);t<i.length;t++){var c=i[t];if(h=c.id){n.add(h);var l=s(c),d=a.coveredById.get(h);d!==l&&(!0===d&&(a.coveredCount-=1),!0===l&&(a.coveredCount+=1),a.coveredById.set(h,l),r({id:h,action:"component.coverage",covered:l}))}}for(var u=[],f=0,v=a.coveredById.entries();f<v.length;f++){var p=v[f],h=p[0];l=p[1];n.has(h)||(u.push(h),!0===l&&(a.coveredCount-=1))}for(var g=0,m=u;g<m.length;g++){h=m[g];a.coveredById.delete(h),r({id:h,action:"component.coverage",covered:!1})}var y=a.coveredCount>0;y!==a.anyCovered&&(a.anyCovered=y,o&&(y?function(){if(o&&!a.scrollLocked){var e=document.documentElement,n=document.body;e&&n&&(a.scrollLocked=!0,a.scrollY=window.scrollY||e.scrollTop||0,a.htmlOverflow=e.style.overflow||"",a.bodyOverflow=n.style.overflow||"",a.bodyPosition=n.style.position||"",a.bodyTop=n.style.top||"",a.bodyWidth=n.style.width||"",e.style.overflow="hidden",n.style.overflow="hidden",n.style.position="fixed",n.style.top="".concat(-a.scrollY,"px"),n.style.width="100%")}}():function(){if(o&&a.scrollLocked){var e=document.documentElement,n=document.body;e&&n&&(a.scrollLocked=!1,e.style.overflow=a.htmlOverflow,n.style.overflow=a.bodyOverflow,n.style.position=a.bodyPosition,n.style.top=a.bodyTop,n.style.width=a.bodyWidth,window.scrollTo(0,a.scrollY))}}()))}}function u(){a.scheduled||(a.scheduled=!0,requestAnimationFrame(d))}}var g=new Set(["hello","req","res","notify","cancel","ch.open","ch.data","ch.close","state.ack","console"]),m=new Set(["helloAck","ready","req","res","event","state.snapshot","state.patch","ch.ack","ch.data","ch.close"]);function y(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function w(e){if(!y(e)||"string"!=typeof e.sessionId||0===e.sessionId.length||"string"!=typeof e.secret||0===e.secret.length)return{ok:!1,error:"INVALID_DOCUMENT_BINDING"};var n=e.sessionId,t=e.secret;return{ok:!0,value:{encode:function(e,r){return g.has(e)&&y(r)?["v","kind","sessionId","secret"].some(function(e){return e in r})?{ok:!1,error:"SECURITY_FIELD_IN_PAYLOAD"}:{ok:!0,value:__assign(__assign({},r),{v:3,kind:e,sessionId:n,secret:t})}:{ok:!1,error:"INVALID_DOCUMENT_PAYLOAD"}},parse:function(e,t){if(void 0===t&&(t=65536),(new TextEncoder).encode(e).byteLength>t)return{ok:!1,error:"FRAME_TOO_LARGE"};if(function(e){for(var n,t=new Set(["v","kind","sessionId","secret"]),r=new Set,o=0,i=0;i<e.length;i++){var a=e[i];if("{"!==a&&"["!==a)if("}"!==a&&"]"!==a){if('"'===a){var c=i;for(i++;i<e.length;)if("\\"!==e[i]){if('"'===e[i])break;i++}else i+=2;if(i>=e.length)return!1;if(1===o){for(var l=i+1;/\s/.test(null!==(n=e[l])&&void 0!==n?n:"");)l++;if(":"===e[l]){var s=void 0;try{s=JSON.parse(e.slice(c,i+1))}catch(e){return!1}if("string"==typeof s&&t.has(s)){if(r.has(s))return!0;r.add(s)}}}}}else o--;else o++}return!1}(e))return{ok:!1,error:"MALFORMED_ENVELOPE"};var r;try{r=JSON.parse(e)}catch(e){return{ok:!1,error:"MALFORMED_ENVELOPE"}}if(!y(r))return{ok:!1,error:"MALFORMED_ENVELOPE"};if(3!==r.v)return{ok:!1,error:"UNSUPPORTED_VERSION"};if("string"!=typeof r.kind||!m.has(r.kind))return{ok:!1,error:"UNSUPPORTED_NATIVE_KIND"};if("string"!=typeof r.sessionId||0===r.sessionId.length)return{ok:!1,error:"MALFORMED_ENVELOPE"};if(r.sessionId!==n)return{ok:!1,error:"SESSION_MISMATCH"};if(Object.prototype.hasOwnProperty.call(r,"secret"))return{ok:!1,error:"UNEXPECTED_SECRET"};r.v,r.kind,r.sessionId;var o=__rest(r,["v","kind","sessionId"]);return{ok:!0,value:{kind:r.kind,payload:o}}}}}}var _="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{},b={value:(null===(n=_.displayLanguage)||void 0===n?void 0:n.trim())||"en-US",listeners:new Set};function k(){var e;return"undefined"==typeof window?b:(window.__lxDisplayLanguage||(window.__lxDisplayLanguage={value:(null===(e=_.displayLanguage)||void 0===e?void 0:e.trim())||"en-US",listeners:new Set}),window.__lxDisplayLanguage)}function I(){"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=k().value)}function E(){return k().value}function S(e){var n=k().listeners;return n.add(e),function(){n.delete(e)}}function O(){return _.os||"unknown"}function L(){return"mobile"===_.hostClass||"desktop"===_.hostClass?_.hostClass:"macOS"===_.os||"Windows"===_.os?"desktop":"mobile"}function x(){return"iOS"===_.os}function A(){return"macOS"===_.os}I(),"undefined"==typeof window||window.__lingxiaApplyDisplayLanguage||Object.defineProperty(window,"__lingxiaApplyDisplayLanguage",{configurable:!1,enumerable:!1,value:function(e){var n="string"==typeof e?e.trim():"",t=k();if(n&&n!==t.value){t.value=n,I();for(var r=0,o=__spreadArray([],t.listeners,!0);r<o.length;r++){(0,o[r])(n)}}}});var T="__LingXiaRecvMessage",M=5e3,C="[LX.Bridge]",N="messageport",P="jsinterface",j="webmessage",D=_.appleDownstreamURL,R={log:console.log.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),info:(console.info||console.log).bind(console),debug:(console.debug||console.log).bind(console),group:(console.group||console.log).bind(console),groupEnd:(console.groupEnd||function(){}).bind(console)},B={data:!1,proto:!1,all:!1},X=[],q={kind:"v2"},F=!1;function U(){if("undefined"!=typeof window){var e=window.__LingXiaEarlyNativeMessages;if(Array.isArray(e)&&0!==e.length){window.__LingXiaEarlyNativeMessages=[];for(var n=0,t=e;n<t.length;n++){var r=t[n];"string"==typeof r&&X.push(r)}}}}function G(e){if(U(),0!==X.length)for(var n=0,t=X.splice(0,X.length);n<t.length;n++){var r=t[n];try{e(r)}catch(e){V("Failed to replay queued native message:",e)}}}function H(e){return B.all||B[e]}function W(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];(!0===_.dev||B.all||B.proto||B.data)&&R.log.apply(R,__spreadArray([C],e,!1))}function V(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];R.warn.apply(R,__spreadArray([C],e,!1))}function z(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];R.error.apply(R,__spreadArray([C],e,!1))}function J(e){try{return JSON.stringify(e)}catch(n){return function(e,n){var t=new WeakSet;return JSON.stringify(e,function(e,n){if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n},n)}(e)}}function Y(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch(e){return{}}}var $=function(){var e,n;return"iOS"===_.os||"macOS"===_.os?"webkit":"Harmony"===_.os?"messageport":"Windows"===_.os?"webmessage":"Android"===_.os?(null===(n=null===(e=window.LingXiaProxy)||void 0===e?void 0:e.supportsMessagePort)||void 0===n?void 0:n.call(e))?"messageport":"jsinterface":"unknown"}();!function(){if("undefined"!=typeof window){U();var e=window[T];if("function"!=typeof e)window[T]=function(e){X.push(e)};else{if(0===X.length)return;for(var n=0,t=X.splice(0,X.length);n<t.length;n++){var r=t[n];try{e(r)}catch(e){V("Failed to replay queued native message:",e)}}}}}();var K=null,Q=!1,Z=null,ee=null,ne=null,te=200,re=!1,oe=0,ie=0,ae=0,ce="".concat(Date.now().toString(36)).concat(Math.random().toString(36).slice(2,10)),le=null,se={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},de={handleEvent:function(e){var n,t,r=e;if("LingXia-port-init"===r.data){var o=null===(n=r.ports)||void 0===n?void 0:n[0];o&&(kn._connectWebMessagePort(o),null===(t=se.resolve)||void 0===t||t.call(se,o))}}};function ue(){se.listenerInstalled||(se.listenerInstalled=!0,window.addEventListener("message",de))}function fe(){null!==se.timer&&(window.clearTimeout(se.timer),se.timer=null),se.resolve=null,se.reject=null,se.promise=null}function ve(){return"webkit"===$&&(x()||A())}function pe(){null!==ne&&(clearTimeout(ne),ne=null)}function he(e){ve()&&!re&&(re=!0,pe(),null!==le&&(clearInterval(le),le=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",Ie),be=!1,null==ee||ee.abort(),Q=!1,me(e,!0))}function ge(e){for(var n=0,t=Array.from(je.keys());n<t.length;n++){Je(t[n],{code:d,message:e})}for(var r=0,o=Array.from(De.keys());r<o.length;r++){Ye(o[r],{code:d,message:e})}!function(e){for(var n=0,t=Array.from(Re.entries());n<t.length;n++){var r=t[n],o=r[0],i=r[1];Re.delete(o),i._emitClose(d,e)}}(e)}function me(e,n){nn(),"required-v3"!==q.kind&&(Oe=null),Le=!1,xe=!1,Ae=!1,Te=0,n&&ge(e)}function ye(e){if(e&&"object"==typeof e){ie=Date.now();var n=e;if(!0!==n.lxshutdown){if(void 0===n.lxhb){if(!0===n.lxreset)return oe=0,me("Apple downstream reset",!0),void tn();if("number"==typeof n.lxff){if(n.lxff<=oe)return;return oe=n.lxff,void sn(n.m)}sn(e)}}else he("Apple downstream closed")}}function we(){return __awaiter(this,void 0,void 0,function(){var e,n,t,r,o,i,a,c,l,s,d;return __generator(this,function(u){switch(u.label){case 0:if(!D)throw new Error("Apple downstream URL is not configured");return e=new AbortController,ee=e,n=D.includes("?")?"&":"?",t="".concat(D).concat(n,"from=").concat(oe,"&doc=").concat(ce),ae=Date.now(),[4,fetch(t,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal})];case 1:if(!(r=u.sent()).ok)throw new Error("Apple downstream HTTP ".concat(r.status));if("1"===r.headers.get("X-LingXia-Bridge-Shutdown"))return he("Apple downstream closed"),[2];if(!r.body)throw new Error("Apple downstream response body unavailable");Q=!0,te=200,ie=Date.now(),H("proto")&&W("Apple downstream connected"),tn(),o=r.body.getReader(),i=new TextDecoder,a="",u.label=2;case 2:u.trys.push([2,6,7,8]),u.label=3;case 3:return[4,o.read()];case 4:return c=u.sent(),l=c.value,c.done?[3,5]:(a=function(e){for(var n=e;;){var t=n.indexOf("\n");if(t<0)break;var r=n.slice(0,t).trim();if(n=n.slice(t+1),r)try{ye(JSON.parse(r))}catch(e){V("Apple downstream parse error:",e,r)}}return n}(a+=i.decode(l,{stream:!0})),[3,3]);case 5:if(a+=i.decode(),s=a.trim())try{ye(JSON.parse(s))}catch(e){V("Apple downstream trailing parse error:",e,s)}return[3,8];case 6:if(d=u.sent(),e.signal.aborted)return[2];throw d;case 7:try{o.releaseLock()}catch(e){}return[7];case 8:return[2]}})})}function _e(){if(ve()&&!re&&!Z){pe();var e=!1;Z=we().then(function(){e=!0}).catch(function(e){(null==ee?void 0:ee.signal.aborted)||V("Apple downstream failed:",e)}).finally(function(){var n,t=null!==(n=null==ee?void 0:ee.signal.aborted)&&void 0!==n&&n;Z=null,ee=null,Q=!1,t||re||function(e,n){if(void 0===n&&(n=!1),ve()&&!re){pe();var t=n?0:te;n||(te=Math.min(2*te,2e3));var r=n?"Apple downstream completed, reconnecting immediately: ".concat(e):"Apple downstream disconnected, retrying in ".concat(t,"ms: ").concat(e);t<=200?W(r):V(r),ne=setTimeout(function(){ne=null,_e()},t)}}("stream closed",e)})}}var be=!1;function ke(){if(ve()&&!re&&!be){be=!0;var e=Z;null==ee||ee.abort();var n=function(){be=!1,_e()};e?e.finally(n):n()}}function Ie(){"visible"===document.visibilityState&&ke()}function Ee(e){var n,t,r,o=function(e){if("blocked"===q.kind)return null;if("v2"===q.kind)return e;if(!e||"object"!=typeof e)return null;e.v;var n=e.kind,t=__rest(e,["v","kind"]);if("string"!=typeof n)return null;var r=q.codec.encode(n,t);return r.ok?r.value:null}(e);if(!o)return null;var i=e.kind;"req"!==i&&"notify"!==i||W("postToNative: ".concat(i," ").concat(e.method)),H("proto")&&R.log("→",JSON.stringify(e,null,2));try{var a=J(o),c=function(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e).length;for(var n=0,t=0;t<e.length;t+=1){var r=e.charCodeAt(t);r<128?n+=1:r<2048?n+=2:r>=55296&&r<=56319?(n+=4,t+=1):n+=3}return n}(a);if(c>65536)return{code:u,message:"Bridge message of ".concat(c," bytes exceeds the ").concat(65536,"-byte native limit")};if("webkit"===$)return null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers.LingXia)||void 0===t||t.postMessage(a),null;if($===N&&K)return K.postMessage(a),null;if(($===P||$===j)&&(null===(r=window.LingXiaProxy)||void 0===r?void 0:r.postMessage))return window.LingXiaProxy.postMessage(a),null;V("Transport not ready")}catch(e){"required-v3"===q.kind?z("Send error"):z("Send error:",e)}return null}function Se(e){var n=e.map(function(e){if("string"==typeof e)return e;try{var n=J(e);return"string"==typeof n?n:String(e)}catch(e){return"[Unserializable]"}}).join(" ");return n.length<=12288?n:"".concat(n.slice(0,12288),"…")}var Oe=null,Le=!1,xe=!1,Ae=!1,Te=0,Me=null,Ce=0;function Ne(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function Pe(e,n){var t,r=Ne(),o=!1,i=!1,a=function(){},c=function(){},l=[],s=[],d=new Promise(function(e,n){a=e,c=n});return(t={id:e,result:d,on:function(e,n){return"data"===e&&r.data.add(n),"end"===e&&r.end.add(n),"error"===e&&r.error.add(n),this}})[Symbol.asyncIterator]=function(){return i=!0,{next:function(){return l.length>0?Promise.resolve({done:!1,value:l.shift()}):o?d.then(function(e){return{done:!0,value:e}},function(e){return Promise.reject(e)}):new Promise(function(e,n){s.push({resolve:e,reject:n})})}}},t.cancel=function(){o||n()},t._emitData=function(e){if(!o){s.length>0?s.shift().resolve({done:!1,value:e}):i&&l.push(e);for(var n=0,t=r.data;n<t.length;n++){var a=t[n];try{a(e)}catch(e){V("Stream data listener failed:",e)}}}},t._resolve=function(e){if(!o){for(o=!0,a(e);s.length>0;)s.shift().resolve({done:!0,value:e});for(var n=0,t=r.end;n<t.length;n++){var i=t[n];try{i(e)}catch(e){V("Stream end listener failed:",e)}}}},t._reject=function(e){if(!o){for(o=!0,c(e);s.length>0;)s.shift().reject(e);for(var n=0,t=r.error;n<t.length;n++){var i=t[n];try{i(e)}catch(e){V("Stream error listener failed:",e)}}}},t}var je=new Map,De=new Map,Re=new Map,Be=[],Xe=-1,qe={},Fe=new Set,Ue=new WeakMap,Ge=new Map;function He(e){if(e.startsWith("host."))return"host";var n=e.indexOf(".");return n>0?e.slice(0,n):"page"}function We(e){if(null!=e)return e}function Ve(){return $===N?!!K:ve()?Q:"webkit"===$||$===P||$===j}function ze(){return!!xe&&(!!ve()||Ve())}function Je(e,n){var t,r=je.get(e);if(r){je.delete(e),null!==r.timerId&&clearTimeout(r.timerId);var o=v(n);if("stream"===r.mode&&r.stream)return void r.stream._reject(o);null===(t=r.reject)||void 0===t||t.call(r,o)}}function Ye(e,n){var t=De.get(e);if(t){De.delete(e),null!==t.timerId&&clearTimeout(t.timerId);var r=v(n);t.channel._reject(r),t.reject(r)}}function $e(e,n){je.has(e)?Je(e,n):De.has(e)&&Ye(e,n)}function Ke(e){if(je.has(e))return n=e,void((r=je.get(n))&&(!Number.isFinite(r.timeoutMs)||r.timeoutMs<=0?null!==r.timerId&&(clearTimeout(r.timerId),r.timerId=null):(null!==r.timerId&&clearTimeout(r.timerId),r.timerId=setTimeout(function(){je.has(n)&&Je(n,{code:t,message:"'".concat(r.method,"' timed out")})},r.timeoutMs))));var n,r;De.has(e)&&function(e){var n=De.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(function(){Ye(e,{code:t,message:"Channel '".concat(n.topic,"' timed out")})},M))}(e)}function Qe(e){for(var n,t=Be.length-1;t>=0;t--)if((null===(n=Be[t])||void 0===n?void 0:n.reqId)===e)return Be.splice(t,1),!0;return!1}function Ze(e,n){var t=e.kind,r="hello"===t||"helloAck"===t||"ready"===t;if(!ze()&&!r)return Be.length>=256?(z("Outbox full"),void(n&&$e(n,{code:s,message:"Bridge outbox is full"}))):void Be.push({msg:e,reqId:n});n&&Ke(n),en(Ee(e),n)}function en(e,n){e&&(z(e.message),n&&$e(n,e))}function nn(){null!==Me&&(clearTimeout(Me),Me=null)}function tn(){if(!xe&&F&&"blocked"!==q.kind&&Ve()){nn();var e={v:2,kind:"hello",nonce:_.nonce||"",role:"view",protocolsSupported:"required-v3"===q.kind?[3]:[2]};Ae=!0,Ee(e),Me=setTimeout(function(){if(!xe)if(++Te<3)V("Handshake timeout (".concat(Te,"/").concat(3,"), retrying...")),Ae=!1,tn();else{for(z("Handshake failed"),nn(),Ae=!1,Te=0;Be.length;){var e=Be.shift();(null==e?void 0:e.reqId)&&$e(e.reqId,{code:o,message:"Bridge handshake failed"})}for(var n=0,t=Array.from(De.keys());n<t.length;n++){Ye(t[n],{code:o,message:"Bridge handshake failed"})}}},1e4)}}function rn(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function on(e,n,t){void 0===t&&(t=!1);var r=function(e){if(""===e)return[];if(!e.startsWith("/"))throw new Error("Invalid JSON pointer: ".concat(e));return e.split("/").slice(1).map(rn)}(n);if(0===r.length)return{container:{$root:e},key:"$root"};for(var o=e,i=0;i<r.length-1;i++){var a=r[i];if(Array.isArray(o))o=o[Number(a)];else{if(!o||"object"!=typeof o)throw new Error("Invalid container at ".concat(a));var c=o;if(t&&void 0===c[a]){var l=r[i+1];c[a]=l&&/^\d+$/.test(l)?[]:{}}o=c[a]}}return{container:o,key:r[r.length-1]}}function an(e){Fe.forEach(function(n){try{if(!Ue.has(n))return Ue.set(n,!0),void n(Y(qe),{rev:Xe,initial:!0});n(Y(qe),{rev:Xe,initial:e})}catch(e){V("Subscriber error:",e)}})}function cn(e){if("function"!=typeof e)return function(){};if(Fe.add(e),Xe>=0){Ue.set(e,!0);try{e(Y(qe),{rev:Xe,initial:!0})}catch(e){z("Callback error:",e)}}return function(){Fe.delete(e),Ue.delete(e)}}function ln(e){bn.call("state.getSnapshot",{scope:e}).catch(function(){})}function sn(e){var n,t,r,o,i=e;if("v2"===q.kind&&"string"==typeof i)try{i=JSON.parse(i)}catch(e){i=null}if("v2"===q.kind&&i&&"object"==typeof i){var l=i;if("event"===l.type&&"nativecomponent"===l.name&&l.payload){var s=l.payload,u=s.id||s.componentId;if("string"==typeof u){var f=dn.get(u);if(f)try{f(s)}catch(e){z("NC handler error:",e)}}return}}var p=function(e){if("blocked"===q.kind)return null;if("required-v3"===q.kind){var n="string"==typeof e?e:J(e),t=q.codec.parse(n);return t.ok?__assign({v:3,kind:t.value.kind},t.value.payload):null}if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return null}if(!e||"object"!=typeof e)return null;var r=e.v,o=e.kind;return 2!==r||"string"!=typeof o?null:e}(i);if(p)switch(p.kind){case"helloAck":return p.protocol!==("required-v3"===q.kind?3:2)||p.nonce!==(_.nonce||"")?void V("Invalid helloAck"):"required-v3"===q.kind?void(Le=!0):Oe&&p.sessionId!==Oe?void V("sessionId mismatch"):(Oe||(Oe=p.sessionId),void(Le=!0));case"ready":if(!Le)return;return"v2"===q.kind&&Oe&&p.sessionId!==Oe?void V("sessionId mismatch"):(nn(),xe=!0,Te=0,H("proto")&&W("Handshake complete, host routes:",Object.keys(p.hostMethods||{}).length+(p.hostChannels||[]).length),void function(){if(ze())for(;Be.length;){var e=Be.shift();e&&(e.reqId&&Ke(e.reqId),en(Ee(e.msg),e.reqId))}}());case"res":var h=je.get(p.id);if(!h)return;if(je.delete(p.id),null!==h.timerId&&clearTimeout(h.timerId),p.ok){if("state.getSnapshot"===h.method&&(function(e){if(!e||"object"!=typeof e)return!1;var n=e;return!("number"!=typeof n.rev||!Number.isFinite(n.rev)||!n.state||"object"!=typeof n.state||(qe=n.state,Xe=n.rev,H("data")&&(R.group("[LX] snapshot(res)"),R.log("rev:",Xe,"state:",Y(qe)),R.groupEnd()),an(!0),0))}(p.result)||V("Invalid state.getSnapshot result")),"stream"===h.mode&&h.stream)return void h.stream._resolve(p.result);null===(n=h.resolve)||void 0===n||n.call(h,p.result)}else{var g=v(p.error);if("stream"===h.mode&&h.stream)return void h.stream._reject(g);null===(t=h.reject)||void 0===t||t.call(h,g)}return;case"event":if(je.has(p.id)){var m=je.get(p.id);return void("stream"===(null==m?void 0:m.mode)&&m.stream?(null!==m.timerId&&(clearTimeout(m.timerId),m.timerId=null),m.timeoutMs=0,m.stream._emitData(p.payload)):V("Received event for non-stream request '".concat(p.id,"'")))}return;case"state.snapshot":return qe=p.state||{},Xe=p.rev,H("data")&&(R.group("[LX] snapshot"),R.log("rev:",Xe,"state:",Y(qe)),R.groupEnd()),void an(!0);case"state.patch":if(p.baseRev!==Xe)return V("baseRev mismatch",{have:Xe,want:p.baseRev}),void ln(p.scope);try{!function(e,n){for(var t=0,r=n;t<r.length;t++){var o=r[t],i="add"===o.op||"replace"===o.op,a=on(e,o.path,i),c=a.container,l=a.key;if("$root"!==l)if(Array.isArray(c)){var s="-"===l?c.length:Number(l);if(!Number.isFinite(s)||s<0)throw new Error("Invalid index");"remove"===o.op?c.splice(s,1):"add"===o.op?c.splice(s,0,o.value):"replace"===o.op&&(c[s]=o.value)}else{if(!c||"object"!=typeof c)throw new Error("Invalid container");var d=c;"remove"===o.op?delete d[l]:d[l]=o.value}else{for(var u=0,f=Object.keys(e);u<f.length;u++)delete e[f[u]];if("remove"!==o.op){var v=o.value;v&&"object"==typeof v&&Object.assign(e,v)}}}}(qe,p.ops||[]),Xe=p.rev}catch(e){return z("Patch failed:",e),void ln(p.scope)}return H("data")&&(R.group("[LX] patch"),R.log("rev:",Xe,"ops:",p.ops),R.groupEnd()),an(!1),void(p.ack&&Ze({v:2,kind:"state.ack",scope:p.scope,rev:p.rev}));case"ch.ack":var y=De.get(p.id);if(!y)return;if(De.delete(p.id),null!==y.timerId&&clearTimeout(y.timerId),p.ok)y.channel._markOpen(),Re.set(p.id,y.channel),y.resolve(y.channel);else{g=v(p.error);y.channel._reject(g),y.reject(g)}return;case"ch.data":var w=Re.get(p.id);if(!w)return;return void w._emitData(p.payload);case"ch.close":if(De.get(p.id))return void Ye(p.id,{code:null!==(r=p.code)&&void 0!==r?r:d,message:null!==(o=p.reason)&&void 0!==o?o:"Channel closed before opening"});var b=Re.get(p.id);if(!b)return;return Re.delete(p.id),void b._emitClose(p.code,p.reason);case"req":var k=p,I=He(k.method);if(!k.cap||k.cap!==I)return void Ze({v:2,kind:"res",id:k.id,ok:!1,error:{code:c,message:"Invalid cap for ".concat(k.method)}});var E=Ge.get(k.method);return E?void Promise.resolve().then(function(){return E(k.params)}).then(function(e){Ze({v:2,kind:"res",id:k.id,ok:!0,result:e})}).catch(function(e){Ze({v:2,kind:"res",id:k.id,ok:!1,error:v(e)})}):void Ze({v:2,kind:"res",id:k.id,ok:!1,error:{code:a,message:"View handler not found: ".concat(k.method)}})}else V("Invalid bridge message")}var dn=new Map,un=[],fn=!1;function vn(){var e,n,t,r;return"undefined"!=typeof window&&!!((null===(n=null===(e=window.webkit)||void 0===e?void 0:e.messageHandlers)||void 0===n?void 0:n.NativeComponent)||(null===(t=window.NativeComponentBridge)||void 0===t?void 0:t.postMessage)||(null===(r=window.LingXiaProxy)||void 0===r?void 0:r.nativeComponentUpdate))}function pn(e){var n,t,r,o;try{if(null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers)||void 0===t?void 0:t.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(null===(r=window.NativeComponentBridge)||void 0===r?void 0:r.postMessage)return void window.NativeComponentBridge.postMessage(J(e));var i=null===(o=window.LingXiaProxy)||void 0===o?void 0:o.nativeComponentUpdate;if("function"==typeof i){var a=e.id||"island",c=J(__assign(__assign({},e),{componentId:a}));try{i.call(window.LingXiaProxy,c)}catch(e){i.call(window.LingXiaProxy,a,c)}return}}catch(e){z("NativeComponent send error:",e)}}function hn(){if(vn()&&0!==un.length)for(fn=!0;un.length;){var e=un.shift();try{pn(e)}catch(e){break}}}function gn(e){try{if(!vn())return void un.push(e);fn||hn(),pn(e)}catch(e){z("NC send failed:",e)}}function mn(e){return"".concat(e,"_").concat(Date.now(),"_").concat(Ce++)}function yn(e,n,t){if(n)if(n.aborted)t();else{var r={handleEvent:function(){n.removeEventListener("abort",r),t()}};n.addEventListener("abort",r)}}var wn,_n,bn={call:function(e,n,t){return new Promise(function(o,a){var c;if(e&&"string"==typeof e){Ae||tn();var l=mn("c"),s=(null==t?void 0:t.cap)||He(e),d=null!==(c=null==t?void 0:t.timeoutMs)&&void 0!==c?c:M;je.set(l,{method:e,mode:"call",resolve:o,reject:function(e){return a(e)},timeoutMs:d,timerId:null}),Ze({v:2,kind:"req",id:l,method:e,params:We(n),cap:s},l),yn(0,null==t?void 0:t.signal,function(){var e=Qe(l);Je(l,{code:r,message:"Bridge request aborted"}),!e&&xe&&Ze({v:2,kind:"cancel",id:l})})}else a({code:i,message:"Method name must be a non-empty string"})})},stream:function(e,n,t){var o;if(!e||"string"!=typeof e){var a=Pe("invalid",function(){});return a._reject({code:i,message:"Method name must be a non-empty string"}),a}Ae||tn();var c=mn("c"),l=Pe(c,function(){Qe(c)?Je(c,{code:r,message:"Bridge request aborted"}):xe&&Ze({v:2,kind:"cancel",id:c})}),s=(null==t?void 0:t.cap)||He(e),d=null!==(o=null==t?void 0:t.timeoutMs)&&void 0!==o?o:M;return je.set(c,{method:e,mode:"stream",stream:l,timeoutMs:d,timerId:null}),Ze({v:2,kind:"req",id:c,method:e,params:We(n),cap:s},c),yn(0,null==t?void 0:t.signal,function(){return l.cancel()}),l},notify:function(e,n,t){e&&"string"==typeof e&&(Ae||tn(),Ze({v:2,kind:"notify",method:e,params:We(n),cap:(null==t?void 0:t.cap)||He(e)}))},state:{subscribe:cn},channel:{open:function(e,n,t){return e&&"string"==typeof e?(Ae||tn(),new Promise(function(r,o){var i=mn("ch"),a=function(e,n,t){var r,o=Ne(),i=!1,a=0,c=!1,l=!1,s=[],u=[],f=((r={id:e,send:function(t){i?n(t,a++):f._reject({code:d,message:"Channel '".concat(e,"' is closed")})},on:function(e,n){if("data"===e&&(o.data.add(n),s.length>0))for(var t=0,r=s.splice(0);t<r.length;t++){var i=r[t];try{n(i)}catch(e){V("Channel listener failed:",e)}}return"close"===e&&o.close.add(n),"error"===e&&o.error.add(n),this}})[Symbol.asyncIterator]=function(){return l=!0,{next:function(){return s.length>0?Promise.resolve({done:!1,value:s.shift()}):c?Promise.resolve({done:!0,value:void 0}):new Promise(function(e,n){u.push({resolve:e,reject:n})})}}},r.close=function(e,n){i&&(i=!1,c=!0,t(e,n),f._emitClose(e,n))},r._emitData=function(e){if(i){u.length>0?u.shift().resolve({done:!1,value:e}):(l||0===o.data.size)&&s.push(e);for(var n=0,t=o.data;n<t.length;n++){var r=t[n];try{r(e)}catch(e){V("Channel listener failed:",e)}}}},r._emitClose=function(e,n){for(c=!0;u.length>0;)u.shift().resolve({done:!0,value:void 0});for(var t=0,r=o.close;t<r.length;t++){var i=r[t];try{i(e,n)}catch(e){V("Channel close listener failed:",e)}}},r._reject=function(e){for(c=!0;u.length>0;)u.shift().reject(e);for(var n=0,t=o.error;n<t.length;n++){var r=t[n];try{r(e)}catch(e){V("Channel error listener failed:",e)}}},r._markOpen=function(){i=!0,c=!1},r._isOpen=function(){return i},r._nextSeq=function(){return a++},r);return f}(i,function(e,n){Ze({v:2,kind:"ch.data",id:i,seq:n,payload:e})},function(e,n){var t=De.get(i);t&&null!==t.timerId&&clearTimeout(t.timerId),De.delete(i),Re.delete(i),Ze({v:2,kind:"ch.close",id:i,code:e,reason:n})});De.set(i,{topic:e,channel:a,resolve:r,reject:o,timerId:null}),Ze({v:2,kind:"ch.open",id:i,topic:e,params:We(n),cap:(null==t?void 0:t.cap)||He(e)},i)})):Promise.reject({code:i,message:"Topic name must be a non-empty string"})}}},kn={invoke:function(e,n,t){return bn.call(In(e),n,En(t)).then(function(e){return e}).catch(function(e){return Promise.reject(p(e))})},notify:function(e,n,t){bn.notify(In(e),n,En(t))},stream:function(e,n,t){return Sn(bn.stream(In(e),n,En(t)))},channel:function(e,n,t){return bn.channel.open(In(e),n,En(t)).then(function(e){return function(e){var n=new Set,t=new Set;return e.on("data",function(e){for(var t=0,r=n;t<r.length;t++){(0,r[t])(e)}}),e.on("close",function(e,n){for(var r={code:e,reason:n},o=0,i=t;o<i.length;o++){(0,i[o])(r)}}),{send:function(n){e.send(n)},onMessage:function(e){return n.add(e),function(){n.delete(e)}},onClose:function(e){return t.add(e),function(){t.delete(e)}},close:function(n,t){e.close(n,t)}}}(e)}).catch(function(e){return Promise.reject(p(e))})},raw:bn,state:{subscribe:cn},_connectWebMessagePort:function(e){if($===N){if(K&&K!==e)try{K.onmessage=null,K.close()}catch(e){}K=e,e.onmessage=function(e){sn(e.data)};try{e.start()}catch(e){}W("Port connected"),tn()}},_receiveEvaluateMessage:function(e){e&&sn(e)},debug:(wn=B,_n={},Object.keys(wn).forEach(function(e){Object.defineProperty(_n,e,{enumerable:!0,configurable:!1,get:function(){return wn[e]},set:function(n){wn[e]=!!n,R.log("[LX] ".concat(e,": ").concat(n))}})}),_n),displayLanguage:{get:E,subscribe:S},platform:{isHarmony:function(){return"Harmony"===_.os},isIOS:x,isAndroid:function(){return"Android"===_.os},isMacOS:A,isWindows:function(){return"Windows"===_.os},isDesktop:function(){return"desktop"===L()},isMobile:function(){return"mobile"===L()},isApple:function(){return x()||A()},isRunner:function(){return!0===_.runner},getOS:O},dom:{measureById:function(e){try{if(!e)return null;var n=document.getElementById(e);if(!n)return null;var t=n.getBoundingClientRect(),r=0;try{r=parseFloat(getComputedStyle(n).borderRadius)||0}catch(e){}return[t.left+window.scrollX,t.top+window.scrollY,t.width,t.height,r]}catch(e){return null}}},nativeComponents:{send:gn,hasHandler:vn,flush:hn,register:function(e,n){return e&&"function"==typeof n?(dn.set(e,n),function(){return dn.delete(e)}):function(){}},unregister:function(e){dn.delete(e)}},isReady:function(){return xe}};function In(e){return e.startsWith("host.")?e:"host.".concat(e)}function En(e){return __assign(__assign({},e||{}),{cap:(null==e?void 0:e.cap)||"host"})}function Sn(e){var n=new Set,t=new Set;return e.on("data",function(e){for(var t=0,r=n;t<r.length;t++){(0,r[t])(e)}}),e.on("error",function(e){for(var n=p(e),r=0,o=t;r<o.length;r++){(0,o[r])(n)}}),{onEvent:function(e){return n.add(e),function(){n.delete(e)}},onError:function(e){return t.add(e),function(){t.delete(e)}},result:e.result.catch(function(e){return Promise.reject(p(e))}),cancel:function(){e.cancel()}}}function On(){if(window.__LX_BRIDGE_INIT_STATE)W("Bridge already ".concat(window.__LX_BRIDGE_INIT_STATE,", skipping duplicate init"));else{window.__LX_BRIDGE_INIT_STATE="initializing";try{if(!F){var e=function(){if("undefined"==typeof window)return{kind:"absent"};var e=window.__LingXiaTakeControlBootstrap;if("function"!=typeof e)return{kind:"absent"};try{var n=e();if(!n||3!==n.requiredProtocol||"string"!=typeof n.publicSessionId||0===n.publicSessionId.length||"string"!=typeof n.secret||0===n.secret.length)return{kind:"blocked"};var t=w({sessionId:n.publicSessionId,secret:n.secret});return t.ok?{kind:"required",codec:t.value}:{kind:"blocked"}}catch(e){return{kind:"blocked"}}finally{try{delete window.__LingXiaTakeControlBootstrap}catch(e){}}}();q="required"===e.kind?{kind:"required-v3",codec:e.codec}:{kind:"absent"===e.kind?"v2":"blocked"},F=!0}if(function(){if("required-v3"===q.kind)for(var e=function(e){var n=R[e];console[e]=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];n.apply(void 0,t),xe&&Ee({kind:"console",__lingxia_console__:!0,level:e,message:Se(t)})}},n=0,t=["log","error","warn","info","debug"];n<t.length;n++)e(t[n])}(),W("Method: ".concat($)),t=kn._receiveEvaluateMessage,"undefined"!=typeof window&&(window[T]=function(e){G(t),t(e)},G(t)),ve())_e(),ve()&&!re&&null===le&&(le=setInterval(function(){0!==ie?Date.now()-ie>35e3&&(V("Apple downstream stale (no heartbeat), forcing reconnect"),ke()):Z&&0!==ae&&Date.now()-ae>1e4&&(V("Apple downstream did not connect, forcing reconnect"),ke())},5e3)),ve()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",Ie);else if($===N){ue();var n=function(e){(function(){var e,n;if(K)return Promise.resolve(K);if(se.promise)return se.promise;ue(),se.promise=new Promise(function(e,n){se.resolve=function(n){fe(),e(n)},se.reject=function(e){fe(),n(e)},se.timer=window.setTimeout(function(){var e;null===(e=se.reject)||void 0===e||e.call(se,new Error("MessagePort init timed out after ".concat(5e3,"ms")))},5e3)});try{null===(e=window.LingXiaProxy)||void 0===e||e.getPort("LingXiaPort")}catch(e){null===(n=se.reject)||void 0===n||n.call(se,e)}return se.promise})().catch(function(t){V("Port init failed:",t),e<3&&window.setTimeout(function(){return n(e+1)},500*e)})};n(1)}else"webkit"===$||$===P||$===j?tn():V("Unknown method");window.LingXiaBridge=kn,window.__lxForceDownstreamReconnect=ke,h({os:O(),send:gn}),window.__LX_BRIDGE_INIT_STATE="initialized",W("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}var t}}function Ln(e){var n=document.createElement("div");return n.textContent=e,n.innerHTML}function xn(e){var n=e.failedPath,t=e.reason,r=document.createElement("style");r.textContent="\n* { margin: 0; padding: 0; box-sizing: border-box; }\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n background: #f5f5f7;\n color: #1d1d1f;\n padding: 20px;\n -webkit-font-smoothing: antialiased;\n}\n.lx-error {\n text-align: center;\n max-width: 400px;\n}\n.lx-error-code {\n font-size: 120px;\n font-weight: 700;\n color: #d1d1d6;\n line-height: 1;\n letter-spacing: -4px;\n}\n.lx-error-title {\n font-size: 21px;\n font-weight: 600;\n margin: 16px 0 8px;\n color: #1d1d1f;\n}\n.lx-error-desc {\n font-size: 15px;\n color: #86868b;\n line-height: 1.5;\n}\n.lx-error-path {\n display: inline-block;\n margin-top: 20px;\n padding: 10px 16px;\n background: rgba(0,0,0,0.04);\n border-radius: 8px;\n font-family: 'SF Mono', ui-monospace, Menlo, Monaco, monospace;\n font-size: 13px;\n color: #1d1d1f;\n word-break: break-all;\n max-width: 100%;\n}\n@media (prefers-color-scheme: dark) {\n body { background: #000; color: #f5f5f7; }\n .lx-error-code { color: #3a3a3c; }\n .lx-error-title { color: #f5f5f7; }\n .lx-error-desc { color: #86868b; }\n .lx-error-path { background: rgba(255,255,255,0.08); color: #f5f5f7; }\n}\n",document.head.appendChild(r),document.body.innerHTML="",document.body.style.cssText="";var o=document.createElement("div");o.className="lx-error";var i='<div class="lx-error-code">404</div>';i+='<h1 class="lx-error-title">Page Not Found</h1>',i+="<p class=\"lx-error-desc\">The page you're looking for doesn't exist.</p>",n&&(i+='<div class="lx-error-path">'.concat(Ln(n),"</div>")),t&&(i+='<p class="lx-error-desc" style="margin-top:12px">'.concat(Ln(t),"</p>")),o.innerHTML=i,document.body.appendChild(o)}function An(){var e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function Tn(){var e;return(null===(e=window.__LX_RUNTIME_CONFIG)||void 0===e?void 0:e.error)||null}var Mn={handleEvent:function(){return Cn()}};function Cn(){if(An()){var e=Tn();e&&xn(e)}}function Nn(){On(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",Mn):Cn()}return Nn(),e.LingXiaBridge=kn,e.boot=function(){On(),Cn()},e.bootWhenReady=Nn,e.channel=function(e,n,t){return kn.channel(e,n,t)},e.getDisplayLanguage=E,e.getErrorInfo=Tn,e.hasError=An,e.initBridge=On,e.invoke=function(e,n,t){return kn.invoke(e,n,t)},e.isNativeError=function(e,n){if(!e||"object"!=typeof e)return!1;var t=e;return"string"==typeof t.code&&""!==t.code.trim()&&("string"==typeof t.message&&(void 0===n||t.code===n))},e.notify=function(e,n,t){bn.notify(In(e),n,En(t))},e.renderErrorUI=xn,e.stream=function(e,n,t){return Sn(bn.stream(In(e),n,En(t)))},e.subscribeDisplayLanguage=S,e}({});
|