@jolibox/implement 1.3.9 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var HP=Object.create;var wa=Object.defineProperty,VP=Object.defineProperties,$P=Object.getOwnPropertyDescriptor,WP=Object.getOwnPropertyDescriptors,zP=Object.getOwnPropertyNames,_a=Object.getOwnPropertySymbols,KP=Object.getPrototypeOf,Rl=Object.prototype.hasOwnProperty,mh=Object.prototype.propertyIsEnumerable;var fh=(e,t,r)=>t in e?wa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Rl.call(t,r)&&fh(e,r,t[r]);if(_a)for(var r of _a(t))mh.call(t,r)&&fh(e,r,t[r]);return e},B=(e,t)=>VP(e,WP(t));var Qe=(e,t)=>{var r={};for(var n in e)Rl.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&_a)for(var n of _a(e))t.indexOf(n)<0&&mh.call(e,n)&&(r[n]=e[n]);return r};var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var h=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),hh=(e,t)=>{for(var r in t)wa(e,r,{get:t[r],enumerable:!0})},YP=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zP(t))!Rl.call(e,i)&&i!==r&&wa(e,i,{get:()=>t[i],enumerable:!(n=$P(t,i))||n.enumerable});return e};var se=(e,t,r)=>(r=e!=null?HP(KP(e)):{},YP(t||!e||!e.__esModule?wa(r,"default",{value:e,enumerable:!0}):r,e));var g=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});function rO(e){return!!(e!=null&&e.__nativeBuffers__)}function Fl(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!rO(e))return e;let t=e.__nativeBuffers__;if(delete e.__nativeBuffers__,t)for(let r=0;r<t.length;r++){let n=t[r];if(n){let i;n.value?i=n.value:n.base64&&(i=nO(n.base64)),typeof i!="undefined"&&i instanceof ArrayBuffer&&(e[n.key]=i)}}return e}function oO(e={},t=!1){let r=e,n=[];for(let[i,o]of Object.entries(r))if(o!==void 0&&o instanceof ArrayBuffer&&o.byteLength!==void 0){let a=t?{value:o,key:i}:{base64:iO(o),key:i};n.push(a),delete r[i]}return n.length>0&&(r.__nativeBuffers__=n),r}function lO(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function xh(e){return typeof e=="string"}function Mn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function vh(e){return typeof e=="number"&&!isNaN(e)}function dO(e){return typeof e=="undefined"}function pO(e){return dO(e)||e===null}function Th(e){return typeof e=="function"}function fO(e){return Mn(e)&&Th(e.then)}function Ph(e){let t=e,r=null,n=function(...i){return r||(r=new t(...i)),r};return n.prototype=t.prototype,n}function ji(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function _O(e,t,r){let n=e;for(let i of t)if(n&&typeof n=="object")n=n[i];else return r;return n===void 0?r:n}function AO(){if(typeof window=="undefined")return{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{},length:0,key:()=>null};try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function PO(e){return new Promise(t=>Oh(e)(t))}function Oh(e){return(t,r=null)=>{let n=!1;return e(i=>{if(!n)return n=!0,t.call(r,i)},null)}}function OO(e,t){return(r=>{let n,i={onWillAddFirstListener(){n=r(o.fire,o)}},o=new Ji(i);return o.event})((r,n=null)=>e(i=>t(i)&&r.call(n,i),null))}function NO(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)DO(e[n],t[n])}function DO(e,t){if(xh(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Th(t)){try{if(e instanceof t)return}catch(r){}if(!pO(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function yt(e,t){if(Bl.config[e]){ka.warn(`[can i use] ${e} already registered`);return}Bl.config[e]=ur({},t)}function _h(e,t){return`[${e}]:${t}`}function BO(e,t){wh||(Ll=new Ia({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),ql=new Ia({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),Ul=new Ia({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),t("onJoliboxEnterBackground",()=>{Ll.flush(),ql.flush(),Ul.flush()}),wh=!0);function r(i){var o,a;let{method:s,args:c,startTime:l,isForeground:d,errMsg:u=`${s}:fail no errMsg`,errNo:p=0,__timing:f={receiveJSInvoke:0,invokeCallback:0}}=i,{receiveJSInvoke:m,invokeCallback:v}=f,b=(a=(o=u.match(/\S:(\S+)\s?/))==null?void 0:o[1])!=null?a:"fail";Ll.report({status:b,method:n(s,c),errNo:`${p}`,errMsg:u,isForeground:d,duration:Date.now()-l}),l&&m&&v&&(ql.report({status:b,method:s,isForeground:d,duration:Number((m-l).toFixed(3))}),Ul.report({status:b,method:s,isForeground:d,duration:Number((Date.now()-v).toFixed(3))}))}function n(i,o){return(i==="callHostMethod"||i==="callHostMethodSync")&&o!=null&&o.method?`${i}-${o.method}`:i}return r}function VO(e,t){let r=0,n=!0,i=HO.resolveMap,o=BO(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,Ml.forEach(c=>Aa(this,[c],function*({method:l,args:d,resolve:u}){let p=yield s(l,d);u(p)})),Ml.length=0});let a=(c,l)=>{let d=i.get(Number(c));if(!d)return;let u=Fl(l);d(u),i.delete(Number(c))},s=(c,l)=>{var d,u;let p=Date.now(),f=`${n}`;r+=1;let m=new uO;if(i.set(r,m.resolve),!n&&UO.includes(c))return new Promise(C=>{Ml.push({method:c,args:l,resolve:C})});let v=eO(ur({},{method:c,startTime:p,args:l,isForeground:f}),{invokeType:"js-bridge"}),b=!GO&&qO.includes(c),y=oO(l,b),w=b?y:JSON.stringify(y),E;if(c.endsWith("Sync")||MO.includes(c)?E=(d=e.call)==null?void 0:d.call(e,c,y,r):typeof w=="string"?E=e.invoke(c,w,r):E=(u=e.call)==null?void 0:u.call(e,c,w,r),E){try{typeof E=="string"&&(E=JSON.parse(E)),E=Fl(E)}catch(C){ka.error(C)}return i.delete(r),E.errorCode&&(E.errorCode=_h(c,E.errorCode)),o(ur(ur({},v),E)),E}return c.endsWith("Sync")&&i.delete(r),m.promise.then(C=>(C.errorCode&&(C.errorCode=_h(c,C.errorCode)),o(ur(ur({},v),C)),C))};return{invokeNative:s,applyNative:(c,l)=>{let d=s(c,l);return fO(d)?d.then(u=>Sh(c,u)):Sh(c,d)},invokeHandler:a}}function Sh(e,t){if(!Mn(t)){ka.warn(`[Jolibox SDK]${e} no response value`);return}let r=t,{errMsg:n,errNo:i,errorType:o,errorCode:a}=r,s=tO(r,["errMsg","errNo","errorType","errorCode"]);if(n&&n!==`${e}:ok`)throw new vO(n,i,o,a);return s}function $O(e){if(globalThis[Sa])return globalThis[Sa];let t=new Hl,r=new Hl,n=new Ia({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}});return t.on("onJoliboxEnterBackground",()=>{n.flush()}),globalThis[Sa]={onNative:t.on.bind(t),offNative:t.off.bind(t),subscribe:r.on.bind(r),unsubscribe:r.off.bind(r),subscribeHandler(i,o,a){let s=Fl(o),c;if(s.__extra){c=s.params;let{type:l,startTime:d}=s.__extra;n.report({type:l,event:i,duration:Date.now()-d})}else c=s;if(i===Rh){c.forEach(l=>{let[d,u]=l;try{r.emit(d.slice(Gi.length),u,a)}catch(p){}});return}if(i.startsWith(Gi)){r.emit(i.slice(Gi.length),c,a);return}t.emit(i,c,a)}},globalThis[Sa]}function WO(e){let t=new Map,r=new Map,n,i;return{publish:(o,a,s,c)=>{if(c){let d=s!==void 0?s==="*"?"*":[s]:void 0;e.publish(`${Gi}${o}`,a,d);return}n||(n=Promise.resolve().then(()=>{t.forEach((d,u)=>{try{let p=u!==void 0?u==="*"?"*":[u]:void 0;e.publish(Rh,d,p)}catch(p){}}),n=void 0,t.clear()}));let l=t.get(s);l||(l=[],t.set(s,l)),l.push([`${Gi}${o}`,a])},emitNative:(o,a,s,c)=>{if(c){let d=s!==void 0?s==="*"?"*":[s]:void 0;e.publish(o,a,d),console.log("emitNative",o,a,d);return}i||(i=Promise.resolve().then(()=>{r.forEach((d,u)=>{try{let p=u!==void 0?u==="*"?"*":[u]:void 0;e.publish(FO,d,p)}catch(p){}}),i=void 0,r.clear()}));let l=r.get(s);l||(l=[],r.set(s,l)),l.push([o,a])}}}function zO(e){let{subscribeHandler:t,onNative:r,offNative:n,subscribe:i,unsubscribe:o}=$O(e),{invokeNative:a,invokeHandler:s,applyNative:c}=VO(e,r),{publish:l,emitNative:d}=WO(e);return{invokeHandler:s,subscribeHandler:t,applyNative:c,invokeNative:a,onNative:r,offNative:n,emitNative:d,publish:l,subscribe:i,unsubscribe:o}}function Nh(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var QP,XP,ZP,Ea,Eh,Ah,gh,ur,eO,tO,Aa,nO,iO,Ch,aO,sO,kh,cO,uO,mO,hO,Ca,gO,vO,yO,Nl,ka,yh,bO,jl,wO,Bl,SO,IO,EO,Un,CO,mW,Gl,fe,kO,xO,Bi,Ji,Hl,Vl,TO,Dl,RO,hW,$l,bh,gW,xa,LO,Gi,qO,UO,MO,Rh,FO,jO,Ia,wh,Ll,ql,Ul,Ml,GO,Wl,JO,HO,Sa,zl,Pt,Dh,Lh,KO,qh,Ih,me,M,be,Uh,YO,Mh,Ta,vW,yW,ue=x(()=>{"use strict";QP=Object.defineProperty,XP=Object.defineProperties,ZP=Object.getOwnPropertyDescriptors,Ea=Object.getOwnPropertySymbols,Eh=Object.prototype.hasOwnProperty,Ah=Object.prototype.propertyIsEnumerable,gh=(e,t,r)=>t in e?QP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ur=(e,t)=>{for(var r in t||(t={}))Eh.call(t,r)&&gh(e,r,t[r]);if(Ea)for(var r of Ea(t))Ah.call(t,r)&&gh(e,r,t[r]);return e},eO=(e,t)=>XP(e,ZP(t)),tO=(e,t)=>{var r={};for(var n in e)Eh.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ea)for(var n of Ea(e))t.indexOf(n)<0&&Ah.call(e,n)&&(r[n]=e[n]);return r},Aa=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});nO=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i<r;i++)n[i]=t.charCodeAt(i);return n.buffer};iO=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let i=0;i<n;i++)t+=String.fromCharCode(r[i]);return btoa(t)};Ch=Object.defineProperty,aO=Object.getOwnPropertyDescriptor,sO=(e,t)=>{for(var r in t)Ch(e,r,{get:t[r],enumerable:!0})},kh=(e,t,r,n)=>{for(var i=n>1?void 0:n?aO(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(n?a(t,r,i):a(i))||i);return n&&i&&Ch(t,r,i),i},cO=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let i=this._eventListeners[r].indexOf(n);i!==-1&&this._eventListeners[r].splice(i,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}uO=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};mO=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(mO||{}),hO=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},Ca=class extends hO{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},gO=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},vO=class extends Ca{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},yO=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},Nl=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}};ka={log:ji("log"),warn:ji("warn"),info:ji("info"),error:ji("error"),debug:ji("debug")};Object.assign(globalThis,{logger:ka});yh=Symbol.for("Jolibox.canIUseMap"),bO={};globalThis[yh]||(globalThis[yh]=bO);jl=Symbol.for("Jolibox.canIUseMap.native"),wO={};globalThis[jl]||(globalThis[jl]=wO);Bl={get config(){return globalThis[jl]}},SO=(e=>(e[e.Other=0]="Other",e[e.Route=1]="Route",e[e.Click=2]="Click",e[e.View=3]="View",e[e.Expose=4]="Expose",e[e.Swipe=5]="Swipe",e[e.Input=6]="Input",e[e.Select=7]="Select",e[e.SwitchOn=8]="SwitchOn",e[e.SwitchOff=9]="SwitchOff",e[e.Submit=10]="Submit",e[e.Scroll=11]="Scroll",e[e.Hide=12]="Hide",e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(SO||{}),IO=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(IO||{}),EO=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(EO||{});AO();Un=typeof window=="undefined",CO=()=>!Un&&!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),mW={isiOS:!Un&&(navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS")),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:!Un&&navigator.userAgent.includes("Android"),isMac:!Un&&navigator.userAgent.includes("Mac"),isFacebook:!Un&&navigator.userAgent.includes("FB_IAB"),isPC:!Un&&!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},Gl=class Jl{constructor(t){this.element=t,this.next=Jl.Undefined,this.prev=Jl.Undefined}};Gl.Undefined=new Gl(void 0);fe=Gl,kO=class{constructor(){this._first=fe.Undefined,this._last=fe.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===fe.Undefined}clear(){let e=this._first;for(;e!==fe.Undefined;){let t=e.next;e.prev=fe.Undefined,e.next=fe.Undefined,e=t}this._first=fe.Undefined,this._last=fe.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new fe(e);if(this._first===fe.Undefined)this._first=r,this._last=r;else if(t){let i=this._last;this._last=r,r.prev=i,i.next=r}else{let i=this._first;this._first=r,r.next=i,i.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==fe.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==fe.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==fe.Undefined&&e.next!==fe.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===fe.Undefined&&e.next===fe.Undefined?(this._first=fe.Undefined,this._last=fe.Undefined):e.next===fe.Undefined?(this._last=this._last.prev,this._last.next=fe.Undefined):e.prev===fe.Undefined&&(this._first=this._first.next,this._first.prev=fe.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==fe.Undefined;)yield e.element,e=e.next}},xO=0,Bi=class{constructor(e){this.value=e,this.id=xO++}},Ji=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof Bi&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,i,o,a,s,c;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let l=new Bi(t);return this._listeners?this._listeners instanceof Bi?this._listeners=[this._listeners,l]:this._listeners.push(l):((i=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||i.call(n,this),this._listeners=l,(a=(o=this.options)==null?void 0:o.onDidFirstListener)==null||a.call(o,this)),(c=(s=this.options)==null?void 0:s.onDidAddListener)==null||c.call(s,this),this._size++,()=>{var d,u,p,f;if(!this._disposed){if(this._listeners instanceof Bi)this._listeners.id===l.id&&(this._listeners=void 0,this._size=0,(u=(d=this.options)==null?void 0:d.onDidRemoveLastListener)==null||u.call(d));else if(this._listeners){let m=this._listeners.indexOf(l);m>=0&&(this._listeners.splice(m,1),this._size--,this._size===0&&((f=(p=this.options)==null?void 0:p.onDidRemoveLastListener)==null||f.call(p)))}}}}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(i){n(i)}}fire(e){this._listeners&&(this._listeners instanceof Bi?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},Hl=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t,r=!0){var n;let i=(n=this.listeners.get(e))!=null?n:new Ji,o=c=>t(...c.args),a=i.event(o);this.listerHandlerMap.set(t,{handler:o,dispose:a}),this.listeners.set(e,i);let s=this.cachedEventQueue.get(e);if(s&&r)for(let c of s)t(...c.args)}flushCachedEvent(e){e?this.cachedEventQueue.delete(e):this.cachedEventQueue.clear()}off(e,t){let r=this.listerHandlerMap.get(t);r&&(r.dispose(),this.listerHandlerMap.delete(t))}emit(e,...t){let r=this.listeners.get(e),n=this.cachedEventQueue.get(e);n||(n=new kO,this.cachedEventQueue.set(e,n)),n.push({args:t}),r&&r.fire({event:e,args:t})}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};this.on(e,r,!1)}},Vl={};sO(Vl,{None:()=>TO,filter:()=>OO,once:()=>Oh,toPromise:()=>PO});TO=()=>(console.log("[Jolibox SDK] None Event"),()=>{console.log("[Jolibox SDK] None Event dispose")});Dl=Symbol.for("Jolibox.hostEmitter"),RO=()=>{let e=new Hl;return globalThis[Dl]||(globalThis[Dl]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e),once:e.once.bind(e)}),globalThis[Dl]},hW=RO();$l=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Ji,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let i of e.metadata.args)r.push(i.constraint);let n=e.handler;e.handler=function(...i){return NO(i,r),n(...i)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};$l=kh([Ph],$l);bh=class{constructor(){this._onWillExecuteCommand=new Ji,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Ji,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new $l,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=lO(3e4)),this._starActivation}executeCommand(e,...t){return cO(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Vl.toPromise(Vl.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};bh=kh([Ph],bh);gW=Symbol.for("Jolibox.commands");yt("requestPaymentSync",{version:1e6,properties:{paymentBody:{appStoreProductId:102e4}}});yt("requestProductDetailsAsync",{version:102e4});yt("invokeSubscriptionPanelSync",{version:107e4,properties:{type:{game:107e4,drama:107e4}}});yt("loginSync",{version:1e6,properties:{skipLogin:102e4,triggerFrom:102e4}});yt("getABTest",{version:1050100,platforms:{android:1050100,ios:!1}});yt("userTrackAsync",{version:1e6});yt("openMiniapp",{version:1050100});yt("requestCoinDetailsSync",{version:1070100});yt("requestCoinDetailsAsync",{version:1070100});yt("sendServerEventAsync",{version:1070100});yt("loadAdsAsync",{version:1070200});yt("showAdAsync",{version:1070200});yt("onJoliboxHideLoading",{version:1070300});xa=(e,t)=>{function r(i){var o;let[a,...s]=i.split(":");if(!a)return!1;let c=Bl.config[a];if(!c)return!1;let l=(o=t==null?void 0:t())!=null?o:"",d=c.version;if(c.platforms&&l in c.platforms){let p=c.platforms[l];if(p===!1)return!1;typeof p=="number"&&(d=p)}if(typeof d!="number")return!1;let u=e();return typeof u!="number"||u<d?!1:s.length===0?!0:n(c,s,u)||n(c.properties,s,u)}function n(i,o,a){if(!i)return!1;let s=_O(i,o);if(!s)return!1;if(Mn(s)){let c=s.version;return vh(c)?typeof a=="number"&&a>=c:!0}return vh(s)?typeof a=="number"&&a>=s:s===!0}return{canIUseNative:r}};LO=()=>CO(),Gi="custom_event_",qO=[],UO=[],MO=["env","createRequestTask","login"],Rh="__batch_event__",FO="__native_batch_event__",jO=e=>e==="pv"?e:"default",Ia=class{constructor(e){this.interval=30,this.lastReportTime=0,this.cache={};let{reporter:t,interval:r=30,eventName:n,tagNameOrder:i,metricName:o,type:a}=e;this.reporter=t,this.interval=r,this.eventName=n,this.tagNameOrder=i,this.metricName=o,this.type=jO(a)}report(e){this.type==="pv"?this.addPVPoint(e):this.addPoint(e),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(e){if(Object.keys(this.cache).length){if(e){this.reporter(this.processPoints(this.cache)),this.clearPoints();return}this.lastReportTime=this.lastReportTime||Date.now(),Date.now()-this.lastReportTime>=this.interval*1e3&&(this.reporter(this.processPoints(this.cache)),this.clearPoints(),this.lastReportTime=Date.now())}}addPoint(e){let t=(r,n,i,o)=>{let a=n.shift();if(a){let s=o[a];r[s]||(r[s]={}),t(r[s],n,i,o)}else r[i]||(r[i]=[]),r[i].push(o[i])};t(this.cache,[...this.tagNameOrder],this.metricName,e)}addPVPoint(e){let t=(n,i,o,a)=>{let s=i.shift();if(!s&&Mn(a))throw new Nl(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);if(s){let c=[];if(Mn(a))c.push(...Object.keys(a));else if(xh(a)){if(i.length>0)throw new Nl(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);c.push(a)}else throw new Nl(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(r)}`);c.forEach(l=>{n[l]||(n[l]={});let d=Mn(a)?a[l]:a;t(n[l],[...i],o,d)})}else n[o]?n[o]++:n[o]=1},r={point:e,metricName:this.metricName,tagNameOrder:this.tagNameOrder};t(this.cache,[...this.tagNameOrder],this.metricName,e)}processPoints(e){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:e}}clearPoints(){this.cache={}}},wh=!1;Ml=[],GO=!1,Wl=Symbol.for("Jolibox.invokeResolverInstance"),JO=new Map;globalThis[Wl]||(globalThis[Wl]=JO);HO={get resolveMap(){return globalThis[Wl]}};Sa=Symbol.for("Jolibox.subscribeInstance");Pt={trigger(){},exit(){return Promise.resolve(!1)},backPress(){return Promise.resolve(!1)},onReady(e){Pt.trigger=e},onDoExit(e){Pt.exit=e},onDoBackPress(e){Pt.backPress=e}},Dh=e=>{let t=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!t)e.onError(new gO("native env failed"));else{let{data:r}=JSON.parse(t);return r!=null?r:void 0}};if(typeof window!="undefined"&&window.webkit){let e=window.webkit.messageHandlers,t=(i="")=>{Pt.trigger(),e.onDocumentReady.postMessage({path:i})},r=i=>Aa(void 0,null,function*(){let o=yield Pt.exit();e.doExit.postMessage({uuid:i,shouldInterrupt:o})});zl={onDocumentReady:t,doExit:r,invoke(i,o,a){e.invoke.postMessage({event:i,paramsString:o,callbackId:a})},publish(i,o,a){let s=Nh(o,"joliboxJSCore");window.prompt("publish",JSON.stringify({event:i,paramsString:JSON.stringify(s),webviewIds:a}))},call(i,o,a){let s=window.prompt("invoke",JSON.stringify({event:i,paramsString:JSON.stringify(o),callbackId:a}));if(s)return JSON.parse(s)}};let n={onDocumentReady:t,env:Dh,doExit:r};globalThis.joliboxJSCore=ur({},n)}if(typeof window!="undefined"&&window.JoliAndroidSDKBridge){let e,t=window.JoliAndroidSDKBridge,r=(o="")=>{Pt.trigger(),t.onDocumentReady(JSON.stringify({path:o}))},n=o=>Aa(void 0,null,function*(){let a=yield Pt.exit();t.doExit(JSON.stringify({uuid:o,shouldInterrupt:a}))});zl={onDocumentReady:r,invoke(o,a,s){t.invoke(JSON.stringify({event:o,paramsString:a,callbackId:s}))},doExit:n,publish(o,a,s){let c=Nh(a,"joliboxJSCore");t.publish(JSON.stringify({event:o,paramsString:JSON.stringify(c),webviewIds:s}))},call(o,a,s){let c=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(a),callbackId:s}));if(c)return JSON.parse(c)},doBackPress(o){return Aa(this,null,function*(){let a=yield Pt.backPress();t.doBackPress(JSON.stringify({uuid:o,shouldInterrupt:a}))})}};let i={onDocumentReady:r,env:Dh,doExit:n};globalThis.joliboxJSCore=ur({},i)}Lh=zl;if(!Lh&&LO())throw new yO("No joliboxJScore is found, native bridge not found.");KO=ur({},Lh),qh=zO(KO),{invokeHandler:Ih}=qh,{applyNative:me,invokeNative:M,onNative:be,offNative:Uh,subscribeHandler:YO,publish:Mh,emitNative:Ta,subscribe:vW,unsubscribe:yW}=qh;globalThis.joliboxJSBridge={callHandler:Ih,invokeHandler:Ih,subscribeHandler:YO}});function tR(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function Oa(e){return new Promise(t=>setTimeout(t,e))}function zi(e){return typeof e=="string"}function on(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function Vh(e){return typeof e=="object"&&Array.isArray(e)}function Ra(e){return typeof e=="number"&&!isNaN(e)}function qr(e){return e===!0||e===!1}function $h(e){return typeof e=="undefined"}function Ki(e){return $h(e)||e===null}function rR(e){return typeof e=="function"}function Wh(e){let t=e,r=null,n=function(...i){return r||(r=new t(...i)),r};return n.prototype=t.prototype,n}function zh(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(i,o){for(let a in o)if(Object.prototype.hasOwnProperty.call(o,a)){let s=i[a],c=o[a],l=r(s,c,a,i,o);l!==void 0?i[a]=l:Bh(c)&&Bh(s)?i[a]=n(Jh({},s),c):Array.isArray(c)&&Array.isArray(s)?i[a]=[...s,...c]:i[a]=c}return i}return n(e,t)}function Bh(e){return e&&typeof e=="object"&&e.constructor===Object}function Kh(e,t){if(Array.isArray(e))return e.concat(t)}function Yi(e,t,r={}){let n=null,i,o,a,{leading:s=!1,trailing:c=!0}=r,l=()=>(a=e.apply(o,i),i=void 0,o=void 0,a),d=function(...u){i=u,o=this;let p=s&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,c&&!p&&l()},t),p)return l()};return d.cancel=()=>{n&&clearTimeout(n),n=null,i=o=void 0},d.flush=()=>{if(n)return clearTimeout(n),n=null,l()},d}function iR(e,t){return(...r)=>t(e,...r)}function Fn(e){return t=>iR(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(i){e(new Vt(`${i}`))}})}function Hi(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function eg(e,t,r){let n=0;if(e!==t){let i=e.split("."),o=t.split("."),a=Math.max(i.length,o.length);for(let s=0;s<a;s++){let c=parseInt(i[s],10)||0,l=parseInt(o[s],10)||0;if(c>l){n=1;break}else if(c<l){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}function su(){if(typeof window=="undefined")return{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{},length:0,key:()=>null};try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function uR(e,t,r){let n=window.location.hostname,i=n.split("."),o=r?t:e;if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n))return`${o}.jolibox.com`;if(i.length>=2){let a=i.slice(-2).join(".");if(a==="jolibox.com"||a==="pico-game.com"||a==="joyslite.com"||a==="mporia.com"||a==="pingplus.ai")return`${o}.${a}`}return`${o}.jolibox.com`}function cu(e){return uR("app","stg-app",e)}function Bn(e){return`https://${cu(e)}`}function mR(e){return new Promise(t=>ig(e)(t))}function ig(e){return(t,r=null)=>{let n=!1;return e(i=>{if(!n)return n=!0,t.call(r,i)},null)}}function hR(e,t){return(r=>{let n,i={onWillAddFirstListener(){n=r(o.fire,o)}},o=new Wi(i);return o.event})((r,n=null)=>e(i=>t(i)&&r.call(n,i),null))}function vR(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)yR(e[n],t[n])}function yR(e,t){if(zi(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(rR(t)){try{if(e instanceof t)return}catch(r){}if(!Ki(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function bR(){return typeof globalThis!="undefined"?globalThis[og]:void 0}function _R(e){typeof globalThis!="undefined"&&(globalThis[og]=e)}function z(e=!1){let t=bR();if(!e&&t)return t;let r=new Pa,n=new eu,i={registerCommand(o,a,s){r.registerCommand({id:o,handler:a,metadata:s})},executeCommand(o,...a){return n.executeCommand(o,...a)},excuteCommandSync(o,...a){return n.executeCommandThowErr(o,...a)}};return _R(i),i}var tu,QO,Fh,XO,ZO,jh,Jh,eR,Hh,nn,ut,nR,ru,Qi,nu,Yh,Vt,Na,Qh,Da,Xh,Zh,Xi,iu,$t,Yl,oR,ou,Gh,aR,W,au,sR,jn,Vi,Zi,cR,lR,tg,rg,ng,Ut,Ql,he,dR,pR,$i,Wi,Wt,Zl,fR,Kl,gR,_e,Pa,eu,og,R=x(()=>{"use strict";tu=Object.defineProperty,QO=Object.getOwnPropertyDescriptor,Fh=Object.getOwnPropertySymbols,XO=Object.prototype.hasOwnProperty,ZO=Object.prototype.propertyIsEnumerable,jh=(e,t,r)=>t in e?tu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jh=(e,t)=>{for(var r in t||(t={}))XO.call(t,r)&&jh(e,r,t[r]);if(Fh)for(var r of Fh(t))ZO.call(t,r)&&jh(e,r,t[r]);return e},eR=(e,t)=>{for(var r in t)tu(e,r,{get:t[r],enumerable:!0})},Hh=(e,t,r,n)=>{for(var i=n>1?void 0:n?QO(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(n?a(t,r,i):a(i))||i);return n&&i&&tu(t,r,i),i},nn=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let i=this._eventListeners[r].indexOf(n);i!==-1&&this._eventListeners[r].splice(i,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}ut=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};nR=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(nR||{}),ru=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},Qi=class extends ru{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},nu=class extends ru{constructor(){super(...arguments),this.kind="USER_ERROR"}},Yh=class extends nu{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},Vt=class extends nu{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_CUSTOM_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Na=class extends nu{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_PAYMENT_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Qh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},Da=class extends Qi{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="INTERNAL_PAYMENT_ERROR",this.priority="P0",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Xh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_METHOD_ERROR"}},Zh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Xi=class extends ru{constructor(e,t,r,n,i){super(e),this.message=e,this.code=t,this.kind="API_ERROR",this.name="API_ERROR",r&&(this.errorType=r),n!==void 0&&(this.stack=n),i&&(this.priority=i)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},iu=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};$t={log:Hi("log"),warn:Hi("warn"),info:Hi("info"),error:Hi("error"),debug:Hi("debug")};Object.assign(globalThis,{logger:$t});Yl=Symbol.for("Jolibox.canIUseMap"),oR={};globalThis[Yl]||(globalThis[Yl]=oR);ou={get config(){return globalThis[Yl]}},Gh=Symbol.for("Jolibox.canIUseMap.native"),aR={};globalThis[Gh]||(globalThis[Gh]=aR);W=(e=>(e[e.Other=0]="Other",e[e.Route=1]="Route",e[e.Click=2]="Click",e[e.View=3]="View",e[e.Expose=4]="Expose",e[e.Swipe=5]="Swipe",e[e.Input=6]="Input",e[e.Select=7]="Select",e[e.SwitchOn=8]="SwitchOn",e[e.SwitchOff=9]="SwitchOff",e[e.Submit=10]="Submit",e[e.Scroll=11]="Scroll",e[e.Hide=12]="Hide",e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(W||{}),au=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(au||{}),sR=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(sR||{}),jn=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});su();Vi=typeof window=="undefined",Zi={isiOS:!Vi&&(navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS")),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:!Vi&&navigator.userAgent.includes("Android"),isMac:!Vi&&navigator.userAgent.includes("Mac"),isFacebook:!Vi&&navigator.userAgent.includes("FB_IAB"),isPC:!Vi&&!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},cR="device_id",lR="advertising_id",tg=e=>(window.__joliboxLocalStorage__.getItem(e)||window.__joliboxLocalStorage__.setItem(e,jn()),window.__joliboxLocalStorage__.getItem(e)),rg=()=>new URLSearchParams(window.location.search).get("deviceId")||tg(cR),ng=()=>new URLSearchParams(window.location.search).get("advertisingId")||tg(lR);Ut=class{constructor(e,t={}){this.requestAdapter=e,this.cache=new Map,this.pendingRequests=new Map,this.requestSequence=0,this.cacheSequences=new Map,this.config=Jh({duration:10*60*1e3,timeout:3e3,keyGenerator:(r,n)=>r,consistencyChecker:()=>!0},t)}request(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t),n=this.pendingRequests.get(r);if(n)return console.log(`[RequestCacheService] Reusing pending request for ${e}`),n;let i=this.requestInternal(e,t),o=this.createTimeoutPromise(),a=Promise.race([i,o]).catch(s=>nn(this,null,function*(){if(s.message.includes("timeout")){let c=this.getValidCachedData(r);if(c)return console.warn(`[RequestCacheService] Request timeout, falling back to cache for ${e}`),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}throw s}));this.pendingRequests.set(r,a),i.then(s=>{console.log(`[RequestCacheService] Background request completed successfully for ${e}`)}).catch(s=>{console.warn(`[RequestCacheService] Background request failed for ${e}:`,s)});try{return yield a}finally{this.pendingRequests.delete(r)}})}requestInternal(e,t){return nn(this,null,function*(){var r,n,i,o;let a=this.config.keyGenerator(e,t),s=++this.requestSequence,c=this.getValidCachedData(a);if(console.log("[RequestCacheService] requestInternal start",e,"cached:",c),c){if(this.requestAdapter.extractRealTimeData&&this.requestAdapter.mergeData)try{let u=yield this.requestAdapter.execute(e,t),p=this.requestAdapter.extractRealTimeData(u),f=(n=(r=this.requestAdapter).extractCacheableData)==null?void 0:n.call(r,u);return f&&!this.config.consistencyChecker(c,f)?(console.log(`[RequestCacheService] Cache invalidated due to data change for ${e}`),this.setCachedDataWithSequence(a,f,s),u):this.requestAdapter.mergeData(c,p)}catch(u){return console.warn(`[RequestCacheService] Failed to fetch real-time data, using cache only for ${e}:`,u),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}return console.log(`[RequestCacheService] use cache for ${e}`),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}console.log(`[RequestCacheService] Cache miss, fetching fresh data for ${e} (sequence: ${s})`);let l=yield this.requestAdapter.execute(e,t),d=(o=(i=this.requestAdapter).extractCacheableData)==null?void 0:o.call(i,l);return d&&this.setCachedDataWithSequence(a,d,s),l})}createTimeoutPromise(){return new Promise((e,t)=>{setTimeout(()=>{t(new Error(`[RequestCacheService] Request timeout after ${this.config.timeout/1e3} seconds`))},this.config.timeout)})}getValidCachedData(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.data:null}setCachedDataWithSequence(e,t,r,n){let i=this.cache.get(e);if(i&&i.sequence>r){console.log(`[RequestCacheService] Ignoring stale cache update for ${e} (current: ${i.sequence}, incoming: ${r})`);return}let o=Date.now();this.cache.set(e,{data:JSON.parse(JSON.stringify(t)),timestamp:o,expiresAt:o+this.config.duration,key:e,sequence:r,metadata:n}),this.cacheSequences.set(e,r),console.log(`[RequestCacheService] Updated cache for ${e} with sequence ${r}`)}refreshCache(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t);return this.cache.delete(r),this.request(e,t)})}forceRequest(e,t){return nn(this,null,function*(){var r,n;let i=this.config.keyGenerator(e,t),o=++this.requestSequence;console.log(`[RequestCacheService] Force request for ${e} (sequence: ${o})`);let a=yield this.requestAdapter.execute(e,t),s=(n=(r=this.requestAdapter).extractCacheableData)==null?void 0:n.call(r,a);return s&&(this.setCachedDataWithSequence(i,s,o),console.log(`[RequestCacheService] Force updated cache for ${e}`)),a})}warmupCache(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t);if(this.pendingRequests.has(r)){console.log(`[RequestCacheService] Skipping warmup for ${e} - request in progress`);return}if(this.hasValidCache(r)){console.log(`[RequestCacheService] Skipping warmup for ${e} - valid cache exists`);return}try{console.log(`[RequestCacheService] Warming up cache for ${e}`),yield this.forceRequest(e,t)}catch(n){console.warn(`[RequestCacheService] Cache warmup failed for ${e}:`,n)}})}clearCache(e){e?(this.cache.delete(e),this.cacheSequences.delete(e),this.pendingRequests.delete(e),console.log(`[RequestCacheService] Cleared cache for ${e}`)):(this.cache.clear(),this.cacheSequences.clear(),this.pendingRequests.clear(),this.requestSequence=0,console.log("[RequestCacheService] Cleared all cache"))}clearExpiredCache(){let e=Date.now();for(let[t,r]of this.cache)e>r.expiresAt&&(this.cache.delete(t),this.cacheSequences.delete(t));console.log("[RequestCacheService] Cleared expired cache entries")}getCacheStats(){let e=Date.now(),t=0,r=0;for(let n of this.cache.values())e>n.expiresAt?r++:t++;return{cacheCount:this.cache.size,validCount:t,expiredCount:r,pendingRequestCount:this.pendingRequests.size}}getCacheKeys(){return Array.from(this.cache.keys())}hasValidCache(e){let t=this.cache.get(e);return t?Date.now()<=t.expiresAt:!1}getPendingRequestKeys(){return Array.from(this.pendingRequests.keys())}hasPendingRequest(e){return this.pendingRequests.has(e)}getCacheSequence(e){return this.cacheSequences.get(e)}},Ql=class Xl{constructor(t){this.element=t,this.next=Xl.Undefined,this.prev=Xl.Undefined}};Ql.Undefined=new Ql(void 0);he=Ql,dR=class{constructor(){this._first=he.Undefined,this._last=he.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===he.Undefined}clear(){let e=this._first;for(;e!==he.Undefined;){let t=e.next;e.prev=he.Undefined,e.next=he.Undefined,e=t}this._first=he.Undefined,this._last=he.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new he(e);if(this._first===he.Undefined)this._first=r,this._last=r;else if(t){let i=this._last;this._last=r,r.prev=i,i.next=r}else{let i=this._first;this._first=r,r.next=i,i.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==he.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==he.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==he.Undefined&&e.next!==he.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===he.Undefined&&e.next===he.Undefined?(this._first=he.Undefined,this._last=he.Undefined):e.next===he.Undefined?(this._last=this._last.prev,this._last.next=he.Undefined):e.prev===he.Undefined&&(this._first=this._first.next,this._first.prev=he.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==he.Undefined;)yield e.element,e=e.next}},pR=0,$i=class{constructor(e){this.value=e,this.id=pR++}},Wi=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof $i&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,i,o,a,s,c;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let l=new $i(t);return this._listeners?this._listeners instanceof $i?this._listeners=[this._listeners,l]:this._listeners.push(l):((i=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||i.call(n,this),this._listeners=l,(a=(o=this.options)==null?void 0:o.onDidFirstListener)==null||a.call(o,this)),(c=(s=this.options)==null?void 0:s.onDidAddListener)==null||c.call(s,this),this._size++,()=>{var d,u,p,f;if(!this._disposed){if(this._listeners instanceof $i)this._listeners.id===l.id&&(this._listeners=void 0,this._size=0,(u=(d=this.options)==null?void 0:d.onDidRemoveLastListener)==null||u.call(d));else if(this._listeners){let m=this._listeners.indexOf(l);m>=0&&(this._listeners.splice(m,1),this._size--,this._size===0&&((f=(p=this.options)==null?void 0:p.onDidRemoveLastListener)==null||f.call(p)))}}}}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(i){n(i)}}fire(e){this._listeners&&(this._listeners instanceof $i?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},Wt=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t,r=!0){var n;let i=(n=this.listeners.get(e))!=null?n:new Wi,o=c=>t(...c.args),a=i.event(o);this.listerHandlerMap.set(t,{handler:o,dispose:a}),this.listeners.set(e,i);let s=this.cachedEventQueue.get(e);if(s&&r)for(let c of s)t(...c.args)}flushCachedEvent(e){e?this.cachedEventQueue.delete(e):this.cachedEventQueue.clear()}off(e,t){let r=this.listerHandlerMap.get(t);r&&(r.dispose(),this.listerHandlerMap.delete(t))}emit(e,...t){let r=this.listeners.get(e),n=this.cachedEventQueue.get(e);n||(n=new dR,this.cachedEventQueue.set(e,n)),n.push({args:t}),r&&r.fire({event:e,args:t})}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};this.on(e,r,!1)}},Zl={};eR(Zl,{None:()=>fR,filter:()=>hR,once:()=>ig,toPromise:()=>mR});fR=()=>(console.log("[Jolibox SDK] None Event"),()=>{console.log("[Jolibox SDK] None Event dispose")});Kl=Symbol.for("Jolibox.hostEmitter"),gR=()=>{let e=new Wt;return globalThis[Kl]||(globalThis[Kl]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e),once:e.once.bind(e)}),globalThis[Kl]},_e=gR();Pa=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Wi,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let i of e.metadata.args)r.push(i.constraint);let n=e.handler;e.handler=function(...i){return vR(i,r),n(...i)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};Pa=Hh([Wh],Pa);eu=class{constructor(){this._onWillExecuteCommand=new Wi,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Wi,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new Pa,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=tR(3e4)),this._starActivation}executeCommand(e,...t){return nn(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Zl.toPromise(Zl.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};eu=Hh([Wh],eu);og=Symbol.for("Jolibox.commands")});function Ee(e,t={}){lu.emit("ERROR_REPORT",{error:e,options:t})}var lu,an,bt=x(()=>{"use strict";R();R();lu=new Wt,an=new Wt;Ee.debounce=Yi(Ee,50,{leading:!0})});var uu,wR,ag,sg,cg=x(()=>{"use strict";R();bt();uu=e=>{let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t.length%4===0?"":"=".repeat(4-t.length%4),n=atob(t+r);try{return JSON.parse(n)}catch(i){return{}}},wR=e=>{let t=JSON.stringify(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},ag=e=>{var t;try{let i=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(i!=null&&i.length){let[o,a,s]=i;return{headerJson:uu(o),payloadJson:uu(a),signature:uu(s)}}else throw"joli_source is missing"}catch(r){return Ee(new Qh(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}},sg=(e,t)=>{let r=t.split(".");if(r&&r.length===3){let n=r[0],i=wR(e),o=r[2];return`${n}.${i}.${o}`}return t}});var SR,du,lg=x(()=>{"use strict";R();SR="1.3.9",du=()=>SR});function fu(e,t){return(document==null?void 0:document.head.querySelector(`meta[name="${e}"][content="${t}"]`))!==null}var IR,ug,pu,dg,ge,ER,S,V=x(()=>{"use strict";R();cg();lg();R();IR={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:rg(),adId:ng(),pixelRatio:window.devicePixelRatio||1,platform:Zi.isAndroid?"android":Zi.isiOS?"ios":"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:du()},schema:window.location.href,platform:Zi.isAndroid?"android":Zi.isiOS?"ios":"h5"},pu=(ug=globalThis.joliboxJSCore)==null?void 0:ug.env,ge=Object.assign({},(dg=pu==null?void 0:pu())!=null?dg:IR);ER=()=>{var v,b,y,w,E,C,T,k,A,J,le;let{payloadJson:e,headerJson:t,signature:r}=ge.schema.length?ag(ge.schema):{},n=`${ge.deviceInfo.did}-${new Date().getTime()}`,o=new URL(ge.schema.length?ge.schema:window.location.href).searchParams,a=(y=(b=(v=o.get("mpId"))!=null?v:o.get("appId"))!=null?b:o.get("gameId"))!=null?y:"",s=(C=(E=(w=ge.clientSessionId)!=null?w:e==null?void 0:e.sessionId)!=null?E:o.get("sessionId"))!=null?C:n,c=!!((k=(T=e==null?void 0:e.testAdsMode)!=null?T:e==null?void 0:e.__testAdsMode)!=null?k:o.get("testAdsMode")==="true"),l=(le=(J=(A=e==null?void 0:e.joliboxEnv)!=null?A:e==null?void 0:e.__joliboxEnv)!=null?J:o.get("joliboxEnv"))!=null?le:"production",d=l==="staging",u=t==null?void 0:t.channel,f=new URL(window.location.href).searchParams,m=e==null?void 0:e.__shouldInterupt;return{get startTime(){var N;return(N=performance.timeOrigin)!=null?N:performance.timing.navigationStart},get testMode(){return d},get testAdsMode(){return c},get joliboxEnv(){return l},get joliSource(){var N,O;return(O=(N=f.get("joliSource"))!=null?N:o.get("joliSource"))!=null?O:null},get mpId(){var N;return(N=a!=null?a:e==null?void 0:e.id)!=null?N:""},get mpVersion(){var N;return(N=t==null?void 0:t.ver)!=null?N:du()},get mpType(){var N,O;return(O=(N=t==null?void 0:t.__mpType)!=null?N:e==null?void 0:e.__mpType)!=null?O:"game"},get platform(){var N;return((N=ge.platform)!=null?N:ge.deviceInfo.platform).toLowerCase()},get deviceInfo(){return ge.deviceInfo},get sdkInfo(){return ge.sdkInfo},get hostInfo(){return ge.hostInfo},get hostUserInfo(){return ge.hostUserInfo},get sessionId(){var N,O;return(O=(N=ge.clientSessionId)!=null?N:s)!=null?O:n},get channel(){return u},get webviewId(){var N;return(N=ge.webviewId)!=null?N:-1},get shouldInterupt(){return m},get from(){return e==null?void 0:e.__from},get baseApiHost(){return cu(d)},get adId(){var N;return(N=ge.deviceInfo.adId)!=null?N:ge.deviceInfo.did},get language(){return ge.deviceInfo.lang},get sdkEnvironment(){return fu("dlightek","jolibox")?"dlightek":o.get("huaweiQuick")==="true"?"huaweiQuick":fu("gamedistribution","jolibox")?"gamedistribution":fu("funmax","jolibox")?"funmax":"jolibox"},get viewport(){var G,H,qt;let N=(G=ge.deviceInfo.pixelRatio)!=null?G:1,O=(H=ge.deviceInfo.statusBarHeight)!=null?H:e==null?void 0:e.__androidStatusBarHeight,F=(qt=ge.deviceInfo.navigationBarHeight)!=null?qt:e==null?void 0:e.__androidNavigationBarHeight;return{statusBarHeight:O!==void 0?O/N:20,navigationBarHeight:F!==void 0?F/N:10}},get abTests(){var N,O;return(O=(N=ge.abValues)==null?void 0:N.split(","))!=null?O:[]},get mpInfo(){var N;return(N=ge.mpInfo)!=null?N:{mpName:"unknown"}},onEnvConfigChanged:N=>{zh(ge,N,Kh)},encodeJoliSourceQuery:N=>{var O,F;return t&&r?sg(P(P({},e),N),(O=o.get("joliSource"))!=null?O:""):(F=o.get("joliSource"))!=null?F:""},setDoExitDirectly:()=>{m=!1}}},S=ER()});var mu,fg,AR,CR,pg,kR,mg=x(()=>{"use strict";R();bt();V();R();mu=!1,fg=(e,t)=>e==null?!1:t in e,AR=e=>fg(e,"kind"),CR=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},pg=(e,t={},r)=>{var o,a,s;let n={user_id:(a=(o=S.hostUserInfo)==null?void 0:o.uid)!=null?a:"",device_id:(s=S.deviceInfo.did)!=null?s:"",timestamp:Date.now(),tag:CR(e.name)},i=B(P({},n),{env:t.environment,isFromUser:r});r?an.emit("GLOBAL_USER_ERROR",e,i):an.emit("GLOBAL_ERROR",e,i)},kR=e=>fg(e,"kind")&&e.kind==="USER_ERROR";lu.on("ERROR_REPORT",({error:e,options:t})=>{if(mu)return;mu=!0;let r=AR(e)&&e.raw?e.raw:e;try{let n=kR(e);pg(e,t,n)}catch(n){let i=n instanceof Error?n.message:String(n),o=new iu(`${i}, origin error: ${r.message}`);$t.error(o),pg(new iu(o.message),{environment:t.environment},!1)}finally{mu=!1}})});var je,hu,Ur=x(()=>{"use strict";bt();R();bt();je=(e,t)=>{var r,n;return new Xi((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},hu=e=>new Yh(e)});var hg=x(()=>{"use strict";mg();Ur();R();ue();an.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};M("trackAsync",{event:"reportJsError",data:r})});an.on("GLOBAL_USER_ERROR",(e,t)=>{$t.log("UserError",e,t)})});var gu=x(()=>{"use strict"});function gg(e,t){let r=(n,i,o)=>{let l=i!=null?i:{},{eventType:a}=l,s=Qe(l,["eventType"]),c=B(P({tag:n,eventType:o!=null?o:a!=null?a:W.Other},t),{extra:P({},s)});n=="globalJsError"?Ee(new Zh(JSON.stringify(c))):e("systemLog",c,S.webviewId)};return r.debounce=Yi(r,500,{leading:!0}),r}function vg(e){let t=(r,n,i)=>{var s;let o=(s=i&&JSON.stringify(i))!=null?s:0,a={speed_value_type:r,total_duration:n};o&&Object.assign(a,{extra:o}),e("joliboxSpeedAnalysis",a)};return t.debounce=Yi(t,500,{leading:!0}),t}var yg=x(()=>{"use strict";R();R();bt();V()});function bg(e,t){let r=gg(e,t),n=vg(r);return{track:r,trackPerformance:n}}var _g=x(()=>{"use strict";yg()});var wg=x(()=>{"use strict";V();R();R()});var Sg=x(()=>{"use strict";_g();gu();wg()});var La,Ig=x(()=>{"use strict";La=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.reportCount=0;this.notifyIframeGameEvent=(t,r)=>{window.parent&&window.parent.postMessage({type:t,data:r},"*")};this.playGame=t=>{this.reportCount++,(this.reportCount<=3||(this.reportCount-3)%3===0)&&(this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration:t}),this.notifyIframeGameEvent("JOLIBOX_GAME_PLAY",{duration:t}))};this.timer=this.createRAFTimer(t=>{this.playGame(t)});this.interval=r!=null?r:5*1e3,t.on("visible",n=>{this.visible=n})}start(t){this.reporter({event:"OPEN_GAME",params:{timestamp:Date.now(),duration:t!=null?t:0}}),this.tracker("OpenGame",{duration:t!=null?t:0}),this.notifyIframeGameEvent("JOLIBOX_GAME_OPEN",{duration:t!=null?t:0}),this.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.notifyIframeGameEvent("JOLIBOX_GAME_CLOSE",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,i,o=!1,a=0,s=()=>{if(!o)return;let f=Date.now(),m=f-r;m>=this.interval&&(this.visible&&(a+=Math.min(m,this.interval+1e3),t(a)),r=f),n=requestAnimationFrame(s)},c=()=>{d(),r=Date.now(),i=window.setInterval(()=>{if(!o)return;let f=Date.now();f-r>=this.interval&&(r=f)},this.interval)},l=()=>{u(),r=Date.now(),n=requestAnimationFrame(s)},d=()=>{n&&(cancelAnimationFrame(n),n=0)},u=()=>{i&&(clearInterval(i),i=0)};this.eventEmitter.on("visible",f=>{o&&(console.log("visible",f),f?l():c())});let p=this.visible;return{start(){o||(o=!0,p?l():c())},stop(){o=!1,d(),u()}}}}});function qa(e,t,r){var c,l,d;let n=new Map,i=(c=r==null?void 0:r.baseUrl)!=null?c:Bn(S.testMode),o=(l=r==null?void 0:r.type)!=null?l:"public",a=(d=r==null?void 0:r.defaultHeaders)!=null?d:{};return be("onRequestTaskStateChange",u=>{if(typeof u.requestTaskId!="string")return;let p=n.get(u.requestTaskId);if(p)if(u.state==="success"){let f=u,{requestTaskId:v,state:b}=f,y=Qe(f,["requestTaskId","state"]);u.statusCode===200?p.resolve(y):p.reject(y),n.delete(v)}else if(u.state==="fail"){let m=u,{requestTaskId:v,state:b}=m,y=Qe(m,["requestTaskId","state"]);p.reject(y),n.delete(v)}else $t.warn("onRequestTaskStateChange unknown event",u)}),_e.on("onLoginComplete",({isLogin:u,token:p})=>{o!=="public"&&u&&p&&(a["X-JOLI-TOKEN"]=p)}),(f,...m)=>g(this,[f,...m],function*(u,p={}){let v=Date.now(),b=xR(u,B(P({},p),{baseUrl:i})),{method:y="GET",responseType:w="text",dataType:E="json",timeout:C,enableCache:T=!1,appendHostCookie:k=!0}=p,A=Object.assign({"content-type":"application/json"},a,p.header),J={url:b,method:y,header:A,enableCache:T,responseType:w,appendHostCookie:k};if(y=="POST"||y=="PUT"){let G=PR(p.data,A["content-type"]);J.data=G}C&&Object.assign(J,{timeout:C});let{data:{requestTaskId:le}}=M(e,J);if(typeof le!="string")throw je({code:-1,msg:"requestTaskId is not a string"});let{resolve:N,reject:O,promise:F}=new ut;n.set(le,{resolve:N,reject:O});try{let G=yield F,{data:H}=G;return E==="json"&&typeof H=="string"&&(H=TR(H)),{url:b,timeout:C,method:y,response:B(P({},G),{data:H})}}catch(G){let H=G;if(on(H)){let{errMsg:qt,prefetchDetail:ph,isPrefetch:Ol,errNo:ba}=H;zi(qt)&&Ee(je({code:-1,msg:qt},{errNo:ba,errMsg:qt}))}throw G}})}function TR(e){try{return JSON.parse(e.trim())}catch(t){return e}}function PR(e,t="application/json"){let r=t.toLowerCase();return e===void 0?"":typeof e=="string"||e instanceof ArrayBuffer?e:r.includes("application/x-www-form-urlencoded")||r.includes("application/json")||typeof e=="object"?JSON.stringify(e):String(e)}var xR,vu=x(()=>{"use strict";R();ue();bt();Ur();V();xR=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,i=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${i?`?${i}`:""}`:`${e}${i?`?${i}`:""}`}});var yu,Eg,K,dt=x(()=>{"use strict";vu();V();R();yu={};(Eg=S.hostUserInfo)!=null&&Eg.token&&(yu["x-joli-token"]=S.hostUserInfo.token);S.joliSource&&(yu["x-joli-source"]=S.joliSource);K=qa("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:Bn(S.testMode),defaultHeaders:yu})});function Ag(e){let t=ou.config[e];return t||(t={},ou.config[e]=t),(r,n)=>{if(t[r]){$t.warn(`[can i use] ${r} already registered`);return}t[r]=P({},n)}}var Cg=x(()=>{"use strict";R()});function bu(e){kg=e}function Ua(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>Ua(t)):Object.keys(e).reduce((t,r)=>(t[r]=Ua(e[r]),t),{})}function dr(e){return typeof e=="number"}function _u(e){let t=wu(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function wu(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var kg,ke,Ma,Fa,ja,Ba,Gn,Ga,Ja,Ha,Va,$a,Wa,za,Ka,Ya,Qa,Xa,Za,Su=x(()=>{"use strict";kg=!1;ke=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(kg)if(typeof t=="string")this.errors.push(t);else{let r=`${this.path} should be ${t.expect}`;this._optional&&t.expect!=="undefined"?r+=" or undefined, ":r+=", ",r+=`but got ${_u(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return Ua(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:Ua(this._default)}optional(){return this._optional=!0,this}};Ma=class extends ke{validate(t){return this._optional&&t===void 0?!0:dr(t)?dr(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):dr(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):dr(this._greater)&&t<=this._greater?this.fail(`the value of ${this.path} should be greater than ${this._greater}`):this._isInt&&t!==Math.floor(t)?this.fail(`the value of ${this.path} should be integer but got ${t}`):!0:this.fail({expect:"number",actual:t})}min(t){return this._min=t,this}max(t){return this._max=t,this}isInt(t){return this._isInt=t,this}greater(t){return this._greater=t,this}},Fa=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},ja=class extends ke{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(dr(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(dr(this._minLength)&&t.length<this._minLength)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minLength}`);if(typeof this._pattern=="string"){if(!new RegExp(this._pattern).test(t))return this.fail(`${this.path} should match pattern "${this._pattern}"`)}else if(this._pattern&&!this._pattern.test(t))return this.fail(`${this.path} should match pattern "${this._pattern.toString()}"`);return!0}minLength(t){return this._minLength=t,this}maxLength(t){return this._maxLength=t,this}pattern(t){return this._pattern=t,this}},Ba=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},Gn=class extends ke{validate(t){return!0}},Ga=class extends ke{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},Ja=class extends ke{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},Ha=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},Va=class extends ke{constructor(...t){super(),this._items=t}validate(t){if(this._optional&&t===void 0)return!0;if(!this._items.includes(t)){let r=this._items.map(n=>JSON.stringify(n)).join(", ");return this.fail(`expect ${this.path} to be one of ${r}, but got ${_u(t)}`)}return!0}},$a=class extends ke{constructor(r){super();this._item=r}validate(r){if(this._optional&&r===void 0)return!0;if(!Array.isArray(r))return this.fail({expect:"array",actual:r});if(dr(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(dr(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(dr(this._length)&&r.length!==this._length)return this.fail(`the length of ${this.path} should be equal to ${this._length}`);let n=this._item;if(!n)return!0;let i=!0;if(r.forEach((o,a)=>{if(n.path=`${this.path}[${a}]`,n.errors=this.errors,o===void 0&&n.hasDefault){r[a]=n.defaultValue;return}n.validate(o)||(n.hasFallback?r[a]=n.fallbackValue:i=!1)}),this._uniqueItems){let o=new Map;for(let a in r)o.has(r[a])?i=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${o.get(r[a])}] and ${this.path}[${a}] are identical)`):o.set(r[a],a)}return i}minItems(r){return this._minItems=r,this}maxItems(r){return this._maxItems=r,this}uniqueItems(){return this._uniqueItems=!0,this}length(r){return this._length=r,this}},Wa=class extends ke{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(wu(r)!=="object")return this.fail({expect:"object",actual:r});let i=r,o=this._value;o.errors=this.errors;let a=!0;for(let s in i){let c=i[s];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(s)?o.path=`${this.path}.${s}`:o.path=`${this.path}["${s}"]`,!(c===void 0&&o._optional)){if(c===void 0&&o.hasDefault){i[s]=o.defaultValue;continue}o.validate(c)||(o.hasFallback?i[s]=o.fallbackValue:a=!1)}}return a}},za=class extends ke{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(wu(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,i=!0;for(let o in this._object){let a=n[o],s=this._object[o];if(s.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(o)?s.path=`${this.path}.${o}`:s.path=`${this.path}["${o}"]`,!(s._optional&&a===void 0)){if(a===void 0&&s.hasDefault){n[o]=s.defaultValue;continue}s.validate(a)||(s.hasFallback?n[o]=s.fallbackValue:i=!1)}}return i}},Ka=class extends ke{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:_u(this.value),actual:r}):!0}},Ya=class extends ke{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,i=this._items.length;for(let o=0;o<i;o++){let a=this._items[o];if(a.errors=[],a.path=this.path,!a.validate(t))r.push(a.errors.join("; "));else if(!n){n=!0;break}}if(!n){let o=r.join(`
1
+ var HP=Object.create;var wa=Object.defineProperty,VP=Object.defineProperties,$P=Object.getOwnPropertyDescriptor,WP=Object.getOwnPropertyDescriptors,zP=Object.getOwnPropertyNames,_a=Object.getOwnPropertySymbols,KP=Object.getPrototypeOf,Rl=Object.prototype.hasOwnProperty,mh=Object.prototype.propertyIsEnumerable;var fh=(e,t,r)=>t in e?wa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Rl.call(t,r)&&fh(e,r,t[r]);if(_a)for(var r of _a(t))mh.call(t,r)&&fh(e,r,t[r]);return e},B=(e,t)=>VP(e,WP(t));var Qe=(e,t)=>{var r={};for(var n in e)Rl.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&_a)for(var n of _a(e))t.indexOf(n)<0&&mh.call(e,n)&&(r[n]=e[n]);return r};var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var h=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),hh=(e,t)=>{for(var r in t)wa(e,r,{get:t[r],enumerable:!0})},YP=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zP(t))!Rl.call(e,i)&&i!==r&&wa(e,i,{get:()=>t[i],enumerable:!(n=$P(t,i))||n.enumerable});return e};var se=(e,t,r)=>(r=e!=null?HP(KP(e)):{},YP(t||!e||!e.__esModule?wa(r,"default",{value:e,enumerable:!0}):r,e));var g=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});function rO(e){return!!(e!=null&&e.__nativeBuffers__)}function Fl(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!rO(e))return e;let t=e.__nativeBuffers__;if(delete e.__nativeBuffers__,t)for(let r=0;r<t.length;r++){let n=t[r];if(n){let i;n.value?i=n.value:n.base64&&(i=nO(n.base64)),typeof i!="undefined"&&i instanceof ArrayBuffer&&(e[n.key]=i)}}return e}function oO(e={},t=!1){let r=e,n=[];for(let[i,o]of Object.entries(r))if(o!==void 0&&o instanceof ArrayBuffer&&o.byteLength!==void 0){let a=t?{value:o,key:i}:{base64:iO(o),key:i};n.push(a),delete r[i]}return n.length>0&&(r.__nativeBuffers__=n),r}function lO(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function xh(e){return typeof e=="string"}function Mn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function vh(e){return typeof e=="number"&&!isNaN(e)}function dO(e){return typeof e=="undefined"}function pO(e){return dO(e)||e===null}function Th(e){return typeof e=="function"}function fO(e){return Mn(e)&&Th(e.then)}function Ph(e){let t=e,r=null,n=function(...i){return r||(r=new t(...i)),r};return n.prototype=t.prototype,n}function ji(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function _O(e,t,r){let n=e;for(let i of t)if(n&&typeof n=="object")n=n[i];else return r;return n===void 0?r:n}function AO(){if(typeof window=="undefined")return{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{},length:0,key:()=>null};try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function PO(e){return new Promise(t=>Oh(e)(t))}function Oh(e){return(t,r=null)=>{let n=!1;return e(i=>{if(!n)return n=!0,t.call(r,i)},null)}}function OO(e,t){return(r=>{let n,i={onWillAddFirstListener(){n=r(o.fire,o)}},o=new Ji(i);return o.event})((r,n=null)=>e(i=>t(i)&&r.call(n,i),null))}function NO(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)DO(e[n],t[n])}function DO(e,t){if(xh(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Th(t)){try{if(e instanceof t)return}catch(r){}if(!pO(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function yt(e,t){if(Bl.config[e]){ka.warn(`[can i use] ${e} already registered`);return}Bl.config[e]=ur({},t)}function _h(e,t){return`[${e}]:${t}`}function BO(e,t){wh||(Ll=new Ia({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),ql=new Ia({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),Ul=new Ia({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}}),t("onJoliboxEnterBackground",()=>{Ll.flush(),ql.flush(),Ul.flush()}),wh=!0);function r(i){var o,a;let{method:s,args:c,startTime:l,isForeground:d,errMsg:u=`${s}:fail no errMsg`,errNo:p=0,__timing:f={receiveJSInvoke:0,invokeCallback:0}}=i,{receiveJSInvoke:m,invokeCallback:v}=f,b=(a=(o=u.match(/\S:(\S+)\s?/))==null?void 0:o[1])!=null?a:"fail";Ll.report({status:b,method:n(s,c),errNo:`${p}`,errMsg:u,isForeground:d,duration:Date.now()-l}),l&&m&&v&&(ql.report({status:b,method:s,isForeground:d,duration:Number((m-l).toFixed(3))}),Ul.report({status:b,method:s,isForeground:d,duration:Number((Date.now()-v).toFixed(3))}))}function n(i,o){return(i==="callHostMethod"||i==="callHostMethodSync")&&o!=null&&o.method?`${i}-${o.method}`:i}return r}function VO(e,t){let r=0,n=!0,i=HO.resolveMap,o=BO(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,Ml.forEach(c=>Aa(this,[c],function*({method:l,args:d,resolve:u}){let p=yield s(l,d);u(p)})),Ml.length=0});let a=(c,l)=>{let d=i.get(Number(c));if(!d)return;let u=Fl(l);d(u),i.delete(Number(c))},s=(c,l)=>{var d,u;let p=Date.now(),f=`${n}`;r+=1;let m=new uO;if(i.set(r,m.resolve),!n&&UO.includes(c))return new Promise(C=>{Ml.push({method:c,args:l,resolve:C})});let v=eO(ur({},{method:c,startTime:p,args:l,isForeground:f}),{invokeType:"js-bridge"}),b=!GO&&qO.includes(c),y=oO(l,b),w=b?y:JSON.stringify(y),E;if(c.endsWith("Sync")||MO.includes(c)?E=(d=e.call)==null?void 0:d.call(e,c,y,r):typeof w=="string"?E=e.invoke(c,w,r):E=(u=e.call)==null?void 0:u.call(e,c,w,r),E){try{typeof E=="string"&&(E=JSON.parse(E)),E=Fl(E)}catch(C){ka.error(C)}return i.delete(r),E.errorCode&&(E.errorCode=_h(c,E.errorCode)),o(ur(ur({},v),E)),E}return c.endsWith("Sync")&&i.delete(r),m.promise.then(C=>(C.errorCode&&(C.errorCode=_h(c,C.errorCode)),o(ur(ur({},v),C)),C))};return{invokeNative:s,applyNative:(c,l)=>{let d=s(c,l);return fO(d)?d.then(u=>Sh(c,u)):Sh(c,d)},invokeHandler:a}}function Sh(e,t){if(!Mn(t)){ka.warn(`[Jolibox SDK]${e} no response value`);return}let r=t,{errMsg:n,errNo:i,errorType:o,errorCode:a}=r,s=tO(r,["errMsg","errNo","errorType","errorCode"]);if(n&&n!==`${e}:ok`)throw new vO(n,i,o,a);return s}function $O(e){if(globalThis[Sa])return globalThis[Sa];let t=new Hl,r=new Hl,n=new Ia({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(i){e.invoke("trackAsync",JSON.stringify({event:"reportMetrics",data:i}),-1)}});return t.on("onJoliboxEnterBackground",()=>{n.flush()}),globalThis[Sa]={onNative:t.on.bind(t),offNative:t.off.bind(t),subscribe:r.on.bind(r),unsubscribe:r.off.bind(r),subscribeHandler(i,o,a){let s=Fl(o),c;if(s.__extra){c=s.params;let{type:l,startTime:d}=s.__extra;n.report({type:l,event:i,duration:Date.now()-d})}else c=s;if(i===Rh){c.forEach(l=>{let[d,u]=l;try{r.emit(d.slice(Gi.length),u,a)}catch(p){}});return}if(i.startsWith(Gi)){r.emit(i.slice(Gi.length),c,a);return}t.emit(i,c,a)}},globalThis[Sa]}function WO(e){let t=new Map,r=new Map,n,i;return{publish:(o,a,s,c)=>{if(c){let d=s!==void 0?s==="*"?"*":[s]:void 0;e.publish(`${Gi}${o}`,a,d);return}n||(n=Promise.resolve().then(()=>{t.forEach((d,u)=>{try{let p=u!==void 0?u==="*"?"*":[u]:void 0;e.publish(Rh,d,p)}catch(p){}}),n=void 0,t.clear()}));let l=t.get(s);l||(l=[],t.set(s,l)),l.push([`${Gi}${o}`,a])},emitNative:(o,a,s,c)=>{if(c){let d=s!==void 0?s==="*"?"*":[s]:void 0;e.publish(o,a,d),console.log("emitNative",o,a,d);return}i||(i=Promise.resolve().then(()=>{r.forEach((d,u)=>{try{let p=u!==void 0?u==="*"?"*":[u]:void 0;e.publish(FO,d,p)}catch(p){}}),i=void 0,r.clear()}));let l=r.get(s);l||(l=[],r.set(s,l)),l.push([o,a])}}}function zO(e){let{subscribeHandler:t,onNative:r,offNative:n,subscribe:i,unsubscribe:o}=$O(e),{invokeNative:a,invokeHandler:s,applyNative:c}=VO(e,r),{publish:l,emitNative:d}=WO(e);return{invokeHandler:s,subscribeHandler:t,applyNative:c,invokeNative:a,onNative:r,offNative:n,emitNative:d,publish:l,subscribe:i,unsubscribe:o}}function Nh(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var QP,XP,ZP,Ea,Eh,Ah,gh,ur,eO,tO,Aa,nO,iO,Ch,aO,sO,kh,cO,uO,mO,hO,Ca,gO,vO,yO,Nl,ka,yh,bO,jl,wO,Bl,SO,IO,EO,Un,CO,mW,Gl,fe,kO,xO,Bi,Ji,Hl,Vl,TO,Dl,RO,hW,$l,bh,gW,xa,LO,Gi,qO,UO,MO,Rh,FO,jO,Ia,wh,Ll,ql,Ul,Ml,GO,Wl,JO,HO,Sa,zl,Pt,Dh,Lh,KO,qh,Ih,me,M,be,Uh,YO,Mh,Ta,vW,yW,ue=x(()=>{"use strict";QP=Object.defineProperty,XP=Object.defineProperties,ZP=Object.getOwnPropertyDescriptors,Ea=Object.getOwnPropertySymbols,Eh=Object.prototype.hasOwnProperty,Ah=Object.prototype.propertyIsEnumerable,gh=(e,t,r)=>t in e?QP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ur=(e,t)=>{for(var r in t||(t={}))Eh.call(t,r)&&gh(e,r,t[r]);if(Ea)for(var r of Ea(t))Ah.call(t,r)&&gh(e,r,t[r]);return e},eO=(e,t)=>XP(e,ZP(t)),tO=(e,t)=>{var r={};for(var n in e)Eh.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ea)for(var n of Ea(e))t.indexOf(n)<0&&Ah.call(e,n)&&(r[n]=e[n]);return r},Aa=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});nO=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i<r;i++)n[i]=t.charCodeAt(i);return n.buffer};iO=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let i=0;i<n;i++)t+=String.fromCharCode(r[i]);return btoa(t)};Ch=Object.defineProperty,aO=Object.getOwnPropertyDescriptor,sO=(e,t)=>{for(var r in t)Ch(e,r,{get:t[r],enumerable:!0})},kh=(e,t,r,n)=>{for(var i=n>1?void 0:n?aO(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(n?a(t,r,i):a(i))||i);return n&&i&&Ch(t,r,i),i},cO=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let i=this._eventListeners[r].indexOf(n);i!==-1&&this._eventListeners[r].splice(i,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}uO=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};mO=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(mO||{}),hO=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},Ca=class extends hO{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},gO=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},vO=class extends Ca{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},yO=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},Nl=class extends Ca{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}};ka={log:ji("log"),warn:ji("warn"),info:ji("info"),error:ji("error"),debug:ji("debug")};Object.assign(globalThis,{logger:ka});yh=Symbol.for("Jolibox.canIUseMap"),bO={};globalThis[yh]||(globalThis[yh]=bO);jl=Symbol.for("Jolibox.canIUseMap.native"),wO={};globalThis[jl]||(globalThis[jl]=wO);Bl={get config(){return globalThis[jl]}},SO=(e=>(e[e.Other=0]="Other",e[e.Route=1]="Route",e[e.Click=2]="Click",e[e.View=3]="View",e[e.Expose=4]="Expose",e[e.Swipe=5]="Swipe",e[e.Input=6]="Input",e[e.Select=7]="Select",e[e.SwitchOn=8]="SwitchOn",e[e.SwitchOff=9]="SwitchOff",e[e.Submit=10]="Submit",e[e.Scroll=11]="Scroll",e[e.Hide=12]="Hide",e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(SO||{}),IO=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(IO||{}),EO=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(EO||{});AO();Un=typeof window=="undefined",CO=()=>!Un&&!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),mW={isiOS:!Un&&(navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS")),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:!Un&&navigator.userAgent.includes("Android"),isMac:!Un&&navigator.userAgent.includes("Mac"),isFacebook:!Un&&navigator.userAgent.includes("FB_IAB"),isPC:!Un&&!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},Gl=class Jl{constructor(t){this.element=t,this.next=Jl.Undefined,this.prev=Jl.Undefined}};Gl.Undefined=new Gl(void 0);fe=Gl,kO=class{constructor(){this._first=fe.Undefined,this._last=fe.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===fe.Undefined}clear(){let e=this._first;for(;e!==fe.Undefined;){let t=e.next;e.prev=fe.Undefined,e.next=fe.Undefined,e=t}this._first=fe.Undefined,this._last=fe.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new fe(e);if(this._first===fe.Undefined)this._first=r,this._last=r;else if(t){let i=this._last;this._last=r,r.prev=i,i.next=r}else{let i=this._first;this._first=r,r.next=i,i.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==fe.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==fe.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==fe.Undefined&&e.next!==fe.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===fe.Undefined&&e.next===fe.Undefined?(this._first=fe.Undefined,this._last=fe.Undefined):e.next===fe.Undefined?(this._last=this._last.prev,this._last.next=fe.Undefined):e.prev===fe.Undefined&&(this._first=this._first.next,this._first.prev=fe.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==fe.Undefined;)yield e.element,e=e.next}},xO=0,Bi=class{constructor(e){this.value=e,this.id=xO++}},Ji=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof Bi&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,i,o,a,s,c;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let l=new Bi(t);return this._listeners?this._listeners instanceof Bi?this._listeners=[this._listeners,l]:this._listeners.push(l):((i=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||i.call(n,this),this._listeners=l,(a=(o=this.options)==null?void 0:o.onDidFirstListener)==null||a.call(o,this)),(c=(s=this.options)==null?void 0:s.onDidAddListener)==null||c.call(s,this),this._size++,()=>{var d,u,p,f;if(!this._disposed){if(this._listeners instanceof Bi)this._listeners.id===l.id&&(this._listeners=void 0,this._size=0,(u=(d=this.options)==null?void 0:d.onDidRemoveLastListener)==null||u.call(d));else if(this._listeners){let m=this._listeners.indexOf(l);m>=0&&(this._listeners.splice(m,1),this._size--,this._size===0&&((f=(p=this.options)==null?void 0:p.onDidRemoveLastListener)==null||f.call(p)))}}}}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(i){n(i)}}fire(e){this._listeners&&(this._listeners instanceof Bi?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},Hl=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t,r=!0){var n;let i=(n=this.listeners.get(e))!=null?n:new Ji,o=c=>t(...c.args),a=i.event(o);this.listerHandlerMap.set(t,{handler:o,dispose:a}),this.listeners.set(e,i);let s=this.cachedEventQueue.get(e);if(s&&r)for(let c of s)t(...c.args)}flushCachedEvent(e){e?this.cachedEventQueue.delete(e):this.cachedEventQueue.clear()}off(e,t){let r=this.listerHandlerMap.get(t);r&&(r.dispose(),this.listerHandlerMap.delete(t))}emit(e,...t){let r=this.listeners.get(e),n=this.cachedEventQueue.get(e);n||(n=new kO,this.cachedEventQueue.set(e,n)),n.push({args:t}),r&&r.fire({event:e,args:t})}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};this.on(e,r,!1)}},Vl={};sO(Vl,{None:()=>TO,filter:()=>OO,once:()=>Oh,toPromise:()=>PO});TO=()=>(console.log("[Jolibox SDK] None Event"),()=>{console.log("[Jolibox SDK] None Event dispose")});Dl=Symbol.for("Jolibox.hostEmitter"),RO=()=>{let e=new Hl;return globalThis[Dl]||(globalThis[Dl]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e),once:e.once.bind(e)}),globalThis[Dl]},hW=RO();$l=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Ji,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let i of e.metadata.args)r.push(i.constraint);let n=e.handler;e.handler=function(...i){return NO(i,r),n(...i)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};$l=kh([Ph],$l);bh=class{constructor(){this._onWillExecuteCommand=new Ji,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Ji,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new $l,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=lO(3e4)),this._starActivation}executeCommand(e,...t){return cO(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Vl.toPromise(Vl.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};bh=kh([Ph],bh);gW=Symbol.for("Jolibox.commands");yt("requestPaymentSync",{version:1e6,properties:{paymentBody:{appStoreProductId:102e4}}});yt("requestProductDetailsAsync",{version:102e4});yt("invokeSubscriptionPanelSync",{version:107e4,properties:{type:{game:107e4,drama:107e4}}});yt("loginSync",{version:1e6,properties:{skipLogin:102e4,triggerFrom:102e4}});yt("getABTest",{version:1050100,platforms:{android:1050100,ios:!1}});yt("userTrackAsync",{version:1e6});yt("openMiniapp",{version:1050100});yt("requestCoinDetailsSync",{version:1070100});yt("requestCoinDetailsAsync",{version:1070100});yt("sendServerEventAsync",{version:1070100});yt("loadAdsAsync",{version:1070200});yt("showAdAsync",{version:1070200});yt("onJoliboxHideLoading",{version:1070300});xa=(e,t)=>{function r(i){var o;let[a,...s]=i.split(":");if(!a)return!1;let c=Bl.config[a];if(!c)return!1;let l=(o=t==null?void 0:t())!=null?o:"",d=c.version;if(c.platforms&&l in c.platforms){let p=c.platforms[l];if(p===!1)return!1;typeof p=="number"&&(d=p)}if(typeof d!="number")return!1;let u=e();return typeof u!="number"||u<d?!1:s.length===0?!0:n(c,s,u)||n(c.properties,s,u)}function n(i,o,a){if(!i)return!1;let s=_O(i,o);if(!s)return!1;if(Mn(s)){let c=s.version;return vh(c)?typeof a=="number"&&a>=c:!0}return vh(s)?typeof a=="number"&&a>=s:s===!0}return{canIUseNative:r}};LO=()=>CO(),Gi="custom_event_",qO=[],UO=[],MO=["env","createRequestTask","login"],Rh="__batch_event__",FO="__native_batch_event__",jO=e=>e==="pv"?e:"default",Ia=class{constructor(e){this.interval=30,this.lastReportTime=0,this.cache={};let{reporter:t,interval:r=30,eventName:n,tagNameOrder:i,metricName:o,type:a}=e;this.reporter=t,this.interval=r,this.eventName=n,this.tagNameOrder=i,this.metricName=o,this.type=jO(a)}report(e){this.type==="pv"?this.addPVPoint(e):this.addPoint(e),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(e){if(Object.keys(this.cache).length){if(e){this.reporter(this.processPoints(this.cache)),this.clearPoints();return}this.lastReportTime=this.lastReportTime||Date.now(),Date.now()-this.lastReportTime>=this.interval*1e3&&(this.reporter(this.processPoints(this.cache)),this.clearPoints(),this.lastReportTime=Date.now())}}addPoint(e){let t=(r,n,i,o)=>{let a=n.shift();if(a){let s=o[a];r[s]||(r[s]={}),t(r[s],n,i,o)}else r[i]||(r[i]=[]),r[i].push(o[i])};t(this.cache,[...this.tagNameOrder],this.metricName,e)}addPVPoint(e){let t=(n,i,o,a)=>{let s=i.shift();if(!s&&Mn(a))throw new Nl(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);if(s){let c=[];if(Mn(a))c.push(...Object.keys(a));else if(xh(a)){if(i.length>0)throw new Nl(`report value failed to match tagNameOrder, ${JSON.stringify(r)}`);c.push(a)}else throw new Nl(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(r)}`);c.forEach(l=>{n[l]||(n[l]={});let d=Mn(a)?a[l]:a;t(n[l],[...i],o,d)})}else n[o]?n[o]++:n[o]=1},r={point:e,metricName:this.metricName,tagNameOrder:this.tagNameOrder};t(this.cache,[...this.tagNameOrder],this.metricName,e)}processPoints(e){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:e}}clearPoints(){this.cache={}}},wh=!1;Ml=[],GO=!1,Wl=Symbol.for("Jolibox.invokeResolverInstance"),JO=new Map;globalThis[Wl]||(globalThis[Wl]=JO);HO={get resolveMap(){return globalThis[Wl]}};Sa=Symbol.for("Jolibox.subscribeInstance");Pt={trigger(){},exit(){return Promise.resolve(!1)},backPress(){return Promise.resolve(!1)},onReady(e){Pt.trigger=e},onDoExit(e){Pt.exit=e},onDoBackPress(e){Pt.backPress=e}},Dh=e=>{let t=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!t)e.onError(new gO("native env failed"));else{let{data:r}=JSON.parse(t);return r!=null?r:void 0}};if(typeof window!="undefined"&&window.webkit){let e=window.webkit.messageHandlers,t=(i="")=>{Pt.trigger(),e.onDocumentReady.postMessage({path:i})},r=i=>Aa(void 0,null,function*(){let o=yield Pt.exit();e.doExit.postMessage({uuid:i,shouldInterrupt:o})});zl={onDocumentReady:t,doExit:r,invoke(i,o,a){e.invoke.postMessage({event:i,paramsString:o,callbackId:a})},publish(i,o,a){let s=Nh(o,"joliboxJSCore");window.prompt("publish",JSON.stringify({event:i,paramsString:JSON.stringify(s),webviewIds:a}))},call(i,o,a){let s=window.prompt("invoke",JSON.stringify({event:i,paramsString:JSON.stringify(o),callbackId:a}));if(s)return JSON.parse(s)}};let n={onDocumentReady:t,env:Dh,doExit:r};globalThis.joliboxJSCore=ur({},n)}if(typeof window!="undefined"&&window.JoliAndroidSDKBridge){let e,t=window.JoliAndroidSDKBridge,r=(o="")=>{Pt.trigger(),t.onDocumentReady(JSON.stringify({path:o}))},n=o=>Aa(void 0,null,function*(){let a=yield Pt.exit();t.doExit(JSON.stringify({uuid:o,shouldInterrupt:a}))});zl={onDocumentReady:r,invoke(o,a,s){t.invoke(JSON.stringify({event:o,paramsString:a,callbackId:s}))},doExit:n,publish(o,a,s){let c=Nh(a,"joliboxJSCore");t.publish(JSON.stringify({event:o,paramsString:JSON.stringify(c),webviewIds:s}))},call(o,a,s){let c=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(a),callbackId:s}));if(c)return JSON.parse(c)},doBackPress(o){return Aa(this,null,function*(){let a=yield Pt.backPress();t.doBackPress(JSON.stringify({uuid:o,shouldInterrupt:a}))})}};let i={onDocumentReady:r,env:Dh,doExit:n};globalThis.joliboxJSCore=ur({},i)}Lh=zl;if(!Lh&&LO())throw new yO("No joliboxJScore is found, native bridge not found.");KO=ur({},Lh),qh=zO(KO),{invokeHandler:Ih}=qh,{applyNative:me,invokeNative:M,onNative:be,offNative:Uh,subscribeHandler:YO,publish:Mh,emitNative:Ta,subscribe:vW,unsubscribe:yW}=qh;globalThis.joliboxJSBridge={callHandler:Ih,invokeHandler:Ih,subscribeHandler:YO}});function tR(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function Oa(e){return new Promise(t=>setTimeout(t,e))}function zi(e){return typeof e=="string"}function on(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function Vh(e){return typeof e=="object"&&Array.isArray(e)}function Ra(e){return typeof e=="number"&&!isNaN(e)}function qr(e){return e===!0||e===!1}function $h(e){return typeof e=="undefined"}function Ki(e){return $h(e)||e===null}function rR(e){return typeof e=="function"}function Wh(e){let t=e,r=null,n=function(...i){return r||(r=new t(...i)),r};return n.prototype=t.prototype,n}function zh(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(i,o){for(let a in o)if(Object.prototype.hasOwnProperty.call(o,a)){let s=i[a],c=o[a],l=r(s,c,a,i,o);l!==void 0?i[a]=l:Bh(c)&&Bh(s)?i[a]=n(Jh({},s),c):Array.isArray(c)&&Array.isArray(s)?i[a]=[...s,...c]:i[a]=c}return i}return n(e,t)}function Bh(e){return e&&typeof e=="object"&&e.constructor===Object}function Kh(e,t){if(Array.isArray(e))return e.concat(t)}function Yi(e,t,r={}){let n=null,i,o,a,{leading:s=!1,trailing:c=!0}=r,l=()=>(a=e.apply(o,i),i=void 0,o=void 0,a),d=function(...u){i=u,o=this;let p=s&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,c&&!p&&l()},t),p)return l()};return d.cancel=()=>{n&&clearTimeout(n),n=null,i=o=void 0},d.flush=()=>{if(n)return clearTimeout(n),n=null,l()},d}function iR(e,t){return(...r)=>t(e,...r)}function Fn(e){return t=>iR(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(i){e(new Vt(`${i}`))}})}function Hi(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function eg(e,t,r){let n=0;if(e!==t){let i=e.split("."),o=t.split("."),a=Math.max(i.length,o.length);for(let s=0;s<a;s++){let c=parseInt(i[s],10)||0,l=parseInt(o[s],10)||0;if(c>l){n=1;break}else if(c<l){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}function su(){if(typeof window=="undefined")return{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{},length:0,key:()=>null};try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}function uR(e,t,r){let n=window.location.hostname,i=n.split("."),o=r?t:e;if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n))return`${o}.jolibox.com`;if(i.length>=2){let a=i.slice(-2).join(".");if(a==="jolibox.com"||a==="pico-game.com"||a==="joyslite.com"||a==="mporia.com"||a==="pingplus.ai")return`${o}.${a}`}return`${o}.jolibox.com`}function cu(e){return uR("app","stg-app",e)}function Bn(e){return`https://${cu(e)}`}function mR(e){return new Promise(t=>ig(e)(t))}function ig(e){return(t,r=null)=>{let n=!1;return e(i=>{if(!n)return n=!0,t.call(r,i)},null)}}function hR(e,t){return(r=>{let n,i={onWillAddFirstListener(){n=r(o.fire,o)}},o=new Wi(i);return o.event})((r,n=null)=>e(i=>t(i)&&r.call(n,i),null))}function vR(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)yR(e[n],t[n])}function yR(e,t){if(zi(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(rR(t)){try{if(e instanceof t)return}catch(r){}if(!Ki(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("[Jolibox SDK]argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function bR(){return typeof globalThis!="undefined"?globalThis[og]:void 0}function _R(e){typeof globalThis!="undefined"&&(globalThis[og]=e)}function z(e=!1){let t=bR();if(!e&&t)return t;let r=new Pa,n=new eu,i={registerCommand(o,a,s){r.registerCommand({id:o,handler:a,metadata:s})},executeCommand(o,...a){return n.executeCommand(o,...a)},excuteCommandSync(o,...a){return n.executeCommandThowErr(o,...a)}};return _R(i),i}var tu,QO,Fh,XO,ZO,jh,Jh,eR,Hh,nn,ut,nR,ru,Qi,nu,Yh,Vt,Na,Qh,Da,Xh,Zh,Xi,iu,$t,Yl,oR,ou,Gh,aR,W,au,sR,jn,Vi,Zi,cR,lR,tg,rg,ng,Ut,Ql,he,dR,pR,$i,Wi,Wt,Zl,fR,Kl,gR,_e,Pa,eu,og,R=x(()=>{"use strict";tu=Object.defineProperty,QO=Object.getOwnPropertyDescriptor,Fh=Object.getOwnPropertySymbols,XO=Object.prototype.hasOwnProperty,ZO=Object.prototype.propertyIsEnumerable,jh=(e,t,r)=>t in e?tu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jh=(e,t)=>{for(var r in t||(t={}))XO.call(t,r)&&jh(e,r,t[r]);if(Fh)for(var r of Fh(t))ZO.call(t,r)&&jh(e,r,t[r]);return e},eR=(e,t)=>{for(var r in t)tu(e,r,{get:t[r],enumerable:!0})},Hh=(e,t,r,n)=>{for(var i=n>1?void 0:n?QO(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(n?a(t,r,i):a(i))||i);return n&&i&&tu(t,r,i),i},nn=(e,t,r)=>new Promise((n,i)=>{var o=c=>{try{s(r.next(c))}catch(l){i(l)}},a=c=>{try{s(r.throw(c))}catch(l){i(l)}},s=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,a);s((r=r.apply(e,t)).next())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let i=this._eventListeners[r].indexOf(n);i!==-1&&this._eventListeners[r].splice(i,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}ut=class{constructor(){this.state="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.state==="pending"&&(this.state="fulfilled",e(r))},this.reject=r=>{this.state==="pending"&&(this.state="rejected",t(r))}})}};nR=(e=>(e[e.DEVELOPER_FILE_NOT_FOUND=0]="DEVELOPER_FILE_NOT_FOUND",e[e.INTERNAL_IOS_CAN_NOT_FOUND_PKG=1]="INTERNAL_IOS_CAN_NOT_FOUND_PKG",e[e.USER_IOS_LOAD_TIMEOUT=2]="USER_IOS_LOAD_TIMEOUT",e[e.INTERNAL_IOS_PKG_LOAD_ERROR=3]="INTERNAL_IOS_PKG_LOAD_ERROR",e[e.INTERNAL_IOS_PKG_PARSE_FAIL=4]="INTERNAL_IOS_PKG_PARSE_FAIL",e[e.USER_IOS_GET_EMPTY_DATA=5]="USER_IOS_GET_EMPTY_DATA",e[e.USER_ANDROID_GET_PKG_FAIL=6]="USER_ANDROID_GET_PKG_FAIL",e[e.DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE=7]="DEVELOPER_ANDROID_PACKAGE_FILE_UNEXPECTED_REQUIRE",e))(nR||{}),ru=class extends Error{constructor(e){if(typeof e=="string"){super(e),this.priority="P1";return}super(e.message),this.priority="P1",this.stack=e.stack,this.raw=e}},Qi=class extends ru{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},nu=class extends ru{constructor(){super(...arguments),this.kind="USER_ERROR"}},Yh=class extends nu{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},Vt=class extends nu{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_CUSTOM_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Na=class extends nu{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="USER_PAYMENT_ERROR",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Qh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},Da=class extends Qi{constructor(e,t,r){super(e),this.message=e,this.errNo=t,this.name="INTERNAL_PAYMENT_ERROR",this.priority="P0",this.errMsg=e,r&&(this.extra=Object.assign({},this.extra,r))}},Xh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_METHOD_ERROR"}},Zh=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Xi=class extends ru{constructor(e,t,r,n,i){super(e),this.message=e,this.code=t,this.kind="API_ERROR",this.name="API_ERROR",r&&(this.errorType=r),n!==void 0&&(this.stack=n),i&&(this.priority=i)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},iu=class extends Qi{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};$t={log:Hi("log"),warn:Hi("warn"),info:Hi("info"),error:Hi("error"),debug:Hi("debug")};Object.assign(globalThis,{logger:$t});Yl=Symbol.for("Jolibox.canIUseMap"),oR={};globalThis[Yl]||(globalThis[Yl]=oR);ou={get config(){return globalThis[Yl]}},Gh=Symbol.for("Jolibox.canIUseMap.native"),aR={};globalThis[Gh]||(globalThis[Gh]=aR);W=(e=>(e[e.Other=0]="Other",e[e.Route=1]="Route",e[e.Click=2]="Click",e[e.View=3]="View",e[e.Expose=4]="Expose",e[e.Swipe=5]="Swipe",e[e.Input=6]="Input",e[e.Select=7]="Select",e[e.SwitchOn=8]="SwitchOn",e[e.SwitchOff=9]="SwitchOff",e[e.Submit=10]="Submit",e[e.Scroll=11]="Scroll",e[e.Hide=12]="Hide",e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(W||{}),au=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(au||{}),sR=(e=>(e[e.App=0]="App",e[e.H5=1]="H5",e[e.Weapp=2]="Weapp",e[e.Alipay=3]="Alipay",e[e.Gcash=4]="Gcash",e[e.Dana=5]="Dana",e[e.Umma=6]="Umma",e[e.WebSDK=1e3]="WebSDK",e[e.AppSDK=1001]="AppSDK",e[e.Other=9999]="Other",e))(sR||{}),jn=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});su();Vi=typeof window=="undefined",Zi={isiOS:!Vi&&(navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPod")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("iPhone OS")),iosVersion:()=>{let e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||"0",10)]},isAndroid:!Vi&&navigator.userAgent.includes("Android"),isMac:!Vi&&navigator.userAgent.includes("Mac"),isFacebook:!Vi&&navigator.userAgent.includes("FB_IAB"),isPC:!Vi&&!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},cR="device_id",lR="advertising_id",tg=e=>(window.__joliboxLocalStorage__.getItem(e)||window.__joliboxLocalStorage__.setItem(e,jn()),window.__joliboxLocalStorage__.getItem(e)),rg=()=>new URLSearchParams(window.location.search).get("deviceId")||tg(cR),ng=()=>new URLSearchParams(window.location.search).get("advertisingId")||tg(lR);Ut=class{constructor(e,t={}){this.requestAdapter=e,this.cache=new Map,this.pendingRequests=new Map,this.requestSequence=0,this.cacheSequences=new Map,this.config=Jh({duration:10*60*1e3,timeout:3e3,keyGenerator:(r,n)=>r,consistencyChecker:()=>!0},t)}request(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t),n=this.pendingRequests.get(r);if(n)return console.log(`[RequestCacheService] Reusing pending request for ${e}`),n;let i=this.requestInternal(e,t),o=this.createTimeoutPromise(),a=Promise.race([i,o]).catch(s=>nn(this,null,function*(){if(s.message.includes("timeout")){let c=this.getValidCachedData(r);if(c)return console.warn(`[RequestCacheService] Request timeout, falling back to cache for ${e}`),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}throw s}));this.pendingRequests.set(r,a),i.then(s=>{console.log(`[RequestCacheService] Background request completed successfully for ${e}`)}).catch(s=>{console.warn(`[RequestCacheService] Background request failed for ${e}:`,s)});try{return yield a}finally{this.pendingRequests.delete(r)}})}requestInternal(e,t){return nn(this,null,function*(){var r,n,i,o;let a=this.config.keyGenerator(e,t),s=++this.requestSequence,c=this.getValidCachedData(a);if(console.log("[RequestCacheService] requestInternal start",e,"cached:",c),c){if(this.requestAdapter.extractRealTimeData&&this.requestAdapter.mergeData)try{let u=yield this.requestAdapter.execute(e,t),p=this.requestAdapter.extractRealTimeData(u),f=(n=(r=this.requestAdapter).extractCacheableData)==null?void 0:n.call(r,u);return f&&!this.config.consistencyChecker(c,f)?(console.log(`[RequestCacheService] Cache invalidated due to data change for ${e}`),this.setCachedDataWithSequence(a,f,s),u):this.requestAdapter.mergeData(c,p)}catch(u){return console.warn(`[RequestCacheService] Failed to fetch real-time data, using cache only for ${e}:`,u),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}return console.log(`[RequestCacheService] use cache for ${e}`),this.requestAdapter.processCachedData?this.requestAdapter.processCachedData(c):c}console.log(`[RequestCacheService] Cache miss, fetching fresh data for ${e} (sequence: ${s})`);let l=yield this.requestAdapter.execute(e,t),d=(o=(i=this.requestAdapter).extractCacheableData)==null?void 0:o.call(i,l);return d&&this.setCachedDataWithSequence(a,d,s),l})}createTimeoutPromise(){return new Promise((e,t)=>{setTimeout(()=>{t(new Error(`[RequestCacheService] Request timeout after ${this.config.timeout/1e3} seconds`))},this.config.timeout)})}getValidCachedData(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.data:null}setCachedDataWithSequence(e,t,r,n){let i=this.cache.get(e);if(i&&i.sequence>r){console.log(`[RequestCacheService] Ignoring stale cache update for ${e} (current: ${i.sequence}, incoming: ${r})`);return}let o=Date.now();this.cache.set(e,{data:JSON.parse(JSON.stringify(t)),timestamp:o,expiresAt:o+this.config.duration,key:e,sequence:r,metadata:n}),this.cacheSequences.set(e,r),console.log(`[RequestCacheService] Updated cache for ${e} with sequence ${r}`)}refreshCache(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t);return this.cache.delete(r),this.request(e,t)})}forceRequest(e,t){return nn(this,null,function*(){var r,n;let i=this.config.keyGenerator(e,t),o=++this.requestSequence;console.log(`[RequestCacheService] Force request for ${e} (sequence: ${o})`);let a=yield this.requestAdapter.execute(e,t),s=(n=(r=this.requestAdapter).extractCacheableData)==null?void 0:n.call(r,a);return s&&(this.setCachedDataWithSequence(i,s,o),console.log(`[RequestCacheService] Force updated cache for ${e}`)),a})}warmupCache(e,t){return nn(this,null,function*(){let r=this.config.keyGenerator(e,t);if(this.pendingRequests.has(r)){console.log(`[RequestCacheService] Skipping warmup for ${e} - request in progress`);return}if(this.hasValidCache(r)){console.log(`[RequestCacheService] Skipping warmup for ${e} - valid cache exists`);return}try{console.log(`[RequestCacheService] Warming up cache for ${e}`),yield this.forceRequest(e,t)}catch(n){console.warn(`[RequestCacheService] Cache warmup failed for ${e}:`,n)}})}clearCache(e){e?(this.cache.delete(e),this.cacheSequences.delete(e),this.pendingRequests.delete(e),console.log(`[RequestCacheService] Cleared cache for ${e}`)):(this.cache.clear(),this.cacheSequences.clear(),this.pendingRequests.clear(),this.requestSequence=0,console.log("[RequestCacheService] Cleared all cache"))}clearExpiredCache(){let e=Date.now();for(let[t,r]of this.cache)e>r.expiresAt&&(this.cache.delete(t),this.cacheSequences.delete(t));console.log("[RequestCacheService] Cleared expired cache entries")}getCacheStats(){let e=Date.now(),t=0,r=0;for(let n of this.cache.values())e>n.expiresAt?r++:t++;return{cacheCount:this.cache.size,validCount:t,expiredCount:r,pendingRequestCount:this.pendingRequests.size}}getCacheKeys(){return Array.from(this.cache.keys())}hasValidCache(e){let t=this.cache.get(e);return t?Date.now()<=t.expiresAt:!1}getPendingRequestKeys(){return Array.from(this.pendingRequests.keys())}hasPendingRequest(e){return this.pendingRequests.has(e)}getCacheSequence(e){return this.cacheSequences.get(e)}},Ql=class Xl{constructor(t){this.element=t,this.next=Xl.Undefined,this.prev=Xl.Undefined}};Ql.Undefined=new Ql(void 0);he=Ql,dR=class{constructor(){this._first=he.Undefined,this._last=he.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===he.Undefined}clear(){let e=this._first;for(;e!==he.Undefined;){let t=e.next;e.prev=he.Undefined,e.next=he.Undefined,e=t}this._first=he.Undefined,this._last=he.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new he(e);if(this._first===he.Undefined)this._first=r,this._last=r;else if(t){let i=this._last;this._last=r,r.prev=i,i.next=r}else{let i=this._first;this._first=r,r.next=i,i.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==he.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==he.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==he.Undefined&&e.next!==he.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===he.Undefined&&e.next===he.Undefined?(this._first=he.Undefined,this._last=he.Undefined):e.next===he.Undefined?(this._last=this._last.prev,this._last.next=he.Undefined):e.prev===he.Undefined&&(this._first=this._first.next,this._first.prev=he.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==he.Undefined;)yield e.element,e=e.next}},pR=0,$i=class{constructor(e){this.value=e,this.id=pR++}},Wi=class{constructor(e){this.options=e,this._size=0}dispose(e){var t,r;this._disposed||(this._disposed=!0,this._listeners&&(e?(this._listeners instanceof $i&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,i,o,a,s,c;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let l=new $i(t);return this._listeners?this._listeners instanceof $i?this._listeners=[this._listeners,l]:this._listeners.push(l):((i=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||i.call(n,this),this._listeners=l,(a=(o=this.options)==null?void 0:o.onDidFirstListener)==null||a.call(o,this)),(c=(s=this.options)==null?void 0:s.onDidAddListener)==null||c.call(s,this),this._size++,()=>{var d,u,p,f;if(!this._disposed){if(this._listeners instanceof $i)this._listeners.id===l.id&&(this._listeners=void 0,this._size=0,(u=(d=this.options)==null?void 0:d.onDidRemoveLastListener)==null||u.call(d));else if(this._listeners){let m=this._listeners.indexOf(l);m>=0&&(this._listeners.splice(m,1),this._size--,this._size===0&&((f=(p=this.options)==null?void 0:p.onDidRemoveLastListener)==null||f.call(p)))}}}}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(i){n(i)}}fire(e){this._listeners&&(this._listeners instanceof $i?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},Wt=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t,r=!0){var n;let i=(n=this.listeners.get(e))!=null?n:new Wi,o=c=>t(...c.args),a=i.event(o);this.listerHandlerMap.set(t,{handler:o,dispose:a}),this.listeners.set(e,i);let s=this.cachedEventQueue.get(e);if(s&&r)for(let c of s)t(...c.args)}flushCachedEvent(e){e?this.cachedEventQueue.delete(e):this.cachedEventQueue.clear()}off(e,t){let r=this.listerHandlerMap.get(t);r&&(r.dispose(),this.listerHandlerMap.delete(t))}emit(e,...t){let r=this.listeners.get(e),n=this.cachedEventQueue.get(e);n||(n=new dR,this.cachedEventQueue.set(e,n)),n.push({args:t}),r&&r.fire({event:e,args:t})}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};this.on(e,r,!1)}},Zl={};eR(Zl,{None:()=>fR,filter:()=>hR,once:()=>ig,toPromise:()=>mR});fR=()=>(console.log("[Jolibox SDK] None Event"),()=>{console.log("[Jolibox SDK] None Event dispose")});Kl=Symbol.for("Jolibox.hostEmitter"),gR=()=>{let e=new Wt;return globalThis[Kl]||(globalThis[Kl]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e),once:e.once.bind(e)}),globalThis[Kl]},_e=gR();Pa=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Wi,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let i of e.metadata.args)r.push(i.constraint);let n=e.handler;e.handler=function(...i){return vR(i,r),n(...i)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};Pa=Hh([Wh],Pa);eu=class{constructor(){this._onWillExecuteCommand=new Wi,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Wi,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new Pa,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=tR(3e4)),this._starActivation}executeCommand(e,...t){return nn(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Zl.toPromise(Zl.filter(this.registry.onDidRegisterCommand,r=>r===e))])]),this._tryExecuteCommand(e,t))})}executeCommandThowErr(e,...t){if(!this.registry.getCommand(e))throw new Error(`command '${e}' not found`);let r=this.registry.getCommand(e);this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),n}_tryExecuteCommand(e,t){let r=this.registry.getCommand(e);if(!r)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});let n=this.invokeFunction(r.handler,...t);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}invokeFunction(e,...t){let r=!1;try{return e(...t)}finally{r=!0}}};eu=Hh([Wh],eu);og=Symbol.for("Jolibox.commands")});function Ee(e,t={}){lu.emit("ERROR_REPORT",{error:e,options:t})}var lu,an,bt=x(()=>{"use strict";R();R();lu=new Wt,an=new Wt;Ee.debounce=Yi(Ee,50,{leading:!0})});var uu,wR,ag,sg,cg=x(()=>{"use strict";R();bt();uu=e=>{let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t.length%4===0?"":"=".repeat(4-t.length%4),n=atob(t+r);try{return JSON.parse(n)}catch(i){return{}}},wR=e=>{let t=JSON.stringify(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},ag=e=>{var t;try{let i=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(i!=null&&i.length){let[o,a,s]=i;return{headerJson:uu(o),payloadJson:uu(a),signature:uu(s)}}else throw"joli_source is missing"}catch(r){return Ee(new Qh(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}},sg=(e,t)=>{let r=t.split(".");if(r&&r.length===3){let n=r[0],i=wR(e),o=r[2];return`${n}.${i}.${o}`}return t}});var SR,du,lg=x(()=>{"use strict";R();SR="1.4.0",du=()=>SR});function fu(e,t){return(document==null?void 0:document.head.querySelector(`meta[name="${e}"][content="${t}"]`))!==null}var IR,ug,pu,dg,ge,ER,S,V=x(()=>{"use strict";R();cg();lg();R();IR={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:rg(),adId:ng(),pixelRatio:window.devicePixelRatio||1,platform:Zi.isAndroid?"android":Zi.isiOS?"ios":"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:du()},schema:window.location.href,platform:Zi.isAndroid?"android":Zi.isiOS?"ios":"h5"},pu=(ug=globalThis.joliboxJSCore)==null?void 0:ug.env,ge=Object.assign({},(dg=pu==null?void 0:pu())!=null?dg:IR);ER=()=>{var v,b,y,w,E,C,T,k,A,J,le;let{payloadJson:e,headerJson:t,signature:r}=ge.schema.length?ag(ge.schema):{},n=`${ge.deviceInfo.did}-${new Date().getTime()}`,o=new URL(ge.schema.length?ge.schema:window.location.href).searchParams,a=(y=(b=(v=o.get("mpId"))!=null?v:o.get("appId"))!=null?b:o.get("gameId"))!=null?y:"",s=(C=(E=(w=ge.clientSessionId)!=null?w:e==null?void 0:e.sessionId)!=null?E:o.get("sessionId"))!=null?C:n,c=!!((k=(T=e==null?void 0:e.testAdsMode)!=null?T:e==null?void 0:e.__testAdsMode)!=null?k:o.get("testAdsMode")==="true"),l=(le=(J=(A=e==null?void 0:e.joliboxEnv)!=null?A:e==null?void 0:e.__joliboxEnv)!=null?J:o.get("joliboxEnv"))!=null?le:"production",d=l==="staging",u=t==null?void 0:t.channel,f=new URL(window.location.href).searchParams,m=e==null?void 0:e.__shouldInterupt;return{get startTime(){var N;return(N=performance.timeOrigin)!=null?N:performance.timing.navigationStart},get testMode(){return d},get testAdsMode(){return c},get joliboxEnv(){return l},get joliSource(){var N,O;return(O=(N=f.get("joliSource"))!=null?N:o.get("joliSource"))!=null?O:null},get mpId(){var N;return(N=a!=null?a:e==null?void 0:e.id)!=null?N:""},get mpVersion(){var N;return(N=t==null?void 0:t.ver)!=null?N:du()},get mpType(){var N,O;return(O=(N=t==null?void 0:t.__mpType)!=null?N:e==null?void 0:e.__mpType)!=null?O:"game"},get platform(){var N;return((N=ge.platform)!=null?N:ge.deviceInfo.platform).toLowerCase()},get deviceInfo(){return ge.deviceInfo},get sdkInfo(){return ge.sdkInfo},get hostInfo(){return ge.hostInfo},get hostUserInfo(){return ge.hostUserInfo},get sessionId(){var N,O;return(O=(N=ge.clientSessionId)!=null?N:s)!=null?O:n},get channel(){return u},get webviewId(){var N;return(N=ge.webviewId)!=null?N:-1},get shouldInterupt(){return m},get from(){return e==null?void 0:e.__from},get baseApiHost(){return cu(d)},get adId(){var N;return(N=ge.deviceInfo.adId)!=null?N:ge.deviceInfo.did},get language(){return ge.deviceInfo.lang},get sdkEnvironment(){return fu("dlightek","jolibox")?"dlightek":o.get("huaweiQuick")==="true"?"huaweiQuick":fu("gamedistribution","jolibox")?"gamedistribution":fu("funmax","jolibox")?"funmax":"jolibox"},get viewport(){var G,H,qt;let N=(G=ge.deviceInfo.pixelRatio)!=null?G:1,O=(H=ge.deviceInfo.statusBarHeight)!=null?H:e==null?void 0:e.__androidStatusBarHeight,F=(qt=ge.deviceInfo.navigationBarHeight)!=null?qt:e==null?void 0:e.__androidNavigationBarHeight;return{statusBarHeight:O!==void 0?O/N:20,navigationBarHeight:F!==void 0?F/N:10}},get abTests(){var N,O;return(O=(N=ge.abValues)==null?void 0:N.split(","))!=null?O:[]},get mpInfo(){var N;return(N=ge.mpInfo)!=null?N:{mpName:"unknown"}},onEnvConfigChanged:N=>{zh(ge,N,Kh)},encodeJoliSourceQuery:N=>{var O,F;return t&&r?sg(P(P({},e),N),(O=o.get("joliSource"))!=null?O:""):(F=o.get("joliSource"))!=null?F:""},setDoExitDirectly:()=>{m=!1}}},S=ER()});var mu,fg,AR,CR,pg,kR,mg=x(()=>{"use strict";R();bt();V();R();mu=!1,fg=(e,t)=>e==null?!1:t in e,AR=e=>fg(e,"kind"),CR=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},pg=(e,t={},r)=>{var o,a,s;let n={user_id:(a=(o=S.hostUserInfo)==null?void 0:o.uid)!=null?a:"",device_id:(s=S.deviceInfo.did)!=null?s:"",timestamp:Date.now(),tag:CR(e.name)},i=B(P({},n),{env:t.environment,isFromUser:r});r?an.emit("GLOBAL_USER_ERROR",e,i):an.emit("GLOBAL_ERROR",e,i)},kR=e=>fg(e,"kind")&&e.kind==="USER_ERROR";lu.on("ERROR_REPORT",({error:e,options:t})=>{if(mu)return;mu=!0;let r=AR(e)&&e.raw?e.raw:e;try{let n=kR(e);pg(e,t,n)}catch(n){let i=n instanceof Error?n.message:String(n),o=new iu(`${i}, origin error: ${r.message}`);$t.error(o),pg(new iu(o.message),{environment:t.environment},!1)}finally{mu=!1}})});var je,hu,Ur=x(()=>{"use strict";bt();R();bt();je=(e,t)=>{var r,n;return new Xi((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},hu=e=>new Yh(e)});var hg=x(()=>{"use strict";mg();Ur();R();ue();an.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};M("trackAsync",{event:"reportJsError",data:r})});an.on("GLOBAL_USER_ERROR",(e,t)=>{$t.log("UserError",e,t)})});var gu=x(()=>{"use strict"});function gg(e,t){let r=(n,i,o)=>{let l=i!=null?i:{},{eventType:a}=l,s=Qe(l,["eventType"]),c=B(P({tag:n,eventType:o!=null?o:a!=null?a:W.Other},t),{extra:P({},s)});n=="globalJsError"?Ee(new Zh(JSON.stringify(c))):e("systemLog",c,S.webviewId)};return r.debounce=Yi(r,500,{leading:!0}),r}function vg(e){let t=(r,n,i)=>{var s;let o=(s=i&&JSON.stringify(i))!=null?s:0,a={speed_value_type:r,total_duration:n};o&&Object.assign(a,{extra:o}),e("joliboxSpeedAnalysis",a)};return t.debounce=Yi(t,500,{leading:!0}),t}var yg=x(()=>{"use strict";R();R();bt();V()});function bg(e,t){let r=gg(e,t),n=vg(r);return{track:r,trackPerformance:n}}var _g=x(()=>{"use strict";yg()});var wg=x(()=>{"use strict";V();R();R()});var Sg=x(()=>{"use strict";_g();gu();wg()});var La,Ig=x(()=>{"use strict";La=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.reportCount=0;this.notifyIframeGameEvent=(t,r)=>{window.parent&&window.parent.postMessage({type:t,data:r},"*")};this.playGame=t=>{this.reportCount++,(this.reportCount<=3||(this.reportCount-3)%3===0)&&(this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration:t}),this.notifyIframeGameEvent("JOLIBOX_GAME_PLAY",{duration:t}))};this.timer=this.createRAFTimer(t=>{this.playGame(t)});this.interval=r!=null?r:5*1e3,t.on("visible",n=>{this.visible=n})}start(t){this.reporter({event:"OPEN_GAME",params:{timestamp:Date.now(),duration:t!=null?t:0}}),this.tracker("OpenGame",{duration:t!=null?t:0}),this.notifyIframeGameEvent("JOLIBOX_GAME_OPEN",{duration:t!=null?t:0}),this.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.notifyIframeGameEvent("JOLIBOX_GAME_CLOSE",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,i,o=!1,a=0,s=()=>{if(!o)return;let f=Date.now(),m=f-r;m>=this.interval&&(this.visible&&(a+=Math.min(m,this.interval+1e3),t(a)),r=f),n=requestAnimationFrame(s)},c=()=>{d(),r=Date.now(),i=window.setInterval(()=>{if(!o)return;let f=Date.now();f-r>=this.interval&&(r=f)},this.interval)},l=()=>{u(),r=Date.now(),n=requestAnimationFrame(s)},d=()=>{n&&(cancelAnimationFrame(n),n=0)},u=()=>{i&&(clearInterval(i),i=0)};this.eventEmitter.on("visible",f=>{o&&(console.log("visible",f),f?l():c())});let p=this.visible;return{start(){o||(o=!0,p?l():c())},stop(){o=!1,d(),u()}}}}});function qa(e,t,r){var c,l,d;let n=new Map,i=(c=r==null?void 0:r.baseUrl)!=null?c:Bn(S.testMode),o=(l=r==null?void 0:r.type)!=null?l:"public",a=(d=r==null?void 0:r.defaultHeaders)!=null?d:{};return be("onRequestTaskStateChange",u=>{if(typeof u.requestTaskId!="string")return;let p=n.get(u.requestTaskId);if(p)if(u.state==="success"){let f=u,{requestTaskId:v,state:b}=f,y=Qe(f,["requestTaskId","state"]);u.statusCode===200?p.resolve(y):p.reject(y),n.delete(v)}else if(u.state==="fail"){let m=u,{requestTaskId:v,state:b}=m,y=Qe(m,["requestTaskId","state"]);p.reject(y),n.delete(v)}else $t.warn("onRequestTaskStateChange unknown event",u)}),_e.on("onLoginComplete",({isLogin:u,token:p})=>{o!=="public"&&u&&p&&(a["X-JOLI-TOKEN"]=p)}),(f,...m)=>g(this,[f,...m],function*(u,p={}){let v=Date.now(),b=xR(u,B(P({},p),{baseUrl:i})),{method:y="GET",responseType:w="text",dataType:E="json",timeout:C,enableCache:T=!1,appendHostCookie:k=!0}=p,A=Object.assign({"content-type":"application/json"},a,p.header),J={url:b,method:y,header:A,enableCache:T,responseType:w,appendHostCookie:k};if(y=="POST"||y=="PUT"){let G=PR(p.data,A["content-type"]);J.data=G}C&&Object.assign(J,{timeout:C});let{data:{requestTaskId:le}}=M(e,J);if(typeof le!="string")throw je({code:-1,msg:"requestTaskId is not a string"});let{resolve:N,reject:O,promise:F}=new ut;n.set(le,{resolve:N,reject:O});try{let G=yield F,{data:H}=G;return E==="json"&&typeof H=="string"&&(H=TR(H)),{url:b,timeout:C,method:y,response:B(P({},G),{data:H})}}catch(G){let H=G;if(on(H)){let{errMsg:qt,prefetchDetail:ph,isPrefetch:Ol,errNo:ba}=H;zi(qt)&&Ee(je({code:-1,msg:qt},{errNo:ba,errMsg:qt}))}throw G}})}function TR(e){try{return JSON.parse(e.trim())}catch(t){return e}}function PR(e,t="application/json"){let r=t.toLowerCase();return e===void 0?"":typeof e=="string"||e instanceof ArrayBuffer?e:r.includes("application/x-www-form-urlencoded")||r.includes("application/json")||typeof e=="object"?JSON.stringify(e):String(e)}var xR,vu=x(()=>{"use strict";R();ue();bt();Ur();V();xR=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,i=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${i?`?${i}`:""}`:`${e}${i?`?${i}`:""}`}});var yu,Eg,K,dt=x(()=>{"use strict";vu();V();R();yu={};(Eg=S.hostUserInfo)!=null&&Eg.token&&(yu["x-joli-token"]=S.hostUserInfo.token);S.joliSource&&(yu["x-joli-source"]=S.joliSource);K=qa("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:Bn(S.testMode),defaultHeaders:yu})});function Ag(e){let t=ou.config[e];return t||(t={},ou.config[e]=t),(r,n)=>{if(t[r]){$t.warn(`[can i use] ${r} already registered`);return}t[r]=P({},n)}}var Cg=x(()=>{"use strict";R()});function bu(e){kg=e}function Ua(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>Ua(t)):Object.keys(e).reduce((t,r)=>(t[r]=Ua(e[r]),t),{})}function dr(e){return typeof e=="number"}function _u(e){let t=wu(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function wu(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var kg,ke,Ma,Fa,ja,Ba,Gn,Ga,Ja,Ha,Va,$a,Wa,za,Ka,Ya,Qa,Xa,Za,Su=x(()=>{"use strict";kg=!1;ke=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(kg)if(typeof t=="string")this.errors.push(t);else{let r=`${this.path} should be ${t.expect}`;this._optional&&t.expect!=="undefined"?r+=" or undefined, ":r+=", ",r+=`but got ${_u(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return Ua(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:Ua(this._default)}optional(){return this._optional=!0,this}};Ma=class extends ke{validate(t){return this._optional&&t===void 0?!0:dr(t)?dr(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):dr(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):dr(this._greater)&&t<=this._greater?this.fail(`the value of ${this.path} should be greater than ${this._greater}`):this._isInt&&t!==Math.floor(t)?this.fail(`the value of ${this.path} should be integer but got ${t}`):!0:this.fail({expect:"number",actual:t})}min(t){return this._min=t,this}max(t){return this._max=t,this}isInt(t){return this._isInt=t,this}greater(t){return this._greater=t,this}},Fa=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},ja=class extends ke{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(dr(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(dr(this._minLength)&&t.length<this._minLength)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minLength}`);if(typeof this._pattern=="string"){if(!new RegExp(this._pattern).test(t))return this.fail(`${this.path} should match pattern "${this._pattern}"`)}else if(this._pattern&&!this._pattern.test(t))return this.fail(`${this.path} should match pattern "${this._pattern.toString()}"`);return!0}minLength(t){return this._minLength=t,this}maxLength(t){return this._maxLength=t,this}pattern(t){return this._pattern=t,this}},Ba=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},Gn=class extends ke{validate(t){return!0}},Ga=class extends ke{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},Ja=class extends ke{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},Ha=class extends ke{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},Va=class extends ke{constructor(...t){super(),this._items=t}validate(t){if(this._optional&&t===void 0)return!0;if(!this._items.includes(t)){let r=this._items.map(n=>JSON.stringify(n)).join(", ");return this.fail(`expect ${this.path} to be one of ${r}, but got ${_u(t)}`)}return!0}},$a=class extends ke{constructor(r){super();this._item=r}validate(r){if(this._optional&&r===void 0)return!0;if(!Array.isArray(r))return this.fail({expect:"array",actual:r});if(dr(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(dr(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(dr(this._length)&&r.length!==this._length)return this.fail(`the length of ${this.path} should be equal to ${this._length}`);let n=this._item;if(!n)return!0;let i=!0;if(r.forEach((o,a)=>{if(n.path=`${this.path}[${a}]`,n.errors=this.errors,o===void 0&&n.hasDefault){r[a]=n.defaultValue;return}n.validate(o)||(n.hasFallback?r[a]=n.fallbackValue:i=!1)}),this._uniqueItems){let o=new Map;for(let a in r)o.has(r[a])?i=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${o.get(r[a])}] and ${this.path}[${a}] are identical)`):o.set(r[a],a)}return i}minItems(r){return this._minItems=r,this}maxItems(r){return this._maxItems=r,this}uniqueItems(){return this._uniqueItems=!0,this}length(r){return this._length=r,this}},Wa=class extends ke{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(wu(r)!=="object")return this.fail({expect:"object",actual:r});let i=r,o=this._value;o.errors=this.errors;let a=!0;for(let s in i){let c=i[s];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(s)?o.path=`${this.path}.${s}`:o.path=`${this.path}["${s}"]`,!(c===void 0&&o._optional)){if(c===void 0&&o.hasDefault){i[s]=o.defaultValue;continue}o.validate(c)||(o.hasFallback?i[s]=o.fallbackValue:a=!1)}}return a}},za=class extends ke{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(wu(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,i=!0;for(let o in this._object){let a=n[o],s=this._object[o];if(s.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(o)?s.path=`${this.path}.${o}`:s.path=`${this.path}["${o}"]`,!(s._optional&&a===void 0)){if(a===void 0&&s.hasDefault){n[o]=s.defaultValue;continue}s.validate(a)||(s.hasFallback?n[o]=s.fallbackValue:i=!1)}}return i}},Ka=class extends ke{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:_u(this.value),actual:r}):!0}},Ya=class extends ke{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,i=this._items.length;for(let o=0;o<i;o++){let a=this._items[o];if(a.errors=[],a.path=this.path,!a.validate(t))r.push(a.errors.join("; "));else if(!n){n=!0;break}}if(!n){let o=r.join(`
2
2
  or `);this.errors.push(o)}return n}},Qa=class extends ke{constructor(...t){super(),this._items=t;let r=0,n=t.length-1;for(;n>=0;n--){let i=t[n];if(i._optional||i.hasDefault)r+=1;else break}this._minItems=t.length-r}validate(t){if(t===void 0&&this._optional)return!0;if(!Array.isArray(t))return this.fail({expect:"array",actual:t});if(t.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);let r=!0;return this._items.forEach((n,i)=>{if(n.path=`${this.path}[${i}]`,n.errors=this.errors,t[i]===void 0&&n.hasDefault){t[i]=n.defaultValue;return}n.validate(t[i])||(n.hasFallback?t[i]=n._fallback:r=!1)}),r}},Xa=class extends ke{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},Za=class extends ke{constructor(t){super(),this._ctor=t}validate(t){return t===void 0&&this._optional||t instanceof this._ctor?!0:this.fail({expect:`typedarray of ${this._ctor.name}`,actual:t})}}});function Iu(e,t,r="param"){if(e.errors=[],e.path=r,bu(!0),!e.validate(t)){let n=e.errors.join(`
3
3
  `);throw e.errors.length=0,bu(!1),new TypeError(n)}}var I,Eu=x(()=>{"use strict";Su();Su();I={object(e){return new za(e)},array(e){return new $a(e)},tuple(...e){return new Qa(...e)},literal(e){return new Ka(e)},or(...e){return new Ya(...e)},symbol(){return new Ba},record(e){return new Wa(e)},function(){return new Ha},boolean(){return new Fa},string(){return new ja},number(){return new Ma},undefined(){return new Ga},null(){return new Ja},unknown(){return new Gn},any(){return new Gn},as(){return new Gn},arraybuffer(){return new Xa},enum(...e){return new Va(...e)},typedarray(e){return new Za(e)}}});var es,xg,Tg=x(()=>{"use strict";R();bt();Eu();Ur();es=1,xg=e=>{function t(n,i){return(...o)=>{var u,p,f,m;let a=Date.now(),s={method:n,trace_id:es};es+=1;let c="SUCCESS",l=`${n}:ok`,d=0;try{if(i.paramsSchema)try{Iu(i.paramsSchema,o,"params")}catch(w){throw hu(`${n}:fail ${w.message}`)}let v=i.implement(...o),b=v,y=`${n}:ok`;if(v&&"code"in v){let{code:w,data:E,message:C}=v;c=w,b=E,y=C}return{code:c,message:y,data:b}}catch(v){let b=v;d=(p=(u=b.code)!=null?u:b.errNo)!=null?p:2e3,c="FAILURE";let y=(m=(f=b.message)!=null?f:b.errMsg)!=null?m:`${v}`;return l=`${n}:${c} ${y.replace(/^\S+:(fail|cancel)\s?/,"")}`,Ee(new Xi(l,d)),{code:c,message:l}}finally{let v=Date.now()-a}}}function r(n,i){return(...o)=>g(this,null,function*(){var p,f,m,v;let a=Vh(o)?o:[o],s=Date.now(),c={method:n,trace_id:es};es+=1;let l=`${n}:ok`,d="SUCCESS",u={code:d,message:l};try{if(i.paramsSchema)try{Iu(i.paramsSchema,a,"params")}catch(w){throw hu(w.message)}let y=yield i.implement(...a);if(y&&"code"in y){let{code:w,data:E,message:C}=y;d=w,l=C,y=E}return Object.assign(u,{code:d,message:l,data:y}),u}catch(b){let y=b,w=(f=(p=y.code)!=null?p:y.errNo)!=null?f:2e3;d="FAILURE";let E=(v=(m=y.message)!=null?m:y.errMsg)!=null?v:`${b}`,C=`${n}:${d} ${E.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(u,{code:d,message:C}),Ee(new Xi(C,w)),u}finally{let b=Date.now()-s}})}return{createAPI:r,createSyncAPI:t}}});var xe,ts=x(()=>{"use strict";V();ue();({canIUseNative:xe}=xa(()=>S.sdkInfo.nativeSDKVersionCode,()=>S.platform))});function Au(e){if(typeof e!="number"||e<=0)return"0.0.0";let t=e.toString(),r=0,n=0,i=0;return t.length>=1&&(r=parseInt(t.substring(0,1),10)),t.length>=3&&(n=parseInt(t.substring(1,3),10)),t.length>=5&&(i=parseInt(t.substring(3,5),10)),`${r}.${n}.${i}`}var Pg=x(()=>{"use strict"});var Y,Q,D,Je=x(()=>{"use strict";Cg();_t();Tg();Eu();ts();Pg();({createAPI:Y,createSyncAPI:Q}=xg(j)),D=Ag("native")});function Og(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return t==="array"&&(t="object"),qR.includes(t)?t:""}function Rg(e,t){try{switch(t){case"string":return e;case"object":return JSON.parse(e);case"number":return parseFloat(e);case"boolean":return e==="true";default:return""}}catch(r){return""}}function Ng(e,t){try{switch(t){case"string":case"number":case"boolean":return`${e}`;case"object":return JSON.stringify(e);default:return""}}catch(r){return""}}var rs,RR,NR,DR,LR,$6,W6,qR,Mr,wt,eo=x(()=>{"use strict";Je();ue();R();dt();V();rs=z(),RR=Y("getLocalStorage",{paramsSchema:I.tuple(I.string()),implement(e){return g(this,null,function*(){let{response:t}=yield K(`/api/games/user-storage/${S.mpId}`,{method:"GET",responseType:"json",appendHostCookie:!0,query:{key:e}}),{data:{code:r,message:n,data:i}}=yield t;if(r==="SUCCESS")return{code:r,message:n,data:i==null?void 0:i.value};try{let{data:{data:o,dataType:a}}=yield me("getLocalStorageAsync",{key:e}),s=Rg(o,a);return{code:r,message:`${n}. fallback to native`,data:s}}catch(o){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});rs.registerCommand("StorageSDK.getItem",RR);D("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});NR=Y("setStorage",{paramsSchema:I.tuple(I.string(),I.or(I.string(),I.boolean(),I.number())),implement(e,t){return g(this,null,function*(){let r=S.mpId,n=typeof t=="string"?t:String(t),{response:i}=yield K(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:o,message:a}}=i,s=Og(t),c=Ng(t,s);return yield me("setLocalStorageAsync",{key:e,data:c,dataType:s}),o=="SUCCESS"?{code:o,message:a}:{code:o,message:`${a}. fallback to native`}})}});rs.registerCommand("StorageSDK.setItem",NR);D("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});DR=Y("removeStorage",{paramsSchema:I.tuple(I.string()),implement(e){return g(this,null,function*(){let t=S.mpId,{response:r}=yield K(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:i}}=r;return yield me("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:i}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});rs.registerCommand("StorageSDK.removeItem",DR);D("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});LR=Y("clearStorage",{implement(){return g(this,null,function*(){let e=S.mpId,{response:t}=yield K(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});me("clearLocalStorageAsync");let{data:{code:r,message:n}}=t;return r==="SUCCESS"?{code:r,message:n}:{code:r,message:`${n}.fallback to native`}})}});rs.registerCommand("StorageSDK.clear",LR);D("storage.clear",{version:"1.0.0"});$6=Y("getStorageInfo",{implement(){return g(this,null,function*(){let{data:e}=yield me("getStorageInfoAsync");return e})}});D("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});W6=Q("getStorageInfoSync",{implement(){return M("getStorageInfoSync")}}),qR=["string","number","boolean","object",""];Mr=Y("getGlobalStorage",{paramsSchema:I.tuple(I.string()),implement(e){return g(this,null,function*(){try{let{data:{data:t,dataType:r}}=yield me("getGlobalStorageAsync",{key:e});return{code:"SUCCESS",message:"success",data:Rg(t,r)}}catch(t){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get global storage failed",data:null}}})}}),wt=Y("setGlobalStorage",{paramsSchema:I.tuple(I.string(),I.or(I.string(),I.boolean(),I.number(),I.array())),implement(e,t){return g(this,null,function*(){try{let r=Og(t),n=Ng(t,r);return yield me("setGlobalStorageAsync",{key:e,data:n,dataType:r}),{code:"SUCCESS",message:"success"}}catch(r){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] set global storage failed"}}})}})});var Dg,ns,Lg=x(()=>{"use strict";V();Ig();R();dt();ue();eo();ts();Dg="REPORT_FIRST_OPEN_GAME",ns=class extends La{constructor(r,n,i){super(n,i);this.started=!1;this.gameId=S.mpId,this.sessionId=S.sessionId,this.track=r,this.taskUrl=Bn(S.testMode)+"/api/base/app-event"}reporter(r){return g(this,null,function*(){let{event:n,params:i,extraParams:o}=r,a={eventType:n,gameInfo:P({gameId:this.gameId,sessionId:this.sessionId},i)};o&&Object.assign(a,o),yield this.createTask(a)})}reportToNative(r){return g(this,null,function*(){let{event:n,params:i}=r;yield me("userTrackAsync",{event:n,params:P({},i),gameId:this.gameId})})}tracker(r,n=null){this.track(r,n)}start(r){if(this.started){console.info("[JoliboxSDK] taskTrakcer has started");return}super.start(r),this.tryReportOpenGamePlus(),this.started=!0}tryReportOpenGamePlus(){Mr(Dg).then(r=>{qr(r.data)&&r.data&&this.tracker("OpenGame_2Plus"),wt(Dg,!0)})}createTask(r){return xe("sendServerEventAsync")?me("sendServerEventAsync",{payload:r}):S.platform==="android"?K("/api/base/app-event",{method:"POST",data:r}):me("trackAppEventAsync",{url:this.taskUrl,body:JSON.stringify(r)})}}});var jg={};hh(jg,{nativeTaskEmitter:()=>to,taskTracker:()=>ot,track:()=>j,trackPerformance:()=>Mg});var UR,qg,Ug,j,Mg,Fg,to,ot,_t=x(()=>{"use strict";hg();R();gu();Sg();V();Lg();ue();UR=(e,t,r)=>{var l,d,u,p,f,m,v;let n=t,i=on(n.extra)?n.extra:zi(n.extra)?JSON.parse(n.extra):{},{mpName:o,mpVersion:a}=(l=S.mpInfo)!=null?l:{},s=P(P(B(P({},i),{mp_id:(d=n.mp_id)!=null?d:"",mp_version:(u=n.mp_version)!=null?u:"",session_id:S.sessionId,user_id:(f=(p=S.hostUserInfo)==null?void 0:p.uid)!=null?f:""}),o?{mp_name:o}:{}),a?{mp_info_version:a}:{}),c=(m=n.eventType)!=null?m:W.Other;M("trackAsync",{event:(v=t.tag)!=null?v:e,data:s,webviewId:r,eventType:c})},{track:j,trackPerformance:Mg}=bg(UR,{type:au.AppSDK,platform:"native",jssdk_version:(Ug=(qg=S.sdkInfo)==null?void 0:qg.jssdkVersion)!=null?Ug:"1.0.0",mp_id:S.mpId,mp_version:S.mpVersion}),Fg=z();Fg.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{Mg(e,t,r)});Fg.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{j(e,t)});to=new Wt,ot=new ns(j,to)});function Bg(){let e=null,t=null,r=window.fetch,n=()=>{t=document.createElement("meta"),t.setAttribute("name","viewport"),t.setAttribute("content","viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"),t.setAttribute("data-jolibox-sdk","viewport-meta"),e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let s=`
4
4
  html[data-jolibox-root] {
package/esbuild.config.js CHANGED
@@ -65,7 +65,8 @@ function build(format) {
65
65
  target: ['es2015', 'safari14'],
66
66
  format: format,
67
67
  minify: true,
68
- loader: {
68
+ external: ['@jolibox/native-bridge'], // 排除 native-bridge,H5 不需要
69
+ loader: {
69
70
  '.ts': 'ts',
70
71
  '.tsx': 'tsx',
71
72
  '.js': 'jsx'
@@ -1,9 +1,9 @@
1
1
  Invoking: npm run clean && npm run build:esm && tsc
2
2
 
3
- > @jolibox/implement@1.3.9 clean
3
+ > @jolibox/implement@1.4.0 clean
4
4
  > rimraf ./dist
5
5
 
6
6
 
7
- > @jolibox/implement@1.3.9 build:esm
7
+ > @jolibox/implement@1.4.0 build:esm
8
8
  > BUILD_VERSION=$(node -p "require('./package.json').version") node esbuild.config.js --format=esm
9
9
 
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@jolibox/implement",
3
3
  "description": "This project is Jolibox JS-SDk implement for Native && H5",
4
- "version": "1.3.9",
4
+ "version": "1.4.0",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
- "@jolibox/common": "1.3.9",
10
- "@jolibox/types": "1.3.9",
11
- "@jolibox/native-bridge": "1.3.9",
12
- "@jolibox/ads": "1.3.9",
9
+ "@jolibox/common": "1.4.0",
10
+ "@jolibox/types": "1.4.0",
11
+ "@jolibox/native-bridge": "1.4.0",
12
+ "@jolibox/ads": "1.4.0",
13
13
  "localforage": "1.10.0",
14
- "@jolibox/ui": "1.3.9",
14
+ "@jolibox/ui": "1.4.0",
15
15
  "web-vitals": "4.2.4"
16
16
  },
17
17
  "devDependencies": {