@lingxia/bridge 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge-runtime.es2020.js +1 -1
- package/dist/bridge-runtime.es5.js +1 -1
- package/dist/es2020/bridge.js +200 -20
- package/dist/es2020/index.js +1 -0
- package/dist/es2020/runtime-env.js +25 -0
- package/dist/es2020/ui/action-sheet.js +2 -2
- package/dist/es5/bridge.js +205 -25
- package/dist/es5/index.js +1 -0
- package/dist/es5/runtime-env.js +26 -0
- package/dist/es5/ui/action-sheet.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/runtime-env.d.ts +4 -0
- package/dist/types.d.ts +6 -0
- package/package.json +1 -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||{};function h(){return p.os||"unknown"}function g(){return"iOS"===p.os}function v(){return"macOS"===p.os}function y(){return"Windows"===p.os}const x="__LingXiaRecvMessage",w=5e3,b="[LX.Bridge]",k="messageport",E="jsinterface",I="webmessage",C=p.appleDownstreamURL,_={data:!1,proto:!1,all:!1},T=[];function L(e){return _.all||_[e]}function S(...e){console.log(b,...e)}function M(...e){console.warn(b,...e)}function N(...e){console.error(b,...e)}function A(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 B(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return{}}}const O="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[x]&&(window[x]=e=>{T.push(e)});let j=null,P=!1,R=null,F=null,D=null,X=200;const $={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},H={handleEvent:e=>{const t=e;if("LingXia-port-init"!==t.data)return;const n=t.ports?.[0];n&&(Ge._connectWebMessagePort(n),$.resolve?.(n))}};function q(){$.listenerInstalled||($.listenerInstalled=!0,window.addEventListener("message",H))}function z(){null!==$.timer&&(window.clearTimeout($.timer),$.timer=null),$.resolve=null,$.reject=null,$.promise=null}function G(){return"webkit"===O&&(g()||v())}function U(){null!==D&&(clearTimeout(D),D=null)}function W(e){for(const t of Array.from(se.keys()))we(t,{code:c,message:e});for(const t of Array.from(ae.keys()))be(t,{code:c,message:e});!function(e){for(const[t,n]of Array.from(le.entries()))le.delete(t),n._emitClose(c,e)}(e)}function J(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{Oe(JSON.parse(n))}catch(e){M("Apple downstream parse error:",e,n)}}return t}function Y(){G()&&(R||(U(),R=async function(){if(!C)throw new Error("Apple downstream URL is not configured");const e=new AbortController;F=e;const t=await fetch(C,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal});if(!t.ok)throw new Error(`Apple downstream HTTP ${t.status}`);if(!t.body)throw new Error("Apple downstream response body unavailable");P=!0,X=200,L("proto")&&S("Apple downstream connected"),Le();const n=t.body.getReader(),o=new TextDecoder;let r="";try{for(;;){const{value:e,done:t}=await n.read();if(t)break;r+=o.decode(e,{stream:!0}),r=J(r)}r+=o.decode();const e=r.trim();if(e)try{Oe(JSON.parse(e))}catch(t){M("Apple downstream trailing parse error:",t,e)}}catch(t){if(e.signal.aborted)return;throw t}finally{try{n.releaseLock()}catch{}}}().catch(e=>{F?.signal.aborted||M("Apple downstream failed:",e)}).finally(()=>{const e=F?.signal.aborted??!1;R=null,F=null;const t=P;var n,o;P=!1,n="Apple downstream closed",o=t,Te(),K=null,Q=!1,Z=!1,ee=0,o&&W(n),e||function(e){if(!G())return;U();const t=X;X=Math.min(2*X,2e3);const n=`Apple downstream disconnected, retrying in ${t}ms: ${e}`;t<=200?S(n):M(n),D=setTimeout(()=>{D=null,Y()},t)}("stream closed")})))}function V(e){const t=e.kind;"req"!==t&&"notify"!==t||S(`postToNative: ${t} ${e.method}`),L("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===O)return void window.webkit?.messageHandlers.LingXia?.postMessage(e);const t=A(e);if(O===k&&j)return void j.postMessage(t);if((O===E||O===I)&&window.LingXiaProxy?.postMessage)return void window.LingXiaProxy.postMessage(t);M("Transport not ready")}catch(e){N("Send error:",e)}}let K=null,Q=!1,Z=!1,ee=0,te=null;const ne={};let oe=0;function re(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function ie(e,t){const n=re();let o=!1,r=()=>{},i=()=>{};const s=[],a=[],l=new Promise((e,t)=>{r=e,i=t});return{id:e,result:l,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]:()=>({next:()=>s.length>0?Promise.resolve({done:!1,value:s.shift()}):o?l.then(e=>({done:!0,value:e}),e=>Promise.reject(e)):new Promise((e,t)=>{a.push({resolve:e,reject:t})})}),cancel(){o||t()},_emitData(e){if(!o){a.length>0?a.shift().resolve({done:!1,value:e}):s.push(e);for(const t of n.data)try{t(e)}catch(e){M("Stream data listener failed:",e)}}},_resolve(e){if(!o){for(o=!0,r(e);a.length>0;)a.shift().resolve({done:!0,value:e});for(const t of n.end)try{t(e)}catch(e){M("Stream end listener failed:",e)}}},_reject(e){if(!o){for(o=!0,i(e);a.length>0;)a.shift().reject(e);for(const t of n.error)try{t(e)}catch(e){M("Stream error listener failed:",e)}}}}}const se=new Map,ae=new Map,le=new Map,ce=[];let de=-1,ue={};const me=new Set,fe=new WeakMap,pe=new Map;function he(e,t){pe.set(e,t)}function ge(e){if(e.startsWith("host."))return"host";const t=e.indexOf(".");return t>0?e.slice(0,t):"page"}function ve(e){if(null!=e)return e}function ye(){return O===k?!!j:G()?P:"webkit"===O||O===E||O===I}function xe(){return ye()&&Q}function we(e,t){const n=se.get(e);if(n){se.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 be(e,t){const n=ae.get(e);if(!n)return;ae.delete(e),null!==n.timerId&&clearTimeout(n.timerId);const o=u(t);n.channel._reject(o),n.reject(o)}function ke(e,t){se.has(e)?we(e,t):ae.has(e)&&be(e,t)}function Ee(e){const n=se.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(()=>{se.has(e)&&we(e,{code:t,message:`'${n.method}' timed out`})},n.timeoutMs)))}function Ie(e){se.has(e)?Ee(e):ae.has(e)&&function(e){const n=ae.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(()=>{be(e,{code:t,message:`Channel '${n.topic}' timed out`})},w))}(e)}function Ce(e){for(let t=ce.length-1;t>=0;t--)if(ce[t]?.reqId===e)return ce.splice(t,1),!0;return!1}function _e(e,t){const n=e.kind,o="hello"===n||"helloAck"===n||"ready"===n;if(!xe()&&!o)return ce.length>=256?(N("Outbox full"),void(t&&ke(t,{code:l,message:"Bridge outbox is full"}))):void ce.push({msg:e,reqId:t});t&&Ie(t),V(e)}function Te(){null!==te&&(clearTimeout(te),te=null)}function Le(){if(Q)return;if(!ye())return;Te();const e={v:2,kind:"hello",nonce:p.nonce||"",role:"view",protocolsSupported:[2]};Z=!0,V(e),te=setTimeout(()=>{if(!Q)if(ee++,ee<3)M(`Handshake timeout (${ee}/3), retrying...`),Z=!1,Le();else{for(N("Handshake failed"),Te(),Z=!1,ee=0;ce.length;){const e=ce.shift();e?.reqId&&ke(e.reqId,{code:o,message:"Bridge handshake failed"})}for(const e of Array.from(ae.keys()))be(e,{code:o,message:"Bridge handshake failed"})}},1e4)}function Se(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Me(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(Se)}(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 Ne(e){me.forEach(t=>{try{if(!fe.has(t))return fe.set(t,!0),void t(B(ue),{rev:de,initial:!0});t(B(ue),{rev:de,initial:e})}catch(e){M("Subscriber error:",e)}})}function Ae(e){if("function"!=typeof e)return()=>{};if(me.add(e),de>=0){fe.set(e,!0);try{e(B(ue),{rev:de,initial:!0})}catch(e){N("Callback error:",e)}}return()=>{me.delete(e),fe.delete(e)}}function Be(e){ze.call("state.getSnapshot",{scope:e}).catch(()=>{})}function Oe(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){N("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(K=t.sessionId);case"ready":if(K&&t.sessionId!==K)return void M("sessionId mismatch");if(Te(),Q=!0,ee=0,t.hostMethods)for(const[e,n]of Object.entries(t.hostMethods))ne[e]=n;return L("proto")&&S("Handshake complete, hostMethods:",Object.keys(ne).length),void function(){if(xe())for(;ce.length;){const e=ce.shift();e&&(e.reqId&&Ie(e.reqId),V(e.msg))}}();case"res":{const e=se.get(t.id);if(!e)return;if(se.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||(ue=t.state,de=t.rev,L("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",de,"state:",B(ue)),console.groupEnd()),Ne(!0),0))}(t.result)||M("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(se.has(t.id)){const e=se.get(t.id);return void("stream"===e?.mode&&e.stream?(Ee(t.id),e.stream._emitData(t.payload)):M(`Received event for non-stream request '${t.id}'`))}return;case"state.snapshot":return ue=t.state||{},de=t.rev,L("data")&&(console.group("[LX] snapshot"),console.log("rev:",de,"state:",B(ue)),console.groupEnd()),void Ne(!0);case"state.patch":if(t.baseRev!==de)return M("baseRev mismatch",{have:de,want:t.baseRev}),void Be(t.scope);try{!function(e,t){for(const n of t){const t="add"===n.op||"replace"===n.op,{container:o,key:r}=Me(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}}(ue,t.ops||[]),de=t.rev}catch(e){return N("Patch failed:",e),void Be(t.scope)}return L("data")&&(console.group("[LX] patch"),console.log("rev:",de,"ops:",t.ops),console.groupEnd()),Ne(!1),void(t.ack&&_e({v:2,kind:"state.ack",scope:t.scope,rev:t.rev}));case"ch.ack":{const e=ae.get(t.id);if(!e)return;if(ae.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok)e.channel._markOpen(),le.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=le.get(t.id);if(!e)return;return void e._emitData(t.payload)}case"ch.close":{const e=ae.get(t.id);if(e)return ae.delete(t.id),void e.channel._emitClose(t.code,t.reason);const n=le.get(t.id);if(!n)return;return le.delete(t.id),void n._emitClose(t.code,t.reason)}case"req":{const e=t,n=ge(e.method);if(!e.cap||e.cap!==n)return void _e({v:2,kind:"res",id:e.id,ok:!1,error:{code:s,message:`Invalid cap for ${e.method}`}});const o=pe.get(e.method);return o?void Promise.resolve().then(()=>o(e.params)).then(t=>{_e({v:2,kind:"res",id:e.id,ok:!0,result:t})}).catch(t=>{_e({v:2,kind:"res",id:e.id,ok:!1,error:u(t)})}):void _e({v:2,kind:"res",id:e.id,ok:!1,error:{code:i,message:`View handler not found: ${e.method}`}})}}else M("Invalid V2 message:",e)}const je=new Map,Pe=[];let Re=!1;function Fe(){return"undefined"!=typeof window&&!(!window.webkit?.messageHandlers?.NativeComponent&&!window.NativeComponentBridge?.postMessage)}function De(e){try{if(window.webkit?.messageHandlers?.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(window.NativeComponentBridge?.postMessage)return void window.NativeComponentBridge.postMessage(A(e))}catch(e){N("NativeComponent send error:",e)}}function Xe(){if(Fe()&&0!==Pe.length)for(Re=!0;Pe.length;){const e=Pe.shift();try{De(e)}catch{break}}}function $e(e){try{if(!Fe())return void Pe.push(e);Re||Xe(),De(e)}catch(e){N("NC send failed:",e)}}function He(e){return`${e}_${Date.now()}_${oe++}`}function qe(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 ze={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"});Z||Le();const a=He("c"),l=o?.cap||ge(e),c=o?.timeoutMs??w;se.set(a,{method:e,mode:"call",resolve:i,reject:e=>s(e),timeoutMs:c,timerId:null}),_e({v:2,kind:"req",id:a,method:e,params:ve(t),cap:l},a),qe(0,o?.signal,()=>{const e=Ce(a);we(a,{code:n,message:"Bridge request aborted"}),!e&&Q&&_e({v:2,kind:"cancel",id:a})})}),stream(e,t,o){if(!e||"string"!=typeof e){const e=ie("invalid",()=>{});return e._reject({code:r,message:"Method name must be a non-empty string"}),e}Z||Le();const i=He("c"),s=ie(i,()=>{Ce(i)?we(i,{code:n,message:"Bridge request aborted"}):Q&&_e({v:2,kind:"cancel",id:i})}),a=o?.cap||ge(e),l=o?.timeoutMs??w;return se.set(i,{method:e,mode:"stream",stream:s,timeoutMs:l,timerId:null}),_e({v:2,kind:"req",id:i,method:e,params:ve(t),cap:a},i),qe(0,o?.signal,()=>s.cancel()),s},notify(e,t,n){e&&"string"==typeof e&&(Z||Le(),_e({v:2,kind:"notify",method:e,params:ve(t),cap:n?.cap||ge(e)}))},state:{subscribe:Ae},channel:{open:(e,t,n)=>e&&"string"==typeof e?(Z||Le(),new Promise((o,r)=>{const i=He("ch"),s=function(e,t,n){const o=re();let r=!1,i=0,s=!1;const a=[],l=[],d={id:e,send(n){r?t(n,i++):d._reject({code:c,message:`Channel '${e}' is closed`})},on(e,t){if("data"===e&&(o.data.add(t),a.length>0)){const e=a.splice(0);for(const n of e)try{t(n)}catch(e){M("Channel listener failed:",e)}}return"close"===e&&o.close.add(t),"error"===e&&o.error.add(t),this},[Symbol.asyncIterator]:()=>({next:()=>a.length>0?Promise.resolve({done:!1,value:a.shift()}):s?Promise.resolve({done:!0,value:void 0}):new Promise((e,t)=>{l.push({resolve:e,reject:t})})}),close(e,t){r&&(r=!1,s=!0,n(e,t),d._emitClose(e,t))},_emitData(e){if(r){l.length>0?l.shift().resolve({done:!1,value:e}):a.push(e);for(const t of o.data)try{t(e)}catch(e){M("Channel listener failed:",e)}}},_emitClose(e,t){for(s=!0;l.length>0;)l.shift().resolve({done:!0,value:void 0});for(const n of o.close)try{n(e,t)}catch(e){M("Channel close listener failed:",e)}},_reject(e){for(s=!0;l.length>0;)l.shift().reject(e);for(const t of o.error)try{t(e)}catch(e){M("Channel error listener failed:",e)}},_markOpen(){r=!0,s=!1},_isOpen:()=>r,_nextSeq:()=>i++};return d}(i,(e,t)=>{_e({v:2,kind:"ch.data",id:i,seq:t,payload:e})},(e,t)=>{const n=ae.get(i);n&&null!==n.timerId&&clearTimeout(n.timerId),ae.delete(i),le.delete(i),_e({v:2,kind:"ch.close",id:i,code:e,reason:t})});ae.set(i,{topic:e,channel:s,resolve:o,reject:r,timerId:null}),_e({v:2,kind:"ch.open",id:i,topic:e,params:ve(t),cap:n?.cap||ge(e)},i)})):Promise.reject({code:r,message:"Topic name must be a non-empty string"})}},Ge={invoke:(e,t,n)=>ze.call(Ue(e),t,We(n)).then(e=>e).catch(e=>Promise.reject(m(e))),notify(e,t,n){ze.notify(Ue(e),t,We(n))},stream:(e,t,n)=>Je(ze.stream(Ue(e),t,We(n))),channel:(e,t,n)=>ze.channel.open(Ue(e),t,We(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:ze,state:{subscribe:Ae},_connectWebMessagePort(e){if(O===k){if(j&&j!==e)try{j.onmessage=null,j.close()}catch{}j=e,e.onmessage=e=>{let t=e.data;if("string"==typeof t)try{t=JSON.parse(t)}catch{return}Oe(t)};try{e.start()}catch{}S("Port connected"),Le()}},_receiveEvaluateMessage(e){try{e&&Oe(JSON.parse(e))}catch(e){N("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}(_),platform:{isHarmony:function(){return"Harmony"===p.os},isIOS:g,isAndroid:function(){return"Android"===p.os},isMacOS:v,isWindows:y,isDesktop:function(){return v()||y()},getOS:h},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:$e,hasHandler:Fe,flush:Xe,register:(e,t)=>e&&"function"==typeof t?(je.set(e,t),()=>je.delete(e)):()=>{},unregister(e){je.delete(e)}},isReady:()=>Q};function Ue(e){return e.startsWith("host.")?e:`host.${e}`}function We(e){return{...e||{},cap:e?.cap||"host"}}function Je(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 Ye(){if(window.__LX_BRIDGE_INIT_STATE)S(`Bridge already ${window.__LX_BRIDGE_INIT_STATE}, skipping duplicate init`);else{window.__LX_BRIDGE_INIT_STATE="initializing";try{S(`Method: ${O}`),function(e){if("undefined"==typeof window)return;if(window[x]=e,0===T.length)return;const t=T.splice(0,T.length);for(const n of t)try{e(n)}catch(e){M("Failed to replay queued native message:",e)}}(Ge._receiveEvaluateMessage),G()?Y():O===k?(q(),function(){if(j)return Promise.resolve(j);if($.promise)return $.promise;q(),$.promise=new Promise((e,t)=>{$.resolve=t=>{z(),e(t)},$.reject=e=>{z(),t(e)},$.timer=window.setTimeout(()=>{$.reject?.(new Error("MessagePort init timed out after 5000ms"))},5e3)});try{window.LingXiaProxy?.getPort("LingXiaPort")}catch(e){$.reject?.(e)}return $.promise}().catch(e=>M("Port init failed:",e))):"webkit"===O||O===E||O===I?Le():M("Unknown method"),window.LingXiaBridge=Ge,f({os:h(),send:$e}),window.__LX_BRIDGE_INIT_STATE="initialized",S("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function Ve(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function Ke(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">${Ve(t)}</div>`),n&&(i+=`<p class="lx-error-desc" style="margin-top:12px">${Ve(n)}</p>`),r.innerHTML=i,document.body.appendChild(r)}function Qe(){const e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function Ze(){return window.__LX_RUNTIME_CONFIG?.error||null}const et={handleEvent:()=>tt()};function tt(){if(Qe()){const e=Ze();e&&Ke(e)}}function nt(){Ye(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",et):tt()}const ot="lx-action-sheet-style";let rt=null;function it(e){const t=e,n=t?.itemList??[],o=t?.cancelText??"Cancel",r=t?.itemColor??"#007AFF",i=(rt??Promise.resolve()).then(()=>st(n,o,r),()=>st(n,o,r));return rt=i,i}function st(e,t,n){return new Promise(o=>{let r=!1;const i="macOS"===h();!function(){if(document.getElementById(ot))return;const e=document.createElement("style");e.id=ot,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 at=200,lt="lx-modal-style";let ct=null;function dt(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=(ct??Promise.resolve()).then(()=>ut(n,o,r,i,s,a,l),()=>ut(n,o,r,i,s,a,l));return ct=c,c}function ut(e,t,n,o,r,i,s){return new Promise(a=>{let l=!1;!function(){if(document.getElementById(lt))return;const e=document.createElement("style");e.id=lt,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})},at))}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 mt="lx-toast-style";let ft=null;function pt(e){const t=e,n=t?.title??"",o=t?.icon??"none",r=t?.duration??1500,i=t?.mask??!1,s=t?.position??"center";ft&&(ft.dismiss(),ft=null),function(){if(document.getElementById(mt))return;const e=document.createElement("style");e.id=mt,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,ft?.dismiss===f&&(ft=null),c.classList.remove("lx-toast-visible"),p&&clearTimeout(p),setTimeout(()=>{l.remove(),a?.remove()},200))}let p=null;return r>0&&(p=setTimeout(f,r)),ft={dismiss:f,timer:p},Promise.resolve()}function ht(){return ft&&(ft.dismiss(),ft=null),Promise.resolve()}return he("ui.showActionSheet",it),he("ui.showModal",dt),he("ui.showToast",pt),he("ui.hideToast",ht),nt(),e.LingXiaBridge=Ge,e.boot=function(){Ye(),tt()},e.bootWhenReady=nt,e.channel=function(e,t,n){return Ge.channel(e,t,n)},e.getErrorInfo=Ze,e.hasError=Qe,e.initBridge=Ye,e.invoke=function(e,t,n){return Ge.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){ze.notify(Ue(e),t,We(n))},e.renderErrorUI=Ke,e.stream=function(e,t,n){return Je(ze.stream(Ue(e),t,We(n)))},e}({});
|
|
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=p.displayLanguage?.trim()||"en-US";function g(){return p.os||"unknown"}function v(){return"iOS"===p.os}function y(){return"macOS"===p.os}function w(){return"Windows"===p.os}function x(){return y()||w()}"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=h);const b="__LingXiaRecvMessage",k=5e3,E="[LX.Bridge]",I="messageport",C="jsinterface",_="webmessage",L=p.appleDownstreamURL,T={data:!1,proto:!1,all:!1},S=[];function M(e){return T.all||T[e]}function N(...e){(!0===p.dev||T.all||T.proto||T.data)&&console.log(E,...e)}function A(...e){console.warn(E,...e)}function B(...e){console.error(E,...e)}function j(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 O(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return{}}}const P="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[b]&&(window[b]=e=>{S.push(e)});let R=null,D=!1,F=null,$=null,X=null,z=200,H=!1,q=0;let G=0,U=null;const W={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},J={handleEvent:e=>{const t=e;if("LingXia-port-init"!==t.data)return;const n=t.ports?.[0];n&&(nt._connectWebMessagePort(n),W.resolve?.(n))}};function Y(){W.listenerInstalled||(W.listenerInstalled=!0,window.addEventListener("message",J))}function V(){null!==W.timer&&(window.clearTimeout(W.timer),W.timer=null),W.resolve=null,W.reject=null,W.promise=null}function K(){return"webkit"===P&&(v()||y())}function Q(){null!==X&&(clearTimeout(X),X=null)}function Z(e){K()&&!H&&(H=!0,Q(),null!==U&&(clearInterval(U),U=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",ae),ie=!1,$?.abort(),D=!1,te(e,!0))}function ee(e){for(const t of Array.from(ye.keys()))Ae(t,{code:c,message:e});for(const t of Array.from(we.keys()))Be(t,{code:c,message:e});!function(e){for(const[t,n]of Array.from(xe.entries()))xe.delete(t),n._emitClose(c,e)}(e)}function te(e,t){De(),ce=null,de=!1,ue=!1,me=0,t&&ee(e)}function ne(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{oe(JSON.parse(n))}catch(e){A("Apple downstream parse error:",e,n)}}return t}function oe(e){if(!e||"object"!=typeof e)return;G=Date.now();const t=e;if(!0!==t.lxshutdown){if(void 0===t.lxhb){if(!0===t.lxreset)return q=0,te("Apple downstream reset",!0),void Fe();if("number"==typeof t.lxff){if(t.lxff<=q)return;return q=t.lxff,void Ge(t.m)}Ge(e)}}else Z("Apple downstream closed")}function re(){if(!K()||H)return;if(F)return;Q();let e=!1;F=async function(){if(!L)throw new Error("Apple downstream URL is not configured");const e=new AbortController;$=e;const t=L.includes("?")?"&":"?",n=`${L}${t}from=${q}`,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 Z("Apple downstream closed");if(!o.body)throw new Error("Apple downstream response body unavailable");D=!0,z=200,G=Date.now(),M("proto")&&N("Apple downstream connected"),Fe();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=ne(s)}s+=i.decode();const e=s.trim();if(e)try{oe(JSON.parse(e))}catch(t){A("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=>{$?.signal.aborted||A("Apple downstream failed:",e)}).finally(()=>{const t=$?.signal.aborted??!1;F=null,$=null,D=!1,t||H||function(e,t=!1){if(!K()||H)return;Q();const n=t?0:z;t||(z=Math.min(2*z,2e3));const o=t?`Apple downstream completed, reconnecting immediately: ${e}`:`Apple downstream disconnected, retrying in ${n}ms: ${e}`;n<=200?N(o):A(o),X=setTimeout(()=>{X=null,re()},n)}("stream closed",e)})}let ie=!1;function se(){if(!K()||H)return;if(ie)return;ie=!0;const e=F;$?.abort();const t=()=>{ie=!1,re()};e?e.finally(t):t()}function ae(){"visible"===document.visibilityState&&se()}function le(e){const t=e.kind;"req"!==t&&"notify"!==t||N(`postToNative: ${t} ${e.method}`),M("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===P)return void window.webkit?.messageHandlers.LingXia?.postMessage(e);const t=j(e);if(P===I&&R)return void R.postMessage(t);if((P===C||P===_)&&window.LingXiaProxy?.postMessage)return void window.LingXiaProxy.postMessage(t);A("Transport not ready")}catch(e){B("Send error:",e)}}let ce=null,de=!1,ue=!1,me=0,fe=null;const pe={};let he=0;function ge(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function ve(e,t){const n=ge();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){A("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){A("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){A("Stream error listener failed:",e)}}}}}const ye=new Map,we=new Map,xe=new Map,be=[];let ke=-1,Ee={};const Ie=new Set,Ce=new WeakMap,_e=new Map;function Le(e,t){_e.set(e,t)}function Te(e){if(e.startsWith("host."))return"host";const t=e.indexOf(".");return t>0?e.slice(0,t):"page"}function Se(e){if(null!=e)return e}function Me(){return P===I?!!R:K()?D:"webkit"===P||P===C||P===_}function Ne(){return!!de&&(!!K()||Me())}function Ae(e,t){const n=ye.get(e);if(n){ye.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 Be(e,t){const n=we.get(e);if(!n)return;we.delete(e),null!==n.timerId&&clearTimeout(n.timerId);const o=u(t);n.channel._reject(o),n.reject(o)}function je(e,t){ye.has(e)?Ae(e,t):we.has(e)&&Be(e,t)}function Oe(e){ye.has(e)?function(e){const n=ye.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(()=>{ye.has(e)&&Ae(e,{code:t,message:`'${n.method}' timed out`})},n.timeoutMs)))}(e):we.has(e)&&function(e){const n=we.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(()=>{Be(e,{code:t,message:`Channel '${n.topic}' timed out`})},k))}(e)}function Pe(e){for(let t=be.length-1;t>=0;t--)if(be[t]?.reqId===e)return be.splice(t,1),!0;return!1}function Re(e,t){const n=e.kind,o="hello"===n||"helloAck"===n||"ready"===n;if(!Ne()&&!o)return be.length>=256?(B("Outbox full"),void(t&&je(t,{code:l,message:"Bridge outbox is full"}))):void be.push({msg:e,reqId:t});t&&Oe(t),le(e)}function De(){null!==fe&&(clearTimeout(fe),fe=null)}function Fe(){if(de)return;if(!Me())return;De();const e={v:2,kind:"hello",nonce:p.nonce||"",role:"view",protocolsSupported:[2]};ue=!0,le(e),fe=setTimeout(()=>{if(!de)if(me++,me<3)A(`Handshake timeout (${me}/3), retrying...`),ue=!1,Fe();else{for(B("Handshake failed"),De(),ue=!1,me=0;be.length;){const e=be.shift();e?.reqId&&je(e.reqId,{code:o,message:"Bridge handshake failed"})}for(const e of Array.from(we.keys()))Be(e,{code:o,message:"Bridge handshake failed"})}},1e4)}function $e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Xe(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($e)}(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 ze(e){Ie.forEach(t=>{try{if(!Ce.has(t))return Ce.set(t,!0),void t(O(Ee),{rev:ke,initial:!0});t(O(Ee),{rev:ke,initial:e})}catch(e){A("Subscriber error:",e)}})}function He(e){if("function"!=typeof e)return()=>{};if(Ie.add(e),ke>=0){Ce.set(e,!0);try{e(O(Ee),{rev:ke,initial:!0})}catch(e){B("Callback error:",e)}}return()=>{Ie.delete(e),Ce.delete(e)}}function qe(e){tt.call("state.getSnapshot",{scope:e}).catch(()=>{})}function Ge(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=Ue.get(n);if(t)try{t(e)}catch(e){B("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(ce=t.sessionId);case"ready":if(ce&&t.sessionId!==ce)return void A("sessionId mismatch");if(De(),de=!0,me=0,t.hostMethods)for(const[e,n]of Object.entries(t.hostMethods))pe[e]=n;return M("proto")&&N("Handshake complete, hostMethods:",Object.keys(pe).length),void function(){if(Ne())for(;be.length;){const e=be.shift();e&&(e.reqId&&Oe(e.reqId),le(e.msg))}}();case"res":{const e=ye.get(t.id);if(!e)return;if(ye.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||(Ee=t.state,ke=t.rev,M("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",ke,"state:",O(Ee)),console.groupEnd()),ze(!0),0))}(t.result)||A("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(ye.has(t.id)){const e=ye.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)):A(`Received event for non-stream request '${t.id}'`))}return;case"state.snapshot":return Ee=t.state||{},ke=t.rev,M("data")&&(console.group("[LX] snapshot"),console.log("rev:",ke,"state:",O(Ee)),console.groupEnd()),void ze(!0);case"state.patch":if(t.baseRev!==ke)return A("baseRev mismatch",{have:ke,want:t.baseRev}),void qe(t.scope);try{!function(e,t){for(const n of t){const t="add"===n.op||"replace"===n.op,{container:o,key:r}=Xe(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}}(Ee,t.ops||[]),ke=t.rev}catch(e){return B("Patch failed:",e),void qe(t.scope)}return M("data")&&(console.group("[LX] patch"),console.log("rev:",ke,"ops:",t.ops),console.groupEnd()),ze(!1),void(t.ack&&Re({v:2,kind:"state.ack",scope:t.scope,rev:t.rev}));case"ch.ack":{const e=we.get(t.id);if(!e)return;if(we.delete(t.id),null!==e.timerId&&clearTimeout(e.timerId),t.ok)e.channel._markOpen(),xe.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=xe.get(t.id);if(!e)return;return void e._emitData(t.payload)}case"ch.close":{if(we.get(t.id))return void Be(t.id,{code:t.code??c,message:t.reason??"Channel closed before opening"});const e=xe.get(t.id);if(!e)return;return xe.delete(t.id),void e._emitClose(t.code,t.reason)}case"req":{const e=t,n=Te(e.method);if(!e.cap||e.cap!==n)return void Re({v:2,kind:"res",id:e.id,ok:!1,error:{code:s,message:`Invalid cap for ${e.method}`}});const o=_e.get(e.method);return o?void Promise.resolve().then(()=>o(e.params)).then(t=>{Re({v:2,kind:"res",id:e.id,ok:!0,result:t})}).catch(t=>{Re({v:2,kind:"res",id:e.id,ok:!1,error:u(t)})}):void Re({v:2,kind:"res",id:e.id,ok:!1,error:{code:i,message:`View handler not found: ${e.method}`}})}}else A("Invalid V2 message:",e)}const Ue=new Map,We=[];let Je=!1;function Ye(){return"undefined"!=typeof window&&!(!window.webkit?.messageHandlers?.NativeComponent&&!window.NativeComponentBridge?.postMessage)}function Ve(e){try{if(window.webkit?.messageHandlers?.NativeComponent)return void window.webkit.messageHandlers.NativeComponent.postMessage(e);if(window.NativeComponentBridge?.postMessage)return void window.NativeComponentBridge.postMessage(j(e))}catch(e){B("NativeComponent send error:",e)}}function Ke(){if(Ye()&&0!==We.length)for(Je=!0;We.length;){const e=We.shift();try{Ve(e)}catch{break}}}function Qe(e){try{if(!Ye())return void We.push(e);Je||Ke(),Ve(e)}catch(e){B("NC send failed:",e)}}function Ze(e){return`${e}_${Date.now()}_${he++}`}function et(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 tt={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"});ue||Fe();const a=Ze("c"),l=o?.cap||Te(e),c=o?.timeoutMs??k;ye.set(a,{method:e,mode:"call",resolve:i,reject:e=>s(e),timeoutMs:c,timerId:null}),Re({v:2,kind:"req",id:a,method:e,params:Se(t),cap:l},a),et(0,o?.signal,()=>{const e=Pe(a);Ae(a,{code:n,message:"Bridge request aborted"}),!e&&de&&Re({v:2,kind:"cancel",id:a})})}),stream(e,t,o){if(!e||"string"!=typeof e){const e=ve("invalid",()=>{});return e._reject({code:r,message:"Method name must be a non-empty string"}),e}ue||Fe();const i=Ze("c"),s=ve(i,()=>{Pe(i)?Ae(i,{code:n,message:"Bridge request aborted"}):de&&Re({v:2,kind:"cancel",id:i})}),a=o?.cap||Te(e),l=o?.timeoutMs??k;return ye.set(i,{method:e,mode:"stream",stream:s,timeoutMs:l,timerId:null}),Re({v:2,kind:"req",id:i,method:e,params:Se(t),cap:a},i),et(0,o?.signal,()=>s.cancel()),s},notify(e,t,n){e&&"string"==typeof e&&(ue||Fe(),Re({v:2,kind:"notify",method:e,params:Se(t),cap:n?.cap||Te(e)}))},state:{subscribe:He},channel:{open:(e,t,n)=>e&&"string"==typeof e?(ue||Fe(),new Promise((o,r)=>{const i=Ze("ch"),s=function(e,t,n){const o=ge();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){A("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){A("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){A("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){A("Channel error listener failed:",e)}},_markOpen(){r=!0,s=!1},_isOpen:()=>r,_nextSeq:()=>i++};return u}(i,(e,t)=>{Re({v:2,kind:"ch.data",id:i,seq:t,payload:e})},(e,t)=>{const n=we.get(i);n&&null!==n.timerId&&clearTimeout(n.timerId),we.delete(i),xe.delete(i),Re({v:2,kind:"ch.close",id:i,code:e,reason:t})});we.set(i,{topic:e,channel:s,resolve:o,reject:r,timerId:null}),Re({v:2,kind:"ch.open",id:i,topic:e,params:Se(t),cap:n?.cap||Te(e)},i)})):Promise.reject({code:r,message:"Topic name must be a non-empty string"})}},nt={invoke:(e,t,n)=>tt.call(ot(e),t,rt(n)).then(e=>e).catch(e=>Promise.reject(m(e))),notify(e,t,n){tt.notify(ot(e),t,rt(n))},stream:(e,t,n)=>it(tt.stream(ot(e),t,rt(n))),channel:(e,t,n)=>tt.channel.open(ot(e),t,rt(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:tt,state:{subscribe:He},_connectWebMessagePort(e){if(P===I){if(R&&R!==e)try{R.onmessage=null,R.close()}catch{}R=e,e.onmessage=e=>{let t=e.data;if("string"==typeof t)try{t=JSON.parse(t)}catch{return}Ge(t)};try{e.start()}catch{}N("Port connected"),Fe()}},_receiveEvaluateMessage(e){try{e&&Ge(JSON.parse(e))}catch(e){B("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}(T),platform:{isHarmony:function(){return"Harmony"===p.os},isIOS:v,isAndroid:function(){return"Android"===p.os},isMacOS:y,isWindows:w,isDesktop:x,isApple:function(){return v()||y()},isRunner:function(){return!0===p.runner},getOS:g},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:Qe,hasHandler:Ye,flush:Ke,register:(e,t)=>e&&"function"==typeof t?(Ue.set(e,t),()=>Ue.delete(e)):()=>{},unregister(e){Ue.delete(e)}},isReady:()=>de};function ot(e){return e.startsWith("host.")?e:`host.${e}`}function rt(e){return{...e||{},cap:e?.cap||"host"}}function it(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 st(){if(window.__LX_BRIDGE_INIT_STATE)N(`Bridge already ${window.__LX_BRIDGE_INIT_STATE}, skipping duplicate init`);else{window.__LX_BRIDGE_INIT_STATE="initializing";try{N(`Method: ${P}`),function(e){if("undefined"==typeof window)return;if(window[b]=e,0===S.length)return;const t=S.splice(0,S.length);for(const n of t)try{e(n)}catch(e){A("Failed to replay queued native message:",e)}}(nt._receiveEvaluateMessage),K()?(re(),K()&&!H&&null===U&&(U=setInterval(()=>{0!==G&&Date.now()-G>35e3&&(A("Apple downstream stale (no heartbeat), forcing reconnect"),se())},5e3)),K()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",ae)):P===I?(Y(),function(){if(R)return Promise.resolve(R);if(W.promise)return W.promise;Y(),W.promise=new Promise((e,t)=>{W.resolve=t=>{V(),e(t)},W.reject=e=>{V(),t(e)},W.timer=window.setTimeout(()=>{W.reject?.(new Error("MessagePort init timed out after 5000ms"))},5e3)});try{window.LingXiaProxy?.getPort("LingXiaPort")}catch(e){W.reject?.(e)}return W.promise}().catch(e=>A("Port init failed:",e))):"webkit"===P||P===C||P===_?Fe():A("Unknown method"),window.LingXiaBridge=nt,window.__lxForceDownstreamReconnect=se,f({os:g(),send:Qe}),window.__LX_BRIDGE_INIT_STATE="initialized",N("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function at(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function lt(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">${at(t)}</div>`),n&&(i+=`<p class="lx-error-desc" style="margin-top:12px">${at(n)}</p>`),r.innerHTML=i,document.body.appendChild(r)}function ct(){const e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function dt(){return window.__LX_RUNTIME_CONFIG?.error||null}const ut={handleEvent:()=>mt()};function mt(){if(ct()){const e=dt();e&<(e)}}function ft(){st(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",ut):mt()}const pt="lx-action-sheet-style";let ht=null;function gt(e){const t=e,n=t?.itemList??[],o=t?.cancelText??"Cancel",r=t?.itemColor??"#007AFF",i=(ht??Promise.resolve()).then(()=>vt(n,o,r),()=>vt(n,o,r));return ht=i,i}function vt(e,t,n){return new Promise(o=>{let r=!1;const i=x();!function(){if(document.getElementById(pt))return;const e=document.createElement("style");e.id=pt,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 yt=200,wt="lx-modal-style";let xt=null;function bt(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=(xt??Promise.resolve()).then(()=>kt(n,o,r,i,s,a,l),()=>kt(n,o,r,i,s,a,l));return xt=c,c}function kt(e,t,n,o,r,i,s){return new Promise(a=>{let l=!1;!function(){if(document.getElementById(wt))return;const e=document.createElement("style");e.id=wt,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})},yt))}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 Et="lx-toast-style";let It=null;function Ct(e){const t=e,n=t?.title??"",o=t?.icon??"none",r=t?.duration??1500,i=t?.mask??!1,s=t?.position??"center";It&&(It.dismiss(),It=null),function(){if(document.getElementById(Et))return;const e=document.createElement("style");e.id=Et,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,It?.dismiss===f&&(It=null),c.classList.remove("lx-toast-visible"),p&&clearTimeout(p),setTimeout(()=>{l.remove(),a?.remove()},200))}let p=null;return r>0&&(p=setTimeout(f,r)),It={dismiss:f,timer:p},Promise.resolve()}function _t(){return It&&(It.dismiss(),It=null),Promise.resolve()}return Le("ui.showActionSheet",gt),Le("ui.showModal",bt),Le("ui.showToast",Ct),Le("ui.hideToast",_t),ft(),e.LingXiaBridge=nt,e.boot=function(){st(),mt()},e.bootWhenReady=ft,e.channel=function(e,t,n){return nt.channel(e,t,n)},e.getDisplayLanguage=function(){return h},e.getErrorInfo=dt,e.hasError=ct,e.initBridge=st,e.invoke=function(e,t,n){return nt.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){tt.notify(ot(e),t,rt(n))},e.renderErrorUI=lt,e.stream=function(e,t,n){return it(tt.stream(ot(e),t,rt(n)))},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){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var n="BRIDGE_TIMEOUT",t="BRIDGE_CANCELED",r="BRIDGE_HANDSHAKE_FAILED",o="BRIDGE_MALFORMED_MESSAGE",i="BRIDGE_METHOD_NOT_FOUND",a="BRIDGE_CAPABILITY_DENIED",c="BRIDGE_INTERNAL_ERROR",l="BRIDGE_OUTBOX_FULL",s="BRIDGE_STREAM_CLOSED",d=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 u(e){if(e instanceof d)return e;if(e&&"object"==typeof e){var n=e,t=c;("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 d(t,r,"data"in n?n.data:void 0)}var o=e instanceof Error?e.message:"string"==typeof e?e:"Unknown error";return new d(c,o)}function f(e){var n=u(e);return __assign({code:String(n.code||c),message:"string"==typeof n.message&&""!==n.message.trim()?n.message:"Unknown error"},void 0===n.data?{}:{data:n.data})}function v(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 p="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{};function m(){return p.os||"unknown"}function h(){return"iOS"===p.os}function g(){return"macOS"===p.os}function y(){return"Windows"===p.os}var w="__LingXiaRecvMessage",b=5e3,_="[LX.Bridge]",I="messageport",k="jsinterface",E="webmessage",x=p.appleDownstreamURL,S={data:!1,proto:!1,all:!1},T=[];function O(e){return S.all||S[e]}function M(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.log.apply(console,__spreadArray([_],e,!1))}function j(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.warn.apply(console,__spreadArray([_],e,!1))}function A(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.error.apply(console,__spreadArray([_],e,!1))}function C(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 L(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch(e){return{}}}var N,P,B="iOS"===p.os||"macOS"===p.os?"webkit":"Harmony"===p.os?"messageport":"Windows"===p.os?"webmessage":"Android"===p.os?(null===(P=null===(N=window.LingXiaProxy)||void 0===N?void 0:N.supportsMessagePort)||void 0===P?void 0:P.call(N))?"messageport":"jsinterface":"unknown";"undefined"!=typeof window&&"function"!=typeof window[w]&&(window[w]=function(e){T.push(e)});var R=null,D=!1,X=null,G=null,F=null,H=200,q={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},U={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&&(Ye._connectWebMessagePort(o),null===(t=q.resolve)||void 0===t||t.call(q,o))}}};function W(){q.listenerInstalled||(q.listenerInstalled=!0,window.addEventListener("message",U))}function z(){null!==q.timer&&(window.clearTimeout(q.timer),q.timer=null),q.resolve=null,q.reject=null,q.promise=null}function J(){return"webkit"===B&&(h()||g())}function Y(){null!==F&&(clearTimeout(F),F=null)}function V(e){for(var n=0,t=Array.from(le.keys());n<t.length;n++){_e(t[n],{code:s,message:e})}for(var r=0,o=Array.from(se.keys());r<o.length;r++){Ie(o[r],{code:s,message:e})}!function(e){for(var n=0,t=Array.from(de.entries());n<t.length;n++){var r=t[n],o=r[0],i=r[1];de.delete(o),i._emitClose(s,e)}}(e)}function $(){return __awaiter(this,void 0,void 0,function(){var e,n,t,r,o,i,a,c,l;return __generator(this,function(s){switch(s.label){case 0:if(!x)throw new Error("Apple downstream URL is not configured");return e=new AbortController,G=e,[4,fetch(x,{method:"GET",cache:"no-store",headers:{Accept:"application/x-ndjson"},signal:e.signal})];case 1:if(!(n=s.sent()).ok)throw new Error("Apple downstream HTTP ".concat(n.status));if(!n.body)throw new Error("Apple downstream response body unavailable");D=!0,H=200,O("proto")&&M("Apple downstream connected"),Me(),t=n.body.getReader(),r=new TextDecoder,o="",s.label=2;case 2:s.trys.push([2,6,7,8]),s.label=3;case 3:return[4,t.read()];case 4:return i=s.sent(),a=i.value,i.done?[3,5]:(o=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{Pe(JSON.parse(r))}catch(e){j("Apple downstream parse error:",e,r)}}return n}(o+=r.decode(a,{stream:!0})),[3,3]);case 5:if(o+=r.decode(),c=o.trim())try{Pe(JSON.parse(c))}catch(e){j("Apple downstream trailing parse error:",e,c)}return[3,8];case 6:if(l=s.sent(),e.signal.aborted)return[2];throw l;case 7:try{t.releaseLock()}catch(e){}return[7];case 8:return[2]}})})}function K(){J()&&(X||(Y(),X=$().catch(function(e){(null==G?void 0:G.signal.aborted)||j("Apple downstream failed:",e)}).finally(function(){var e,n=null!==(e=null==G?void 0:G.signal.aborted)&&void 0!==e&&e;X=null,G=null;var t,r,o=D;D=!1,t="Apple downstream closed",r=o,Oe(),Z=null,ee=!1,ne=!1,te=0,r&&V(t),n||function(e){if(J()){Y();var n=H;H=Math.min(2*H,2e3);var t="Apple downstream disconnected, retrying in ".concat(n,"ms: ").concat(e);n<=200?M(t):j(t),F=setTimeout(function(){F=null,K()},n)}}("stream closed")})))}function Q(e){var n,t,r,o=e.kind;"req"!==o&&"notify"!==o||M("postToNative: ".concat(o," ").concat(e.method)),O("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===B)return void(null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers.LingXia)||void 0===t||t.postMessage(e));var i=C(e);if(B===I&&R)return void R.postMessage(i);if((B===k||B===E)&&(null===(r=window.LingXiaProxy)||void 0===r?void 0:r.postMessage))return void window.LingXiaProxy.postMessage(i);j("Transport not ready")}catch(e){A("Send error:",e)}}var Z=null,ee=!1,ne=!1,te=0,re=null,oe={},ie=0;function ae(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function ce(e,n){var t,r=ae(),o=!1,i=function(){},a=function(){},c=[],l=[],s=new Promise(function(e,n){i=e,a=n});return(t={id:e,result:s,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{next:function(){return c.length>0?Promise.resolve({done:!1,value:c.shift()}):o?s.then(function(e){return{done:!0,value:e}},function(e){return Promise.reject(e)}):new Promise(function(e,n){l.push({resolve:e,reject:n})})}}},t.cancel=function(){o||n()},t._emitData=function(e){if(!o){l.length>0?l.shift().resolve({done:!1,value:e}):c.push(e);for(var n=0,t=r.data;n<t.length;n++){var i=t[n];try{i(e)}catch(e){j("Stream data listener failed:",e)}}}},t._resolve=function(e){if(!o){for(o=!0,i(e);l.length>0;)l.shift().resolve({done:!0,value:e});for(var n=0,t=r.end;n<t.length;n++){var a=t[n];try{a(e)}catch(e){j("Stream end listener failed:",e)}}}},t._reject=function(e){if(!o){for(o=!0,a(e);l.length>0;)l.shift().reject(e);for(var n=0,t=r.error;n<t.length;n++){var i=t[n];try{i(e)}catch(e){j("Stream error listener failed:",e)}}}},t}var le=new Map,se=new Map,de=new Map,ue=[],fe=-1,ve={},pe=new Set,me=new WeakMap,he=new Map;function ge(e){if(e.startsWith("host."))return"host";var n=e.indexOf(".");return n>0?e.slice(0,n):"page"}function ye(e){if(null!=e)return e}function we(){return B===I?!!R:J()?D:"webkit"===B||B===k||B===E}function be(){return we()&&ee}function _e(e,n){var t,r=le.get(e);if(r){le.delete(e),null!==r.timerId&&clearTimeout(r.timerId);var o=u(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 Ie(e,n){var t=se.get(e);if(t){se.delete(e),null!==t.timerId&&clearTimeout(t.timerId);var r=u(n);t.channel._reject(r),t.reject(r)}}function ke(e,n){le.has(e)?_e(e,n):se.has(e)&&Ie(e,n)}function Ee(e){var t=le.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(function(){le.has(e)&&_e(e,{code:n,message:"'".concat(t.method,"' timed out")})},t.timeoutMs)))}function xe(e){le.has(e)?Ee(e):se.has(e)&&function(e){var t=se.get(e);t&&(null!==t.timerId&&clearTimeout(t.timerId),t.timerId=setTimeout(function(){Ie(e,{code:n,message:"Channel '".concat(t.topic,"' timed out")})},b))}(e)}function Se(e){for(var n,t=ue.length-1;t>=0;t--)if((null===(n=ue[t])||void 0===n?void 0:n.reqId)===e)return ue.splice(t,1),!0;return!1}function Te(e,n){var t=e.kind,r="hello"===t||"helloAck"===t||"ready"===t;if(!be()&&!r)return ue.length>=256?(A("Outbox full"),void(n&&ke(n,{code:l,message:"Bridge outbox is full"}))):void ue.push({msg:e,reqId:n});n&&xe(n),Q(e)}function Oe(){null!==re&&(clearTimeout(re),re=null)}function Me(){if(!ee&&we()){Oe();var e={v:2,kind:"hello",nonce:p.nonce||"",role:"view",protocolsSupported:[2]};ne=!0,Q(e),re=setTimeout(function(){if(!ee)if(++te<3)j("Handshake timeout (".concat(te,"/").concat(3,"), retrying...")),ne=!1,Me();else{for(A("Handshake failed"),Oe(),ne=!1,te=0;ue.length;){var e=ue.shift();(null==e?void 0:e.reqId)&&ke(e.reqId,{code:r,message:"Bridge handshake failed"})}for(var n=0,t=Array.from(se.keys());n<t.length;n++){Ie(t[n],{code:r,message:"Bridge handshake failed"})}}},1e4)}}function je(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ae(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(je)}(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 Ce(e){pe.forEach(function(n){try{if(!me.has(n))return me.set(n,!0),void n(L(ve),{rev:fe,initial:!0});n(L(ve),{rev:fe,initial:e})}catch(e){j("Subscriber error:",e)}})}function Le(e){if("function"!=typeof e)return function(){};if(pe.add(e),fe>=0){me.set(e,!0);try{e(L(ve),{rev:fe,initial:!0})}catch(e){A("Callback error:",e)}}return function(){pe.delete(e),me.delete(e)}}function Ne(e){Je.call("state.getSnapshot",{scope:e}).catch(function(){})}function Pe(e){var n,t;if(e&&"object"==typeof e){var r=e;if("event"===r.type&&"nativecomponent"===r.name&&r.payload){var o=r.payload,c=o.id||o.componentId;if("string"==typeof c){var l=Be.get(c);if(l)try{l(o)}catch(e){A("NC handler error:",e)}}return}}var s=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(s)switch(s.kind){case"helloAck":return void(Z=s.sessionId);case"ready":if(Z&&s.sessionId!==Z)return void j("sessionId mismatch");if(Oe(),ee=!0,te=0,s.hostMethods)for(var d=0,f=Object.entries(s.hostMethods);d<f.length;d++){var v=f[d],p=v[0],m=v[1];oe[p]=m}return O("proto")&&M("Handshake complete, hostMethods:",Object.keys(oe).length),void function(){if(be())for(;ue.length;){var e=ue.shift();e&&(e.reqId&&xe(e.reqId),Q(e.msg))}}();case"res":var h=le.get(s.id);if(!h)return;if(le.delete(s.id),null!==h.timerId&&clearTimeout(h.timerId),s.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||(ve=n.state,fe=n.rev,O("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",fe,"state:",L(ve)),console.groupEnd()),Ce(!0),0))}(s.result)||j("Invalid state.getSnapshot result")),"stream"===h.mode&&h.stream)return void h.stream._resolve(s.result);null===(n=h.resolve)||void 0===n||n.call(h,s.result)}else{var g=u(s.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(le.has(s.id)){var y=le.get(s.id);return void("stream"===(null==y?void 0:y.mode)&&y.stream?(Ee(s.id),y.stream._emitData(s.payload)):j("Received event for non-stream request '".concat(s.id,"'")))}return;case"state.snapshot":return ve=s.state||{},fe=s.rev,O("data")&&(console.group("[LX] snapshot"),console.log("rev:",fe,"state:",L(ve)),console.groupEnd()),void Ce(!0);case"state.patch":if(s.baseRev!==fe)return j("baseRev mismatch",{have:fe,want:s.baseRev}),void Ne(s.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=Ae(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)}}}}(ve,s.ops||[]),fe=s.rev}catch(e){return A("Patch failed:",e),void Ne(s.scope)}return O("data")&&(console.group("[LX] patch"),console.log("rev:",fe,"ops:",s.ops),console.groupEnd()),Ce(!1),void(s.ack&&Te({v:2,kind:"state.ack",scope:s.scope,rev:s.rev}));case"ch.ack":if(!(b=se.get(s.id)))return;if(se.delete(s.id),null!==b.timerId&&clearTimeout(b.timerId),s.ok)b.channel._markOpen(),de.set(s.id,b.channel),b.resolve(b.channel);else{g=u(s.error);b.channel._reject(g),b.reject(g)}return;case"ch.data":var w=de.get(s.id);if(!w)return;return void w._emitData(s.payload);case"ch.close":var b;if(b=se.get(s.id))return se.delete(s.id),void b.channel._emitClose(s.code,s.reason);var _=de.get(s.id);if(!_)return;return de.delete(s.id),void _._emitClose(s.code,s.reason);case"req":var I=s,k=ge(I.method);if(!I.cap||I.cap!==k)return void Te({v:2,kind:"res",id:I.id,ok:!1,error:{code:a,message:"Invalid cap for ".concat(I.method)}});var E=he.get(I.method);return E?void Promise.resolve().then(function(){return E(I.params)}).then(function(e){Te({v:2,kind:"res",id:I.id,ok:!0,result:e})}).catch(function(e){Te({v:2,kind:"res",id:I.id,ok:!1,error:u(e)})}):void Te({v:2,kind:"res",id:I.id,ok:!1,error:{code:i,message:"View handler not found: ".concat(I.method)}})}else j("Invalid V2 message:",e)}var Be=new Map,Re=[],De=!1;function Xe(){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 Ge(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(C(e))}catch(e){A("NativeComponent send error:",e)}}function Fe(){if(Xe()&&0!==Re.length)for(De=!0;Re.length;){var e=Re.shift();try{Ge(e)}catch(e){break}}}function He(e){try{if(!Xe())return void Re.push(e);De||Fe(),Ge(e)}catch(e){A("NC send failed:",e)}}function qe(e){return"".concat(e,"_").concat(Date.now(),"_").concat(ie++)}function Ue(e,n,t){if(n)if(n.aborted)t();else{var r={handleEvent:function(){n.removeEventListener("abort",r),t()}};n.addEventListener("abort",r)}}var We,ze,Je={call:function(e,n,r){return new Promise(function(i,a){var c;if(e&&"string"==typeof e){ne||Me();var l=qe("c"),s=(null==r?void 0:r.cap)||ge(e),d=null!==(c=null==r?void 0:r.timeoutMs)&&void 0!==c?c:b;le.set(l,{method:e,mode:"call",resolve:i,reject:function(e){return a(e)},timeoutMs:d,timerId:null}),Te({v:2,kind:"req",id:l,method:e,params:ye(n),cap:s},l),Ue(0,null==r?void 0:r.signal,function(){var e=Se(l);_e(l,{code:t,message:"Bridge request aborted"}),!e&&ee&&Te({v:2,kind:"cancel",id:l})})}else a({code:o,message:"Method name must be a non-empty string"})})},stream:function(e,n,r){var i;if(!e||"string"!=typeof e){var a=ce("invalid",function(){});return a._reject({code:o,message:"Method name must be a non-empty string"}),a}ne||Me();var c=qe("c"),l=ce(c,function(){Se(c)?_e(c,{code:t,message:"Bridge request aborted"}):ee&&Te({v:2,kind:"cancel",id:c})}),s=(null==r?void 0:r.cap)||ge(e),d=null!==(i=null==r?void 0:r.timeoutMs)&&void 0!==i?i:b;return le.set(c,{method:e,mode:"stream",stream:l,timeoutMs:d,timerId:null}),Te({v:2,kind:"req",id:c,method:e,params:ye(n),cap:s},c),Ue(0,null==r?void 0:r.signal,function(){return l.cancel()}),l},notify:function(e,n,t){e&&"string"==typeof e&&(ne||Me(),Te({v:2,kind:"notify",method:e,params:ye(n),cap:(null==t?void 0:t.cap)||ge(e)}))},state:{subscribe:Le},channel:{open:function(e,n,t){return e&&"string"==typeof e?(ne||Me(),new Promise(function(r,o){var i=qe("ch"),a=function(e,n,t){var r,o=ae(),i=!1,a=0,c=!1,l=[],d=[],u=((r={id:e,send:function(t){i?n(t,a++):u._reject({code:s,message:"Channel '".concat(e,"' is closed")})},on:function(e,n){if("data"===e&&(o.data.add(n),l.length>0))for(var t=0,r=l.splice(0);t<r.length;t++){var i=r[t];try{n(i)}catch(e){j("Channel listener failed:",e)}}return"close"===e&&o.close.add(n),"error"===e&&o.error.add(n),this}})[Symbol.asyncIterator]=function(){return{next:function(){return l.length>0?Promise.resolve({done:!1,value:l.shift()}):c?Promise.resolve({done:!0,value:void 0}):new Promise(function(e,n){d.push({resolve:e,reject:n})})}}},r.close=function(e,n){i&&(i=!1,c=!0,t(e,n),u._emitClose(e,n))},r._emitData=function(e){if(i){d.length>0?d.shift().resolve({done:!1,value:e}):l.push(e);for(var n=0,t=o.data;n<t.length;n++){var r=t[n];try{r(e)}catch(e){j("Channel listener failed:",e)}}}},r._emitClose=function(e,n){for(c=!0;d.length>0;)d.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){j("Channel close listener failed:",e)}}},r._reject=function(e){for(c=!0;d.length>0;)d.shift().reject(e);for(var n=0,t=o.error;n<t.length;n++){var r=t[n];try{r(e)}catch(e){j("Channel error listener failed:",e)}}},r._markOpen=function(){i=!0,c=!1},r._isOpen=function(){return i},r._nextSeq=function(){return a++},r);return u}(i,function(e,n){Te({v:2,kind:"ch.data",id:i,seq:n,payload:e})},function(e,n){var t=se.get(i);t&&null!==t.timerId&&clearTimeout(t.timerId),se.delete(i),de.delete(i),Te({v:2,kind:"ch.close",id:i,code:e,reason:n})});se.set(i,{topic:e,channel:a,resolve:r,reject:o,timerId:null}),Te({v:2,kind:"ch.open",id:i,topic:e,params:ye(n),cap:(null==t?void 0:t.cap)||ge(e)},i)})):Promise.reject({code:o,message:"Topic name must be a non-empty string"})}}},Ye={invoke:function(e,n,t){return Je.call(Ve(e),n,$e(t)).then(function(e){return e}).catch(function(e){return Promise.reject(f(e))})},notify:function(e,n,t){Je.notify(Ve(e),n,$e(t))},stream:function(e,n,t){return Ke(Je.stream(Ve(e),n,$e(t)))},channel:function(e,n,t){return Je.channel.open(Ve(e),n,$e(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(f(e))})},raw:Je,state:{subscribe:Le},_connectWebMessagePort:function(e){if(B===I){if(R&&R!==e)try{R.onmessage=null,R.close()}catch(e){}R=e,e.onmessage=function(e){var n=e.data;if("string"==typeof n)try{n=JSON.parse(n)}catch(e){return}Pe(n)};try{e.start()}catch(e){}M("Port connected"),Me()}},_receiveEvaluateMessage:function(e){try{e&&Pe(JSON.parse(e))}catch(e){A("Parse error:",e)}},debug:(We=S,ze={},Object.keys(We).forEach(function(e){Object.defineProperty(ze,e,{enumerable:!0,configurable:!1,get:function(){return We[e]},set:function(n){We[e]=!!n,console.log("[LX] ".concat(e,": ").concat(n))}})}),ze),platform:{isHarmony:function(){return"Harmony"===p.os},isIOS:h,isAndroid:function(){return"Android"===p.os},isMacOS:g,isWindows:y,isDesktop:function(){return g()||y()},getOS:m},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:He,hasHandler:Xe,flush:Fe,register:function(e,n){return e&&"function"==typeof n?(Be.set(e,n),function(){return Be.delete(e)}):function(){}},unregister:function(e){Be.delete(e)}},isReady:function(){return ee}};function Ve(e){return e.startsWith("host.")?e:"host.".concat(e)}function $e(e){return __assign(__assign({},e||{}),{cap:(null==e?void 0:e.cap)||"host"})}function Ke(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=f(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(f(e))}),cancel:function(){e.cancel()}}}function Qe(){if(window.__LX_BRIDGE_INIT_STATE)M("Bridge already ".concat(window.__LX_BRIDGE_INIT_STATE,", skipping duplicate init"));else{window.__LX_BRIDGE_INIT_STATE="initializing";try{M("Method: ".concat(B)),function(e){if("undefined"!=typeof window&&(window[w]=e,0!==T.length))for(var n=0,t=T.splice(0,T.length);n<t.length;n++){var r=t[n];try{e(r)}catch(e){j("Failed to replay queued native message:",e)}}}(Ye._receiveEvaluateMessage),J()?K():B===I?(W(),function(){var e,n;if(R)return Promise.resolve(R);if(q.promise)return q.promise;W(),q.promise=new Promise(function(e,n){q.resolve=function(n){z(),e(n)},q.reject=function(e){z(),n(e)},q.timer=window.setTimeout(function(){var e;null===(e=q.reject)||void 0===e||e.call(q,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=q.reject)||void 0===n||n.call(q,e)}return q.promise}().catch(function(e){return j("Port init failed:",e)})):"webkit"===B||B===k||B===E?Me():j("Unknown method"),window.LingXiaBridge=Ye,v({os:m(),send:He}),window.__LX_BRIDGE_INIT_STATE="initialized",M("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function Ze(e){var n=document.createElement("div");return n.textContent=e,n.innerHTML}function en(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(Ze(n),"</div>")),t&&(i+='<p class="lx-error-desc" style="margin-top:12px">'.concat(Ze(t),"</p>")),o.innerHTML=i,document.body.appendChild(o)}function nn(){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 rn={handleEvent:function(){return on()}};function on(){if(nn()){var e=tn();e&&en(e)}}function an(){Qe(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",rn):on()}return an(),e.LingXiaBridge=Ye,e.boot=function(){Qe(),on()},e.bootWhenReady=an,e.channel=function(e,n,t){return Ye.channel(e,n,t)},e.getErrorInfo=tn,e.hasError=nn,e.initBridge=Qe,e.invoke=function(e,n,t){return Ye.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){Je.notify(Ve(e),n,$e(t))},e.renderErrorUI=en,e.stream=function(e,n,t){return Ke(Je.stream(Ve(e),n,$e(t)))},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])}}},__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 m(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(p=c.id){n.add(p);var l=s(c),d=a.coveredById.get(p);d!==l&&(!0===d&&(a.coveredCount-=1),!0===l&&(a.coveredCount+=1),a.coveredById.set(p,l),r({id:p,action:"component.coverage",covered:l}))}}for(var u=[],f=0,v=a.coveredById.entries();f<v.length;f++){var m=v[f],p=m[0];l=m[1];n.has(p)||(u.push(p),!0===l&&(a.coveredCount-=1))}for(var h=0,g=u;h<g.length;h++){p=g[h];a.coveredById.delete(p),r({id:p,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 p="undefined"!=typeof window&&window.__LX_BRIDGE_CFG||{},h=(null===(n=p.displayLanguage)||void 0===n?void 0:n.trim())||"en-US";function g(){return p.os||"unknown"}function y(){return"iOS"===p.os}function w(){return"macOS"===p.os}function b(){return"Windows"===p.os}"undefined"!=typeof document&&document.documentElement&&(document.documentElement.lang=h);var _="__LingXiaRecvMessage",I=5e3,k="[LX.Bridge]",E="messageport",x="jsinterface",S="webmessage",T=p.appleDownstreamURL,A={data:!1,proto:!1,all:!1},O=[];function M(e){return A.all||A[e]}function L(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];(!0===p.dev||A.all||A.proto||A.data)&&console.log.apply(console,__spreadArray([k],e,!1))}function j(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.warn.apply(console,__spreadArray([k],e,!1))}function C(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];console.error.apply(console,__spreadArray([k],e,!1))}function N(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 B(e){try{return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}catch(e){return{}}}var P=function(){var e,n;return"iOS"===p.os||"macOS"===p.os?"webkit":"Harmony"===p.os?"messageport":"Windows"===p.os?"webmessage":"Android"===p.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[_]&&(window[_]=function(e){O.push(e)});var R=null,D=!1,X=null,F=null,G=null,H=200,q=!1,U=0,W=0,z=null,J={listenerInstalled:!1,promise:null,resolve:null,reject:null,timer:null},Y={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&&(rn._connectWebMessagePort(o),null===(t=J.resolve)||void 0===t||t.call(J,o))}}};function V(){J.listenerInstalled||(J.listenerInstalled=!0,window.addEventListener("message",Y))}function $(){null!==J.timer&&(window.clearTimeout(J.timer),J.timer=null),J.resolve=null,J.reject=null,J.promise=null}function K(){return"webkit"===P&&(y()||w())}function Q(){null!==G&&(clearTimeout(G),G=null)}function Z(e){K()&&!q&&(q=!0,Q(),null!==z&&(clearInterval(z),z=null),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",ce),ie=!1,null==F||F.abort(),D=!1,ne(e,!0))}function ee(e){for(var n=0,t=Array.from(ye.keys());n<t.length;n++){Le(t[n],{code:d,message:e})}for(var r=0,o=Array.from(we.keys());r<o.length;r++){je(o[r],{code:d,message:e})}!function(e){for(var n=0,t=Array.from(be.entries());n<t.length;n++){var r=t[n],o=r[0],i=r[1];be.delete(o),i._emitClose(d,e)}}(e)}function ne(e,n){Re(),se=null,de=!1,ue=!1,fe=0,n&&ee(e)}function te(e){if(e&&"object"==typeof e){W=Date.now();var n=e;if(!0!==n.lxshutdown){if(void 0===n.lxhb){if(!0===n.lxreset)return U=0,ne("Apple downstream reset",!0),void De();if("number"==typeof n.lxff){if(n.lxff<=U)return;return U=n.lxff,void Ue(n.m)}Ue(e)}}else Z("Apple downstream closed")}}function re(){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(!T)throw new Error("Apple downstream URL is not configured");return e=new AbortController,F=e,n=T.includes("?")?"&":"?",t="".concat(T).concat(n,"from=").concat(U),[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 Z("Apple downstream closed"),[2];if(!r.body)throw new Error("Apple downstream response body unavailable");D=!0,H=200,W=Date.now(),M("proto")&&L("Apple downstream connected"),De(),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{te(JSON.parse(r))}catch(e){j("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{te(JSON.parse(s))}catch(e){j("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 oe(){if(K()&&!q&&!X){Q();var e=!1;X=re().then(function(){e=!0}).catch(function(e){(null==F?void 0:F.signal.aborted)||j("Apple downstream failed:",e)}).finally(function(){var n,t=null!==(n=null==F?void 0:F.signal.aborted)&&void 0!==n&&n;X=null,F=null,D=!1,t||q||function(e,n){if(void 0===n&&(n=!1),K()&&!q){Q();var t=n?0:H;n||(H=Math.min(2*H,2e3));var r=n?"Apple downstream completed, reconnecting immediately: ".concat(e):"Apple downstream disconnected, retrying in ".concat(t,"ms: ").concat(e);t<=200?L(r):j(r),G=setTimeout(function(){G=null,oe()},t)}}("stream closed",e)})}}var ie=!1;function ae(){if(K()&&!q&&!ie){ie=!0;var e=X;null==F||F.abort();var n=function(){ie=!1,oe()};e?e.finally(n):n()}}function ce(){"visible"===document.visibilityState&&ae()}function le(e){var n,t,r,o=e.kind;"req"!==o&&"notify"!==o||L("postToNative: ".concat(o," ").concat(e.method)),M("proto")&&console.log("→",JSON.stringify(e,null,2));try{if("webkit"===P)return void(null===(t=null===(n=window.webkit)||void 0===n?void 0:n.messageHandlers.LingXia)||void 0===t||t.postMessage(e));var i=N(e);if(P===E&&R)return void R.postMessage(i);if((P===x||P===S)&&(null===(r=window.LingXiaProxy)||void 0===r?void 0:r.postMessage))return void window.LingXiaProxy.postMessage(i);j("Transport not ready")}catch(e){C("Send error:",e)}}var se=null,de=!1,ue=!1,fe=0,ve=null,me={},pe=0;function he(){return{data:new Set,end:new Set,error:new Set,close:new Set}}function ge(e,n){var t,r=he(),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){j("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){j("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){j("Stream error listener failed:",e)}}}},t}var ye=new Map,we=new Map,be=new Map,_e=[],Ie=-1,ke={},Ee=new Set,xe=new WeakMap,Se=new Map;function Te(e){if(e.startsWith("host."))return"host";var n=e.indexOf(".");return n>0?e.slice(0,n):"page"}function Ae(e){if(null!=e)return e}function Oe(){return P===E?!!R:K()?D:"webkit"===P||P===x||P===S}function Me(){return!!de&&(!!K()||Oe())}function Le(e,n){var t,r=ye.get(e);if(r){ye.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 je(e,n){var t=we.get(e);if(t){we.delete(e),null!==t.timerId&&clearTimeout(t.timerId);var r=f(n);t.channel._reject(r),t.reject(r)}}function Ce(e,n){ye.has(e)?Le(e,n):we.has(e)&&je(e,n)}function Ne(e){if(ye.has(e))return n=e,void((r=ye.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(){ye.has(n)&&Le(n,{code:t,message:"'".concat(r.method,"' timed out")})},r.timeoutMs))));var n,r;we.has(e)&&function(e){var n=we.get(e);n&&(null!==n.timerId&&clearTimeout(n.timerId),n.timerId=setTimeout(function(){je(e,{code:t,message:"Channel '".concat(n.topic,"' timed out")})},I))}(e)}function Be(e){for(var n,t=_e.length-1;t>=0;t--)if((null===(n=_e[t])||void 0===n?void 0:n.reqId)===e)return _e.splice(t,1),!0;return!1}function Pe(e,n){var t=e.kind,r="hello"===t||"helloAck"===t||"ready"===t;if(!Me()&&!r)return _e.length>=256?(C("Outbox full"),void(n&&Ce(n,{code:s,message:"Bridge outbox is full"}))):void _e.push({msg:e,reqId:n});n&&Ne(n),le(e)}function Re(){null!==ve&&(clearTimeout(ve),ve=null)}function De(){if(!de&&Oe()){Re();var e={v:2,kind:"hello",nonce:p.nonce||"",role:"view",protocolsSupported:[2]};ue=!0,le(e),ve=setTimeout(function(){if(!de)if(++fe<3)j("Handshake timeout (".concat(fe,"/").concat(3,"), retrying...")),ue=!1,De();else{for(C("Handshake failed"),Re(),ue=!1,fe=0;_e.length;){var e=_e.shift();(null==e?void 0:e.reqId)&&Ce(e.reqId,{code:o,message:"Bridge handshake failed"})}for(var n=0,t=Array.from(we.keys());n<t.length;n++){je(t[n],{code:o,message:"Bridge handshake failed"})}}},1e4)}}function Xe(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Fe(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(Xe)}(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 Ge(e){Ee.forEach(function(n){try{if(!xe.has(n))return xe.set(n,!0),void n(B(ke),{rev:Ie,initial:!0});n(B(ke),{rev:Ie,initial:e})}catch(e){j("Subscriber error:",e)}})}function He(e){if("function"!=typeof e)return function(){};if(Ee.add(e),Ie>=0){xe.set(e,!0);try{e(B(ke),{rev:Ie,initial:!0})}catch(e){C("Callback error:",e)}}return function(){Ee.delete(e),xe.delete(e)}}function qe(e){tn.call("state.getSnapshot",{scope:e}).catch(function(){})}function Ue(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=We.get(s);if(u)try{u(l)}catch(e){C("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(se=v.sessionId);case"ready":if(se&&v.sessionId!==se)return void j("sessionId mismatch");if(Re(),de=!0,fe=0,v.hostMethods)for(var m=0,p=Object.entries(v.hostMethods);m<p.length;m++){var h=p[m],g=h[0],y=h[1];me[g]=y}return M("proto")&&L("Handshake complete, hostMethods:",Object.keys(me).length),void function(){if(Me())for(;_e.length;){var e=_e.shift();e&&(e.reqId&&Ne(e.reqId),le(e.msg))}}();case"res":var w=ye.get(v.id);if(!w)return;if(ye.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||(ke=n.state,Ie=n.rev,M("data")&&(console.group("[LX] snapshot(res)"),console.log("rev:",Ie,"state:",B(ke)),console.groupEnd()),Ge(!0),0))}(v.result)||j("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(ye.has(v.id)){var _=ye.get(v.id);return void("stream"===(null==_?void 0:_.mode)&&_.stream?(null!==_.timerId&&(clearTimeout(_.timerId),_.timerId=null),_.timeoutMs=0,_.stream._emitData(v.payload)):j("Received event for non-stream request '".concat(v.id,"'")))}return;case"state.snapshot":return ke=v.state||{},Ie=v.rev,M("data")&&(console.group("[LX] snapshot"),console.log("rev:",Ie,"state:",B(ke)),console.groupEnd()),void Ge(!0);case"state.patch":if(v.baseRev!==Ie)return j("baseRev mismatch",{have:Ie,want:v.baseRev}),void qe(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=Fe(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)}}}}(ke,v.ops||[]),Ie=v.rev}catch(e){return C("Patch failed:",e),void qe(v.scope)}return M("data")&&(console.group("[LX] patch"),console.log("rev:",Ie,"ops:",v.ops),console.groupEnd()),Ge(!1),void(v.ack&&Pe({v:2,kind:"state.ack",scope:v.scope,rev:v.rev}));case"ch.ack":var I=we.get(v.id);if(!I)return;if(we.delete(v.id),null!==I.timerId&&clearTimeout(I.timerId),v.ok)I.channel._markOpen(),be.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=be.get(v.id);if(!k)return;return void k._emitData(v.payload);case"ch.close":if(we.get(v.id))return void je(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=be.get(v.id);if(!E)return;return be.delete(v.id),void E._emitClose(v.code,v.reason);case"req":var x=v,S=Te(x.method);if(!x.cap||x.cap!==S)return void Pe({v:2,kind:"res",id:x.id,ok:!1,error:{code:c,message:"Invalid cap for ".concat(x.method)}});var T=Se.get(x.method);return T?void Promise.resolve().then(function(){return T(x.params)}).then(function(e){Pe({v:2,kind:"res",id:x.id,ok:!0,result:e})}).catch(function(e){Pe({v:2,kind:"res",id:x.id,ok:!1,error:f(e)})}):void Pe({v:2,kind:"res",id:x.id,ok:!1,error:{code:a,message:"View handler not found: ".concat(x.method)}})}else j("Invalid V2 message:",e)}var We=new Map,ze=[],Je=!1;function Ye(){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 Ve(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(N(e))}catch(e){C("NativeComponent send error:",e)}}function $e(){if(Ye()&&0!==ze.length)for(Je=!0;ze.length;){var e=ze.shift();try{Ve(e)}catch(e){break}}}function Ke(e){try{if(!Ye())return void ze.push(e);Je||$e(),Ve(e)}catch(e){C("NC send failed:",e)}}function Qe(e){return"".concat(e,"_").concat(Date.now(),"_").concat(pe++)}function Ze(e,n,t){if(n)if(n.aborted)t();else{var r={handleEvent:function(){n.removeEventListener("abort",r),t()}};n.addEventListener("abort",r)}}var en,nn,tn={call:function(e,n,t){return new Promise(function(o,a){var c;if(e&&"string"==typeof e){ue||De();var l=Qe("c"),s=(null==t?void 0:t.cap)||Te(e),d=null!==(c=null==t?void 0:t.timeoutMs)&&void 0!==c?c:I;ye.set(l,{method:e,mode:"call",resolve:o,reject:function(e){return a(e)},timeoutMs:d,timerId:null}),Pe({v:2,kind:"req",id:l,method:e,params:Ae(n),cap:s},l),Ze(0,null==t?void 0:t.signal,function(){var e=Be(l);Le(l,{code:r,message:"Bridge request aborted"}),!e&&de&&Pe({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=ge("invalid",function(){});return a._reject({code:i,message:"Method name must be a non-empty string"}),a}ue||De();var c=Qe("c"),l=ge(c,function(){Be(c)?Le(c,{code:r,message:"Bridge request aborted"}):de&&Pe({v:2,kind:"cancel",id:c})}),s=(null==t?void 0:t.cap)||Te(e),d=null!==(o=null==t?void 0:t.timeoutMs)&&void 0!==o?o:I;return ye.set(c,{method:e,mode:"stream",stream:l,timeoutMs:d,timerId:null}),Pe({v:2,kind:"req",id:c,method:e,params:Ae(n),cap:s},c),Ze(0,null==t?void 0:t.signal,function(){return l.cancel()}),l},notify:function(e,n,t){e&&"string"==typeof e&&(ue||De(),Pe({v:2,kind:"notify",method:e,params:Ae(n),cap:(null==t?void 0:t.cap)||Te(e)}))},state:{subscribe:He},channel:{open:function(e,n,t){return e&&"string"==typeof e?(ue||De(),new Promise(function(r,o){var i=Qe("ch"),a=function(e,n,t){var r,o=he(),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){j("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){j("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){j("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){j("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){Pe({v:2,kind:"ch.data",id:i,seq:n,payload:e})},function(e,n){var t=we.get(i);t&&null!==t.timerId&&clearTimeout(t.timerId),we.delete(i),be.delete(i),Pe({v:2,kind:"ch.close",id:i,code:e,reason:n})});we.set(i,{topic:e,channel:a,resolve:r,reject:o,timerId:null}),Pe({v:2,kind:"ch.open",id:i,topic:e,params:Ae(n),cap:(null==t?void 0:t.cap)||Te(e)},i)})):Promise.reject({code:i,message:"Topic name must be a non-empty string"})}}},rn={invoke:function(e,n,t){return tn.call(on(e),n,an(t)).then(function(e){return e}).catch(function(e){return Promise.reject(v(e))})},notify:function(e,n,t){tn.notify(on(e),n,an(t))},stream:function(e,n,t){return cn(tn.stream(on(e),n,an(t)))},channel:function(e,n,t){return tn.channel.open(on(e),n,an(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:tn,state:{subscribe:He},_connectWebMessagePort:function(e){if(P===E){if(R&&R!==e)try{R.onmessage=null,R.close()}catch(e){}R=e,e.onmessage=function(e){var n=e.data;if("string"==typeof n)try{n=JSON.parse(n)}catch(e){return}Ue(n)};try{e.start()}catch(e){}L("Port connected"),De()}},_receiveEvaluateMessage:function(e){try{e&&Ue(JSON.parse(e))}catch(e){C("Parse error:",e)}},debug:(en=A,nn={},Object.keys(en).forEach(function(e){Object.defineProperty(nn,e,{enumerable:!0,configurable:!1,get:function(){return en[e]},set:function(n){en[e]=!!n,console.log("[LX] ".concat(e,": ").concat(n))}})}),nn),platform:{isHarmony:function(){return"Harmony"===p.os},isIOS:y,isAndroid:function(){return"Android"===p.os},isMacOS:w,isWindows:b,isDesktop:function(){return w()||b()},isApple:function(){return y()||w()},isRunner:function(){return!0===p.runner},getOS:g},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:Ke,hasHandler:Ye,flush:$e,register:function(e,n){return e&&"function"==typeof n?(We.set(e,n),function(){return We.delete(e)}):function(){}},unregister:function(e){We.delete(e)}},isReady:function(){return de}};function on(e){return e.startsWith("host.")?e:"host.".concat(e)}function an(e){return __assign(__assign({},e||{}),{cap:(null==e?void 0:e.cap)||"host"})}function cn(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 ln(){if(window.__LX_BRIDGE_INIT_STATE)L("Bridge already ".concat(window.__LX_BRIDGE_INIT_STATE,", skipping duplicate init"));else{window.__LX_BRIDGE_INIT_STATE="initializing";try{L("Method: ".concat(P)),function(e){if("undefined"!=typeof window&&(window[_]=e,0!==O.length))for(var n=0,t=O.splice(0,O.length);n<t.length;n++){var r=t[n];try{e(r)}catch(e){j("Failed to replay queued native message:",e)}}}(rn._receiveEvaluateMessage),K()?(oe(),K()&&!q&&null===z&&(z=setInterval(function(){0!==W&&Date.now()-W>35e3&&(j("Apple downstream stale (no heartbeat), forcing reconnect"),ae())},5e3)),K()&&"undefined"!=typeof document&&document.addEventListener("visibilitychange",ce)):P===E?(V(),function(){var e,n;if(R)return Promise.resolve(R);if(J.promise)return J.promise;V(),J.promise=new Promise(function(e,n){J.resolve=function(n){$(),e(n)},J.reject=function(e){$(),n(e)},J.timer=window.setTimeout(function(){var e;null===(e=J.reject)||void 0===e||e.call(J,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=J.reject)||void 0===n||n.call(J,e)}return J.promise}().catch(function(e){return j("Port init failed:",e)})):"webkit"===P||P===x||P===S?De():j("Unknown method"),window.LingXiaBridge=rn,window.__lxForceDownstreamReconnect=ae,m({os:g(),send:Ke}),window.__LX_BRIDGE_INIT_STATE="initialized",L("Init complete")}catch(e){throw delete window.__LX_BRIDGE_INIT_STATE,e}}}function sn(e){var n=document.createElement("div");return n.textContent=e,n.innerHTML}function dn(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(sn(n),"</div>")),t&&(i+='<p class="lx-error-desc" style="margin-top:12px">'.concat(sn(t),"</p>")),o.innerHTML=i,document.body.appendChild(o)}function un(){var e=window.__LX_RUNTIME_CONFIG;return!(!e||!e.error)}function fn(){var e;return(null===(e=window.__LX_RUNTIME_CONFIG)||void 0===e?void 0:e.error)||null}var vn={handleEvent:function(){return mn()}};function mn(){if(un()){var e=fn();e&&dn(e)}}function pn(){ln(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",vn):mn()}return pn(),e.LingXiaBridge=rn,e.boot=function(){ln(),mn()},e.bootWhenReady=pn,e.channel=function(e,n,t){return rn.channel(e,n,t)},e.getDisplayLanguage=function(){return h},e.getErrorInfo=fn,e.hasError=un,e.initBridge=ln,e.invoke=function(e,n,t){return rn.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){tn.notify(on(e),n,an(t))},e.renderErrorUI=dn,e.stream=function(e,n,t){return cn(tn.stream(on(e),n,an(t)))},e}({});
|