@jolibox/implement 1.1.10 → 1.1.11-beta.10

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.
Files changed (40) hide show
  1. package/.rush/temp/package-deps_build.json +22 -18
  2. package/.rush/temp/shrinkwrap-deps.json +1 -1
  3. package/dist/common/ads/anti-cheating.d.ts +24 -51
  4. package/dist/common/ads/anti-cheating.test.d.ts +1 -0
  5. package/dist/common/ads/index.d.ts +4 -9
  6. package/dist/common/context/index.d.ts +4 -0
  7. package/dist/common/context/url-parse.d.ts +8 -1
  8. package/dist/index.js +3 -3
  9. package/dist/index.native.js +110 -4
  10. package/dist/native/api/index.d.ts +1 -0
  11. package/dist/native/api/navigate.d.ts +1 -0
  12. package/dist/native/bootstrap/bridge.d.ts +1 -1
  13. package/dist/native/js-bridge/const.d.ts +1 -0
  14. package/dist/native/js-bridge/publish.d.ts +1 -0
  15. package/dist/native/js-bridge/subscribe.d.ts +2 -0
  16. package/dist/native/js-bridge/types.d.ts +4 -0
  17. package/dist/native/js-core/jolibox-js-core.d.ts +8 -3
  18. package/dist/native/ui/retention.d.ts +1 -0
  19. package/implement.build.log +2 -2
  20. package/package.json +4 -3
  21. package/src/common/ads/anti-cheating.test.ts +79 -0
  22. package/src/common/ads/anti-cheating.ts +228 -139
  23. package/src/common/ads/index.ts +33 -20
  24. package/src/common/context/index.ts +19 -3
  25. package/src/common/context/url-parse.ts +24 -1
  26. package/src/native/api/ads.ts +7 -0
  27. package/src/native/api/index.ts +1 -0
  28. package/src/native/api/lifecycle.ts +16 -4
  29. package/src/native/api/navigate.ts +61 -0
  30. package/src/native/bootstrap/bridge.ts +10 -1
  31. package/src/native/bootstrap/index.ts +32 -2
  32. package/src/native/js-bridge/const.ts +2 -0
  33. package/src/native/js-bridge/js-bridge.ts +7 -2
  34. package/src/native/js-bridge/publish.ts +44 -0
  35. package/src/native/js-bridge/subscribe.ts +25 -1
  36. package/src/native/js-bridge/types.ts +10 -0
  37. package/src/native/js-core/jolibox-js-core.ts +30 -26
  38. package/src/native/types/global.d.ts +1 -0
  39. package/src/native/types/native-method-map.d.ts +29 -0
  40. package/src/native/ui/retention.ts +152 -0
@@ -1,4 +1,4 @@
1
- var ds=Object.create;var Re=Object.defineProperty,us=Object.defineProperties,ms=Object.getOwnPropertyDescriptor,ps=Object.getOwnPropertyDescriptors,fs=Object.getOwnPropertyNames,_e=Object.getOwnPropertySymbols,hs=Object.getPrototypeOf,yt=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable;var ir=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))yt.call(t,r)&&ir(e,r,t[r]);if(_e)for(var r of _e(t))ar.call(t,r)&&ir(e,r,t[r]);return e},x=(e,t)=>us(e,ps(t));var ae=(e,t)=>{var r={};for(var n in e)yt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&_e)for(var n of _e(e))t.indexOf(n)<0&&ar.call(e,n)&&(r[n]=e[n]);return r};var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),lr=(e,t)=>{for(var r in t)Re(e,r,{get:t[r],enumerable:!0})},gs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of fs(t))!yt.call(e,s)&&s!==r&&Re(e,s,{get:()=>t[s],enumerable:!(n=ms(t,s))||n.enumerable});return e};var dr=(e,t,r)=>(r=e!=null?ds(hs(e)):{},gs(t||!e||!e.__esModule?Re(r,"default",{value:e,enumerable:!0}):r,e));var y=(e,t,r)=>new Promise((n,s)=>{var o=c=>{try{a(r.next(c))}catch(l){s(l)}},i=c=>{try{a(r.throw(c))}catch(l){s(l)}},a=c=>c.done?n(c.value):Promise.resolve(c.value).then(o,i);a((r=r.apply(e,t)).next())});function vs(e){return!!(e!=null&&e.__nativeBuffers__)}function Te(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!vs(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 s;n.value?s=n.value:n.base64&&(s=ys(n.base64)),typeof s!="undefined"&&s instanceof ArrayBuffer&&(e[n.key]=s)}}return e}function ur(e={},t=!1){let r=e,n=[];for(let[s,o]of Object.entries(r))if(o!==void 0&&o instanceof ArrayBuffer&&o.byteLength!==void 0){let i=t?{value:o,key:s}:{base64:bs(o),key:s};n.push(i),delete r[s]}return n.length>0&&(r.__nativeBuffers__=n),r}var ys,bs,bt=h(()=>{"use strict";ys=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let s=0;s<r;s++)n[s]=t.charCodeAt(s);return n.buffer};bs=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let s=0;s<n;s++)t+=String.fromCharCode(r[s]);return btoa(t)}});function Es(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function ce(e){return typeof e=="string"}function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function hr(e){return typeof e=="object"&&Array.isArray(e)}function gr(e){return e===!0||e===!1}function ws(e){return typeof e>"u"}function Ss(e){return ws(e)||e===null}function vr(e){return typeof e=="function"}function yr(e){return M(e)&&vr(e.then)}function br(e){let t=e,r=null,n=function(...s){return r||(r=new t(...s)),r};return n.prototype=t.prototype,n}function Tr(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(s,o){for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=s[i],c=o[i],l=r(a,c,i,s,o);l!==void 0?s[i]=l:mr(c)&&mr(a)?s[i]=n(g({},a),c):Array.isArray(c)&&Array.isArray(a)?s[i]=[...a,...c]:s[i]=c}return s}return n(e,t)}function mr(e){return e&&typeof e=="object"&&e.constructor===Object}function kr(e,t){if(Array.isArray(e))return e.concat(t)}function we(e,t,r={}){let n=null,s,o,i,{leading:a=!1,trailing:c=!0}=r,l=()=>(i=e.apply(o,s),s=void 0,o=void 0,i),u=function(...m){s=m,o=this;let p=a&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,c&&!p&&l()},t),p)return l()};return u.cancel=()=>{n&&clearTimeout(n),n=null,s=o=void 0},u.flush=()=>{if(n)return clearTimeout(n),n=null,l()},u}function _s(e,t){return(...r)=>t(e,...r)}function Oe(e){return t=>_s(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(s){e(new As(`${s}`))}})}function ke(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function Js(e){return new Promise(t=>Nr(e)(t))}function Nr(e){return(t,r=null)=>{let n=!1;return e(s=>{if(!n)return n=!0,t.call(r,s)},null)}}function Hs(e,t){return(r=>{let n,s={onWillAddFirstListener(){n=r(o.fire,o)}},o=new Ee(s);return o.event})((r,n=null)=>e(s=>t(s)&&r.call(n,s),null))}function Vs(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ks(e[n],t[n])}function Ks(e,t){if(ce(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(vr(t)){try{if(e instanceof t)return}catch(r){}if(!Ss(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 O(){if(globalThis[kt])return globalThis[kt];let e=new Ce,t=new wt,r={registerCommand(n,s,o){e.registerCommand({id:n,handler:s,metadata:o})},executeCommand(n,...s){return t.executeCommand(n,...s)},excuteCommandSync(n,...s){return t.executeCommandThowErr(n,...s)}};return globalThis[kt]=r,r}var pr,Ts,ks,fr,ne,Is,St,le,Er,wr,As,Sr,Ir,Ar,_r,Rr,Se,Ne,It,j,xr,Rs,At,xs,_t,Ps,Cs,xe,Ns,Os,Fs,Pr,Rt,Ds,Us,Ms,Cr,Q,_,Ls,Bs,Pe,Ee,z,Et,js,Tt,$s,X,Ce,wt,kt,w=h(()=>{"use strict";pr=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,ks=(e,t)=>{for(var r in t)pr(e,r,{get:t[r],enumerable:!0})},fr=(e,t,r,n)=>{for(var s=n>1?void 0:n?Ts(t,r):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(s=(n?i(t,r,s):i(s))||s);return n&&s&&pr(t,r,s),s};ne=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))}})}};Is=(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))(Is||{}),St=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}},le=class extends St{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},Er=class extends St{constructor(){super(...arguments),this.kind="USER_ERROR"}},wr=class extends Er{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},As=class extends Er{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))}},Sr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},Ir=class extends le{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},Ar=class extends le{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},_r=class extends le{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},Rr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Se=class extends St{constructor(e,t,r,n,s){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),s&&(this.priority=s)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},Ne=class extends le{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}},It=class extends le{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};j={log:ke("log"),warn:ke("warn"),info:ke("info"),error:ke("error"),debug:ke("debug")};Object.assign(globalThis,{logger:j});xr=Symbol.for("Jolibox.canIUseMap"),Rs={};globalThis[xr]=Rs;At={get config(){return globalThis[xr]}},xs=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(xs||{}),_t=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(_t||{}),Ps=(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))(Ps||{}),Cs=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),xe={isiOS: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:navigator.userAgent.includes("Android"),isMac:navigator.userAgent.includes("Mac"),isFacebook:navigator.userAgent.includes("FB_IAB"),isPC:!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},Ns=()=>xe.isiOS?"iOS":xe.isAndroid?"Android":xe.isMac?"Mac":xe.isFacebook?"Facebook":"PC",Os="device_id",Fs="advertising_id",Pr=e=>(localStorage.getItem(e)||localStorage.setItem(e,Cs()),localStorage.getItem(e)),Rt=()=>Pr(Os),Ds=()=>Pr(Fs),Us=e=>e.charAt(0).toUpperCase()+e.slice(1),Ms=()=>{var t;let e=new URLSearchParams(window.location.search);return Us((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},Cr=e=>{let t="JoliboxWebSDK",r=Ns(),n=navigator.language,s=Rt(),o=Ds();return`${t} (${Ms()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${s} adid/${o} version/${e||""}`},_=(Q=class{constructor(t){this.element=t,this.next=Q.Undefined,this.prev=Q.Undefined}},Q.Undefined=new Q(void 0),Q),Ls=class{constructor(){this._first=_.Undefined,this._last=_.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===_.Undefined}clear(){let e=this._first;for(;e!==_.Undefined;){let t=e.next;e.prev=_.Undefined,e.next=_.Undefined,e=t}this._first=_.Undefined,this._last=_.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new _(e);if(this._first===_.Undefined)this._first=r,this._last=r;else if(t){let s=this._last;this._last=r,r.prev=s,s.next=r}else{let s=this._first;this._first=r,r.next=s,s.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==_.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==_.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==_.Undefined&&e.next!==_.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===_.Undefined&&e.next===_.Undefined?(this._first=_.Undefined,this._last=_.Undefined):e.next===_.Undefined?(this._last=this._last.prev,this._last.next=_.Undefined):e.prev===_.Undefined&&(this._first=this._first.next,this._first.prev=_.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==_.Undefined;)yield e.element,e=e.next}},Bs=0,Pe=class{constructor(e){this.value=e,this.id=Bs++}},Ee=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 Pe&&(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 s,o,i,a,c,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new Pe(t);this._listeners?this._listeners instanceof Pe?this._listeners=[this._listeners,n]:this._listeners.push(n):((o=(s=this.options)==null?void 0:s.onWillAddFirstListener)==null||o.call(s,this),this._listeners=n,(a=(i=this.options)==null?void 0:i.onDidFirstListener)==null||a.call(i,this)),(l=(c=this.options)==null?void 0:c.onDidAddListener)==null||l.call(c,this),this._size++}),this._event}_deliver(e,t){var n;if(!e)return;let r=((n=this.options)==null?void 0:n.onListenerError)||Error.constructor;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}fire(e){this._listeners&&(this._listeners instanceof Pe?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},z=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var o;let r=(o=this.listeners.get(e))!=null?o:new Ee,n=i=>t(...i.args);this.listerHandlerMap.set(t,n),r.event(n),this.listeners.set(e,r);let s=this.cachedEventQueue.get(e);if(s)for(;s.size>0;)r.fire(g({event:e},s.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Ls,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},Et={};ks(Et,{None:()=>js,filter:()=>Hs,once:()=>Nr,toPromise:()=>Js});js=()=>{console.log("[Jolibox SDK] None Event")};Tt=Symbol.for("Jolibox.hostEmitter"),$s=()=>{let e=new z;return globalThis[Tt]||(globalThis[Tt]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[Tt]},X=$s();Ce=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Ee,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 s of e.metadata.args)r.push(s.constraint);let n=e.handler;e.handler=function(...s){return Vs(s,r),n(...s)}}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}};Ce=fr([br],Ce);wt=class{constructor(){this._onWillExecuteCommand=new Ee,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Ee,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new Ce,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=Es(3e4)),this._starActivation}executeCommand(e,...t){return y(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),Et.toPromise(Et.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}}};wt=fr([br],wt);kt=Symbol.for("Jolibox.commands")});function D(e,t={}){xt.emit("ERROR_REPORT",{error:e,options:t})}var xt,de,V=h(()=>{"use strict";w();w();xt=new z,de=new z;D.debounce=we(D,50,{leading:!0})});function Fe(e,t){return`[${e}]:${t}`}var ue,Pt,se=h(()=>{"use strict";V();w();V();ue=(e,t)=>{var r,n;return new Se((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},Pt=e=>new wr(e)});var Or,Fr,Dr,Ur=h(()=>{"use strict";Or=[],Fr=[],Dr=["env","createRequestTask","login"]});function Lr(e,t){Mr||(Ct=new me({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(s){e.invoke("track",JSON.stringify({event:"reportMetrics",data:s}),-1)}}),Nt=new me({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(s){e.invoke("track",JSON.stringify({event:"reportMetrics",data:s}),-1)}}),Ot=new me({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(s){e.invoke("track",JSON.stringify({event:"reportMetrics",data:s}),-1)}}),t("onJoliboxEnterBackground",()=>{Ct.flush(),Nt.flush(),Ot.flush()}),Mr=!0);function r(s){var b,v;let{method:o,args:i,startTime:a,isForeground:c,errMsg:l=`${o}:fail no errMsg`,errNo:u=0,__timing:m={receiveJSInvoke:0,invokeCallback:0}}=s,{receiveJSInvoke:p,invokeCallback:T}=m,I=(v=(b=l.match(/\S:(\S+)\s?/))==null?void 0:b[1])!=null?v:"fail";Ct.report({status:I,method:n(o,i),errNo:`${u}`,errMsg:l,isForeground:c,duration:Date.now()-a}),a&&p&&T&&(Nt.report({status:I,method:o,isForeground:c,duration:Number((p-a).toFixed(3))}),Ot.report({status:I,method:o,isForeground:c,duration:Number((Date.now()-T).toFixed(3))}))}function n(s,o){return(s==="callHostMethod"||s==="callHostMethodSync")&&o!=null&&o.method?`${s}-${o.method}`:s}return r}var qs,me,Mr,Ct,Nt,Ot,Ft=h(()=>{"use strict";w();qs=e=>e==="pv"?e:"default",me=class{constructor(t){this.interval=30;this.lastReportTime=0;this.cache={};let{reporter:r,interval:n=30,eventName:s,tagNameOrder:o,metricName:i,type:a}=t;this.reporter=r,this.interval=n,this.eventName=s,this.tagNameOrder=o,this.metricName=i,this.type=qs(a)}report(t){this.type==="pv"?this.addPVPoint(t):this.addPoint(t),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(t){if(Object.keys(this.cache).length){if(t){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(t){let r=(n,s,o,i)=>{let a=s.shift();if(a){let c=i[a];n[c]||(n[c]={}),r(n[c],s,o,i)}else n[o]||(n[o]=[]),n[o].push(i[o])};r(this.cache,[...this.tagNameOrder],this.metricName,t)}addPVPoint(t){let r=(s,o,i,a)=>{let c=o.shift();if(!c&&M(a))throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);if(c){let l=[];if(M(a))l.push(...Object.keys(a));else if(ce(a)){if(o.length>0)throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);l.push(a)}else throw new Ne(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(n)}`);l.forEach(u=>{s[u]||(s[u]={});let m=M(a)?a[u]:a;r(s[u],[...o],i,m)})}else s[i]?s[i]++:s[i]=1},n={point:t,metricName:this.metricName,tagNameOrder:this.tagNameOrder};r(this.cache,[...this.tagNameOrder],this.metricName,t)}processPoints(t){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:t}}clearPoints(){this.cache={}}},Mr=!1});function jr(e,t){let r=0,n=!0,s=new Map,o=Lr(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,Dt.forEach(p=>y(this,[p],function*({method:l,args:u,resolve:m}){let T=yield a(l,u);m(T)})),Dt.length=0});let i=(l,u)=>{let m=s.get(Number(l));if(!m)return;let p=Te(u);m(p),s.delete(Number(l))},a=(l,u)=>{var R,fe;let m=Date.now(),p=`${n}`;r+=1;let T=new ne;if(s.set(r,T.resolve),!n&&Fr.includes(l))return new Promise(U=>{Dt.push({method:l,args:u,resolve:U})});let b=x(g({},{method:l,startTime:m,args:u,isForeground:p}),{invokeType:"js-bridge"}),v=!Gs&&Or.includes(l),E=ur(u,v),A=v?E:JSON.stringify(E),f;if(l.endsWith("Sync")||Dr.includes(l)?f=(R=e.call)==null?void 0:R.call(e,l,E,r):typeof A=="string"?f=e.invoke(l,A,r):f=(fe=e.call)==null?void 0:fe.call(e,l,A,r),f){try{typeof f=="string"&&(f=JSON.parse(f)),f=Te(f)}catch(U){j.error(U)}return s.delete(r),f.errorCode&&(f.errorCode=Fe(l,f.errorCode)),o(g(g({},b),f)),f}return l.endsWith("Sync")&&s.delete(r),T.promise.then(U=>(U.errorCode&&(U.errorCode=Fe(l,U.errorCode)),o(g(g({},b),U)),U))};return{invokeNative:a,applyNative:(l,u)=>{let m=a(l,u);return yr(m)?m.then(p=>Br(l,p)):Br(l,m)},invokeHandler:i}}function Br(e,t){if(!M(t)){j.warn(`[Jolibox SDK]${e} no response value`);return}let a=t,{errMsg:r,errNo:n,errorType:s,errorCode:o}=a,i=ae(a,["errMsg","errNo","errorType","errorCode"]);if(r&&r!==`${e}:ok`)throw new Ar(r,n,s,o);return i}var Dt,Gs,Jr=h(()=>{"use strict";bt();w();se();Ur();Ft();Dt=[],Gs=!1});function Hr(e){let t=new z,r=new me({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(n){e.invoke("track",JSON.stringify({event:"reportMetrics",data:n}),-1)}});return t.on("onJoliboxEnterBackground",()=>{r.flush()}),{onNative:t.on.bind(t),offNative:t.off.bind(t),subscribeHandler(n,s,o){let i=Te(s),a;if(i.__extra){a=i.params;let{type:c,startTime:l}=i.__extra;r.report({type:c,event:n,duration:Date.now()-l})}else a=i;t.emit(n,a,o)}}}var $r=h(()=>{"use strict";w();bt();Ft()});function Ut(e){let{subscribeHandler:t,onNative:r,offNative:n}=Hr(e),{invokeNative:s,invokeHandler:o,applyNative:i}=jr(e,r);return{invokeHandler:o,subscribeHandler:t,applyNative:i,invokeNative:s,onNative:r,offNative:n}}var Vr=h(()=>{"use strict";Jr();$r()});var Kr=h(()=>{"use strict"});var qr=h(()=>{"use strict";Vr();Kr()});var oe,K,Gr,zr=h(()=>{"use strict";w();V();K={trigger(){},exit(){return!1},onReady(e){K.trigger=e},doExit(e){K.exit=e}},Gr=()=>{let e=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!e)D(new Ir("native env failed"));else{let{data:t}=JSON.parse(e);return t!=null?t:void 0}};if(window.webkit){let e=window.webkit.messageHandlers,t=(s="")=>{K.trigger(),e.onDocumentReady.postMessage({path:s})};oe={onDocumentReady:t,doExit:s=>{let o=K.exit();e.doExit.postMessage({uuid:s,shouldInterrupt:o})},invoke(s,o,i){e.invoke.postMessage({event:s,paramsString:o,callbackId:i})},call(s,o,i){let a=window.prompt("invoke",JSON.stringify({event:s,paramsString:JSON.stringify(o),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=g({},n)}if(window.JoliAndroidSDKBridge){let e=window.JoliAndroidSDKBridge,t=(s="")=>{K.trigger(),e.onDocumentReady(JSON.stringify({path:s}))};oe={onDocumentReady:t,invoke(s,o,i){e.invoke(JSON.stringify({event:s,paramsString:o,callbackId:i}))},doExit:s=>{let o=K.exit();e.doExit(JSON.stringify({uuid:s,shouldInterrupt:o}))},call(s,o,i){let a=window.prompt("invoke",JSON.stringify({event:s,paramsString:JSON.stringify(o),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=g({},n)}});function Mt(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var Lt=h(()=>{"use strict"});function Bt(){globalThis.onmessage=function(e){e.data==="msg:setup"&&([he]=e.ports,he.onmessage=function(t){let r=JSON.parse(t.data);r[0]==="publish"?globalThis.ttJSBridge.subscribeHandler(r[1],r[2]):r[0]==="invoke"&&globalThis.ttJSBridge.invokeHandler(r[1],r[2])},he.publish=function(t,r){let n=Mt(r,"messagePort");he.postMessage(JSON.stringify(["publish",t,JSON.stringify(n)]))},he.postMessage("msg:setup:ok"))}}var he,Wr=h(()=>{"use strict";Lt()});var De=h(()=>{"use strict";zr();Wr();Lt()});var Qr,zs,Xr,Yr,J,P,W,va,Ws,$=h(()=>{"use strict";qr();De();se();w();De();Qr=oe;if(!Qr)throw new _r("No joliboxJScore is found, native bridge not found.");Bt();zs=g({},Qr),Xr=Ut(zs),{invokeHandler:Yr}=Xr,{applyNative:J,invokeNative:P,onNative:W,offNative:va,subscribeHandler:Ws}=Xr;globalThis.joliboxJSBridge={callHandler:Yr,invokeHandler:Yr,subscribeHandler:Ws}});var jt,Zr,en=h(()=>{"use strict";w();V();jt=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(s){return{}}},Zr=e=>{var t;try{let s=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(s!=null&&s.length){let[o,i,a]=s;return{headerJson:jt(o),payloadJson:jt(i),signature:jt(a)}}else throw"joli_source is missing"}catch(r){return D(new Sr(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}}});var Ys,Ue,tn,Jt=h(()=>{"use strict";w();Ys="1.1.10",Ue=()=>Ys,tn=()=>{let e=Ue();return`${Cr(e)}`}});var Qs,rn,Ht,nn,L,Xs,k,q=h(()=>{"use strict";w();en();Jt();w();Qs={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:Rt(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:Ue()},schema:window.location.href,platform:"h5"},Ht=(rn=globalThis.joliboxJSCore)==null?void 0:rn.env,L=Object.assign({},(nn=Ht==null?void 0:Ht())!=null?nn:Qs),Xs=()=>{var m,p,T,I,b,v,E,A;let{payloadJson:e,headerJson:t}=L.schema.length?Zr(L.schema):{},r=`${L.deviceInfo.did}-${new Date().getTime()}`,s=new URL(L.schema.length?L.schema:window.location.href).searchParams,o=(T=(p=(m=s.get("mpId"))!=null?m:s.get("appId"))!=null?p:s.get("gameId"))!=null?T:"",i=(b=(I=e==null?void 0:e.sessionId)!=null?I:s.get("sessionId"))!=null?b:r,a=!!((v=e==null?void 0:e.testAdsMode)!=null?v:s.get("testAdsMode")==="true"),c=(A=(E=e==null?void 0:e.joliboxEnv)!=null?E:s.get("joliboxEnv"))!=null?A:"production",l=c==="staging",u=t==null?void 0:t.channel;return{get testMode(){return l},get testAdsMode(){return a},get joliboxEnv(){return c},get joliSource(){var f;return(f=s.get("joliSource"))!=null?f:null},get mpId(){var f;return(f=o!=null?o:e==null?void 0:e.id)!=null?f:""},get mpVersion(){var f;return(f=t==null?void 0:t.ver)!=null?f:Ue()},get mpType(){var f,R;return(R=(f=t==null?void 0:t.__mpType)!=null?f:e==null?void 0:e.__mpType)!=null?R:"game"},get platform(){var f;return(f=L.platform)!=null?f:L.deviceInfo.platform},get deviceInfo(){return L.deviceInfo},get sdkInfo(){return L.sdkInfo},get hostInfo(){return L.hostInfo},get hostUserInfo(){return L.hostUserInfo},get sessionId(){var f,R;return(R=(f=L.clientSessionId)!=null?f:i)!=null?R:r},get channel(){return u},get webviewId(){var f;return(f=L.webviewId)!=null?f:-1},onEnvConfigChanged:f=>{Tr(L,f,kr)}}},k=Xs()});var $t,on,Zs,eo,sn,to,an=h(()=>{"use strict";w();V();q();w();$t=!1,on=(e,t)=>e==null?!1:t in e,Zs=e=>on(e,"kind"),eo=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},sn=(e,t={},r)=>{var o,i,a;let n={user_id:(i=(o=k.hostUserInfo)==null?void 0:o.uid)!=null?i:"",device_id:(a=k.deviceInfo.did)!=null?a:"",timestamp:Date.now(),tag:eo(e.name)},s=x(g({},n),{env:t.environment,isFromUser:r});r?de.emit("GLOBAL_USER_ERROR",e,s):de.emit("GLOBAL_ERROR",e,s)},to=e=>on(e,"kind")&&e.kind==="USER_ERROR";xt.on("ERROR_REPORT",({error:e,options:t})=>{if($t)return;$t=!0;let r=Zs(e)&&e.raw?e.raw:e;try{let n=to(e);sn(e,t,n)}catch(n){let s=n instanceof Error?n.message:String(n),o=new It(`${s}, origin error: ${r.message}`);j.error(o),sn(new It(o.message),{environment:t.environment},!1)}finally{$t=!1}})});var cn=h(()=>{"use strict";an();se();w();$();de.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};P("trackAsync",{event:"reportJsError",data:r})});de.on("GLOBAL_USER_ERROR",(e,t)=>{j.log("UserError",e,t)})});var Vt=h(()=>{"use strict"});function ln(e,t){let r=(n,s,o)=>{let i=x(g({tag:n},t),{extra:g({},s)});n=="globalJsError"?D(new Rr(JSON.stringify(i))):e("systemLog",i,o)};return r.debounce=we(r,500,{leading:!0}),r}function dn(e){let t=(r,n,s)=>{var a;let o=(a=s&&JSON.stringify(s))!=null?a:0,i={speed_value_type:r,total_duration:n};o&&Object.assign(i,{extra:o}),e("joliboxSpeedAnalysis",i)};return t.debounce=we(t,500,{leading:!0}),t}var un=h(()=>{"use strict";w();w();V()});function mn(e,t){let r=ln(e,t),n=dn(r);return{track:r,trackPerformance:n}}var pn=h(()=>{"use strict";un()});var fn=h(()=>{"use strict";q();w();w()});var hn=h(()=>{"use strict";pn();Vt();fn()});var Me,gn=h(()=>{"use strict";Me=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.timer=this.createRAFTimer(t=>{this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration: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.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,s,o=!1,i=0,a=()=>{if(!o)return;let T=Date.now(),I=T-r;I>=this.interval&&(this.visible&&(i+=I,t(i)),r=T),n=requestAnimationFrame(a)},c=()=>{u(),r=Date.now(),s=window.setInterval(()=>{if(!o)return;let T=Date.now();T-r>=this.interval&&(r=T)},this.interval)},l=()=>{m(),r=Date.now(),n=requestAnimationFrame(a)},u=()=>{n&&(cancelAnimationFrame(n),n=0)},m=()=>{s&&(clearInterval(s),s=0)};this.eventEmitter.on("visible",T=>{o&&(console.log("visible",T),T?l():c())});let p=this.visible;return{start(){o||(o=!0,p?l():c())},stop(){o=!1,u(),m()}}}}});var Kt=h(()=>{"use strict"});function yn(e,t,r){let{response:n,startTime:s,endTime:o,requestFrom:i}=r,{errMsg:a="",profile:c={}}=n,u={duration:o-s,request_type:e,url:t.split("?")[0],result:r.state,error_msg:r.state==="fail"?a:"",socket_reused:c.socketReused?1:0,request_from:i};(i==="public"&&vn<no||i==="inner")&&(u.joli_request_number=vn++,setTimeout(()=>{H("joliboxNetRequestResult",u)},500))}var vn,no,bn=h(()=>{"use strict";Kt();ie();vn=0,no=10});function Le(e,t,r){var c,l,u;let n=new Map,s=(c=r==null?void 0:r.baseUrl)!=null?c:"https://api.jolibox.com",o=(l=r==null?void 0:r.type)!=null?l:"public",i=(u=r==null?void 0:r.defaultHeaders)!=null?u:{};return W("onRequestTaskStateChange",m=>{if(typeof m.requestTaskId!="string")return;let p=n.get(m.requestTaskId);if(p)if(m.state==="success"){let T=m,{requestTaskId:b,state:v}=T,E=ae(T,["requestTaskId","state"]);p.resolve(E),n.delete(b)}else if(m.state==="fail"){let I=m,{requestTaskId:b,state:v}=I,E=ae(I,["requestTaskId","state"]);p.reject(E),n.delete(b)}else j.warn("onRequestTaskStateChange unknown event",m)}),X.on("onLoginComplete",({isLogin:m,token:p})=>{m&&p&&(i["X-JOLI-TOKEN"]=p)}),(T,...I)=>y(this,[T,...I],function*(m,p={}){let b=Date.now(),v=so(m,x(g({},p),{baseUrl:s})),{method:E="GET",responseType:A="text",dataType:f="json",timeout:R,enableCache:fe=!1,appendHostCookie:U=!0}=p,be=Object.assign({"content-type":"application/json"},i,p.header),re={url:v,method:E,header:be,enableCache:fe,responseType:A,appendHostCookie:U};if(E=="POST"||E=="PUT"){let G=io(p.data,be["content-type"]);re.data=G}R&&Object.assign(re,{timeout:R});let{data:{requestTaskId:vt}}=P(e,re);if(typeof vt!="string")throw ue({code:-1,msg:"requestTaskId is not a string"});let or=(G,Y)=>{yn("request",v,{state:G,startTime:b,endTime:Date.now(),params:re,response:Y,requestId:vt,requestFrom:o=="public"?"public":"inner"})},{resolve:ss,reject:os,promise:is}=new ne;n.set(vt,{resolve:ss,reject:os});try{let G=yield is;or("success",G);let{data:Y}=G;return f==="json"&&typeof Y=="string"&&(Y=oo(Y)),{url:v,timeout:R,method:E,response:x(g({},G),{data:Y})}}catch(G){let Y=G;if(M(Y)){let{errMsg:Ae,prefetchDetail:as,isPrefetch:cs,errNo:ls}=Y;ce(Ae)&&(or("fail",{errMsg:Ae,isPrefetch:cs,prefetchDetail:as}),D(ue({code:-1,msg:Ae},{errNo:ls,errMsg:Ae})))}throw G}})}function oo(e){try{return JSON.parse(e.trim())}catch(t){return e}}function io(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 so,qt=h(()=>{"use strict";w();bn();Kt();$();V();se();so=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,s=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${s?`?${s}`:""}`:`${e}${s?`?${s}`:""}`}});var Gt,Tn,Z,Be=h(()=>{"use strict";Jt();qt();q();Gt={"x-user-agent":tn()};(Tn=k.hostUserInfo)!=null&&Tn.token&&(Gt["x-joli-token"]=k.hostUserInfo.token);k.joliSource&&(Gt["x-joli-source"]=k.joliSource);Z=Le("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:k.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Gt})});var je,kn=h(()=>{"use strict";q();gn();Be();$();je=class extends Me{constructor(t,r,n){super(r,n),this.gameId=k.mpId,this.sessionId=k.sessionId,this.track=t}reporter(t){return y(this,null,function*(){let{event:r,params:n}=t,s=[];s.push(Z("/api/base/app-event",{method:"POST",data:{eventType:r,gameInfo:g({gameId:this.gameId,sessionId:this.sessionId},n)}})),yield Promise.all(s)})}reportToNative(t){return y(this,null,function*(){let{event:r,params:n}=t;yield J("userTrackAsync",{event:r,params:g({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var An={};lr(An,{nativeTaskEmitter:()=>Ie,taskTracker:()=>B,track:()=>H,trackPerformance:()=>Sn});var ao,En,wn,H,Sn,In,Ie,B,ie=h(()=>{"use strict";cn();w();Vt();hn();q();kn();$();ao=(e,t,r)=>{var i,a;let n=t,s=M(n.extra)?n.extra:ce(n.extra)?JSON.parse(n.extra):{},o=x(g({},s),{mp_id:(i=n.mp_id)!=null?i:"",mp_version:(a=n.mp_version)!=null?a:""});P("trackAsync",{event:e,data:o,webviewId:r})},{track:H,trackPerformance:Sn}=mn(ao,{type:_t.AppSDK,platform:"native",jssdk_version:(wn=(En=k.sdkInfo)==null?void 0:En.jssdkVersion)!=null?wn:"1.0.0",mp_id:k.mpId,mp_version:k.mpVersion}),In=O();In.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{Sn(e,t,r)});In.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{H(e,t)});Ie=new z,B=new je(H,Ie)});function _n(){let e=null,t=window.fetch,r=()=>{e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let o=`
1
+ var Xi=Object.create;var Ze=Object.defineProperty,Zi=Object.defineProperties,es=Object.getOwnPropertyDescriptor,ts=Object.getOwnPropertyDescriptors,rs=Object.getOwnPropertyNames,Xe=Object.getOwnPropertySymbols,ns=Object.getPrototypeOf,Xt=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable;var en=(e,t,r)=>t in e?Ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))Xt.call(t,r)&&en(e,r,t[r]);if(Xe)for(var r of Xe(t))tn.call(t,r)&&en(e,r,t[r]);return e},N=(e,t)=>Zi(e,ts(t));var W=(e,t)=>{var r={};for(var n in e)Xt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Xe)for(var n of Xe(e))t.indexOf(n)<0&&tn.call(e,n)&&(r[n]=e[n]);return r};var k=(e,t)=>()=>(e&&(t=e(e=0)),t);var rn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nn=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},os=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of rs(t))!Xt.call(e,o)&&o!==r&&Ze(e,o,{get:()=>t[o],enumerable:!(n=es(t,o))||n.enumerable});return e};var on=(e,t,r)=>(r=e!=null?Xi(ns(e)):{},os(t||!e||!e.__esModule?Ze(r,"default",{value:e,enumerable:!0}):r,e));var T=(e,t,r)=>new Promise((n,o)=>{var i=l=>{try{a(r.next(l))}catch(u){o(u)}},s=l=>{try{a(r.throw(l))}catch(u){o(u)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(i,s);a((r=r.apply(e,t)).next())});function is(e){return!!(e!=null&&e.__nativeBuffers__)}function Me(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!is(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 o;n.value?o=n.value:n.base64&&(o=ss(n.base64)),typeof o!="undefined"&&o instanceof ArrayBuffer&&(e[n.key]=o)}}return e}function sn(e={},t=!1){let r=e,n=[];for(let[o,i]of Object.entries(r))if(i!==void 0&&i instanceof ArrayBuffer&&i.byteLength!==void 0){let s=t?{value:i,key:o}:{base64:as(i),key:o};n.push(s),delete r[o]}return n.length>0&&(r.__nativeBuffers__=n),r}var ss,as,Zt=k(()=>{"use strict";ss=e=>{let t=atob(e),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o++)n[o]=t.charCodeAt(o);return n.buffer};as=e=>{let t="",r=new Uint8Array(e),n=r.byteLength;for(let o=0;o<n;o++)t+=String.fromCharCode(r[o]);return btoa(t)}});function us(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function be(e){return typeof e=="string"}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function un(e){return typeof e=="object"&&Array.isArray(e)}function je(e){return e===!0||e===!1}function ds(e){return typeof e>"u"}function ps(e){return ds(e)||e===null}function dn(e){return typeof e=="function"}function pn(e){return J(e)&&dn(e.then)}function mn(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function fn(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(o,i){for(let s in i)if(Object.prototype.hasOwnProperty.call(i,s)){let a=o[s],l=i[s],u=r(a,l,s,o,i);u!==void 0?o[s]=u:an(l)&&an(a)?o[s]=n(_({},a),l):Array.isArray(l)&&Array.isArray(a)?o[s]=[...a,...l]:o[s]=l}return o}return n(e,t)}function an(e){return e&&typeof e=="object"&&e.constructor===Object}function hn(e,t){if(Array.isArray(e))return e.concat(t)}function He(e,t,r={}){let n=null,o,i,s,{leading:a=!1,trailing:l=!0}=r,u=()=>(s=e.apply(i,o),o=void 0,i=void 0,s),d=function(...c){o=c,i=this;let p=a&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,l&&!p&&u()},t),p)return u()};return d.cancel=()=>{n&&clearTimeout(n),n=null,o=i=void 0},d.flush=()=>{if(n)return clearTimeout(n),n=null,u()},d}function fs(e,t){return(...r)=>t(e,...r)}function ot(e){return t=>fs(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(o){e(new $e(`${o}`))}})}function Le(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function Rs(e){return new Promise(t=>xn(e)(t))}function xn(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function As(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(i.fire,i)}},i=new Be(o);return i.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}function Ns(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ps(e[n],t[n])}function Ps(e,t){if(be(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(dn(t)){try{if(e instanceof t)return}catch(r){}if(!ps(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 M(){if(globalThis[tr])return globalThis[tr];let e=new rt,t=new nr,r={registerCommand(n,o,i){e.registerCommand({id:n,handler:o,metadata:i})},executeCommand(n,...o){return t.executeCommand(n,...o)},excuteCommandSync(n,...o){return t.executeCommandThowErr(n,...o)}};return globalThis[tr]=r,r}var cn,cs,ls,ln,se,ms,or,ke,gn,_n,$e,vn,yn,bn,kn,wn,Je,nt,ir,z,Tn,hs,sr,gs,ar,_s,vs,et,ys,bs,ks,Sn,cr,ws,Ts,Ss,En,de,D,Es,xs,tt,Be,te,rr,Is,er,Cs,pe,rt,nr,tr,A=k(()=>{"use strict";cn=Object.defineProperty,cs=Object.getOwnPropertyDescriptor,ls=(e,t)=>{for(var r in t)cn(e,r,{get:t[r],enumerable:!0})},ln=(e,t,r,n)=>{for(var o=n>1?void 0:n?cs(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&cn(t,r,o),o};se=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))}})}};ms=(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))(ms||{}),or=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}},ke=class extends or{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},gn=class extends or{constructor(){super(...arguments),this.kind="USER_ERROR"}},_n=class extends gn{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},$e=class extends gn{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))}},vn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},yn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},bn=class extends ke{constructor(e,t,r,n){super(e),this.errNo=t,this.name="INTERNAL_APPLY_NATIVE_ERROR",this.errorType=r,this.errorCode=n}},kn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},wn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Je=class extends or{constructor(e,t,r,n,o){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),o&&(this.priority=o)}toJSON(){return{message:this.message,stack:this.stack,name:this.name,code:this.code,errorType:this.errorType}}},nt=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}},ir=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};z={log:Le("log"),warn:Le("warn"),info:Le("info"),error:Le("error"),debug:Le("debug")};Object.assign(globalThis,{logger:z});Tn=Symbol.for("Jolibox.canIUseMap"),hs={};globalThis[Tn]=hs;sr={get config(){return globalThis[Tn]}},gs=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(gs||{}),ar=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(ar||{}),_s=(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))(_s||{}),vs=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),et={isiOS: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:navigator.userAgent.includes("Android"),isMac:navigator.userAgent.includes("Mac"),isFacebook:navigator.userAgent.includes("FB_IAB"),isPC:!navigator.userAgent.includes("iPhone")&&!navigator.userAgent.includes("Android")},ys=()=>et.isiOS?"iOS":et.isAndroid?"Android":et.isMac?"Mac":et.isFacebook?"Facebook":"PC",bs="device_id",ks="advertising_id",Sn=e=>(localStorage.getItem(e)||localStorage.setItem(e,vs()),localStorage.getItem(e)),cr=()=>Sn(bs),ws=()=>Sn(ks),Ts=e=>e.charAt(0).toUpperCase()+e.slice(1),Ss=()=>{var t;let e=new URLSearchParams(window.location.search);return Ts((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},En=e=>{let t="JoliboxWebSDK",r=ys(),n=navigator.language,o=cr(),i=ws();return`${t} (${Ss()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${i} version/${e||""}`},D=(de=class{constructor(t){this.element=t,this.next=de.Undefined,this.prev=de.Undefined}},de.Undefined=new de(void 0),de),Es=class{constructor(){this._first=D.Undefined,this._last=D.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===D.Undefined}clear(){let e=this._first;for(;e!==D.Undefined;){let t=e.next;e.prev=D.Undefined,e.next=D.Undefined,e=t}this._first=D.Undefined,this._last=D.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new D(e);if(this._first===D.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==D.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==D.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==D.Undefined&&e.next!==D.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===D.Undefined&&e.next===D.Undefined?(this._first=D.Undefined,this._last=D.Undefined):e.next===D.Undefined?(this._last=this._last.prev,this._last.next=D.Undefined):e.prev===D.Undefined&&(this._first=this._first.next,this._first.prev=D.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==D.Undefined;)yield e.element,e=e.next}},xs=0,tt=class{constructor(e){this.value=e,this.id=xs++}},Be=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 tt&&(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 o,i,s,a,l,u;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new tt(t);this._listeners?this._listeners instanceof tt?this._listeners=[this._listeners,n]:this._listeners.push(n):((i=(o=this.options)==null?void 0:o.onWillAddFirstListener)==null||i.call(o,this),this._listeners=n,(a=(s=this.options)==null?void 0:s.onDidFirstListener)==null||a.call(s,this)),(u=(l=this.options)==null?void 0:l.onDidAddListener)==null||u.call(l,this),this._size++}),this._event}_deliver(e,t){var n;if(!e)return;let r=((n=this.options)==null?void 0:n.onListenerError)||Error.constructor;if(!r){e.value(t);return}try{e.value(t)}catch(o){r(o)}}fire(e){this._listeners&&(this._listeners instanceof tt?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},te=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var i;let r=(i=this.listeners.get(e))!=null?i:new Be,n=s=>t(...s.args);this.listerHandlerMap.set(t,n),r.event(n),this.listeners.set(e,r);let o=this.cachedEventQueue.get(e);if(o)for(;o.size>0;)r.fire(_({event:e},o.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Es,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},rr={};ls(rr,{None:()=>Is,filter:()=>As,once:()=>xn,toPromise:()=>Rs});Is=()=>{console.log("[Jolibox SDK] None Event")};er=Symbol.for("Jolibox.hostEmitter"),Cs=()=>{let e=new te;return globalThis[er]||(globalThis[er]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[er]},pe=Cs();rt=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Be,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 o of e.metadata.args)r.push(o.constraint);let n=e.handler;e.handler=function(...o){return Ns(o,r),n(...o)}}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}};rt=ln([mn],rt);nr=class{constructor(){this._onWillExecuteCommand=new Be,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Be,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new rt,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=us(3e4)),this._starActivation}executeCommand(e,...t){return T(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),rr.toPromise(rr.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}}};nr=ln([mn],nr);tr=Symbol.for("Jolibox.commands")});function H(e,t={}){lr.emit("ERROR_REPORT",{error:e,options:t})}var lr,we,re=k(()=>{"use strict";A();A();lr=new te,we=new te;H.debounce=He(H,50,{leading:!0})});function it(e,t){return`[${e}]:${t}`}var Te,ur,ge=k(()=>{"use strict";re();A();re();Te=(e,t)=>{var r,n;return new Je((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},ur=e=>new _n(e)});var Se,In,Rn,An,st,at=k(()=>{"use strict";Se="custom_event_",In=[],Rn=[],An=["env","createRequestTask","login"],st="__batch_event__"});function Nn(e,t){Cn||(dr=new Ee({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),pr=new Ee({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),mr=new Ee({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),t("onJoliboxEnterBackground",()=>{dr.flush(),pr.flush(),mr.flush()}),Cn=!0);function r(o){var v,h;let{method:i,args:s,startTime:a,isForeground:l,errMsg:u=`${i}:fail no errMsg`,errNo:d=0,__timing:c={receiveJSInvoke:0,invokeCallback:0}}=o,{receiveJSInvoke:p,invokeCallback:m}=c,y=(h=(v=u.match(/\S:(\S+)\s?/))==null?void 0:v[1])!=null?h:"fail";dr.report({status:y,method:n(i,s),errNo:`${d}`,errMsg:u,isForeground:l,duration:Date.now()-a}),a&&p&&m&&(pr.report({status:y,method:i,isForeground:l,duration:Number((p-a).toFixed(3))}),mr.report({status:y,method:i,isForeground:l,duration:Number((Date.now()-m).toFixed(3))}))}function n(o,i){return(o==="callHostMethod"||o==="callHostMethodSync")&&i!=null&&i.method?`${o}-${i.method}`:o}return r}var Os,Ee,Cn,dr,pr,mr,fr=k(()=>{"use strict";A();Os=e=>e==="pv"?e:"default",Ee=class{constructor(t){this.interval=30;this.lastReportTime=0;this.cache={};let{reporter:r,interval:n=30,eventName:o,tagNameOrder:i,metricName:s,type:a}=t;this.reporter=r,this.interval=n,this.eventName=o,this.tagNameOrder=i,this.metricName=s,this.type=Os(a)}report(t){this.type==="pv"?this.addPVPoint(t):this.addPoint(t),this.tryReport(!1)}flush(){this.tryReport(!0)}tryReport(t){if(Object.keys(this.cache).length){if(t){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(t){let r=(n,o,i,s)=>{let a=o.shift();if(a){let l=s[a];n[l]||(n[l]={}),r(n[l],o,i,s)}else n[i]||(n[i]=[]),n[i].push(s[i])};r(this.cache,[...this.tagNameOrder],this.metricName,t)}addPVPoint(t){let r=(o,i,s,a)=>{let l=i.shift();if(!l&&J(a))throw new nt(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);if(l){let u=[];if(J(a))u.push(...Object.keys(a));else if(be(a)){if(i.length>0)throw new nt(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);u.push(a)}else throw new nt(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(n)}`);u.forEach(d=>{o[d]||(o[d]={});let c=J(a)?a[d]:a;r(o[d],[...i],s,c)})}else o[s]?o[s]++:o[s]=1},n={point:t,metricName:this.metricName,tagNameOrder:this.tagNameOrder};r(this.cache,[...this.tagNameOrder],this.metricName,t)}processPoints(t){return{eventName:this.eventName,tagNameOrder:this.tagNameOrder,metricName:this.metricName,metricAggregateType:this.type==="pv"?"itoa":"arr",data:t}}clearPoints(){this.cache={}}},Cn=!1});function On(e,t){let r=0,n=!0,o=new Map,i=Nn(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,hr.forEach(p=>T(this,[p],function*({method:u,args:d,resolve:c}){let m=yield a(u,d);c(m)})),hr.length=0});let s=(u,d)=>{let c=o.get(Number(u));if(!c)return;let p=Me(d);c(p),o.delete(Number(u))},a=(u,d)=>{var P,R;let c=Date.now(),p=`${n}`;r+=1;let m=new se;if(o.set(r,m.resolve),!n&&Rn.includes(u))return new Promise(S=>{hr.push({method:u,args:d,resolve:S})});let v=N(_({},{method:u,startTime:c,args:d,isForeground:p}),{invokeType:"js-bridge"}),h=!Ds&&In.includes(u),g=sn(d,h),b=h?g:JSON.stringify(g),E;if(u.endsWith("Sync")||An.includes(u)?E=(P=e.call)==null?void 0:P.call(e,u,g,r):typeof b=="string"?E=e.invoke(u,b,r):E=(R=e.call)==null?void 0:R.call(e,u,b,r),E){try{typeof E=="string"&&(E=JSON.parse(E)),E=Me(E)}catch(S){z.error(S)}return o.delete(r),E.errorCode&&(E.errorCode=it(u,E.errorCode)),i(_(_({},v),E)),E}return u.endsWith("Sync")&&o.delete(r),m.promise.then(S=>(S.errorCode&&(S.errorCode=it(u,S.errorCode)),i(_(_({},v),S)),S))};return{invokeNative:a,applyNative:(u,d)=>{let c=a(u,d);return pn(c)?c.then(p=>Pn(u,p)):Pn(u,c)},invokeHandler:s}}function Pn(e,t){if(!J(t)){z.warn(`[Jolibox SDK]${e} no response value`);return}let a=t,{errMsg:r,errNo:n,errorType:o,errorCode:i}=a,s=W(a,["errMsg","errNo","errorType","errorCode"]);if(r&&r!==`${e}:ok`)throw new bn(r,n,o,i);return s}var hr,Ds,Dn=k(()=>{"use strict";Zt();A();ge();at();fr();hr=[],Ds=!1});function Fn(e){let t=new te,r=new te,n=new Ee({eventName:"jolibox_publish",tagNameOrder:["type","event"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}});return t.on("onJoliboxEnterBackground",()=>{n.flush()}),{onNative:t.on.bind(t),offNative:t.off.bind(t),subscribe:r.on.bind(r),unsubscribe:r.off.bind(r),subscribeHandler(o,i,s){let a=Me(i),l;if(a.__extra){l=a.params;let{type:u,startTime:d}=a.__extra;n.report({type:u,event:o,duration:Date.now()-d})}else l=a;if(o===st){l.forEach(d=>{let[c,p]=d;try{r.emit(c.slice(Se.length),p,s)}catch(m){}});return}if(o.startsWith(Se)){r.emit(o.slice(Se.length),l,s);return}t.emit(o,l,s)}}}var Un=k(()=>{"use strict";A();Zt();fr();at()});function Mn(e){let t=new Map,r;return(o,i,s,a)=>{if(a){let u=s?[s]:"*";e.publish(`${Se}${o}`,i,u);return}r||(r=Promise.resolve().then(()=>{t.forEach((u,d)=>{try{let c=d?[d]:"*";e.publish(st,u,c)}catch(c){}}),r=void 0,t.clear()}));let l=t.get(s);l||(l=[],t.set(s,l)),l.push([`${Se}${o}`,i])}}var Ln=k(()=>{"use strict";at()});function gr(e){let{subscribeHandler:t,onNative:r,offNative:n,subscribe:o,unsubscribe:i}=Fn(e),{invokeNative:s,invokeHandler:a,applyNative:l}=On(e,r),u=Mn(e);return{invokeHandler:a,subscribeHandler:t,applyNative:l,invokeNative:s,onNative:r,offNative:n,publish:u,subscribe:o,unsubscribe:i}}var Bn=k(()=>{"use strict";Dn();Un();Ln()});var jn=k(()=>{"use strict"});var Hn=k(()=>{"use strict";Bn();jn()});function Ne(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var ct=k(()=>{"use strict"});var _e,ne,$n,Jn=k(()=>{"use strict";A();ct();re();ne={trigger(){},exit(){return Promise.resolve(!1)},onReady(e){ne.trigger=e},doExit(e){ne.exit=e}},$n=()=>{let e=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!e)H(new yn("native env failed"));else{let{data:t}=JSON.parse(e);return t!=null?t:void 0}};if(window.webkit){let e=window.webkit.messageHandlers,t=(o="")=>{ne.trigger(),e.onDocumentReady.postMessage({path:o})};_e={onDocumentReady:t,doExit:o=>T(void 0,null,function*(){let i=yield ne.exit();e.doExit.postMessage({uuid:o,shouldInterrupt:i})}),invoke(o,i,s){e.invoke.postMessage({event:o,paramsString:i,callbackId:s})},publish(o,i,s){let a=Ne(i,"joliboxJSCore");window.prompt("publish",JSON.stringify({event:o,paramsString:JSON.stringify(a),webviewIds:s}))},call(o,i,s){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(i),callbackId:s}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:$n};globalThis.joliboxJSCore=_({},n)}if(window.JoliAndroidSDKBridge){let e=window.JoliAndroidSDKBridge,t=(o="")=>{ne.trigger(),e.onDocumentReady(JSON.stringify({path:o}))};_e={onDocumentReady:t,invoke(o,i,s){e.invoke(JSON.stringify({event:o,paramsString:i,callbackId:s}))},doExit:o=>T(void 0,null,function*(){let i=yield ne.exit();e.doExit(JSON.stringify({uuid:o,shouldInterrupt:i}))}),publish(o,i,s){let a=Ne(i,"joliboxJSCore");e.publish({event:o,paramsString:JSON.stringify(a),webviewIds:s})},call(o,i,s){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(i),callbackId:s}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:$n};globalThis.joliboxJSCore=_({},n)}});function _r(){globalThis.onmessage=function(e){e.data==="msg:setup"&&([Pe]=e.ports,Pe.onmessage=function(t){let r=JSON.parse(t.data);r[0]==="publish"?globalThis.ttJSBridge.subscribeHandler(r[1],r[2]):r[0]==="invoke"&&globalThis.ttJSBridge.invokeHandler(r[1],r[2])},Pe.publish=function(t,r){let n=Ne(r,"messagePort");Pe.postMessage(JSON.stringify(["publish",t,JSON.stringify(n)]))},Pe.postMessage("msg:setup:ok"))}}var Pe,Vn=k(()=>{"use strict";ct()});var lt=k(()=>{"use strict";Jn();Vn();ct()});var qn,Fs,Gn,Kn,Q,O,ae,tu,Us,Wn,ru,nu,V=k(()=>{"use strict";Hn();lt();ge();A();lt();qn=_e;if(!qn)throw new kn("No joliboxJScore is found, native bridge not found.");_r();Fs=_({},qn),Gn=gr(Fs),{invokeHandler:Kn}=Gn,{applyNative:Q,invokeNative:O,onNative:ae,offNative:tu,subscribeHandler:Us,publish:Wn,subscribe:ru,unsubscribe:nu}=Gn;globalThis.joliboxJSBridge={callHandler:Kn,invokeHandler:Kn,subscribeHandler:Us}});var vr,Ms,zn,Qn,Yn=k(()=>{"use strict";A();re();vr=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(o){return{}}},Ms=e=>{let t=JSON.stringify(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},zn=e=>{var t;try{let o=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(o!=null&&o.length){let[i,s,a]=o;return{headerJson:vr(i),payloadJson:vr(s),signature:vr(a)}}else throw"joli_source is missing"}catch(r){return H(new vn(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}},Qn=(e,t)=>{let r=t.split(".");if(r&&r.length===3){let n=r[0],o=Ms(e),i=r[2];return`${n}.${o}.${i}`}return t}});var Ls,ut,Xn,yr=k(()=>{"use strict";A();Ls="1.1.11-beta.10",ut=()=>Ls,Xn=()=>{let e=ut();return`${En(e)}`}});var Bs,Zn,br,eo,$,js,w,K=k(()=>{"use strict";A();Yn();yr();A();Bs={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:cr(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:ut()},schema:window.location.href,platform:"h5"},br=(Zn=globalThis.joliboxJSCore)==null?void 0:Zn.env,$=Object.assign({},(eo=br==null?void 0:br())!=null?eo:Bs),js=()=>{var p,m,y,v,h,g,b,E,P;let{payloadJson:e,headerJson:t,signature:r}=$.schema.length?zn($.schema):{},n=`${$.deviceInfo.did}-${new Date().getTime()}`,i=new URL($.schema.length?$.schema:window.location.href).searchParams,s=(y=(m=(p=i.get("mpId"))!=null?p:i.get("appId"))!=null?m:i.get("gameId"))!=null?y:"",a=(g=(h=(v=$.clientSessionId)!=null?v:e==null?void 0:e.sessionId)!=null?h:i.get("sessionId"))!=null?g:n,l=!!((b=e==null?void 0:e.testAdsMode)!=null?b:i.get("testAdsMode")==="true"),u=(P=(E=e==null?void 0:e.joliboxEnv)!=null?E:i.get("joliboxEnv"))!=null?P:"production",d=u==="staging",c=t==null?void 0:t.channel;return{get testMode(){return d},get testAdsMode(){return l},get joliboxEnv(){return u},get joliSource(){var R;return(R=i.get("joliSource"))!=null?R:null},get mpId(){var R;return(R=s!=null?s:e==null?void 0:e.id)!=null?R:""},get mpVersion(){var R;return(R=t==null?void 0:t.ver)!=null?R:ut()},get mpType(){var R,S;return(S=(R=t==null?void 0:t.__mpType)!=null?R:e==null?void 0:e.__mpType)!=null?S:"game"},get platform(){var R;return(R=$.platform)!=null?R:$.deviceInfo.platform},get deviceInfo(){return $.deviceInfo},get sdkInfo(){return $.sdkInfo},get hostInfo(){return $.hostInfo},get hostUserInfo(){return $.hostUserInfo},get sessionId(){var R,S;return(S=(R=$.clientSessionId)!=null?R:a)!=null?S:n},get channel(){return c},get webviewId(){var R;return(R=$.webviewId)!=null?R:-1},get shouldInterupt(){return e==null?void 0:e.__shouldInterupt},get from(){return e==null?void 0:e.__from},onEnvConfigChanged:R=>{fn($,R,hn)},encodeJoliSourceQuery:R=>{var S,ee;return t&&r?Qn(_(_({},e),R),(S=i.get("joliSource"))!=null?S:""):(ee=i.get("joliSource"))!=null?ee:""}}},w=js()});var kr,ro,Hs,$s,to,Js,no=k(()=>{"use strict";A();re();K();A();kr=!1,ro=(e,t)=>e==null?!1:t in e,Hs=e=>ro(e,"kind"),$s=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},to=(e,t={},r)=>{var i,s,a;let n={user_id:(s=(i=w.hostUserInfo)==null?void 0:i.uid)!=null?s:"",device_id:(a=w.deviceInfo.did)!=null?a:"",timestamp:Date.now(),tag:$s(e.name)},o=N(_({},n),{env:t.environment,isFromUser:r});r?we.emit("GLOBAL_USER_ERROR",e,o):we.emit("GLOBAL_ERROR",e,o)},Js=e=>ro(e,"kind")&&e.kind==="USER_ERROR";lr.on("ERROR_REPORT",({error:e,options:t})=>{if(kr)return;kr=!0;let r=Hs(e)&&e.raw?e.raw:e;try{let n=Js(e);to(e,t,n)}catch(n){let o=n instanceof Error?n.message:String(n),i=new ir(`${o}, origin error: ${r.message}`);z.error(i),to(new ir(i.message),{environment:t.environment},!1)}finally{kr=!1}})});var oo=k(()=>{"use strict";no();ge();A();V();we.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};O("trackAsync",{event:"reportJsError",data:r})});we.on("GLOBAL_USER_ERROR",(e,t)=>{z.log("UserError",e,t)})});var wr=k(()=>{"use strict"});function io(e,t){let r=(n,o,i)=>{let s=N(_({tag:n},t),{extra:_({},o)});n=="globalJsError"?H(new wn(JSON.stringify(s))):e("systemLog",s,i)};return r.debounce=He(r,500,{leading:!0}),r}function so(e){let t=(r,n,o)=>{var a;let i=(a=o&&JSON.stringify(o))!=null?a:0,s={speed_value_type:r,total_duration:n};i&&Object.assign(s,{extra:i}),e("joliboxSpeedAnalysis",s)};return t.debounce=He(t,500,{leading:!0}),t}var ao=k(()=>{"use strict";A();A();re()});function co(e,t){let r=io(e,t),n=so(r);return{track:r,trackPerformance:n}}var lo=k(()=>{"use strict";ao()});var uo=k(()=>{"use strict";K();A();A()});var po=k(()=>{"use strict";lo();wr();uo()});var dt,mo=k(()=>{"use strict";dt=class{constructor(t,r){this.eventEmitter=t;this.lastReportTime=0;this.visible=!0;this.timer=this.createRAFTimer(t=>{this.reporter({event:"PLAY_GAME",params:{duration:t}}),this.tracker("PlayGame",{duration: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.timer.start()}close(t){this.reporter({event:"CLOSE_GAME",params:{timestamp:Date.now(),duration:t}}),this.tracker("CloseGame",{duration:t}),this.timer.stop()}createRAFTimer(t){let r=Date.now(),n,o,i=!1,s=0,a=()=>{if(!i)return;let m=Date.now(),y=m-r;y>=this.interval&&(this.visible&&(s+=y,t(s)),r=m),n=requestAnimationFrame(a)},l=()=>{d(),r=Date.now(),o=window.setInterval(()=>{if(!i)return;let m=Date.now();m-r>=this.interval&&(r=m)},this.interval)},u=()=>{c(),r=Date.now(),n=requestAnimationFrame(a)},d=()=>{n&&(cancelAnimationFrame(n),n=0)},c=()=>{o&&(clearInterval(o),o=0)};this.eventEmitter.on("visible",m=>{i&&(console.log("visible",m),m?u():l())});let p=this.visible;return{start(){i||(i=!0,p?u():l())},stop(){i=!1,d(),c()}}}}});var Tr=k(()=>{"use strict"});function ho(e,t,r){let{response:n,startTime:o,endTime:i,requestFrom:s}=r,{errMsg:a="",profile:l={}}=n,d={duration:i-o,request_type:e,url:t.split("?")[0],result:r.state,error_msg:r.state==="fail"?a:"",socket_reused:l.socketReused?1:0,request_from:s};(s==="public"&&fo<Ks||s==="inner")&&(d.joli_request_number=fo++,setTimeout(()=>{Y("joliboxNetRequestResult",d)},500))}var fo,Ks,go=k(()=>{"use strict";Tr();ve();fo=0,Ks=10});function pt(e,t,r){var l,u,d;let n=new Map,o=(l=r==null?void 0:r.baseUrl)!=null?l:"https://api.jolibox.com",i=(u=r==null?void 0:r.type)!=null?u:"public",s=(d=r==null?void 0:r.defaultHeaders)!=null?d:{};return ae("onRequestTaskStateChange",c=>{if(typeof c.requestTaskId!="string")return;let p=n.get(c.requestTaskId);if(p)if(c.state==="success"){let m=c,{requestTaskId:v,state:h}=m,g=W(m,["requestTaskId","state"]);p.resolve(g),n.delete(v)}else if(c.state==="fail"){let y=c,{requestTaskId:v,state:h}=y,g=W(y,["requestTaskId","state"]);p.reject(g),n.delete(v)}else z.warn("onRequestTaskStateChange unknown event",c)}),pe.on("onLoginComplete",({isLogin:c,token:p})=>{c&&p&&(s["X-JOLI-TOKEN"]=p)}),(m,...y)=>T(this,[m,...y],function*(c,p={}){let v=Date.now(),h=qs(c,N(_({},p),{baseUrl:o})),{method:g="GET",responseType:b="text",dataType:E="json",timeout:P,enableCache:R=!1,appendHostCookie:S=!0}=p,ee=Object.assign({"content-type":"application/json"},s,p.header),G={url:h,method:g,header:ee,enableCache:R,responseType:b,appendHostCookie:S};if(g=="POST"||g=="PUT"){let ie=Ws(p.data,ee["content-type"]);G.data=ie}P&&Object.assign(G,{timeout:P});let{data:{requestTaskId:le}}=O(e,G);if(typeof le!="string")throw Te({code:-1,msg:"requestTaskId is not a string"});let Ce=(ie,ue)=>{ho("request",h,{state:ie,startTime:v,endTime:Date.now(),params:G,response:ue,requestId:le,requestFrom:i=="public"?"public":"inner"})},{resolve:X,reject:ye,promise:Wi}=new se;n.set(le,{resolve:X,reject:ye});try{let ie=yield Wi;Ce("success",ie);let{data:ue}=ie;return E==="json"&&typeof ue=="string"&&(ue=Gs(ue)),{url:h,timeout:P,method:g,response:N(_({},ie),{data:ue})}}catch(ie){let ue=ie;if(J(ue)){let{errMsg:Ye,prefetchDetail:zi,isPrefetch:Qi,errNo:Yi}=ue;be(Ye)&&(Ce("fail",{errMsg:Ye,isPrefetch:Qi,prefetchDetail:zi}),H(Te({code:-1,msg:Ye},{errNo:Yi,errMsg:Ye})))}throw ie}})}function Gs(e){try{return JSON.parse(e.trim())}catch(t){return e}}function Ws(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 qs,Sr=k(()=>{"use strict";A();go();Tr();V();re();ge();qs=(e,t)=>{if(/^https?:\/\//.test(e))return e;let r=t==null?void 0:t.query,o=new URLSearchParams(r).toString();return t!=null&&t.baseUrl?`${t.baseUrl}${e}${o?`?${o}`:""}`:`${e}${o?`?${o}`:""}`}});var Er,_o,Z,Ve=k(()=>{"use strict";yr();Sr();K();Er={"x-user-agent":Xn()};(_o=w.hostUserInfo)!=null&&_o.token&&(Er["x-joli-token"]=w.hostUserInfo.token);w.joliSource&&(Er["x-joli-source"]=w.joliSource);Z=pt("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:w.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Er})});var mt,vo=k(()=>{"use strict";K();mo();Ve();V();mt=class extends dt{constructor(t,r,n){super(r,n),this.gameId=w.mpId,this.sessionId=w.sessionId,this.track=t}reporter(t){return T(this,null,function*(){let{event:r,params:n}=t,o=[];o.push(Z("/api/base/app-event",{method:"POST",data:{eventType:r,gameInfo:_({gameId:this.gameId,sessionId:this.sessionId},n)}})),yield Promise.all(o)})}reportToNative(t){return T(this,null,function*(){let{event:r,params:n}=t;yield Q("userTrackAsync",{event:r,params:_({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var To={};nn(To,{nativeTaskEmitter:()=>Ke,taskTracker:()=>q,track:()=>Y,trackPerformance:()=>ko});var zs,yo,bo,Y,ko,wo,Ke,q,ve=k(()=>{"use strict";oo();A();wr();po();K();vo();V();zs=(e,t,r)=>{var s,a;let n=t,o=J(n.extra)?n.extra:be(n.extra)?JSON.parse(n.extra):{},i=N(_({},o),{mp_id:(s=n.mp_id)!=null?s:"",mp_version:(a=n.mp_version)!=null?a:""});O("trackAsync",{event:e,data:i,webviewId:r})},{track:Y,trackPerformance:ko}=co(zs,{type:ar.AppSDK,platform:"native",jssdk_version:(bo=(yo=w.sdkInfo)==null?void 0:yo.jssdkVersion)!=null?bo:"1.0.0",mp_id:w.mpId,mp_version:w.mpVersion}),wo=M();wo.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{ko(e,t,r)});wo.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{Y(e,t)});Ke=new te,q=new mt(Y,Ke)});function So(){let e=null,t=window.fetch,r=()=>{e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let i=`
2
2
  html[data-jolibox-root] {
3
3
  height: 100%;
4
4
  margin: 0;
@@ -16,6 +16,112 @@ var ds=Object.create;var Re=Object.defineProperty,us=Object.defineProperties,ms=
16
16
  min-height: 100dvh;
17
17
  }
18
18
  }
19
- `;e.textContent=o;let i=document.head||document.getElementsByTagName("head")[0];i.insertBefore(e,i.firstChild),document.documentElement.setAttribute("data-jolibox-root","")},n=()=>{function o(a){return y(this,null,function*(){let c=a instanceof URL?a.href:a,l=new Promise((u,m)=>{let p=new XMLHttpRequest;p.open("GET",c),p.responseType="arraybuffer",p.addEventListener("load",()=>u(p.response)),p.addEventListener("error",m),p.send()});try{let u=yield l;return new Response(u,{headers:new Headers([["Content-Type","application/wasm"]])}).clone()}catch(u){throw console.error("Failed to load wasm:",u),u}})}let i=window.fetch;window.fetch=(a,c)=>{let l=a instanceof URL?a.href:a.toString();return l.endsWith(".wasm")?o(l):i(a,c)}},s=()=>{e!=null&&e.parentNode&&(e.parentNode.removeChild(e),e=null),document.documentElement.removeAttribute("data-jolibox-root"),window.fetch=t};return r(),n(),s}var Rn=h(()=>{"use strict"});var Je,xn=h(()=>{"use strict";Je=class{constructor(t){this.track=t;this.adBreakIsShowing=!1;this.reportPageJumpOut=()=>{this.track("AdBreakJumpOut",{context:"AdsActionDetection"})};this.reportPageHide=()=>{this.track("AdBreakHide",{context:"AdsActionDetection"})};window.addEventListener("visibilitychange",()=>{document.hidden&&this.adBreakIsShowing&&this.reportPageHide()}),window.addEventListener("beforeunload",r=>{this.adBreakIsShowing&&this.reportPageJumpOut()})}}});var Pn,He,Cn=h(()=>{"use strict";Pn="jolibox-sdk-ads-callbreak-timestamps",He=class{constructor(t,r){this.checkNetwork=t;this.maxAllowedAdsForTime=8;this.bannedForTimeThreshold=6e4;this.bannedReleaseTime=6e4;this.isBanningForTime=!1;this.releaseBannedForTimeTimeout=null;this.maxAllowedAdsForSession=200;this.bannedForSessionThreshold=6e5;this.isBanningForSession=!1;this.initialThreshold=2e3;this._callAdsTimestampsForTime=[];this.callAdsTimestampsForSession=[];this.initTimestamp=0;this.initCallAdsTimestampsForTime=()=>{var t;try{let r=JSON.parse((t=window.localStorage.getItem(Pn))!=null?t:"[]");Array.isArray(r)?this._callAdsTimestampsForTime=r:this._callAdsTimestampsForTime=[]}catch(r){this._callAdsTimestampsForTime=[]}};this.setReleaseBannedForTime=()=>{this.releaseBannedForTimeTimeout&&(window.clearTimeout(this.releaseBannedForTimeTimeout),this.releaseBannedForTimeTimeout=null),this.releaseBannedForTimeTimeout=window.setTimeout(()=>{this.isBanningForTime=!1,this.releaseBannedForTimeTimeout=null},this.bannedReleaseTime)};this.checkShouldBannedInitial=()=>{if(Date.now()-this.initTimestamp<=this.initialThreshold)return"BLOCK_INITIAL"};this.checkShouldBannedForSession=t=>{if(this.isBanningForSession)return"BANNED_FOR_SESSION";let r=Date.now();if(this.callAdsTimestampsForSession=this.callAdsTimestampsForSession.concat({timestamp:r,type:t}),this.callAdsTimestampsForSession.length!==1&&(this.callAdsTimestampsForSession.length>this.maxAllowedAdsForSession&&(this.callAdsTimestampsForSession=this.callAdsTimestampsForSession.slice(-this.maxAllowedAdsForSession)),this.callAdsTimestampsForSession.length===this.maxAllowedAdsForSession&&r-this.callAdsTimestampsForSession[0].timestamp<=this.bannedForSessionThreshold))return this.isBanningForSession=!0,"BANNED_FOR_SESSION"};this.checkShouldBannedForTime=t=>{if(this.isBanningForTime)return"WAITING_BANNED_RELEASE";let r=Date.now();if(this.callAdsTimestampsForTime=this.callAdsTimestampsForTime.concat({timestamp:r,type:t}),this.callAdsTimestampsForTime.length!==1&&(this.callAdsTimestampsForTime.length>this.maxAllowedAdsForTime&&(this.callAdsTimestampsForTime=this.callAdsTimestampsForTime.slice(-this.maxAllowedAdsForTime)),this.callAdsTimestampsForTime.length===this.maxAllowedAdsForTime&&r-this.callAdsTimestampsForTime[0].timestamp<=this.bannedForTimeThreshold))return this.isBanningForTime=!0,this.setReleaseBannedForTime(),"BANNED_FOR_TIME"};this.checkAdsDisplayPermission=t=>{if(!this.checkNetwork())return"NETWORK_NOT_OK";let r=this.checkShouldBannedInitial();if(r)return r;let n=this.checkShouldBannedForSession(t);if(n)return n;let s=this.checkShouldBannedForTime(t);return s||"ALLOWED"};var n,s,o,i,a,c;if(this.maxAllowedAdsForTime=(n=r==null?void 0:r.maxAllowedAdsForTime)!=null?n:8,this.bannedForTimeThreshold=(s=r==null?void 0:r.bannedForTimeThreshold)!=null?s:6e4,this.bannedReleaseTime=(o=r==null?void 0:r.bannedReleaseTime)!=null?o:6e4,this.maxAllowedAdsForSession=(i=r==null?void 0:r.maxAllowedAdsForSession)!=null?i:200,this.bannedForSessionThreshold=(a=r==null?void 0:r.bannedForSessionThreshold)!=null?a:6e5,this.initialThreshold=(c=r==null?void 0:r.initialThreshold)!=null?c:2e3,this.maxAllowedAdsForTime<=1)throw new Error("maxAllowedAdsForTime must be greater than 1");if(this.bannedForTimeThreshold<0)throw new Error("bannedForTimeThreshold must be greater than or equal to 0");if(this.bannedReleaseTime<this.bannedForTimeThreshold)throw new Error("bannedReleaseTime must be greater than or equal to bannedForTimeThreshold");if(this.initialThreshold<0)throw new Error("initialThreshold must be greater than or equal to 0");this.initCallAdsTimestampsForTime(),this.initTimestamp=Date.now()}get callAdsTimestampsForTime(){return this._callAdsTimestampsForTime}set callAdsTimestampsForTime(t){try{window.localStorage.setItem(Pn,JSON.stringify(t))}catch(r){console.error("Failed to save timestamps")}this._callAdsTimestampsForTime=t}}});var $e,Nn=h(()=>{"use strict";q();$e=class{constructor(t){this.httpClient=t;this.configs=null;this.firstRun=!0;this.init()}init(){return y(this,null,function*(){try{this.configs=yield this.httpClient.get("/api/fe-configs/js-sdk/ads-channel-config")}catch(t){}})}shouldBypassCallingInterstitial(){var r,n;let t;if(!this.configs)this.init(),t=!this.firstRun;else{let s=(r=k.channel)!=null?r:"",o=this.configs[s],i=(n=o==null?void 0:o.interstitialRate)!=null?n:1;t=Math.random()<i}return this.firstRun=!1,t}}});var ge,Ve,zt=h(()=>{"use strict";xn();Cn();q();Nn();w();ge=new z,Ve=class{constructor(t,r,n){this.track=t;this.httpClient=r;this.checkNetwork=n;this.configured=!1;this.config={};this.getGameId=()=>k.mpId;this.getTestAdsMode=()=>k.testAdsMode;this.asyncLoad=()=>y(this,null,function*(){var i,a,c,l,u;let t="ca-pub-7171363994453626",r,n,s=window.encodeURIComponent(window.btoa((i=this.getGameId())!=null?i:"")),o=(a=this.getTestAdsMode())!=null?a:!1;try{let m=yield this.httpClient.get("/public/ads",{query:{objectId:s,testAdsMode:`${o}`}});t=(c=m.data)==null?void 0:c.clientId,r=(l=m.data)==null?void 0:l.channelId,n=(u=m.data)==null?void 0:u.unitId}catch(m){console.error("Failed to fetch client info",m)}this.clientId=t,this.channelId=r,this.unitId=n});this.asyncInit=t=>y(this,null,function*(){var s;if(typeof window=="undefined")return;yield this.asyncLoad();let r="google-adsense",n=(s=this.getTestAdsMode())!=null?s:!1;if(!document.getElementById(r)&&this.clientId){let o=document.createElement("script");o.id=r,o.async=!0,o.crossOrigin="anonymous",o.src=`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${this.clientId}`,n&&o.setAttribute("data-adbreak-test","on"),this.channelId&&o.setAttribute("data-ad-channel",this.channelId),document.head.appendChild(o),this.track("LoadAdsenseCompleted",null)}});this.push=(t={})=>{window.adsbygoogle.push(t)};this.wrapAdBreakParams=t=>{if((n=>n.type==="preroll")(t)){ge.emit("isAdShowing",!0);let n=t.adBreakDone,s=o=>{ge.emit("isAdShowing",!1),n&&n(o)};return x(g({},t),{adBreakDone:s})}else{let n=t.beforeAd,s=t.afterAd,o=()=>{ge.emit("isAdShowing",!0),this.track("CallBeforeAd",{}),n&&n()},i=()=>{ge.emit("isAdShowing",!1),this.track("CallAfterAd",{}),s&&s()};return x(g({},t),{beforeAd:o,afterAd:i})}};this.adConfig=t=>{let s=t,{onReady:r}=s,n=ae(s,["onReady"]);this.track("CallAdConfig",n),this.configured?console.warn("Ad config already set, skipping"):(this.configured=!0,this.push(t))};this.adBreak=t=>{var c,l,u,m;if(!this.getGameId()){console.warn("Game ID is not set, skip calling adBreak");return}if(t.type!=="reward"&&!this.channelPolicy.shouldBypassCallingInterstitial()){(c=t.adBreakDone)==null||c.call(t,{breakType:t.type,breakName:"skipInterstitials",breakFormat:"interstitial",breakStatus:"viewed"});return}let r=this.antiCheating.checkAdsDisplayPermission(t.type==="reward"?"reward":"interstitial");switch(r){case"NETWORK_NOT_OK":case"BANNED_FOR_SESSION":console.warn("Ads not allowed",r),(l=t.adBreakDone)==null||l.call(t,{breakType:t.type,breakName:r,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"noAdPreloaded"}),this.track("PreventAdsCheating",{reason:r});return;case"BLOCK_INITIAL":case"BANNED_FOR_TIME":case"WAITING_BANNED_RELEASE":console.warn("Ads not allowed",r),(u=t.adBreakDone)==null||u.call(t,{breakType:t.type,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"viewed"}),this.track("PreventAdsCheating",{reason:r});return;default:break}let n=t.type,s=t.adBreakDone,o=p=>{var T;this.adsActionDetection.adBreakIsShowing=!1,this.track("CallAdBreakDone",{breakType:p.breakType,breakName:(T=p.breakName)!=null?T:"",breakFormat:p.breakFormat,breakStatus:p.breakStatus}),s&&s(p)};if(t.adBreakDone=o,t.type==="reward"){let p=t.beforeReward,T=b=>()=>{this.track("CallShowAdFn",null),b()},I=b=>{p&&p(T(b))};t.beforeReward=I}let i;switch(n){case"preroll":i={type:n};break;case"start":case"pause":case"next":case"browse":case"reward":i={type:n,name:(m=t.name)!=null?m:""};break}this.adsActionDetection.adBreakIsShowing=!0,this.track("CallAdBreak",i);let a=this.wrapAdBreakParams(t);this.push(a),window.JoliTesterBridge&&console.log("joli-fullscreen-ad-show")};this.adUnit=t=>y(this,null,function*(){var p,T,I,b;if(this.track("CallAdUnit",{adFormat:(T=(p=t.adFormat)==null?void 0:p.toString())!=null?T:null,fullWidthResponsive:(I=t.fullWidthResponsive)!=null?I:null}),this.clientId||(yield this.asyncLoad()),document.querySelector("#jolibox-ads")){console.warn("Ad unit already set, skipping");return}let{el:r,slot:n,adFormat:s,fullWidthResponsive:o,style:i}=t,a;if(!r)throw new Error("targeting element is required");if(typeof r=="string"?a=document.querySelector(r):a=r,!a)throw new Error("targeting element not found");let c=n;if(c||(c=this.unitId),!c)throw new Error("slot is required");let l=typeof s=="object"&&Array.isArray(s)?s.join(", "):s,u=document.createElement("ins");if(u.className="adsbygoogle",u.id="jolibox-ads",u.style.display="block",u.setAttribute("data-ad-client",this.clientId),u.setAttribute("data-ad-slot",c),l&&u.setAttribute("data-ad-format",l),o&&u.setAttribute("data-full-width-responsive",o),i&&u.setAttribute("style",i),(b=this.getTestAdsMode())!=null?b:!1){let v=document.createElement("div");v.style.position="absolute",v.style.top="0",v.style.left="0",v.style.width="100%",v.style.height="100%",v.style.display="flex",v.style.justifyContent="center",v.style.alignItems="center",v.style.backgroundColor="rgba(0, 0, 0, 0.5)",v.style.color="white",v.innerHTML="Test Ad",u.style.position="relative",a.appendChild(u),u.appendChild(v)}else a.appendChild(u),new MutationObserver(E=>{E.forEach(A=>{if(A.type==="attributes"&&A.attributeName==="data-ad-status"){let f=u.getAttribute("data-ad-status");this.track("AdSenseUnitStatusChanged",{status:f!=null?f:"null"})}})}).observe(u,{attributes:!0,attributeFilter:["data-ad-status"]}),this.push({})});this.antiCheating=new He(n),this.adsActionDetection=new Je(this.track),this.channelPolicy=new $e(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});var On={};lr(On,{config:()=>mo});function co(){X.on("onDocumentReady",()=>{var e;(e=oe)==null||e.onDocumentReady(window.location.href),H("onDocumentReady",{start_timestamp:Ge,timestamp:Date.now()})})}function lo(e){k.mpType==="game"&&B.start(e)}function uo(){W("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&k.onEnvConfigChanged({hostUserInfo:e}),X.emit("LifecycleEvent.onReady",g({},k.hostUserInfo?k.hostUserInfo:{isLogin:!1})),H("joliboxServiceReady",{start_timestamp:Ge,timestamp:Date.now()}),lo(t)}),W("onBeforeExit",({uuid:e})=>{var t;(t=oe)==null||t.doExit(e)})}function mo(){Ge=Date.now(),uo(),co(),Ke=_n()}var Ke,qe,Ge,Fn=h(()=>{"use strict";$();De();q();w();ie();Rn();zt();K.onReady(()=>{});K.doExit(()=>(H("onBeforeExit",{timestamp:Date.now()}),Ke==null||Ke(),B.close(Date.now()-Ge),!!qe));qe=!1;ge.on("isAdShowing",e=>{qe=e,gr(qe)&&P("updateContainerConfigSync",{displayCapsuleButton:!qe,webviewId:k.webviewId})})});function Dn(e){let t=At.config[e];return t||(t={},At.config[e]=t),(r,n)=>{if(t[r]){j.warn(`[can i use] ${r} already registered`);return}t[r]=g({},n)}}var Un=h(()=>{"use strict";w()});function Wt(e){Mn=e}function ze(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>ze(t)):Object.keys(e).reduce((t,r)=>(t[r]=ze(e[r]),t),{})}function ee(e){return typeof e=="number"}function Yt(e){let t=Qt(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function Qt(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var Mn,C,We,Ye,Qe,Xe,ve,Ze,et,tt,rt,nt,st,ot,it,at,ct,lt,dt,Xt=h(()=>{"use strict";Mn=!1;C=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(Mn)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 ${Yt(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return ze(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:ze(this._default)}optional(){return this._optional=!0,this}};We=class extends C{validate(t){return this._optional&&t===void 0?!0:ee(t)?ee(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):ee(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):ee(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}},Ye=class extends C{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Qe=class extends C{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(ee(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(ee(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}},Xe=class extends C{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},ve=class extends C{validate(t){return!0}},Ze=class extends C{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},et=class extends C{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},tt=class extends C{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},rt=class extends C{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 ${Yt(t)}`)}return!0}},nt=class extends C{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(ee(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(ee(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(ee(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 s=!0;if(r.forEach((o,i)=>{if(n.path=`${this.path}[${i}]`,n.errors=this.errors,o===void 0&&n.hasDefault){r[i]=n.defaultValue;return}n.validate(o)||(n.hasFallback?r[i]=n.fallbackValue:s=!1)}),this._uniqueItems){let o=new Map;for(let i in r)o.has(r[i])?s=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${o.get(r[i])}] and ${this.path}[${i}] are identical)`):o.set(r[i],i)}return s}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}},st=class extends C{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(Qt(r)!=="object")return this.fail({expect:"object",actual:r});let s=r,o=this._value;o.errors=this.errors;let i=!0;for(let a in s){let c=s[a];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(a)?o.path=`${this.path}.${a}`:o.path=`${this.path}["${a}"]`,!(c===void 0&&o._optional)){if(c===void 0&&o.hasDefault){s[a]=o.defaultValue;continue}o.validate(c)||(o.hasFallback?s[a]=o.fallbackValue:i=!1)}}return i}},ot=class extends C{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(Qt(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,s=!0;for(let o in this._object){let i=n[o],a=this._object[o];if(a.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(o)?a.path=`${this.path}.${o}`:a.path=`${this.path}["${o}"]`,!(a._optional&&i===void 0)){if(i===void 0&&a.hasDefault){n[o]=a.defaultValue;continue}a.validate(i)||(a.hasFallback?n[o]=a.fallbackValue:s=!1)}}return s}},it=class extends C{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:Yt(this.value),actual:r}):!0}},at=class extends C{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,s=this._items.length;for(let o=0;o<s;o++){let i=this._items[o];if(i.errors=[],i.path=this.path,!i.validate(t))r.push(i.errors.join("; "));else if(!n){n=!0;break}}if(!n){let o=r.join(`
20
- or `);this.errors.push(o)}return n}},ct=class extends C{constructor(...t){super(),this._items=t;let r=0,n=t.length-1;for(;n>=0;n--){let s=t[n];if(s._optional||s.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,s)=>{if(n.path=`${this.path}[${s}]`,n.errors=this.errors,t[s]===void 0&&n.hasDefault){t[s]=n.defaultValue;return}n.validate(t[s])||(n.hasFallback?t[s]=n._fallback:r=!1)}),r}},lt=class extends C{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},dt=class extends C{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 Zt(e,t,r="param"){if(e.errors=[],e.path=r,Wt(!0),!e.validate(t)){let n=e.errors.join(`
21
- `);throw e.errors.length=0,Wt(!1),new TypeError(n)}}var d,er=h(()=>{"use strict";Xt();Xt();d={object(e){return new ot(e)},array(e){return new nt(e)},tuple(...e){return new ct(...e)},literal(e){return new it(e)},or(...e){return new at(...e)},symbol(){return new Xe},record(e){return new st(e)},function(){return new tt},boolean(){return new Ye},string(){return new Qe},number(){return new We},undefined(){return new Ze},null(){return new et},unknown(){return new ve},any(){return new ve},as(){return new ve},arraybuffer(){return new lt},enum(...e){return new rt(...e)},typedarray(e){return new dt(e)}}});var ut,Ln,Bn=h(()=>{"use strict";w();V();er();se();ut=1,Ln=e=>{function t(n,s){return(...o)=>{var m,p,T,I;let i=Date.now(),a={method:n,trace_id:ut};ut+=1;let c="SUCCESS",l=`${n}:ok`,u=0;try{if(s.paramsSchema)try{Zt(s.paramsSchema,o,"params")}catch(A){throw Pt(`${n}:fail ${A.message}`)}let b=s.implement(...o),v=b,E=`${n}:ok`;if(b&&"code"in b){let{code:A,data:f,message:R}=b;c=A,v=f,E=R}return{code:c,message:E,data:v}}catch(b){let v=b;u=(p=(m=v.code)!=null?m:v.errNo)!=null?p:2e3,c="FAILURE";let E=(I=(T=v.message)!=null?T:v.errMsg)!=null?I:`${b}`;return l=`${n}:${c} ${E.replace(/^\S+:(fail|cancel)\s?/,"")}`,D(new Se(l,u)),{code:c,message:l}}finally{let b=Date.now()-i;e("apiInvoked",x(g({},a),{duration:b,status:c}))}}}function r(n,s){return(...o)=>y(this,null,function*(){var p,T,I,b;let i=hr(o)?o:[o],a=Date.now(),c={method:n,trace_id:ut};ut+=1;let l=`${n}:ok`,u="SUCCESS",m={code:u,message:l};try{if(s.paramsSchema)try{Zt(s.paramsSchema,i,"params")}catch(A){throw Pt(A.message)}let E=yield s.implement(...i);if(E&&"code"in E){let{code:A,data:f,message:R}=E;u=A,l=R,E=f}return Object.assign(m,{code:u,message:l,data:E}),m}catch(v){let E=v,A=(T=(p=E.code)!=null?p:E.errNo)!=null?T:2e3;u="FAILURE";let f=(b=(I=E.message)!=null?I:E.errMsg)!=null?b:`${v}`,R=`${n}:${u} ${f.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(m,{code:u,message:R}),D(new Se(R,A)),m}finally{let v=Date.now()-a;e("apiInvoked",x(g({},c),{duration:v,status:u}))}})}return{createAPI:r,createSyncAPI:t}}});var N,F,S,te=h(()=>{"use strict";Un();ie();Bn();er();({createAPI:N,createSyncAPI:F}=Ln(H)),S=Dn("native")});var jn,fo,ho,go,vo,Jn=h(()=>{"use strict";w();te();$();jn=O(),fo="env",ho="getSystemInfoSync",go=F(ho,{implement:()=>{var r;let e=P("envSync"),{data:t}=e;return{system:t.deviceInfo.system,platform:t.deviceInfo.platform,version:t.sdkInfo.jssdkVersion,pixelRatio:t.deviceInfo.pixelRatio,language:t.deviceInfo.lang,brand:t.deviceInfo.brand,appName:(r=t.hostInfo)==null?void 0:r.appName,SDKVersion:t.sdkInfo.jssdkVersion}}}),vo=F(fo,{implement:()=>{var t;let e=P("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});jn.registerCommand("API.getSystemInfoSync",go);jn.registerCommand("API.env",vo);S("env",{version:"1.0.0"});S("getSystemInfoSync",{version:"1.0.0"})});var Hn=cr(tr=>{"use strict";w();te();V();$();ie();var yo="exitGame",bo="onReady",To="onJoliboxShow",ko="onJoliboxHide",mt=O(),pt=Oe(D),Eo=N(yo,{paramsSchema:d.tuple(d.function()),implement:e=>y(tr,null,function*(){pt(e).call(tr),yield J("exitAppAsync")})}),wo=F(To,{paramsSchema:d.tuple(d.function()),implement(e){let t=pt(e);W("onJoliboxEnterForeground",()=>{t.call(this),Ie.emit("visible",!0)})}}),So=F(ko,{paramsSchema:d.tuple(d.function()),implement(e){let t=pt(e);W("onJoliboxEnterBackground",()=>{t.call(this),Ie.emit("visible",!1)})}}),Io=F(bo,{paramsSchema:d.tuple(d.function()),implement(e){let t=pt(e);X.on("LifecycleEvent.onReady",r=>{t(r)})}});mt.registerCommand("LifecycleSDK.exit",Eo);mt.registerCommand("LifecycleSDK.onReady",Io);mt.registerCommand("LifecycleSDK.onJoliboxShow",wo);mt.registerCommand("LifecycleSDK.onJoliboxHide",So);S("lifeCycle.exit",{version:"1.0.0"});S("lifeCycle.onReady",{version:"1.0.0"});S("lifeCycle.onJoliboxShow",{version:"1.0.0"});S("lifeCycle.onJoliboxHide",{version:"1.0.0"})});function $n(e){let t={};if(!M(e))return t;for(let[r,n]of Object.entries(e)){let s=r.toLocaleLowerCase();n?typeof n=="object"?t[s]=Object.prototype.toString.call(n):t[s]=String(n):t[s]=""}return t}function Vn(e="GET"){if(e==="")return"POST";let t=e.toUpperCase();return["GET","OPTIONS","HEAD","POST","PUT","DELETE","TRACE","CONNECT","PATCH"].includes(t)?t:"GET"}function Kn(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function qn(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!M(r))return e;let[n,s=""]=e.split("?"),o=JSON.stringify(g(g({},JSON.parse(s)),r));return`${n}?${o}`}var Gn=h(()=>{"use strict";w()});var Ao,_o,rr,nr,zn,Ro,xo,Po,Wn=h(()=>{"use strict";se();qt();te();Gn();w();V();Ao=15,_o=Le("createRequestTaskSync","operateRequestTaskSync",{type:"public"}),rr=0,nr=[],zn=Oe(D),Ro=(e,t)=>{let r=e.filter(t),n=e.filter(s=>!t(s));return e.length=0,e.push(...n),r},xo=e=>{let t=new ne,r=()=>{};return N("request",{paramsSchema:d.tuple(d.object({url:d.string(),method:d.string(),header:d.object(),data:d.object().optional(),query:d.object().optional(),dataType:d.string().default("json"),responseType:d.string().default("text"),enableCache:d.boolean().default(!1),appendHostCookie:d.boolean().default(!0),timeout:d.number().default(3e4),success:d.function(),fail:d.function()})),implement(s){let o=()=>y(this,null,function*(){var a,c;let i=zn(s.fail);try{if(rr+=1,t.state!=="pending")return;let{data:l,dataType:u,responseType:m,enableCache:p,appendHostCookie:T}=s,I=$n(s.header),b=Vn(s.method),v=Kn(s.timeout),E=qn(s.url,b,l),A=zn(s.success),f=Object.assign({},s,{method:b,header:I,data:b==="GET"||b==="HEAD"?void 0:l,enableCache:p,query:(a=s.query)!=null?a:{},dataType:u,responseType:m,appendHostCookie:T});v&&(f.timeout=v);let R=_o(E,f);{let{response:fe}=yield R,{code:U,data:be,message:re}=fe;t.resolve({code:U!=null?U:"SUCCESS",data:be,message:re!=null?re:"request:ok"}),A({code:"SUCCESS",message:"request:ok",data:be})}}catch(l){t.reject(l),i({code:"FAILURE",message:"httpRequst: failed"})}finally{rr-=1,(c=nr.shift())==null||c()}});return rr>=Ao?(r=()=>{Ro(nr,i=>i===o)},nr.push(o)):o(),t.promise}})(e),{abort(){t.reject(ue({code:-1,msg:"request:fail abort"})),r()}}},Po=O();Po.registerCommand("HttpSDK.request",xo);S("request",{version:"1.0.0"})});function Uo(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return Do.includes(t)?t:""}function Mo(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 Lo(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 ft,Co,No,Oo,Fo,cd,ld,Do,Yn=h(()=>{"use strict";te();$();w();Be();q();ft=O(),Co=N("getLocalStorage",{paramsSchema:d.tuple(d.string()),implement(e){return y(this,null,function*(){let{response:t}=yield Z(`/api/games/user-storage/${k.mpId}`,{method:"GET",responseType:"json",appendHostCookie:!0,query:{key:e}}),{data:{code:r,message:n,data:s}}=yield t;if(r==="SUCCESS")return{code:r,message:n,data:s==null?void 0:s.value};try{let{data:{data:o,dataType:i}}=yield J("getLocalStorageAsync",{key:e}),a=Mo(o,i);return{code:r,message:`${n}. fallback to native`,data:a}}catch(o){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});ft.registerCommand("StorageSDK.getItem",Co);S("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});No=N("setStorage",{paramsSchema:d.tuple(d.string(),d.or(d.string(),d.boolean(),d.number())),implement(e,t){return y(this,null,function*(){let r=k.mpId,n=typeof t=="string"?t:String(t),{response:s}=yield Z(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:o,message:i}}=s,a=Uo(t),c=Lo(t,a);return yield J("setLocalStorageAsync",{key:e,data:c,dataType:a}),o=="SUCCESS"?{code:o,message:i}:{code:o,message:`${i}. fallback to native`}})}});ft.registerCommand("StorageSDK.setItem",No);S("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Oo=N("removeStorage",{paramsSchema:d.tuple(d.string()),implement(e){return y(this,null,function*(){let t=k.mpId,{response:r}=yield Z(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:s}}=r;return yield J("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:s}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});ft.registerCommand("StorageSDK.removeItem",Oo);S("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});Fo=N("clearStorage",{implement(){return y(this,null,function*(){let e=k.mpId,{response:t}=yield Z(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});J("clearLocalStorageAsync");let{data:{code:r,message:n}}=t;return r==="SUCCESS"?{code:r,message:n}:{code:r,message:`${n}.fallback to native`}})}});ft.registerCommand("StorageSDK.clear",Fo);S("storage.clear",{version:"1.0.0"});cd=N("getStorageInfo",{implement(){return y(this,null,function*(){let{data:e}=yield J("getStorageInfoAsync");return e})}});S("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});ld=F("getStorageInfoSync",{implement(){return P("getStorageInfoSync")}}),Do=["string","number","boolean","object",""]});var Bo,jo,Jo,sr,Qn=h(()=>{"use strict";w();$();te();Bo=F("showKeyboard",{paramsSchema:d.tuple(d.object({defaultValue:d.string().optional().default(""),multiple:d.boolean().optional().default(!1),maxLength:d.unknown().optional().default(1e5)})),implement(e){var n;let t=Math.floor((n=Number(e.maxLength))!=null?n:1e5),{defaultValue:r}=e;r&&t&&(r=r.slice(0,t)),P("showKeyboardSync",x(g({},e),{defaultValue:r,maxLength:t}))}});S("keyboard.showKeyboard",{version:"1.0.0",properties:{params:{defaultValue:"1.0.0",multiple:"1.0.0",confirmHold:"1.0.0",confirmType:"1.0.0",maxLength:"1.0.0"}},success:{errMsg:"1.0.0"}});jo=F("updateKeyboard",{paramsSchema:d.tuple(d.object({value:d.string()})),implement(e){P("updateKeyboardSync",e)}});S("keyboard.updateKeyboard",{version:"1.0.0",properties:{params:{value:"1.0.0"}}});Jo=F("hideKeyboard",{implement(){P("hideKeyboardSync")}});S("keyboard.hideKeyboard",{version:"1.0.0"});sr=O();sr.registerCommand("KeyboardSDK.showKeyboard",Bo);sr.registerCommand("KeyboardSDK.updateKeyboard",jo);sr.registerCommand("KeyboardSDK.hideKeyboard",Jo)});var Xn=cr(pe=>{"use strict";w();te();ie();var ye=O(),Ho=N("levelFinished",{paramsSchema:d.tuple(d.string(),d.object({result:d.boolean(),duration:d.number()})),implement:(e,t)=>y(pe,null,function*(){let{result:r,duration:n}=t,s=[];s.push(B.tracker("LevelFinished",{levelId:e,result:r,duration:n})),s.push(B.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(s)})}),$o=N("taskFinished",{paramsSchema:d.tuple(d.string(),d.object({duration:d.number()})),implement:(e,t)=>y(pe,null,function*(){let{duration:r}=t;return yield B.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),Vo=N("levelUpgrade",{paramsSchema:d.tuple(d.string(),d.string()),implement:(e,t)=>y(pe,null,function*(){let r=[];r.push(B.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),Ko=N("onHistoryUserLevel",{paramsSchema:d.tuple(d.number()),implement:e=>y(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),qo=N("onHistoryUserScore",{paramsSchema:d.tuple(d.number()),implement:e=>y(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),Go=N("taskEvent",{paramsSchema:d.tuple(d.string(),d.object({tools:d.array(d.object({id:d.string(),name:d.string(),count:d.number(),description:d.string().optional(),price:d.object({amount:d.number(),unit:d.string()}).optional()})).optional(),awards:d.array(d.object({id:d.string(),name:d.string()})).optional()})),implement:(e,t)=>y(pe,null,function*(){var n,s;let r=[];r.push(B.reportToNative({event:"TaskEvent",params:g({taskId:e},t)})),(s=(n=t.tools)==null?void 0:n.length)!=null&&s&&(r.push(B.reporter({event:"USE_GAME_ITEM"})),r.push(B.reportToNative({event:"UseGameItem",params:g({taskId:e},t)}))),yield Promise.all(r)})});ye.registerCommand("TaskTrackerSDK.levelFinished",Ho);ye.registerCommand("TaskTrackerSDK.taskFinished",$o);ye.registerCommand("TaskTrackerSDK.levelUpgrade",Vo);ye.registerCommand("TaskTrackerSDK.historyUserLevel",Ko);ye.registerCommand("TaskTrackerSDK.historyUserScore",qo);ye.registerCommand("TaskTrackerSDK.taskEvent",Go);S("TaskTrackerSDK.onLevelFinished",{version:"1.0.0",properties:{levelId:"1.0.0",params:{result:"1.0.0",duration:"1.0.0"}}});S("TaskTrackerSDK.onTaskFinished",{version:"1.0.0",properties:{taskId:"1.0.0",duration:"1.0.0"}});S("TaskTrackerSDK.onLevelUpgrade",{version:"1.0.0",properties:{levelId:"1.0.0",name:"1.0.0"}});S("TaskTrackerSDK.onHistoryUserLevel",{version:"1.0.0",properties:{level:"1.0.0"}});S("TaskTrackerSDK.onHistoryUserScore",{version:"1.0.0",properties:{score:"1.0.0"}});S("TaskTrackerSDK.onTaskEvent",{version:"1.0.0",properties:{taskId:"1.0.0",params:{tools:{id:"1.0.0",name:"1.0.0",count:"1.0.0",description:"1.0.0",price:{amount:"1.0.0",unit:"1.0.0"}},awards:{id:"1.0.0",name:"1.0.0"}}}})});var zo,Wo,Zn,es=h(()=>{"use strict";q();$();te();w();se();S("login",{version:"1.0.0",properties:{force:"1.0.0"},success:{errMsg:"1.0.0",code:"1.0.0",token:"1.0.0",isLogin:"1.0.0"}});S("checkSession",{version:"1.0.0",success:{errMsg:"1.0.0"}});zo=N("login",{implement(){return y(this,null,function*(){var i;let{data:{isLogin:e}}=yield J("checkLoginAsync");if(e)return{isLogin:!0,token:(i=k.hostUserInfo)==null?void 0:i.token};W("onLoginStateChange",({isLogin:a,token:c,uuid:l})=>{l==r&&s({isLogin:a,token:c})});let t=P("loginSync"),{data:{uuid:r}}=t;if(!r)throw ue({code:-1,msg:"login failed"});let{promise:n,resolve:s}=new ne,o=yield n;return k.onEnvConfigChanged({hostUserInfo:o}),X.emit("onLoginComplete",o),o})}}),Wo=N("checkSession",{implement(){return y(this,null,function*(){let{data:{isLogin:e}}=yield J("checkLoginAsync");return{isLogin:e}})}}),Zn=O();Zn.registerCommand("API.login",zo);Zn.registerCommand("API.checkSession",Wo)});var ht,Yo,gt,Qo,Xo,Zo,ei,ts=h(()=>{"use strict";w();te();zt();ie();Be();$();ht=O(),Yo=()=>{let{data:e}=P("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},gt=new Ve(H,{get:(e,t)=>Z(e,g({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data)},Yo),Qo=F("adInit",{implement:e=>{gt.init(e)}}),Xo=F("adConfig",{implement:e=>{gt.adConfig(e)}}),Zo=F("adBreak",{implement:e=>{gt.adBreak(e)}}),ei=F("adUnit",{implement:e=>{gt.adUnit(e)}});ht.registerCommand("AdsSDK.init",Qo);ht.registerCommand("AdsSDK.adConfig",Xo);ht.registerCommand("AdsSDK.adBreak",Zo);ht.registerCommand("AdsSDK.adUnit",ei);S("AdsSDK.init",{version:"1.0.0"});S("AdsSDK.adConfig",{version:"1.0.0"});S("AdsSDK.adBreak",{version:"1.0.0"});S("AdsSDK.adUnit",{version:"1.0.0"})});var ti={};var Hd,qd,rs=h(()=>{"use strict";Jn();Hd=dr(Hn());Wn();Yn();Qn();qd=dr(Xn());es();ts()});var ns=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[ns])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[ns]=!0;y(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(Fn(),On)),Promise.resolve().then(()=>(rs(),ti)),Promise.resolve().then(()=>(ie(),An))]);e()});
19
+ `;e.textContent=i;let s=document.head||document.getElementsByTagName("head")[0];s.insertBefore(e,s.firstChild),document.documentElement.setAttribute("data-jolibox-root","")},n=()=>{function i(a){return T(this,null,function*(){let l=a instanceof URL?a.href:a,u=new Promise((d,c)=>{let p=new XMLHttpRequest;p.open("GET",l),p.responseType="arraybuffer",p.addEventListener("load",()=>d(p.response)),p.addEventListener("error",c),p.send()});try{let d=yield u;return new Response(d,{headers:new Headers([["Content-Type","application/wasm"]])}).clone()}catch(d){throw console.error("Failed to load wasm:",d),d}})}let s=window.fetch;window.fetch=(a,l)=>{let u=a instanceof URL?a.href:a.toString();return u.endsWith(".wasm")?i(u):s(a,l)}},o=()=>{e!=null&&e.parentNode&&(e.parentNode.removeChild(e),e=null),document.documentElement.removeAttribute("data-jolibox-root"),window.fetch=t};return r(),n(),o}var Eo=k(()=>{"use strict"});var ft,xo=k(()=>{"use strict";ft=class{constructor(t){this.track=t;this.adBreakIsShowing=!1;this.reportPageJumpOut=()=>{this.track("AdBreakJumpOut",{context:"AdsActionDetection"})};this.reportPageHide=()=>{this.track("AdBreakHide",{context:"AdsActionDetection"})};window.addEventListener("visibilitychange",()=>{document.hidden&&this.adBreakIsShowing&&this.reportPageHide()}),window.addEventListener("beforeunload",r=>{this.adBreakIsShowing&&this.reportPageJumpOut()})}}});var ht,Qs,Ys,Xs,Zs,Io=k(()=>{"use strict";ht=class{constructor(t,r,n,o){this.track=t;this.httpClient=r;this.checkNetwork=n;this.checkAdsDisplayPermission=t=>{if(!this.checkNetwork())return{reason:"NETWORK_NOT_OK"};let r=this.checkShouldBanInitial();if(r)return{reason:r};let n=this.checkShouldBanForSession(t);if(n)return{reason:n};let o=this.checkShouldBanHighFreq(t);if(o)return o;let i=this.checkShouldBanForTime(t);return i?{reason:i}:{reason:"ALLOWED"}};var p,m,y,v,h,g,b;let i=(p=o==null?void 0:o.maxAllowedAdsForTime)!=null?p:8,s=(m=o==null?void 0:o.banForTimeThreshold)!=null?m:6e4,a=(y=o==null?void 0:o.bannedReleaseTime)!=null?y:6e4,l=(v=o==null?void 0:o.maxAllowedAdsForSession)!=null?v:200,u=(h=o==null?void 0:o.banForSessionThreshold)!=null?h:6e5,d=(g=o==null?void 0:o.initialThreshold)!=null?g:2e3,c=(b=o==null?void 0:o.highFreqThreshold)!=null?b:2e3;this.checkShouldBanInitial=Xs(d),this.checkShouldBanHighFreq=Zs(c),this.checkShouldBanForTime=Ys(i,s,a),this.checkShouldBanForSession=Qs(l,u)}report(t,r){let n=r?{reason:t,count:r}:{reason:t};this.track("PreventAdsCheating",n),this.httpClient.post("/api/base/app-event",{data:{eventType:"PREVENT_ADS_CHEATING",adsInfo:n}})}},Qs=(e,t)=>{let r=!1,n=[];return i=>{if(r)return"BANNED_FOR_SESSION";let s=Date.now();if(n=n.concat({timestamp:s,type:i}),n.length!==1&&(n.length>e&&(n=n.slice(-e)),n.length===e&&s-n[0].timestamp<=t))return r=!0,"BANNED_FOR_SESSION"}},Ys=(e,t,r)=>{let n=null,o=d=>{n&&(window.clearTimeout(n),n=null),n=window.setTimeout(()=>{l.value=!1,n=null},d)},i="jolibox-sdk-ads-callbreak-timestamps",s="jolibox-sdk-ads-ban-for-time",a={_records:[],init(){var d;try{let c=JSON.parse((d=window.localStorage.getItem(i))!=null?d:"[]");Array.isArray(c)?this._records=c:this._records=[]}catch(c){this._records=[]}},get values(){return this._records},set values(d){try{window.localStorage.setItem(i,JSON.stringify(d))}catch(c){}this._records=d}},l={_record:!1,init(){var d;try{let c=JSON.parse((d=window.localStorage.getItem(s))!=null?d:"false");typeof c=="boolean"&&(this._record=c)}catch(c){this._record=!1}if(this._record){let c=a.values[a.values.length-1],p=c?Date.now()-c.timestamp:r;p<=r&&p>0?o(p):this._record=!1}},get value(){return this._record},set value(d){try{window.localStorage.setItem(s,JSON.stringify(d))}catch(c){}this._record=d}};return a.init(),l.init(),d=>{if(l.value)return"WAITING_BANNED_RELEASE";let c=Date.now();if(a.values=a.values.concat({timestamp:c,type:d}),a.values.length!==1&&(a.values.length>e&&(a.values=a.values.slice(-e)),a.values.length===e&&c-a.values[0].timestamp<=t))return l.value=!0,o(r),"BANNED_FOR_TIME"}},Xs=e=>{let t=Date.now();return()=>{if(Date.now()-t<=e)return"BLOCK_INITIAL"}},Zs=(e=2e3)=>{let t=0,r=null;return o=>{if(o==="reward"){if(r)return t+=1,{reason:"HOLDING_HIGH_FREQ",info:{count:t}};r=window.setTimeout(()=>{r&&(window.clearTimeout(r),r=0,t=0)},e)}}}});var gt,Ro=k(()=>{"use strict";K();gt=class{constructor(t){this.httpClient=t;this.configs=null;this.firstRun=!0;this.init()}init(){return T(this,null,function*(){try{this.configs=yield this.httpClient.get("/api/fe-configs/js-sdk/ads-channel-config")}catch(t){}})}shouldBypassCallingInterstitial(){var r,n;let t;if(!this.configs)this.init(),t=!this.firstRun;else{let o=(r=w.channel)!=null?r:"",i=this.configs[o],s=(n=i==null?void 0:i.interstitialRate)!=null?n:1;t=Math.random()<s}return this.firstRun=!1,t}}});var Oe,_t,xr=k(()=>{"use strict";xo();Io();K();Ro();A();Oe=new te,_t=class{constructor(t,r,n){this.track=t;this.httpClient=r;this.checkNetwork=n;this.configured=!1;this.config={};this.getGameId=()=>w.mpId;this.getTestAdsMode=()=>w.testAdsMode;this.asyncLoad=()=>T(this,null,function*(){var s,a,l,u,d;let t="ca-pub-7171363994453626",r,n,o=window.encodeURIComponent(window.btoa((s=this.getGameId())!=null?s:"")),i=(a=this.getTestAdsMode())!=null?a:!1;try{let c=yield this.httpClient.get("/public/ads",{query:{objectId:o,testAdsMode:`${i}`}});t=(l=c.data)==null?void 0:l.clientId,r=(u=c.data)==null?void 0:u.channelId,n=(d=c.data)==null?void 0:d.unitId}catch(c){console.error("Failed to fetch client info",c)}this.clientId=t,this.channelId=r,this.unitId=n});this.asyncInit=t=>T(this,null,function*(){var o;if(typeof window=="undefined")return;yield this.asyncLoad();let r="google-adsense",n=(o=this.getTestAdsMode())!=null?o:!1;if(!document.getElementById(r)&&this.clientId){let i=document.createElement("script");i.id=r,i.async=!0,i.crossOrigin="anonymous",i.src=`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${this.clientId}`,n&&i.setAttribute("data-adbreak-test","on"),this.channelId&&i.setAttribute("data-ad-channel",this.channelId),document.head.appendChild(i),this.track("LoadAdsenseCompleted",null)}});this.push=(t={})=>{window.adsbygoogle.push(t)};this.wrapAdBreakParams=t=>{if((n=>n.type==="preroll")(t)){Oe.emit("isAdShowing",!0);let n=t.adBreakDone,o=i=>{Oe.emit("isAdShowing",!1),n&&n(i)};return N(_({},t),{adBreakDone:o})}else{let n=t.beforeAd,o=t.afterAd,i=()=>{var a;Oe.emit("isAdShowing",!0),this.track("CallBeforeAd",{type:t.type,name:(a=t.name)!=null?a:""}),n&&n()},s=()=>{var a;Oe.emit("isAdShowing",!1),this.track("CallAfterAd",{type:t.type,name:(a=t.name)!=null?a:""}),o&&o()};return N(_({},t),{beforeAd:i,afterAd:s})}};this.adConfig=t=>{let o=t,{onReady:r}=o,n=W(o,["onReady"]);this.track("CallAdConfig",n),this.configured?console.warn("Ad config already set, skipping"):(this.configured=!0,this.push(t))};this.adBreak=t=>{var u,d,c,p,m,y;if(!this.getGameId()){console.warn("Game ID is not set, skip calling adBreak");return}if(t.type!=="reward"&&!this.channelPolicy.shouldBypassCallingInterstitial()){(u=t.adBreakDone)==null||u.call(t,{breakType:t.type,breakName:"skipInterstitials",breakFormat:"interstitial",breakStatus:"viewed"});return}let{reason:r,info:n}=this.antiCheating.checkAdsDisplayPermission(t.type==="reward"?"reward":"interstitial");switch(r){case"NETWORK_NOT_OK":case"BANNED_FOR_SESSION":(d=t.adBreakDone)==null||d.call(t,{breakType:t.type,breakName:r,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"noAdPreloaded"}),this.antiCheating.report(r);return;case"BLOCK_INITIAL":case"BANNED_FOR_TIME":case"WAITING_BANNED_RELEASE":(c=t.adBreakDone)==null||c.call(t,{breakType:t.type,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"frequencyCapped"}),this.antiCheating.report(r);return;case"HOLDING_HIGH_FREQ":(m=t.adBreakDone)==null||m.call(t,{breakFormat:t.type==="reward"?"reward":"interstitial",breakName:"",breakStatus:((p=n==null?void 0:n.count)!=null?p:0)>6?"other":"frequencyCapped",breakType:t.type}),n!=null&&n.count&&n.count!==0&&n.count%3===0&&this.antiCheating.report(r,n==null?void 0:n.count);return;default:break}let o=t.type,i=t.adBreakDone,s=v=>{var h;this.adsActionDetection.adBreakIsShowing=!1,this.track("CallAdBreakDone",{breakType:v.breakType,breakName:(h=v.breakName)!=null?h:"",breakFormat:v.breakFormat,breakStatus:v.breakStatus}),i&&i(v)};if(t.adBreakDone=s,t.type==="reward"){let v=t.beforeReward,h=b=>()=>{this.track("CallShowAdFn",null),b()},g=b=>{v&&v(h(b))};t.beforeReward=g}let a;switch(o){case"preroll":a={type:o};break;case"start":case"pause":case"next":case"browse":case"reward":a={type:o,name:(y=t.name)!=null?y:""};break}this.adsActionDetection.adBreakIsShowing=!0,this.track("CallAdBreak",a);let l=this.wrapAdBreakParams(t);this.push(l),window.JoliTesterBridge&&console.log("joli-fullscreen-ad-show")};this.adUnit=t=>T(this,null,function*(){var p,m,y,v;if(this.track("CallAdUnit",{adFormat:(m=(p=t.adFormat)==null?void 0:p.toString())!=null?m:null,fullWidthResponsive:(y=t.fullWidthResponsive)!=null?y:null}),this.clientId||(yield this.asyncLoad()),document.querySelector("#jolibox-ads")){console.warn("Ad unit already set, skipping");return}let{el:r,slot:n,adFormat:o,fullWidthResponsive:i,style:s}=t,a;if(!r)throw new Error("targeting element is required");if(typeof r=="string"?a=document.querySelector(r):a=r,!a)throw new Error("targeting element not found");let l=n;if(l||(l=this.unitId),!l)throw new Error("slot is required");let u=typeof o=="object"&&Array.isArray(o)?o.join(", "):o,d=document.createElement("ins");if(d.className="adsbygoogle",d.id="jolibox-ads",d.style.display="block",d.setAttribute("data-ad-client",this.clientId),d.setAttribute("data-ad-slot",l),u&&d.setAttribute("data-ad-format",u),i&&d.setAttribute("data-full-width-responsive",i),s&&d.setAttribute("style",s),(v=this.getTestAdsMode())!=null?v:!1){let h=document.createElement("div");h.style.position="absolute",h.style.top="0",h.style.left="0",h.style.width="100%",h.style.height="100%",h.style.display="flex",h.style.justifyContent="center",h.style.alignItems="center",h.style.backgroundColor="rgba(0, 0, 0, 0.5)",h.style.color="white",h.innerHTML="Test Ad",d.style.position="relative",a.appendChild(d),d.appendChild(h)}else a.appendChild(d),new MutationObserver(g=>{g.forEach(b=>{if(b.type==="attributes"&&b.attributeName==="data-ad-status"){let E=d.getAttribute("data-ad-status");this.track("AdSenseUnitStatusChanged",{status:E!=null?E:"null"})}})}).observe(d,{attributes:!0,attributeFilter:["data-ad-status"]}),this.push({})});this.antiCheating=new ht(t,r,n),this.adsActionDetection=new ft(this.track),this.channelPolicy=new gt(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});function me(e,t){for(var r in t)e[r]=t[r];return e}function Lr(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Ie(e,t,r){var n,o,i,s={};for(i in t)i=="key"?n=t[i]:i=="ref"?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Et.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return bt(e,s,n,o,null)}function bt(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o!=null?o:++zo,__i:-1,__u:0};return o==null&&x.vnode!=null&&x.vnode(i),i}function Re(e){return e.children}function fe(e,t){this.props=e,this.context=t}function De(e,t){if(t==null)return e.__?De(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?De(e):null}function ei(e){var t,r;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null){e.__e=e.__c.base=r.__e;break}return ei(e)}}function Co(e){(!e.__d&&(e.__d=!0)&&xe.push(e)&&!wt.__r++||Ao!==x.debounceRendering)&&((Ao=x.debounceRendering)||Qo)(wt)}function wt(){for(var e,t,r,n,o,i,s,a=1;xe.length;)xe.length>a&&xe.sort(Yo),e=xe.shift(),a=xe.length,e.__d&&(r=void 0,o=(n=(t=e).__v).__e,i=[],s=[],t.__P&&((r=me({},n)).__v=n.__v+1,x.vnode&&x.vnode(r),Br(t.__P,r,n,t.__n,t.__P.namespaceURI,32&n.__u?[o]:null,i,o!=null?o:De(n),!!(32&n.__u),s),r.__v=n.__v,r.__.__k[r.__i]=r,ni(i,r,s),r.__e!=o&&ei(r)));wt.__r=0}function ti(e,t,r,n,o,i,s,a,l,u,d){var c,p,m,y,v,h,g=n&&n.__k||Zo,b=t.length;for(l=ta(r,t,g,l,b),c=0;c<b;c++)(m=r.__k[c])!=null&&(p=m.__i===-1?Ge:g[m.__i]||Ge,m.__i=c,h=Br(e,m,p,o,i,s,a,l,u,d),y=m.__e,m.ref&&p.ref!=m.ref&&(p.ref&&jr(p.ref,null,m),d.push(m.ref,m.__c||y,m)),v==null&&y!=null&&(v=y),4&m.__u||p.__k===m.__k?l=ri(m,l,e):typeof m.type=="function"&&h!==void 0?l=h:y&&(l=y.nextSibling),m.__u&=-7);return r.__e=v,l}function ta(e,t,r,n,o){var i,s,a,l,u,d=r.length,c=d,p=0;for(e.__k=new Array(o),i=0;i<o;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(l=i+p,(s=e.__k[i]=typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?bt(null,s,null,null,null):Qe(s)?bt(Re,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?bt(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):s).__=e,s.__b=e.__b+1,a=null,(u=s.__i=ra(s,r,l,c))!==-1&&(c--,(a=r[u])&&(a.__u|=2)),a==null||a.__v===null?(u==-1&&(o>d?p--:o<d&&p++),typeof s.type!="function"&&(s.__u|=4)):u!=l&&(u==l-1?p--:u==l+1?p++:(u>l?p--:p++,s.__u|=4))):e.__k[i]=null;if(c)for(i=0;i<d;i++)(a=r[i])!=null&&!(2&a.__u)&&(a.__e==n&&(n=De(a)),ii(a,a));return n}function ri(e,t,r){var n,o;if(typeof e.type=="function"){for(n=e.__k,o=0;n&&o<n.length;o++)n[o]&&(n[o].__=e,t=ri(n[o],t,r));return t}e.__e!=t&&(t&&e.type&&!r.contains(t)&&(t=De(e)),r.insertBefore(e.__e,t||null),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Tt(e,t){return t=t||[],e==null||typeof e=="boolean"||(Qe(e)?e.some(function(r){Tt(r,t)}):t.push(e)),t}function ra(e,t,r,n){var o,i,s=e.key,a=e.type,l=t[r];if(l===null&&e.key==null||l&&s==l.key&&a===l.type&&!(2&l.__u))return r;if(n>(l!=null&&!(2&l.__u)?1:0))for(o=r-1,i=r+1;o>=0||i<t.length;){if(o>=0){if((l=t[o])&&!(2&l.__u)&&s==l.key&&a===l.type)return o;o--}if(i<t.length){if((l=t[i])&&!(2&l.__u)&&s==l.key&&a===l.type)return i;i++}}return-1}function No(e,t,r){t[0]=="-"?e.setProperty(t,r!=null?r:""):e[t]=r==null?"":typeof r!="number"||ea.test(t)?r:r+"px"}function vt(e,t,r,n,o){var i;e:if(t=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||No(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||No(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(Xo,"$1")),t=t.toLowerCase()in e||t=="onFocusOut"||t=="onFocusIn"?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=r,r?n?r.t=n.t:(r.t=Mr,e.addEventListener(t,i?Nr:Cr,i)):e.removeEventListener(t,i?Nr:Cr,i);else{if(o=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r!=null?r:"";break e}catch(s){}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function Po(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.u==null)t.u=Mr++;else if(t.u<r.t)return;return r(x.event?x.event(t):t)}}}function Br(e,t,r,n,o,i,s,a,l,u){var d,c,p,m,y,v,h,g,b,E,P,R,S,ee,G,le,Ce,X=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(l=!!(32&r.__u),i=[a=t.__e=r.__e]),(d=x.__b)&&d(t);e:if(typeof X=="function")try{if(g=t.props,b="prototype"in X&&X.prototype.render,E=(d=X.contextType)&&n[d.__c],P=d?E?E.props.value:d.__:n,r.__c?h=(c=t.__c=r.__c).__=c.__E:(b?t.__c=c=new X(g,P):(t.__c=c=new fe(g,P),c.constructor=X,c.render=oa),E&&E.sub(c),c.props=g,c.state||(c.state={}),c.context=P,c.__n=n,p=c.__d=!0,c.__h=[],c._sb=[]),b&&c.__s==null&&(c.__s=c.state),b&&X.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=me({},c.__s)),me(c.__s,X.getDerivedStateFromProps(g,c.__s))),m=c.props,y=c.state,c.__v=t,p)b&&X.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),b&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(b&&X.getDerivedStateFromProps==null&&g!==m&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(g,P),!c.__e&&(c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(g,c.__s,P)===!1||t.__v==r.__v)){for(t.__v!=r.__v&&(c.props=g,c.state=c.__s,c.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(ye){ye&&(ye.__=t)}),R=0;R<c._sb.length;R++)c.__h.push(c._sb[R]);c._sb=[],c.__h.length&&s.push(c);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(g,c.__s,P),b&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(m,y,v)})}if(c.context=P,c.props=g,c.__P=e,c.__e=!1,S=x.__r,ee=0,b){for(c.state=c.__s,c.__d=!1,S&&S(t),d=c.render(c.props,c.state,c.context),G=0;G<c._sb.length;G++)c.__h.push(c._sb[G]);c._sb=[]}else do c.__d=!1,S&&S(t),d=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++ee<25);c.state=c.__s,c.getChildContext!=null&&(n=me(me({},n),c.getChildContext())),b&&!p&&c.getSnapshotBeforeUpdate!=null&&(v=c.getSnapshotBeforeUpdate(m,y)),le=d,d!=null&&d.type===Re&&d.key==null&&(le=oi(d.props.children)),a=ti(e,Qe(le)?le:[le],t,r,n,o,i,s,a,l,u),c.base=t.__e,t.__u&=-161,c.__h.length&&s.push(c),h&&(c.__E=c.__=null)}catch(ye){if(t.__v=null,l||i!=null)if(ye.then){for(t.__u|=l?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;i[i.indexOf(a)]=null,t.__e=a}else for(Ce=i.length;Ce--;)Lr(i[Ce]);else t.__e=r.__e,t.__k=r.__k;x.__e(ye,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):a=t.__e=na(r.__e,t,r,n,o,i,s,l,u);return(d=x.diffed)&&d(t),128&t.__u?void 0:a}function ni(e,t,r){for(var n=0;n<r.length;n++)jr(r[n],r[++n],r[++n]);x.__c&&x.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(i){i.call(o)})}catch(i){x.__e(i,o.__v)}})}function oi(e){return typeof e!="object"||e==null?e:Qe(e)?e.map(oi):me({},e)}function na(e,t,r,n,o,i,s,a,l){var u,d,c,p,m,y,v,h=r.props,g=t.props,b=t.type;if(b=="svg"?o="http://www.w3.org/2000/svg":b=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),i!=null){for(u=0;u<i.length;u++)if((m=i[u])&&"setAttribute"in m==!!b&&(b?m.localName==b:m.nodeType==3)){e=m,i[u]=null;break}}if(e==null){if(b==null)return document.createTextNode(g);e=document.createElementNS(o,b,g.is&&g),a&&(x.__m&&x.__m(t,i),a=!1),i=null}if(b===null)h===g||a&&e.data===g||(e.data=g);else{if(i=i&&Et.call(e.childNodes),h=r.props||Ge,!a&&i!=null)for(h={},u=0;u<e.attributes.length;u++)h[(m=e.attributes[u]).name]=m.value;for(u in h)if(m=h[u],u!="children"){if(u=="dangerouslySetInnerHTML")c=m;else if(!(u in g)){if(u=="value"&&"defaultValue"in g||u=="checked"&&"defaultChecked"in g)continue;vt(e,u,null,m,o)}}for(u in g)m=g[u],u=="children"?p=m:u=="dangerouslySetInnerHTML"?d=m:u=="value"?y=m:u=="checked"?v=m:a&&typeof m!="function"||h[u]===m||vt(e,u,m,h[u],o);if(d)a||c&&(d.__html===c.__html||d.__html===e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(c&&(e.innerHTML=""),ti(t.type==="template"?e.content:e,Qe(p)?p:[p],t,r,n,b=="foreignObject"?"http://www.w3.org/1999/xhtml":o,i,s,i?i[0]:r.__k&&De(r,0),a,l),i!=null)for(u=i.length;u--;)Lr(i[u]);a||(u="value",b=="progress"&&y==null?e.removeAttribute("value"):y!==void 0&&(y!==e[u]||b=="progress"&&!y||b=="option"&&y!==h[u])&&vt(e,u,y,h[u],o),u="checked",v!==void 0&&v!==e[u]&&vt(e,u,v,h[u],o))}return e}function jr(e,t,r){try{if(typeof e=="function"){var n=typeof e.__u=="function";n&&e.__u(),n&&t==null||(e.__u=e(t))}else e.current=t}catch(o){x.__e(o,r)}}function ii(e,t,r){var n,o;if(x.unmount&&x.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||jr(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){x.__e(i,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&ii(n[o],t,r||typeof e.type!="function");r||Lr(e.__e),e.__c=e.__=e.__e=void 0}function oa(e,t,r){return this.constructor(e,r)}function Pr(e,t,r){var n,o,i,s;t==document&&(t=document.documentElement),x.__&&x.__(e,t),o=(n=!1)?null:t.__k,i=[],s=[],Br(t,e=t.__k=Ie(Re,null,[e]),o||Ge,Ge,t.namespaceURI,o?null:t.firstChild?Et.call(t.childNodes):null,i,o?o.__e:t.firstChild,n,s),ni(i,e,s)}function Hr(e,t){L.__h&&L.__h(U,e,ze||t),ze=0;var r=U.__H||(U.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function Or(e){return ze=1,ia(li,e)}function ia(e,t,r){var n=Hr(We++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):li(void 0,t),function(a){var l=n.__N?n.__N[0]:n.__[0],u=n.t(l,a);l!==u&&(n.__N=[u,n.__[1]],n.__c.setState({}))}],n.__c=U,!U.__f)){var o=function(a,l,u){if(!n.__c.__H)return!0;var d=n.__c.__H.__.filter(function(p){return!!p.__c});if(d.every(function(p){return!p.__N}))return!i||i.call(this,a,l,u);var c=n.__c.props!==a;return d.forEach(function(p){if(p.__N){var m=p.__[0];p.__=p.__N,p.__N=void 0,m!==p.__[0]&&(c=!0)}}),i&&i.call(this,a,l,u)||c};U.__f=!0;var i=U.shouldComponentUpdate,s=U.componentWillUpdate;U.componentWillUpdate=function(a,l,u){if(this.__e){var d=i;i=void 0,o(a,l,u),i=d}s&&s.call(this,a,l,u)},U.shouldComponentUpdate=o}return n.__N||n.__}function qe(e,t){var r=Hr(We++,3);!L.__s&&ci(r.__H,t)&&(r.__=e,r.u=t,U.__H.__h.push(r))}function St(e){return ze=5,ai(function(){return{current:e}},[])}function ai(e,t){var r=Hr(We++,7);return ci(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function oe(e,t){return ze=8,ai(function(){return e},t)}function sa(){for(var e;e=si.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(kt),e.__H.__h.forEach(Dr),e.__H.__h=[]}catch(t){e.__H.__h=[],L.__e(t,e.__v)}}function aa(e){var t,r=function(){clearTimeout(n),jo&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);jo&&(t=requestAnimationFrame(r))}function kt(e){var t=U,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),U=t}function Dr(e){var t=U;e.__c=e.__(),U=t}function ci(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function li(e,t){return typeof t=="function"?t(e):t}function ui(e,t){for(var r in t)e[r]=t[r];return e}function Fr(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Ho(e,t){this.props=e,this.context=t}function ca(e,t){function r(o){var i=this.props.ref,s=i==o.ref;return!s&&i&&(i.call?i(null):i.current=null),t?!t(this.props,o)||!s:Fr(this.props,o)}function n(o){return this.shouldComponentUpdate=r,Ie(e,o)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}function ua(e){function t(r){var n=ui({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=la,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}function di(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=ui({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return di(n,t,r)})),e}function pi(e,t,r){return e&&r&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return pi(n,t,r)}),e.__c&&e.__c.__P===t&&(e.__e&&r.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=r)),e}function Rr(){this.__u=0,this.o=null,this.__b=null}function mi(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function yt(){this.i=null,this.l=null}function va(){}function ya(){return this.cancelBubble}function ba(){return this.defaultPrevented}function C(e,t,r,n,o,i){t||(t={});var s,a,l=t;if("ref"in l)for(a in l={},t)a=="ref"?s=t[a]:l[a]=t[a];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--wa,__i:-1,__u:0,__source:o,__self:i};if(typeof e=="function"&&(s=e.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return x.vnode&&x.vnode(u),u}function Ca(a){var l=a,{elementTag:e="Image",src:t="",children:r,handleExposure:n,className:o,imgStyle:i}=l,s=W(l,["elementTag","src","children","handleExposure","className","imgStyle"]);let u=Aa(()=>{t&&n()});return e==="Image"?C("div",{className:o,style:{borderRadius:"8px"},children:Ie("img",N(_({},s),{ref:u,src:t!=null?t:"",style:_({display:"block",width:"100%",height:"auto",objectFit:"contain",maxWidth:"100%",maxHeight:"100%",borderRadius:"8px"},i||{})}))}):C("div",N(_({},s),{ref:u,className:o,children:r}))}function Na(e,t){if(!e)return null;let r=Array.isArray(t)?t[0]:t,n=Array.isArray(t)?t[1]:0;return Array.isArray(e)?e.map((o,i)=>o&&typeof o=="object"&&"type"in o?Ie(o.type,N(_({},o.props),{style:N(_({},o.props.style||{}),{paddingLeft:r>0?`${r/2}px`:void 0,paddingRight:r>0?`${r/2}px`:void 0,paddingTop:n>0?`${n/2}px`:void 0,paddingBottom:n>0?`${n/2}px`:void 0}),key:o.key||i})):o):e&&typeof e=="object"&&"type"in e?Ie(e.type,N(_({},e.props),{style:N(_({},e.props.style||{}),{paddingLeft:r>0?`${r/2}px`:void 0,paddingRight:r>0?`${r/2}px`:void 0,paddingTop:n>0?`${n/2}px`:void 0,paddingBottom:n>0?`${n/2}px`:void 0})})):e}var Et,x,zo,xe,Ao,Qo,Yo,Xo,Mr,Cr,Nr,Ge,Zo,ea,Qe,We,U,Ir,Oo,ze,si,L,Do,Fo,Uo,Mo,Lo,Bo,jo,$o,la,da,Jo,Vo,pa,ma,fa,ha,ga,_a,Ko,ka,qo,Go,Wo,wa,Ar,Ta,Sa,Ea,xa,Ia,Ra,Aa,fi,hi,Pa,Oa,Da,Fa,Ur,Ua,gi,_i=k(()=>{"use strict";Ge={},Zo=[],ea=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Qe=Array.isArray;Et=Zo.slice,x={__e:function(e,t,r,n){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),s=o.__d),s)return o.__E=o}catch(a){e=a}throw e}},zo=0,fe.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=me({},this.state),typeof e=="function"&&(e=e(me({},r),this.props)),e&&me(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Co(this))},fe.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Co(this))},fe.prototype.render=Re,xe=[],Qo=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Yo=function(e,t){return e.__v.__b-t.__v.__b},wt.__r=0,Xo=/(PointerCapture)$|Capture$/i,Mr=0,Cr=Po(!1),Nr=Po(!0);ze=0,si=[],L=x,Do=L.__b,Fo=L.__r,Uo=L.diffed,Mo=L.__c,Lo=L.unmount,Bo=L.__;L.__b=function(e){U=null,Do&&Do(e)},L.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Bo&&Bo(e,t)},L.__r=function(e){Fo&&Fo(e),We=0;var t=(U=e.__c).__H;t&&(Ir===U?(t.__h=[],U.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.forEach(kt),t.__h.forEach(Dr),t.__h=[],We=0)),Ir=U},L.diffed=function(e){Uo&&Uo(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(si.push(t)!==1&&Oo===L.requestAnimationFrame||((Oo=L.requestAnimationFrame)||aa)(sa)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Ir=U=null},L.__c=function(e,t){t.some(function(r){try{r.__h.forEach(kt),r.__h=r.__h.filter(function(n){return!n.__||Dr(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],L.__e(n,r.__v)}}),Mo&&Mo(e,t)},L.unmount=function(e){Lo&&Lo(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{kt(n)}catch(o){t=o}}),r.__H=void 0,t&&L.__e(t,r.__v))};jo=typeof requestAnimationFrame=="function";(Ho.prototype=new fe).isPureReactComponent=!0,Ho.prototype.shouldComponentUpdate=function(e,t){return Fr(this.props,e)||Fr(this.state,t)};$o=x.__b;x.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),$o&&$o(e)};la=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;da=x.__e;x.__e=function(e,t,r,n){if(e.then){for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t)}da(e,t,r,n)};Jo=x.unmount;x.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Jo&&Jo(e)},(Rr.prototype=new fe).__c=function(e,t){var r=t.__c,n=this;n.o==null&&(n.o=[]),n.o.push(r);var o=mi(n.__v),i=!1,s=function(){i||(i=!0,r.__R=null,o?o(a):a())};r.__R=s;var a=function(){if(!--n.__u){if(n.state.__a){var l=n.state.__a;n.__v.__k[0]=pi(l,l.__c.__P,l.__c.__O)}var u;for(n.setState({__a:n.__b=null});u=n.o.pop();)u.forceUpdate()}};n.__u++||32&t.__u||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(s,s)},Rr.prototype.componentWillUnmount=function(){this.o=[]},Rr.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=di(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&Ie(Re,null,e.fallback);return o&&(o.__u&=-33),[Ie(Re,null,t.__a?null:e.children),o]};Vo=function(e,t,r){if(++r[1]===r[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(r=e.i;r;){for(;r.length>3;)r.pop()();if(r[1]<r[0])break;e.i=r=r[2]}};(yt.prototype=new fe).__a=function(e){var t=this,r=mi(t.__v),n=t.l.get(e);return n[0]++,function(o){var i=function(){t.props.revealOrder?(n.push(o),Vo(t,e,n)):o()};r?r(i):i()}},yt.prototype.render=function(e){this.i=null,this.l=new Map;var t=Tt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.l.set(t[r],this.i=[1,0,this.i]);return e.children},yt.prototype.componentDidUpdate=yt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,r){Vo(e,r,t)})};pa=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,ma=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,fa=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,ha=/[A-Z0-9]/g,ga=typeof document<"u",_a=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};fe.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(fe.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});Ko=x.event;x.event=function(e){return Ko&&(e=Ko(e)),e.persist=va,e.isPropagationStopped=ya,e.isDefaultPrevented=ba,e.nativeEvent=e};ka={enumerable:!1,configurable:!0,get:function(){return this.class}},qo=x.vnode;x.vnode=function(e){typeof e.type=="string"&&function(t){var r=t.props,n=t.type,o={},i=n.indexOf("-")===-1;for(var s in r){var a=r[s];if(!(s==="value"&&"defaultValue"in r&&a==null||ga&&s==="children"&&n==="noscript"||s==="class"||s==="className")){var l=s.toLowerCase();s==="defaultValue"&&"value"in r&&r.value==null?s="value":s==="download"&&a===!0?a="":l==="translate"&&a==="no"?a=!1:l[0]==="o"&&l[1]==="n"?l==="ondoubleclick"?s="ondblclick":l!=="onchange"||n!=="input"&&n!=="textarea"||_a(r.type)?l==="onfocus"?s="onfocusin":l==="onblur"?s="onfocusout":fa.test(s)&&(s=l):l=s="oninput":i&&ma.test(s)?s=s.replace(ha,"-$&").toLowerCase():a===null&&(a=void 0),l==="oninput"&&o[s=l]&&(s="oninputCapture"),o[s]=a}}n=="select"&&o.multiple&&Array.isArray(o.value)&&(o.value=Tt(r.children).forEach(function(u){u.props.selected=o.value.indexOf(u.props.value)!=-1})),n=="select"&&o.defaultValue!=null&&(o.value=Tt(r.children).forEach(function(u){u.props.selected=o.multiple?o.defaultValue.indexOf(u.props.value)!=-1:o.defaultValue==u.props.value})),r.class&&!r.className?(o.class=r.class,Object.defineProperty(o,"className",ka)):(r.className&&!r.class||r.class&&r.className)&&(o.class=o.className=r.className),t.props=o}(e),e.$$typeof=pa,qo&&qo(e)};Go=x.__r;x.__r=function(e){Go&&Go(e),e.__c};Wo=x.diffed;x.diffed=function(e){Wo&&Wo(e);var t=e.props,r=e.__e;r!=null&&e.type==="textarea"&&"value"in t&&t.value!==r.value&&(r.value=t.value==null?"":t.value)};wa=0;Ar={drawerBackdrop:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",justifyContent:"center",alignItems:"flex-end",zIndex:1e3,overflow:"hidden",touchAction:"none"},drawer:{backgroundColor:"white",borderRadius:"16px 16px 0 0",width:"100%",maxWidth:"100%",overflowY:"auto",position:"relative",boxShadow:"0 -2px 10px rgba(0, 0, 0, 0.1)",display:"flex",flexDirection:"column",margin:"0 auto"},drawerContent:{flex:1,width:"100%",height:"100%",overflow:"auto",margin:"0 auto"}},Ta=`
20
+ @keyframes fadeIn {
21
+ from { opacity: 0; }
22
+ to { opacity: 1; }
23
+ }
24
+
25
+ @keyframes fadeOut {
26
+ from { opacity: 1; }
27
+ to { opacity: 0; }
28
+ }
29
+
30
+ @keyframes slideUp {
31
+ from { transform: translateY(100%); }
32
+ to { transform: translateY(0); }
33
+ }
34
+
35
+ @keyframes slideDown {
36
+ from { transform: translateY(0); }
37
+ to { transform: translateY(100%); }
38
+ }
39
+
40
+ .backdrop-enter {
41
+ animation: fadeIn 0.3s ease forwards;
42
+ }
43
+
44
+ .backdrop-leave {
45
+ animation: fadeOut 0.3s ease forwards;
46
+ }
47
+
48
+ .drawer-enter {
49
+ animation: slideUp 0.3s ease forwards;
50
+ }
51
+
52
+ .drawer-leave {
53
+ animation: slideDown 0.3s ease forwards;
54
+ }
55
+ `,Sa=({children:e,isOpen:t=!1,onClose:r,height:n="50%",className:o="",backdropColor:i},s)=>{let[a,l]=Or(t),[u,d]=Or(null),c=St(null),p=St(!1);qe(()=>{let S=document.createElement("style");return S.innerHTML=Ta,document.head.appendChild(S),()=>{document.head.removeChild(S)}},[]),qe(()=>{t!==a&&!p.current&&(l(t),d(t?"enter":"leave"))},[t,a]);let m=oe(()=>{u==="leave"&&(d(null),l(!1),p.current=!1)},[u]),y=oe(S=>{S.preventDefault(),S.stopPropagation(),S.target===c.current&&h()},[]),v=oe(()=>{p.current=!1,l(!0),d("enter")},[]),h=oe(()=>{p.current=!0,d("leave"),r&&r()},[r]),g=oe(()=>a&&!p.current,[a]);if(qe(()=>{if(s){let S={show:v,hide:h,isOpen:g};typeof s=="function"?s(S):s&&(s.current=S)}},[v,h,g,s]),!a&&!u)return null;let b=N(_({},Ar.drawer),{height:typeof n=="number"?`${n}px`:n,backgroundColor:i||"rgba(255, 255, 255, 1)"}),E=_({},Ar.drawerBackdrop),P=u?`drawer-${u}`:"",R=u?`backdrop-${u}`:"";return C("div",{ref:c,style:E,className:R,onClick:y,onTouchMove:S=>S.preventDefault(),children:C("div",{style:b,className:`${P} ${o}`,onAnimationEnd:m,onTouchMove:S=>S.stopPropagation(),children:C("div",{style:Ar.drawerContent,children:e})})})},Ea=ua(Sa),xa=({title:e,content:t,noHeader:r,padding:n="16px",footerButtons:o,onClose:i})=>{let s={container:{display:"flex",flexDirection:"column",height:"100%",width:"100%",maxWidth:"440px",margin:"0 auto"},header:{padding:"16px",borderBottom:"1px solid #eee",display:"flex",justifyContent:"space-between",alignItems:"center"},content:{padding:n,flex:1,overflow:"auto"},footer:{padding:"16px",borderTop:"1px solid #eee",display:"flex",justifyContent:"flex-end",gap:"8px"},closeButton:{background:"none",border:"none",cursor:"pointer",fontSize:"20px"},button:{padding:"8px 16px",borderRadius:"4px",border:"1px solid #ddd",cursor:"pointer"}};return C("div",{style:s.container,children:[!r&&C("div",{style:s.header,children:[C("h3",{children:e}),C("button",{style:s.closeButton,onClick:i,children:"\xD7"})]}),C("div",{style:s.content,children:t}),o&&o.length>0&&C("div",{style:s.footer,children:o.map((a,l)=>C("button",{style:N(_({},s.button),{backgroundColor:a.variant==="primary"?"#1677ff":"#fff",color:a.variant==="primary"?"#fff":"#333"}),onClick:u=>{var d;return(d=a.onClick)==null?void 0:d.call(a,u,{hide:i})},children:a.text},l))})]})},Ia=(()=>{let e=null;return()=>(e||(e=document.createElement("div"),e.id=`jolibox-ui-modal-container-${Math.random().toString(36).substring(2,15)}`,document.body.appendChild(e)),e)})(),Ra=e=>{let t=Ia(),r=null,n=!1,o=!1,i=()=>{o||(n=!1,e.onClose&&e.onClose(),a())},s=()=>window.innerWidth>window.innerHeight,a=()=>{Pr(C(Ea,{ref:u=>{r=u},isOpen:n,onClose:i,height:s()?"90vh":"50vh",backdropColor:e.backdropColor,children:C(xa,N(_({},e),{onClose:i}))}),t)},l=()=>{!o&&n&&a()};return window.addEventListener("resize",l),a(),{show:()=>{o||(n=!0,a(),setTimeout(()=>{r&&(r.show(),e.onOpen&&e.onOpen())},0))},hide:()=>{o||r&&r.hide()},isOpen:()=>n,destroy:()=>{o=!0,window.removeEventListener("resize",l),r&&r.hide(),setTimeout(()=>{Pr(null,t)},300)}}},Aa=(e,t={threshold:.6})=>{let r=St(null),n=St(!1),o=oe(i=>{let[s]=i;s.isIntersecting&&!n.current?(n.current=!0,e()):s.isIntersecting||(n.current=!1)},[e]);return qe(()=>{if(r.current){let i=new IntersectionObserver(o,t);return i.observe(r.current),()=>{r.current&&i.unobserve(r.current)}}},[o,t]),r};fi=i=>{var s=i,{children:e,fluid:t=!1,className:r="",style:n={}}=s,o=W(s,["children","fluid","className","style"]);let a=_({width:"100%",marginLeft:"auto",marginRight:"auto",paddingLeft:"15px",paddingRight:"15px",boxSizing:"border-box",maxWidth:t?"100%":void 0},n);return C("div",N(_({className:r,style:a},o),{children:e}))},hi=a=>{var l=a,{children:e,gutter:t=0,justify:r="start",align:n="top",className:o="",style:i={}}=l,s=W(l,["children","gutter","justify","align","className","style"]);let u={start:"flex-start",end:"flex-end",center:"center","space-around":"space-around","space-between":"space-between"},d={top:"flex-start",middle:"center",bottom:"flex-end"},c=_({display:"flex",flexWrap:"wrap",boxSizing:"border-box",justifyContent:u[r],alignItems:d[n]},i);if(t){let m=Array.isArray(t)?t[0]:t,y=Array.isArray(t)?t[1]:0;m>0&&(c.marginLeft=`-${m/2}px`,c.marginRight=`-${m/2}px`),y>0&&(c.marginTop=`-${y/2}px`,c.marginBottom=`-${y/2}px`)}let p=t?Na(e,t):e;return C("div",N(_({className:o,style:c},s),{children:p}))};Pa=c=>{var p=c,{children:e,span:t,offset:r,xs:n,sm:o,md:i,lg:s,xl:a,className:l="",style:u={}}=p,d=W(p,["children","span","offset","xs","sm","md","lg","xl","className","style"]);let m=_({position:"relative",width:"100%",paddingLeft:"15px",paddingRight:"15px",boxSizing:"border-box"},u);if(t!==void 0){let y=t/24*100;m.flex=`0 0 ${y}%`,m.maxWidth=`${y}%`}return r!==void 0&&(m.marginLeft=`${r/24*100}%`),C("div",N(_({className:l,style:m},d),{children:e}))},Oa=({game:e,layerName:t,routeMode:r,onGameClick:n})=>{var s,a;let o=oe(l=>{l.preventDefault(),n==null||n(e)},[n,e]),i=oe(()=>{},[e,t]);return C(Pa,{span:8,className:"relative px-[4px] box-border mb-[8px]",style:{marginBottom:"8px"},onClick:o,role:"button",tabIndex:0,onTouchEnd:o,children:[C("div",{className:"relative w-full mb-[2px] ion-no-margin",children:C(Ca,{src:(a=(s=e.logo)!=null?s:e.cover)!=null?a:"",className:"w-full h-full absolute top-0 left-0 aspect-square rounded-[8px] object-cover",style:{display:"block",objectFit:"cover"},handleExposure:i})}),C("div",{className:"block text-white max-w-full text-[15px] leading-[1.2] overflow-hidden whitespace-nowrap text-ellipsis font-normal break-words",style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-word",color:"white",maxWidth:"100%",fontSize:"15px",lineHeight:1.2,fontWeight:"normal"},children:e.name})]},e.gameId)},Da=i=>{var s=i,{list:e,routeMode:t,layerName:r,onGameClick:n}=s,o=W(s,["list","routeMode","layerName","onGameClick"]);return C(fi,{className:"w-full max-w-[440px] mx-auto flex-grow overflow-y-auto",children:C(hi,{gutter:8,className:"flex-wrap",children:e==null?void 0:e.map(a=>C(Oa,{game:a,routeMode:t,layerName:r,onGameClick:n},a.gameId))})})},Fa=ca(Da),Ur=(e=>(e.Dismiss="DISMISS",e.Quit="QUIT",e))(Ur||{}),Ua=e=>{let{games:t,title:r,buttons:n,onClose:o}=e,[i,s]=Or(null),a=oe(d=>{o==null||o({type:d.type===Ur.Quit?"quit":"dismiss"})},[o]),l=oe(d=>{o==null||o({type:"navigate",data:{game:d}})},[o]);if(!t.length)return C(Re,{});let u=oe(d=>{if(d!==null&&!d.shadowRoot){let c=d.attachShadow({mode:"open"}),p=document.createElement("style");p.textContent=`
56
+ .recommend-panel {
57
+ background-color: #1a1a1a;
58
+ width: 100%;
59
+ height: 100%;
60
+ }
61
+ .container {
62
+ height: 100%;
63
+ display: flex;
64
+ flex-direction: column;
65
+ position: relative;
66
+ }
67
+ .title {
68
+ color: #ffffff;
69
+ font-size: 18px;
70
+ line-height: 24px;
71
+ text-align: center;
72
+ padding: 20px 10px;
73
+ }
74
+ .games-container {
75
+ flex: 1;
76
+ overflow: auto;
77
+ margin-bottom: 88px;
78
+ }
79
+ .buttons-container {
80
+ position: fixed;
81
+ bottom: 32px;
82
+ left: 0;
83
+ right: 0;
84
+ width: 100%;
85
+ max-width: 440px;
86
+ margin: 0 auto;
87
+ background: inherit;
88
+ padding-top: 16px;
89
+ padding-bottom: 16px;
90
+ padding-left: 16px;
91
+ padding-right: 16px;
92
+ }
93
+ .button-wrapper {
94
+ flex: 0 0 50%;
95
+ box-sizing: border-box;
96
+ }
97
+ .button {
98
+ width: 100%;
99
+ height: 40px;
100
+ border-radius: 21px;
101
+ white-space: nowrap;
102
+ line-height: 40px;
103
+ padding-left: 8px;
104
+ padding-right: 8px;
105
+ border: 1px solid;
106
+ cursor: pointer;
107
+ flex: 1;
108
+ text-align: center;
109
+ font-size: 14px;
110
+ font-weight: normal;
111
+ outline: none;
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ }
115
+ .quit-button {
116
+ border-color: #ffffff30;
117
+ background-color: #ffffff2c;
118
+ color: #fff;
119
+ }
120
+ .action-button {
121
+ border-color: #7817FF;
122
+ background-color: #7817FF;
123
+ color: #fff;
124
+ }
125
+ `;let m=document.createElement("div");m.id="recommend-panel-content",c.appendChild(p),c.appendChild(m),s(c)}},[]);return qe(()=>{if(i){let d=i.getElementById("recommend-panel-content");d&&Pr(C("div",{className:"recommend-panel",children:C("div",{className:"container",children:[C("p",{className:"title",children:r}),C("div",{className:"games-container",children:C(Fa,{list:t||[],routeMode:"REDIRECT",layerName:"RecommendedGuide",onGameClick:l})}),C("div",{className:"buttons-container",children:C(fi,{children:C(hi,{gutter:10,children:(n!=null?n:[]).map((c,p)=>C("div",{className:"button-wrapper",children:C("button",{className:`button ${c.type===Ur.Quit?"quit-button":"action-button"}`,onClick:()=>a(c),children:c.text})},p))})})})]})}),d)}},[i,t,r,n,a,l]),C("div",{ref:u})},gi=e=>{let t=Ra({title:e.title,content:C(Ua,{games:e.games,title:e.title,buttons:e.buttons,onClose:e.onClose}),backdropColor:"#1a1a1a",placement:"bottom",noHeader:!0,padding:"0px",onClose:()=>{console.log("onClose")},onOpen:e.onOpen});return t.show(),t}});function vi(){return T(this,null,function*(){if($r)return $r;let t=`${w.testMode?"https://stg-game.jolibox.com":"https://game.jolibox.com"}/api/user-retention/exit-recommendations?objectId=${w.mpId}&from=GAME_DETAIL`,{response:{data:r}}=yield Z(t);return $r=r,r})}function yi(){return T(this,null,function*(){let e=new se;if(w.mpType!=="game")return e.resolve(!1),e.promise;let t=yield vi();if(t.code!=="SUCCESS")return e.resolve(!1),e.promise;let{gameListInfo:r,title:n,buttons:o}=t.data,i=gi({games:r.games,title:n,buttons:o,onClose:s=>{var a;switch(s.type){case"quit":e.resolve(!1);break;case"dismiss":e.resolve(!0),i.hide();break;case"navigate":(a=s.data)!=null&&a.game?Ma(s.data.game):e.resolve(!0),i.hide();break;default:e.resolve(!0);break}}});return e.promise})}var $r,Ma,bi=k(()=>{"use strict";K();V();A();_i();Ve();$r=null;vi();Ma=e=>{var s;let{data:t}=O("envSync"),r=new URL(t.schema),n=new URLSearchParams(r.search);n.set("gameId",e.gameId),n.set("joliSource",w.encodeJoliSourceQuery({__mpType:"game",__orientation:(s=e.orientation)!=null?s:"VERTICAL"}));let i=`${`https://${e.gameId}.content.jolibox.com/`}index.html?${n.toString()}`;O("openSchemaSync",{schema:i})}});var wi={};nn(wi,{config:()=>Ha});function La(){pe.on("onDocumentReady",()=>{var e;(e=_e)==null||e.onDocumentReady(window.location.href),Y("onDocumentReady",{start_timestamp:Rt,timestamp:Date.now()})})}function Ba(e){w.mpType==="game"&&q.start(e)}function ja(){ae("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&w.onEnvConfigChanged({hostUserInfo:e}),pe.emit("LifecycleEvent.onReady",_({},w.hostUserInfo?w.hostUserInfo:{isLogin:!1})),Y("joliboxServiceReady",{start_timestamp:Rt,timestamp:Date.now()}),Ba(t)}),ae("onBeforeExit",({uuid:e})=>{var t;(t=_e)==null||t.doExit(e)})}function Ha(){Rt=Date.now(),ja(),La(),xt=So()}var xt,ki,It,Rt,Ti=k(()=>{"use strict";V();lt();K();A();ve();Eo();xr();bi();ne.onReady(()=>{});ki=()=>{Y("onBeforeExit",{timestamp:Date.now()}),xt==null||xt(),q.close(Date.now()-Rt)};ne.doExit(()=>T(void 0,null,function*(){return It?!0:je(w.shouldInterupt)?(w.shouldInterupt||ki(),w.shouldInterupt):(yield yi())?!0:(ki(),!1)}));It=!1;Oe.on("isAdShowing",e=>{It=e,je(It)&&O("updateContainerConfigSync",{displayCapsuleButton:!It,webviewId:w.webviewId})})});function Si(e){let t=sr.config[e];return t||(t={},sr.config[e]=t),(r,n)=>{if(t[r]){z.warn(`[can i use] ${r} already registered`);return}t[r]=_({},n)}}var Ei=k(()=>{"use strict";A()});function Jr(e){xi=e}function At(e){return e===null||typeof e!="object"?e:Array.isArray(e)?e.map(t=>At(t)):Object.keys(e).reduce((t,r)=>(t[r]=At(e[r]),t),{})}function he(e){return typeof e=="number"}function Vr(e){let t=Kr(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function Kr(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var xi,B,Ct,Nt,Pt,Ot,Fe,Dt,Ft,Ut,Mt,Lt,Bt,jt,Ht,$t,Jt,Vt,Kt,qr=k(()=>{"use strict";xi=!1;B=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(xi)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 ${Vr(t.actual)}`,this.errors.push(r)}return!1}fallback(t){return this.hasFallback=!0,this._fallback=t,this}get fallbackValue(){return At(this._fallback)}default(t){return this.hasDefault=!0,this._default=t,this}get defaultValue(){return typeof this._default=="function"?this._default:At(this._default)}optional(){return this._optional=!0,this}};Ct=class extends B{validate(t){return this._optional&&t===void 0?!0:he(t)?he(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):he(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):he(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}},Nt=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Pt=class extends B{validate(t){if(this._optional&&t===void 0)return!0;if(typeof t!="string")return this.fail({expect:"string",actual:t});if(he(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(he(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}},Ot=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},Fe=class extends B{validate(t){return!0}},Dt=class extends B{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},Ft=class extends B{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},Ut=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},Mt=class extends B{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 ${Vr(t)}`)}return!0}},Lt=class extends B{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(he(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(he(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(he(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 o=!0;if(r.forEach((i,s)=>{if(n.path=`${this.path}[${s}]`,n.errors=this.errors,i===void 0&&n.hasDefault){r[s]=n.defaultValue;return}n.validate(i)||(n.hasFallback?r[s]=n.fallbackValue:o=!1)}),this._uniqueItems){let i=new Map;for(let s in r)i.has(r[s])?o=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${i.get(r[s])}] and ${this.path}[${s}] are identical)`):i.set(r[s],s)}return o}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}},Bt=class extends B{constructor(r){super();this._value=r}validate(r){if(this._optional&&r===void 0)return!0;if(Kr(r)!=="object")return this.fail({expect:"object",actual:r});let o=r,i=this._value;i.errors=this.errors;let s=!0;for(let a in o){let l=o[a];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(a)?i.path=`${this.path}.${a}`:i.path=`${this.path}["${a}"]`,!(l===void 0&&i._optional)){if(l===void 0&&i.hasDefault){o[a]=i.defaultValue;continue}i.validate(l)||(i.hasFallback?o[a]=i.fallbackValue:s=!1)}}return s}},jt=class extends B{constructor(r={}){super();this._object=r}validate(r){if(this._optional&&r===void 0)return!0;if(Kr(r)!=="object")return this.fail({expect:"object",actual:r});let n=r,o=!0;for(let i in this._object){let s=n[i],a=this._object[i];if(a.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(i)?a.path=`${this.path}.${i}`:a.path=`${this.path}["${i}"]`,!(a._optional&&s===void 0)){if(s===void 0&&a.hasDefault){n[i]=a.defaultValue;continue}a.validate(s)||(a.hasFallback?n[i]=a.fallbackValue:o=!1)}}return o}},Ht=class extends B{constructor(r){super();this.value=r}validate(r){return r===void 0&&this._optional?!0:r!==this.value?this.fail({expect:Vr(this.value),actual:r}):!0}},$t=class extends B{constructor(...t){super(),this._items=t}validate(t){if(t===void 0&&this._optional)return!0;let r=[],n=!1,o=this._items.length;for(let i=0;i<o;i++){let s=this._items[i];if(s.errors=[],s.path=this.path,!s.validate(t))r.push(s.errors.join("; "));else if(!n){n=!0;break}}if(!n){let i=r.join(`
126
+ or `);this.errors.push(i)}return n}},Jt=class extends B{constructor(...t){super(),this._items=t;let r=0,n=t.length-1;for(;n>=0;n--){let o=t[n];if(o._optional||o.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,o)=>{if(n.path=`${this.path}[${o}]`,n.errors=this.errors,t[o]===void 0&&n.hasDefault){t[o]=n.defaultValue;return}n.validate(t[o])||(n.hasFallback?t[o]=n._fallback:r=!1)}),r}},Vt=class extends B{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},Kt=class extends B{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 Gr(e,t,r="param"){if(e.errors=[],e.path=r,Jr(!0),!e.validate(t)){let n=e.errors.join(`
127
+ `);throw e.errors.length=0,Jr(!1),new TypeError(n)}}var f,Wr=k(()=>{"use strict";qr();qr();f={object(e){return new jt(e)},array(e){return new Lt(e)},tuple(...e){return new Jt(...e)},literal(e){return new Ht(e)},or(...e){return new $t(...e)},symbol(){return new Ot},record(e){return new Bt(e)},function(){return new Ut},boolean(){return new Nt},string(){return new Pt},number(){return new Ct},undefined(){return new Dt},null(){return new Ft},unknown(){return new Fe},any(){return new Fe},as(){return new Fe},arraybuffer(){return new Vt},enum(...e){return new Mt(...e)},typedarray(e){return new Kt(e)}}});var qt,Ii,Ri=k(()=>{"use strict";A();re();Wr();ge();qt=1,Ii=e=>{function t(n,o){return(...i)=>{var c,p,m,y;let s=Date.now(),a={method:n,trace_id:qt};qt+=1;let l="SUCCESS",u=`${n}:ok`,d=0;try{if(o.paramsSchema)try{Gr(o.paramsSchema,i,"params")}catch(b){throw ur(`${n}:fail ${b.message}`)}let v=o.implement(...i),h=v,g=`${n}:ok`;if(v&&"code"in v){let{code:b,data:E,message:P}=v;l=b,h=E,g=P}return{code:l,message:g,data:h}}catch(v){let h=v;d=(p=(c=h.code)!=null?c:h.errNo)!=null?p:2e3,l="FAILURE";let g=(y=(m=h.message)!=null?m:h.errMsg)!=null?y:`${v}`;return u=`${n}:${l} ${g.replace(/^\S+:(fail|cancel)\s?/,"")}`,H(new Je(u,d)),{code:l,message:u}}finally{let v=Date.now()-s;e("apiInvoked",N(_({},a),{duration:v,status:l}))}}}function r(n,o){return(...i)=>T(this,null,function*(){var p,m,y,v;let s=un(i)?i:[i],a=Date.now(),l={method:n,trace_id:qt};qt+=1;let u=`${n}:ok`,d="SUCCESS",c={code:d,message:u};try{if(o.paramsSchema)try{Gr(o.paramsSchema,s,"params")}catch(b){throw ur(b.message)}let g=yield o.implement(...s);if(g&&"code"in g){let{code:b,data:E,message:P}=g;d=b,u=P,g=E}return Object.assign(c,{code:d,message:u,data:g}),c}catch(h){let g=h,b=(m=(p=g.code)!=null?p:g.errNo)!=null?m:2e3;d="FAILURE";let E=(v=(y=g.message)!=null?y:g.errMsg)!=null?v:`${h}`,P=`${n}:${d} ${E.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(c,{code:d,message:P}),H(new Je(P,b)),c}finally{let h=Date.now()-a;e("apiInvoked",N(_({},l),{duration:h,status:d}))}})}return{createAPI:r,createSyncAPI:t}}});var j,F,I,ce=k(()=>{"use strict";Ei();ve();Ri();Wr();({createAPI:j,createSyncAPI:F}=Ii(Y)),I=Si("native")});var Ai,Ja,Va,Ka,qa,Ci=k(()=>{"use strict";A();ce();V();Ai=M(),Ja="env",Va="getSystemInfoSync",Ka=F(Va,{implement:()=>{var r;let e=O("envSync"),{data:t}=e;return{system:t.deviceInfo.system,platform:t.deviceInfo.platform,version:t.sdkInfo.jssdkVersion,pixelRatio:t.deviceInfo.pixelRatio,language:t.deviceInfo.lang,brand:t.deviceInfo.brand,appName:(r=t.hostInfo)==null?void 0:r.appName,SDKVersion:t.sdkInfo.jssdkVersion}}}),qa=F(Ja,{implement:()=>{var t;let e=O("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});Ai.registerCommand("API.getSystemInfoSync",Ka);Ai.registerCommand("API.env",qa);I("env",{version:"1.0.0"});I("getSystemInfoSync",{version:"1.0.0"})});var Ni=rn(zr=>{"use strict";A();ce();re();V();ve();K();var Ga="exitGame",Wa="onReady",za="onJoliboxShow",Qa="onJoliboxHide",Gt=M(),Wt=ot(H),Ya=j(Ga,{paramsSchema:f.tuple(f.function(),f.boolean().optional().default(!1)),implement:(e,t=!1)=>T(zr,null,function*(){Wt(e).call(zr),je(w.shouldInterupt)&&!w.shouldInterupt&&w.from&&Wn("onRetentionResult",{shouldStay:t},w.from,!0),yield Q("exitAppAsync")})}),Xa=F(za,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);ae("onJoliboxEnterForeground",()=>{t.call(this),Ke.emit("visible",!0)})}}),Za=F(Qa,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);ae("onJoliboxEnterBackground",()=>{t.call(this),Ke.emit("visible",!1)})}}),ec=F(Wa,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);pe.on("LifecycleEvent.onReady",r=>{t(r)})}});Gt.registerCommand("LifecycleSDK.exit",Ya);Gt.registerCommand("LifecycleSDK.onReady",ec);Gt.registerCommand("LifecycleSDK.onJoliboxShow",Xa);Gt.registerCommand("LifecycleSDK.onJoliboxHide",Za);I("lifeCycle.exit",{version:"1.0.0"});I("lifeCycle.onReady",{version:"1.0.0"});I("lifeCycle.onJoliboxShow",{version:"1.0.0"});I("lifeCycle.onJoliboxHide",{version:"1.0.0"})});function Pi(e){let t={};if(!J(e))return t;for(let[r,n]of Object.entries(e)){let o=r.toLocaleLowerCase();n?typeof n=="object"?t[o]=Object.prototype.toString.call(n):t[o]=String(n):t[o]=""}return t}function Oi(e="GET"){if(e==="")return"POST";let t=e.toUpperCase();return["GET","OPTIONS","HEAD","POST","PUT","DELETE","TRACE","CONNECT","PATCH"].includes(t)?t:"GET"}function Di(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function Fi(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!J(r))return e;let[n,o=""]=e.split("?"),i=JSON.stringify(_(_({},JSON.parse(o)),r));return`${n}?${i}`}var Ui=k(()=>{"use strict";A()});var tc,rc,Qr,Yr,Mi,nc,oc,ic,Li=k(()=>{"use strict";ge();Sr();ce();Ui();A();re();tc=15,rc=pt("createRequestTaskSync","operateRequestTaskSync",{type:"public"}),Qr=0,Yr=[],Mi=ot(H),nc=(e,t)=>{let r=e.filter(t),n=e.filter(o=>!t(o));return e.length=0,e.push(...n),r},oc=e=>{let t=new se,r=()=>{};return j("request",{paramsSchema:f.tuple(f.object({url:f.string(),method:f.string(),header:f.object(),data:f.object().optional(),query:f.object().optional(),dataType:f.string().default("json"),responseType:f.string().default("text"),enableCache:f.boolean().default(!1),appendHostCookie:f.boolean().default(!0),timeout:f.number().default(3e4),success:f.function(),fail:f.function()})),implement(o){let i=()=>T(this,null,function*(){var a,l;let s=Mi(o.fail);try{if(Qr+=1,t.state!=="pending")return;let{data:u,dataType:d,responseType:c,enableCache:p,appendHostCookie:m}=o,y=Pi(o.header),v=Oi(o.method),h=Di(o.timeout),g=Fi(o.url,v,u),b=Mi(o.success),E=Object.assign({},o,{method:v,header:y,data:v==="GET"||v==="HEAD"?void 0:u,enableCache:p,query:(a=o.query)!=null?a:{},dataType:d,responseType:c,appendHostCookie:m});h&&(E.timeout=h);let P=rc(g,E);{let{response:R}=yield P,{code:S,data:ee,message:G}=R;t.resolve({code:S!=null?S:"SUCCESS",data:ee,message:G!=null?G:"request:ok"}),b({code:"SUCCESS",message:"request:ok",data:ee})}}catch(u){t.reject(u),s({code:"FAILURE",message:"httpRequst: failed"})}finally{Qr-=1,(l=Yr.shift())==null||l()}});return Qr>=tc?(r=()=>{nc(Yr,s=>s===i)},Yr.push(i)):i(),t.promise}})(e),{abort(){t.reject(Te({code:-1,msg:"request:fail abort"})),r()}}},ic=M();ic.registerCommand("HttpSDK.request",oc);I("request",{version:"1.0.0"})});function dc(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return uc.includes(t)?t:""}function pc(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 mc(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 zt,sc,ac,cc,lc,pm,mm,uc,Bi=k(()=>{"use strict";ce();V();A();Ve();K();zt=M(),sc=j("getLocalStorage",{paramsSchema:f.tuple(f.string()),implement(e){return T(this,null,function*(){let{response:t}=yield Z(`/api/games/user-storage/${w.mpId}`,{method:"GET",responseType:"json",appendHostCookie:!0,query:{key:e}}),{data:{code:r,message:n,data:o}}=yield t;if(r==="SUCCESS")return{code:r,message:n,data:o==null?void 0:o.value};try{let{data:{data:i,dataType:s}}=yield Q("getLocalStorageAsync",{key:e}),a=pc(i,s);return{code:r,message:`${n}. fallback to native`,data:a}}catch(i){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});zt.registerCommand("StorageSDK.getItem",sc);I("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});ac=j("setStorage",{paramsSchema:f.tuple(f.string(),f.or(f.string(),f.boolean(),f.number())),implement(e,t){return T(this,null,function*(){let r=w.mpId,n=typeof t=="string"?t:String(t),{response:o}=yield Z(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:i,message:s}}=o,a=dc(t),l=mc(t,a);return yield Q("setLocalStorageAsync",{key:e,data:l,dataType:a}),i=="SUCCESS"?{code:i,message:s}:{code:i,message:`${s}. fallback to native`}})}});zt.registerCommand("StorageSDK.setItem",ac);I("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});cc=j("removeStorage",{paramsSchema:f.tuple(f.string()),implement(e){return T(this,null,function*(){let t=w.mpId,{response:r}=yield Z(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:o}}=r;return yield Q("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:o}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});zt.registerCommand("StorageSDK.removeItem",cc);I("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});lc=j("clearStorage",{implement(){return T(this,null,function*(){let e=w.mpId,{response:t}=yield Z(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});Q("clearLocalStorageAsync");let{data:{code:r,message:n}}=t;return r==="SUCCESS"?{code:r,message:n}:{code:r,message:`${n}.fallback to native`}})}});zt.registerCommand("StorageSDK.clear",lc);I("storage.clear",{version:"1.0.0"});pm=j("getStorageInfo",{implement(){return T(this,null,function*(){let{data:e}=yield Q("getStorageInfoAsync");return e})}});I("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});mm=F("getStorageInfoSync",{implement(){return O("getStorageInfoSync")}}),uc=["string","number","boolean","object",""]});var fc,hc,gc,Xr,ji=k(()=>{"use strict";A();V();ce();fc=F("showKeyboard",{paramsSchema:f.tuple(f.object({defaultValue:f.string().optional().default(""),multiple:f.boolean().optional().default(!1),maxLength:f.unknown().optional().default(1e5)})),implement(e){var n;let t=Math.floor((n=Number(e.maxLength))!=null?n:1e5),{defaultValue:r}=e;r&&t&&(r=r.slice(0,t)),O("showKeyboardSync",N(_({},e),{defaultValue:r,maxLength:t}))}});I("keyboard.showKeyboard",{version:"1.0.0",properties:{params:{defaultValue:"1.0.0",multiple:"1.0.0",confirmHold:"1.0.0",confirmType:"1.0.0",maxLength:"1.0.0"}},success:{errMsg:"1.0.0"}});hc=F("updateKeyboard",{paramsSchema:f.tuple(f.object({value:f.string()})),implement(e){O("updateKeyboardSync",e)}});I("keyboard.updateKeyboard",{version:"1.0.0",properties:{params:{value:"1.0.0"}}});gc=F("hideKeyboard",{implement(){O("hideKeyboardSync")}});I("keyboard.hideKeyboard",{version:"1.0.0"});Xr=M();Xr.registerCommand("KeyboardSDK.showKeyboard",fc);Xr.registerCommand("KeyboardSDK.updateKeyboard",hc);Xr.registerCommand("KeyboardSDK.hideKeyboard",gc)});var Hi=rn(Ae=>{"use strict";A();ce();ve();var Ue=M(),_c=j("levelFinished",{paramsSchema:f.tuple(f.string(),f.object({result:f.boolean(),duration:f.number()})),implement:(e,t)=>T(Ae,null,function*(){let{result:r,duration:n}=t,o=[];o.push(q.tracker("LevelFinished",{levelId:e,result:r,duration:n})),o.push(q.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(o)})}),vc=j("taskFinished",{paramsSchema:f.tuple(f.string(),f.object({duration:f.number()})),implement:(e,t)=>T(Ae,null,function*(){let{duration:r}=t;return yield q.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),yc=j("levelUpgrade",{paramsSchema:f.tuple(f.string(),f.string()),implement:(e,t)=>T(Ae,null,function*(){let r=[];r.push(q.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),bc=j("onHistoryUserLevel",{paramsSchema:f.tuple(f.number()),implement:e=>T(Ae,null,function*(){return yield q.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),kc=j("onHistoryUserScore",{paramsSchema:f.tuple(f.number()),implement:e=>T(Ae,null,function*(){return yield q.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),wc=j("taskEvent",{paramsSchema:f.tuple(f.string(),f.object({tools:f.array(f.object({id:f.string(),name:f.string(),count:f.number(),description:f.string().optional(),price:f.object({amount:f.number(),unit:f.string()}).optional()})).optional(),awards:f.array(f.object({id:f.string(),name:f.string()})).optional()})),implement:(e,t)=>T(Ae,null,function*(){var n,o;let r=[];r.push(q.reportToNative({event:"TaskEvent",params:_({taskId:e},t)})),(o=(n=t.tools)==null?void 0:n.length)!=null&&o&&(r.push(q.reporter({event:"USE_GAME_ITEM"})),r.push(q.reportToNative({event:"UseGameItem",params:_({taskId:e},t)}))),yield Promise.all(r)})});Ue.registerCommand("TaskTrackerSDK.levelFinished",_c);Ue.registerCommand("TaskTrackerSDK.taskFinished",vc);Ue.registerCommand("TaskTrackerSDK.levelUpgrade",yc);Ue.registerCommand("TaskTrackerSDK.historyUserLevel",bc);Ue.registerCommand("TaskTrackerSDK.historyUserScore",kc);Ue.registerCommand("TaskTrackerSDK.taskEvent",wc);I("TaskTrackerSDK.onLevelFinished",{version:"1.0.0",properties:{levelId:"1.0.0",params:{result:"1.0.0",duration:"1.0.0"}}});I("TaskTrackerSDK.onTaskFinished",{version:"1.0.0",properties:{taskId:"1.0.0",duration:"1.0.0"}});I("TaskTrackerSDK.onLevelUpgrade",{version:"1.0.0",properties:{levelId:"1.0.0",name:"1.0.0"}});I("TaskTrackerSDK.onHistoryUserLevel",{version:"1.0.0",properties:{level:"1.0.0"}});I("TaskTrackerSDK.onHistoryUserScore",{version:"1.0.0",properties:{score:"1.0.0"}});I("TaskTrackerSDK.onTaskEvent",{version:"1.0.0",properties:{taskId:"1.0.0",params:{tools:{id:"1.0.0",name:"1.0.0",count:"1.0.0",description:"1.0.0",price:{amount:"1.0.0",unit:"1.0.0"}},awards:{id:"1.0.0",name:"1.0.0"}}}})});var Tc,Sc,$i,Ji=k(()=>{"use strict";K();V();ce();A();ge();I("login",{version:"1.0.0",properties:{force:"1.0.0"},success:{errMsg:"1.0.0",code:"1.0.0",token:"1.0.0",isLogin:"1.0.0"}});I("checkSession",{version:"1.0.0",success:{errMsg:"1.0.0"}});Tc=j("login",{implement(){return T(this,null,function*(){var s;let{data:{isLogin:e}}=yield Q("checkLoginAsync");if(e)return{isLogin:!0,token:(s=w.hostUserInfo)==null?void 0:s.token};ae("onLoginStateChange",({isLogin:a,token:l,uuid:u})=>{u==r&&o({isLogin:a,token:l})});let t=O("loginSync"),{data:{uuid:r}}=t;if(!r)throw Te({code:-1,msg:"login failed"});let{promise:n,resolve:o}=new se,i=yield n;return w.onEnvConfigChanged({hostUserInfo:i}),pe.emit("onLoginComplete",i),i})}}),Sc=j("checkSession",{implement(){return T(this,null,function*(){let{data:{isLogin:e}}=yield Q("checkLoginAsync");return{isLogin:e}})}}),$i=M();$i.registerCommand("API.login",Tc);$i.registerCommand("API.checkSession",Sc)});var Qt,Ec,Yt,xc,Ic,Rc,Ac,Vi=k(()=>{"use strict";A();ce();xr();ve();Ve();V();Qt=M(),Ec=()=>{let{data:e}=O("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},Yt=new _t(Y,{get:(e,t)=>Z(e,_({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data),post:(e,t,r)=>Z(e,_({method:"POST",responseType:"json",appendHostCookie:!0},r)).then(n=>n.response.data)},Ec),xc=F("adInit",{implement:e=>{Yt.init(e)}}),Ic=F("adConfig",{implement:e=>{Yt.adConfig(e)}}),Rc=F("adBreak",{implement:e=>{Yt.adBreak(e)}}),Ac=F("adUnit",{implement:e=>{Yt.adUnit(e)}});Qt.registerCommand("AdsSDK.init",xc);Qt.registerCommand("AdsSDK.adConfig",Ic);Qt.registerCommand("AdsSDK.adBreak",Rc);Qt.registerCommand("AdsSDK.adUnit",Ac);I("AdsSDK.init",{version:"1.0.0"});I("AdsSDK.adConfig",{version:"1.0.0"});I("AdsSDK.adBreak",{version:"1.0.0"});I("AdsSDK.adUnit",{version:"1.0.0"})});var Zr,Cc,Nc,Pc,Ki=k(()=>{"use strict";A();V();ce();K();Zr=M(),Cc=F("openSchemaSync",{paramsSchema:f.tuple(f.string()),implement:e=>{let t=e;e.match(/^https?:\/\//)||(t=`https://${w.mpId}.app.jolibox.com${e.startsWith("/")?"":"/"}${e}`);let r=O("openSchemaSync",{schema:t});if(r.errNo!==0)throw new $e(r.errMsg,r.errNo)}}),Nc=F("openPageSync",{paramsSchema:f.tuple(f.string()),implement:e=>{let{errNo:t,errMsg:r,data:n}=O("openPageSync",{url:e});if(t!==0||!n)throw new $e(r,t);return{webviewId:n.webviewId}}}),Pc=F("closePageSync",{paramsSchema:f.tuple(f.number()),implement:e=>{let{errNo:t,errMsg:r}=O("closePageSync",{webviewId:e});if(t!==0)throw new $e(r,t)}});Zr.registerCommand("RouterSDK.openSchema",Cc);Zr.registerCommand("RouterSDK.openPage",Nc);Zr.registerCommand("RouterSDK.closePage",Pc);I("router.openSchema",{version:"1.1.10"});I("router.openPage",{version:"1.1.10"});I("router.closePage",{version:"1.1.10"})});var Oc={};var Qm,ef,qi=k(()=>{"use strict";Ci();Qm=on(Ni());Li();Bi();ji();ef=on(Hi());Ji();Vi();Ki()});var Gi=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[Gi])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[Gi]=!0;T(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(Ti(),wi)),Promise.resolve().then(()=>(qi(),Oc)),Promise.resolve().then(()=>(ve(),To))]);e()});
@@ -6,3 +6,4 @@ import './keyboard';
6
6
  import './task';
7
7
  import './login';
8
8
  import './ads';
9
+ import './navigate';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  import { On } from '../js-bridge';
2
- export declare const applyNative: jsb.service.ApplyNative, invokeNative: jsb.service.InvokeNative, onNative: jsb.service.OnNative, offNative: jsb.service.OnNative, subscribeHandler: import("../js-bridge").SubscribeHandler;
2
+ export declare const applyNative: jsb.service.ApplyNative, invokeNative: jsb.service.InvokeNative, onNative: jsb.service.OnNative, offNative: jsb.service.OnNative, subscribeHandler: import("../js-bridge").SubscribeHandler, publish: import("../js-bridge").Publish, subscribe: On, unsubscribe: import("../js-bridge").Off;
3
3
  export declare const onNativeWithError: On;
4
4
  export { RuntimeLoader } from '../js-core';
@@ -3,3 +3,4 @@ export declare const HOST_EVENT_PREFIX = "host_event_";
3
3
  export declare const BUFFER_METHODS: string[];
4
4
  export declare const BACKGROUND_FORBIDDEN_METHODS: string[];
5
5
  export declare const SYNC_METHODS: string[];
6
+ export declare const BATCH_EVENT = "__batch_event__";
@@ -0,0 +1 @@
1
+ export declare function createPublish(jsCore: jsb.JSCore): (event: string, data: Record<string, unknown>, webviewId?: number, force?: boolean) => void;
@@ -4,5 +4,7 @@ export interface Subscribes {
4
4
  onNative: On;
5
5
  offNative: Off;
6
6
  subscribeHandler: AnyFunction;
7
+ subscribe: On;
8
+ unsubscribe: Off;
7
9
  }
8
10
  export declare function createSubscribe(jsCore: jsb.JSCore): Subscribes;