@jolibox/implement 1.1.12 → 1.1.13-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.rush/temp/package-deps_build.json +21 -18
  2. package/.rush/temp/shrinkwrap-deps.json +1 -1
  3. package/dist/common/context/index.d.ts +5 -0
  4. package/dist/common/context/url-parse.d.ts +8 -1
  5. package/dist/index.js +3 -3
  6. package/dist/index.native.js +110 -4
  7. package/dist/native/api/index.d.ts +1 -0
  8. package/dist/native/api/navigate.d.ts +1 -0
  9. package/dist/native/bootstrap/bridge.d.ts +1 -1
  10. package/dist/native/js-bridge/const.d.ts +1 -0
  11. package/dist/native/js-bridge/publish.d.ts +1 -0
  12. package/dist/native/js-bridge/subscribe.d.ts +2 -0
  13. package/dist/native/js-bridge/types.d.ts +4 -0
  14. package/dist/native/js-core/jolibox-js-core.d.ts +8 -3
  15. package/dist/native/network/create-fetch.d.ts +1 -0
  16. package/dist/native/ui/retention.d.ts +1 -0
  17. package/implement.build.log +2 -2
  18. package/package.json +4 -3
  19. package/src/common/context/index.ts +22 -3
  20. package/src/common/context/url-parse.ts +24 -1
  21. package/src/native/api/index.ts +1 -0
  22. package/src/native/api/lifecycle.ts +16 -4
  23. package/src/native/api/navigate.ts +61 -0
  24. package/src/native/api/request.ts +19 -10
  25. package/src/native/bootstrap/bridge.ts +10 -1
  26. package/src/native/bootstrap/index.ts +100 -23
  27. package/src/native/js-bridge/const.ts +2 -0
  28. package/src/native/js-bridge/js-bridge.ts +7 -2
  29. package/src/native/js-bridge/publish.ts +44 -0
  30. package/src/native/js-bridge/subscribe.ts +25 -1
  31. package/src/native/js-bridge/types.ts +10 -0
  32. package/src/native/js-core/jolibox-js-core.ts +30 -26
  33. package/src/native/network/create-fetch.ts +1 -0
  34. package/src/native/network/utils.ts +13 -6
  35. package/src/native/types/global.d.ts +1 -0
  36. package/src/native/types/native-method-map.d.ts +29 -0
  37. package/src/native/ui/retention.ts +152 -0
@@ -1,4 +1,4 @@
1
- var lo=Object.create;var Ae=Object.defineProperty,uo=Object.defineProperties,mo=Object.getOwnPropertyDescriptor,po=Object.getOwnPropertyDescriptors,fo=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,ho=Object.getPrototypeOf,vt=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable;var ir=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))vt.call(t,r)&&ir(e,r,t[r]);if(Re)for(var r of Re(t))ar.call(t,r)&&ir(e,r,t[r]);return e},x=(e,t)=>uo(e,po(t));var ae=(e,t)=>{var r={};for(var n in e)vt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Re)for(var n of Re(e))t.indexOf(n)<0&&ar.call(e,n)&&(r[n]=e[n]);return r};var g=(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)Ae(e,r,{get:t[r],enumerable:!0})},go=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fo(t))!vt.call(e,o)&&o!==r&&Ae(e,o,{get:()=>t[o],enumerable:!(n=mo(t,o))||n.enumerable});return e};var dr=(e,t,r)=>(r=e!=null?lo(ho(e)):{},go(t||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e));var b=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{a(r.next(l))}catch(d){o(d)}},i=l=>{try{a(r.throw(l))}catch(d){o(d)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,i);a((r=r.apply(e,t)).next())});function yo(e){return!!(e!=null&&e.__nativeBuffers__)}function ke(e){if(typeof e=="string")try{e=JSON.parse(e)}catch(r){return{}}if(typeof e!="object"||e===null)return{};if(!yo(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=vo(n.base64)),typeof o!="undefined"&&o instanceof ArrayBuffer&&(e[n.key]=o)}}return e}function ur(e={},t=!1){let r=e,n=[];for(let[o,s]of Object.entries(r))if(s!==void 0&&s instanceof ArrayBuffer&&s.byteLength!==void 0){let i=t?{value:s,key:o}:{base64:bo(s),key:o};n.push(i),delete r[o]}return n.length>0&&(r.__nativeBuffers__=n),r}var vo,bo,bt=g(()=>{"use strict";vo=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};bo=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 Eo(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 So(e){return typeof e>"u"}function Io(e){return So(e)||e===null}function yr(e){return typeof e=="function"}function vr(e){return M(e)&&yr(e.then)}function br(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function kr(e,t,r){if(typeof r!="function")throw new Error("[Jolibox SDK]Customizer must be a function");function n(o,s){for(let i in s)if(Object.prototype.hasOwnProperty.call(s,i)){let a=o[i],l=s[i],d=r(a,l,i,o,s);d!==void 0?o[i]=d:mr(l)&&mr(a)?o[i]=n(y({},a),l):Array.isArray(l)&&Array.isArray(a)?o[i]=[...a,...l]:o[i]=l}return o}return n(e,t)}function mr(e){return e&&typeof e=="object"&&e.constructor===Object}function Tr(e,t){if(Array.isArray(e))return e.concat(t)}function Se(e,t,r={}){let n=null,o,s,i,{leading:a=!1,trailing:l=!0}=r,d=()=>(i=e.apply(s,o),o=void 0,s=void 0,i),c=function(...m){o=m,s=this;let p=a&&!n;if(n&&clearTimeout(n),n=setTimeout(()=>{n=null,l&&!p&&d()},t),p)return d()};return c.cancel=()=>{n&&clearTimeout(n),n=null,o=s=void 0},c.flush=()=>{if(n)return clearTimeout(n),n=null,d()},c}function Ro(e,t){return(...r)=>t(e,...r)}function Oe(e){return t=>Ro(t,function(r,...n){if(typeof r=="function")try{return r.apply(this,n)}catch(o){e(new _o(`${o}`))}})}function Te(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}function Ho(e){return new Promise(t=>Nr(e)(t))}function Nr(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function Jo(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(s.fire,s)}},s=new Ee(o);return s.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}function $o(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ko(e[n],t[n])}function Ko(e,t){if(ce(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(yr(t)){try{if(e instanceof t)return}catch(r){}if(!Io(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[Tt])return globalThis[Tt];let e=new Pe,t=new St,r={registerCommand(n,o,s){e.registerCommand({id:n,handler:o,metadata:s})},executeCommand(n,...o){return t.executeCommand(n,...o)},excuteCommandSync(n,...o){return t.executeCommandThowErr(n,...o)}};return globalThis[Tt]=r,r}var pr,ko,To,fr,ne,wo,It,le,Er,Sr,_o,Ir,wr,_r,Rr,Ar,Ie,Ne,wt,j,xr,Ao,_t,xo,Rt,Co,Po,xe,No,Oo,Do,Cr,At,Fo,Uo,Mo,Pr,X,R,Lo,Bo,Ce,Ee,z,Et,jo,kt,Vo,Z,Pe,St,Tt,S=g(()=>{"use strict";pr=Object.defineProperty,ko=Object.getOwnPropertyDescriptor,To=(e,t)=>{for(var r in t)pr(e,r,{get:t[r],enumerable:!0})},fr=(e,t,r,n)=>{for(var o=n>1?void 0:n?ko(t,r):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(o=(n?i(t,r,o):i(o))||o);return n&&o&&pr(t,r,o),o};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))}})}};wo=(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))(wo||{}),It=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 It{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},Er=class extends It{constructor(){super(...arguments),this.kind="USER_ERROR"}},Sr=class extends Er{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},_o=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))}},Ir=class extends le{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},wr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},_r=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}},Rr=class extends le{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},Ar=class extends le{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Ie=class extends It{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}}},Ne=class extends le{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}},wt=class extends le{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};j={log:Te("log"),warn:Te("warn"),info:Te("info"),error:Te("error"),debug:Te("debug")};Object.assign(globalThis,{logger:j});xr=Symbol.for("Jolibox.canIUseMap"),Ao={};globalThis[xr]=Ao;_t={get config(){return globalThis[xr]}},xo=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(xo||{}),Rt=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(Rt||{}),Co=(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))(Co||{}),Po=()=>"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")},No=()=>xe.isiOS?"iOS":xe.isAndroid?"Android":xe.isMac?"Mac":xe.isFacebook?"Facebook":"PC",Oo="device_id",Do="advertising_id",Cr=e=>(localStorage.getItem(e)||localStorage.setItem(e,Po()),localStorage.getItem(e)),At=()=>Cr(Oo),Fo=()=>Cr(Do),Uo=e=>e.charAt(0).toUpperCase()+e.slice(1),Mo=()=>{var t;let e=new URLSearchParams(window.location.search);return Uo((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},Pr=e=>{let t="JoliboxWebSDK",r=No(),n=navigator.language,o=At(),s=Fo();return`${t} (${Mo()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${s} version/${e||""}`},R=(X=class{constructor(t){this.element=t,this.next=X.Undefined,this.prev=X.Undefined}},X.Undefined=new X(void 0),X),Lo=class{constructor(){this._first=R.Undefined,this._last=R.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===R.Undefined}clear(){let e=this._first;for(;e!==R.Undefined;){let t=e.next;e.prev=R.Undefined,e.next=R.Undefined,e=t}this._first=R.Undefined,this._last=R.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new R(e);if(this._first===R.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!==R.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==R.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==R.Undefined&&e.next!==R.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===R.Undefined&&e.next===R.Undefined?(this._first=R.Undefined,this._last=R.Undefined):e.next===R.Undefined?(this._last=this._last.prev,this._last.next=R.Undefined):e.prev===R.Undefined&&(this._first=this._first.next,this._first.prev=R.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==R.Undefined;)yield e.element,e=e.next}},Bo=0,Ce=class{constructor(e){this.value=e,this.id=Bo++}},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 Ce&&(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,s,i,a,l,d;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new Ce(t);this._listeners?this._listeners instanceof Ce?this._listeners=[this._listeners,n]:this._listeners.push(n):((s=(o=this.options)==null?void 0:o.onWillAddFirstListener)==null||s.call(o,this),this._listeners=n,(a=(i=this.options)==null?void 0:i.onDidFirstListener)==null||a.call(i,this)),(d=(l=this.options)==null?void 0:l.onDidAddListener)==null||d.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 Ce?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 s;let r=(s=this.listeners.get(e))!=null?s:new Ee,n=i=>t(...i.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(y({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 Lo,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},Et={};To(Et,{None:()=>jo,filter:()=>Jo,once:()=>Nr,toPromise:()=>Ho});jo=()=>{console.log("[Jolibox SDK] None Event")};kt=Symbol.for("Jolibox.hostEmitter"),Vo=()=>{let e=new z;return globalThis[kt]||(globalThis[kt]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[kt]},Z=Vo();Pe=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 o of e.metadata.args)r.push(o.constraint);let n=e.handler;e.handler=function(...o){return $o(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}};Pe=fr([br],Pe);St=class{constructor(){this._onWillExecuteCommand=new Ee,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Ee,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new Pe,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=Eo(3e4)),this._starActivation}executeCommand(e,...t){return b(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}}};St=fr([br],St);Tt=Symbol.for("Jolibox.commands")});function F(e,t={}){xt.emit("ERROR_REPORT",{error:e,options:t})}var xt,de,$=g(()=>{"use strict";S();S();xt=new z,de=new z;F.debounce=Se(F,50,{leading:!0})});function De(e,t){return`[${e}]:${t}`}var ue,Ct,oe=g(()=>{"use strict";$();S();$();ue=(e,t)=>{var r,n;return new Ie((n=(r=t==null?void 0:t.errMsg)!=null?r:e.msg)!=null?n:"",e.code,e.type)},Ct=e=>new Sr(e)});var Or,Dr,Fr,Ur=g(()=>{"use strict";Or=[],Dr=[],Fr=["env","createRequestTask","login"]});function Lr(e,t){Mr||(Pt=new me({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),Nt=new me({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),Ot=new me({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),t("onJoliboxEnterBackground",()=>{Pt.flush(),Nt.flush(),Ot.flush()}),Mr=!0);function r(o){var v,f;let{method:s,args:i,startTime:a,isForeground:l,errMsg:d=`${s}:fail no errMsg`,errNo:c=0,__timing:m={receiveJSInvoke:0,invokeCallback:0}}=o,{receiveJSInvoke:p,invokeCallback:T}=m,w=(f=(v=d.match(/\S:(\S+)\s?/))==null?void 0:v[1])!=null?f:"fail";Pt.report({status:w,method:n(s,i),errNo:`${c}`,errMsg:d,isForeground:l,duration:Date.now()-a}),a&&p&&T&&(Nt.report({status:w,method:s,isForeground:l,duration:Number((p-a).toFixed(3))}),Ot.report({status:w,method:s,isForeground:l,duration:Number((Date.now()-T).toFixed(3))}))}function n(o,s){return(o==="callHostMethod"||o==="callHostMethodSync")&&s!=null&&s.method?`${o}-${s.method}`:o}return r}var qo,me,Mr,Pt,Nt,Ot,Dt=g(()=>{"use strict";S();qo=e=>e==="pv"?e:"default",me=class{constructor(t){this.interval=30;this.lastReportTime=0;this.cache={};let{reporter:r,interval:n=30,eventName:o,tagNameOrder:s,metricName:i,type:a}=t;this.reporter=r,this.interval=n,this.eventName=o,this.tagNameOrder=s,this.metricName=i,this.type=qo(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,s,i)=>{let a=o.shift();if(a){let l=i[a];n[l]||(n[l]={}),r(n[l],o,s,i)}else n[s]||(n[s]=[]),n[s].push(i[s])};r(this.cache,[...this.tagNameOrder],this.metricName,t)}addPVPoint(t){let r=(o,s,i,a)=>{let l=s.shift();if(!l&&M(a))throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);if(l){let d=[];if(M(a))d.push(...Object.keys(a));else if(ce(a)){if(s.length>0)throw new Ne(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);d.push(a)}else throw new Ne(`expected metric value to be a string, but got a(n) ${typeof a}, ${JSON.stringify(n)}`);d.forEach(c=>{o[c]||(o[c]={});let m=M(a)?a[c]:a;r(o[c],[...s],i,m)})}else o[i]?o[i]++:o[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,o=new Map,s=Lr(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,Ft.forEach(p=>b(this,[p],function*({method:d,args:c,resolve:m}){let T=yield a(d,c);m(T)})),Ft.length=0});let i=(d,c)=>{let m=o.get(Number(d));if(!m)return;let p=ke(c);m(p),o.delete(Number(d))},a=(d,c)=>{var A,fe;let m=Date.now(),p=`${n}`;r+=1;let T=new ne;if(o.set(r,T.resolve),!n&&Dr.includes(d))return new Promise(U=>{Ft.push({method:d,args:c,resolve:U})});let v=x(y({},{method:d,startTime:m,args:c,isForeground:p}),{invokeType:"js-bridge"}),f=!Go&&Or.includes(d),k=ur(c,f),_=f?k:JSON.stringify(k),h;if(d.endsWith("Sync")||Fr.includes(d)?h=(A=e.call)==null?void 0:A.call(e,d,k,r):typeof _=="string"?h=e.invoke(d,_,r):h=(fe=e.call)==null?void 0:fe.call(e,d,_,r),h){try{typeof h=="string"&&(h=JSON.parse(h)),h=ke(h)}catch(U){j.error(U)}return o.delete(r),h.errorCode&&(h.errorCode=De(d,h.errorCode)),s(y(y({},v),h)),h}return d.endsWith("Sync")&&o.delete(r),T.promise.then(U=>(U.errorCode&&(U.errorCode=De(d,U.errorCode)),s(y(y({},v),U)),U))};return{invokeNative:a,applyNative:(d,c)=>{let m=a(d,c);return vr(m)?m.then(p=>Br(d,p)):Br(d,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:o,errorCode:s}=a,i=ae(a,["errMsg","errNo","errorType","errorCode"]);if(r&&r!==`${e}:ok`)throw new _r(r,n,o,s);return i}var Ft,Go,Hr=g(()=>{"use strict";bt();S();oe();Ur();Dt();Ft=[],Go=!1});function Jr(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,o,s){let i=ke(o),a;if(i.__extra){a=i.params;let{type:l,startTime:d}=i.__extra;r.report({type:l,event:n,duration:Date.now()-d})}else a=i;t.emit(n,a,s)}}}var Vr=g(()=>{"use strict";S();bt();Dt()});function Ut(e){let{subscribeHandler:t,onNative:r,offNative:n}=Jr(e),{invokeNative:o,invokeHandler:s,applyNative:i}=jr(e,r);return{invokeHandler:s,subscribeHandler:t,applyNative:i,invokeNative:o,onNative:r,offNative:n}}var $r=g(()=>{"use strict";Hr();Vr()});var Kr=g(()=>{"use strict"});var qr=g(()=>{"use strict";$r();Kr()});var se,K,Gr,zr=g(()=>{"use strict";S();$();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)F(new wr("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="")=>{K.trigger(),e.onDocumentReady.postMessage({path:o})};se={onDocumentReady:t,doExit:o=>{let s=K.exit();e.doExit.postMessage({uuid:o,shouldInterrupt:s})},invoke(o,s,i){e.invoke.postMessage({event:o,paramsString:s,callbackId:i})},call(o,s,i){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(s),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=y({},n)}if(window.JoliAndroidSDKBridge){let e=window.JoliAndroidSDKBridge,t=(o="")=>{K.trigger(),e.onDocumentReady(JSON.stringify({path:o}))};se={onDocumentReady:t,invoke(o,s,i){e.invoke(JSON.stringify({event:o,paramsString:s,callbackId:i}))},doExit:o=>{let s=K.exit();e.doExit(JSON.stringify({uuid:o,shouldInterrupt:s}))},call(o,s,i){let a=window.prompt("invoke",JSON.stringify({event:o,paramsString:JSON.stringify(s),callbackId:i}));if(a)return JSON.parse(a)}};let n={onDocumentReady:t,env:Gr};globalThis.joliboxJSCore=y({},n)}});function Mt(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var Lt=g(()=>{"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=g(()=>{"use strict";Lt()});var Fe=g(()=>{"use strict";zr();Wr();Lt()});var Qr,zo,Xr,Yr,H,C,W,ka,Wo,V=g(()=>{"use strict";qr();Fe();oe();S();Fe();Qr=se;if(!Qr)throw new Rr("No joliboxJScore is found, native bridge not found.");Bt();zo=y({},Qr),Xr=Ut(zo),{invokeHandler:Yr}=Xr,{applyNative:H,invokeNative:C,onNative:W,offNative:ka,subscribeHandler:Wo}=Xr;globalThis.joliboxJSBridge={callHandler:Yr,invokeHandler:Yr,subscribeHandler:Wo}});var jt,Zr,en=g(()=>{"use strict";S();$();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(o){return{}}},Zr=e=>{var t;try{let o=(t=new URL(e).searchParams.get("joliSource"))==null?void 0:t.split(".");if(o!=null&&o.length){let[s,i,a]=o;return{headerJson:jt(s),payloadJson:jt(i),signature:jt(a)}}else throw"joli_source is missing"}catch(r){return F(new Ir(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}}});var Yo,Ue,tn,Ht=g(()=>{"use strict";S();Yo="1.1.12",Ue=()=>Yo,tn=()=>{let e=Ue();return`${Pr(e)}`}});var Qo,rn,Jt,nn,L,Xo,E,q=g(()=>{"use strict";S();en();Ht();S();Qo={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:At(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:Ue()},schema:window.location.href,platform:"h5"},Jt=(rn=globalThis.joliboxJSCore)==null?void 0:rn.env,L=Object.assign({},(nn=Jt==null?void 0:Jt())!=null?nn:Qo),Xo=()=>{var m,p,T,w,v,f,k,_;let{payloadJson:e,headerJson:t}=L.schema.length?Zr(L.schema):{},r=`${L.deviceInfo.did}-${new Date().getTime()}`,o=new URL(L.schema.length?L.schema:window.location.href).searchParams,s=(T=(p=(m=o.get("mpId"))!=null?m:o.get("appId"))!=null?p:o.get("gameId"))!=null?T:"",i=(v=(w=e==null?void 0:e.sessionId)!=null?w:o.get("sessionId"))!=null?v:r,a=!!((f=e==null?void 0:e.testAdsMode)!=null?f:o.get("testAdsMode")==="true"),l=(_=(k=e==null?void 0:e.joliboxEnv)!=null?k:o.get("joliboxEnv"))!=null?_:"production",d=l==="staging",c=t==null?void 0:t.channel;return{get testMode(){return d},get testAdsMode(){return a},get joliboxEnv(){return l},get joliSource(){var h;return(h=o.get("joliSource"))!=null?h:null},get mpId(){var h;return(h=s!=null?s:e==null?void 0:e.id)!=null?h:""},get mpVersion(){var h;return(h=t==null?void 0:t.ver)!=null?h:Ue()},get mpType(){var h,A;return(A=(h=t==null?void 0:t.__mpType)!=null?h:e==null?void 0:e.__mpType)!=null?A:"game"},get platform(){var h;return(h=L.platform)!=null?h: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 h,A;return(A=(h=L.clientSessionId)!=null?h:i)!=null?A:r},get channel(){return c},get webviewId(){var h;return(h=L.webviewId)!=null?h:-1},onEnvConfigChanged:h=>{kr(L,h,Tr)}}},E=Xo()});var Vt,sn,Zo,es,on,ts,an=g(()=>{"use strict";S();$();q();S();Vt=!1,sn=(e,t)=>e==null?!1:t in e,Zo=e=>sn(e,"kind"),es=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},on=(e,t={},r)=>{var s,i,a;let n={user_id:(i=(s=E.hostUserInfo)==null?void 0:s.uid)!=null?i:"",device_id:(a=E.deviceInfo.did)!=null?a:"",timestamp:Date.now(),tag:es(e.name)},o=x(y({},n),{env:t.environment,isFromUser:r});r?de.emit("GLOBAL_USER_ERROR",e,o):de.emit("GLOBAL_ERROR",e,o)},ts=e=>sn(e,"kind")&&e.kind==="USER_ERROR";xt.on("ERROR_REPORT",({error:e,options:t})=>{if(Vt)return;Vt=!0;let r=Zo(e)&&e.raw?e.raw:e;try{let n=ts(e);on(e,t,n)}catch(n){let o=n instanceof Error?n.message:String(n),s=new wt(`${o}, origin error: ${r.message}`);j.error(s),on(new wt(s.message),{environment:t.environment},!1)}finally{Vt=!1}})});var cn=g(()=>{"use strict";an();oe();S();V();de.on("GLOBAL_ERROR",(e,t)=>{var n;let r={message:e.message,stack:(n=e.stack)!=null?n:"",errorType:e.name,source:0};C("trackAsync",{event:"reportJsError",data:r})});de.on("GLOBAL_USER_ERROR",(e,t)=>{j.log("UserError",e,t)})});var $t=g(()=>{"use strict"});function ln(e,t){let r=(n,o,s)=>{let i=x(y({tag:n},t),{extra:y({},o)});n=="globalJsError"?F(new Ar(JSON.stringify(i))):e("systemLog",i,s)};return r.debounce=Se(r,500,{leading:!0}),r}function dn(e){let t=(r,n,o)=>{var a;let s=(a=o&&JSON.stringify(o))!=null?a:0,i={speed_value_type:r,total_duration:n};s&&Object.assign(i,{extra:s}),e("joliboxSpeedAnalysis",i)};return t.debounce=Se(t,500,{leading:!0}),t}var un=g(()=>{"use strict";S();S();$()});function mn(e,t){let r=ln(e,t),n=dn(r);return{track:r,trackPerformance:n}}var pn=g(()=>{"use strict";un()});var fn=g(()=>{"use strict";q();S();S()});var hn=g(()=>{"use strict";pn();$t();fn()});var Me,gn=g(()=>{"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,o,s=!1,i=0,a=()=>{if(!s)return;let T=Date.now(),w=T-r;w>=this.interval&&(this.visible&&(i+=w,t(i)),r=T),n=requestAnimationFrame(a)},l=()=>{c(),r=Date.now(),o=window.setInterval(()=>{if(!s)return;let T=Date.now();T-r>=this.interval&&(r=T)},this.interval)},d=()=>{m(),r=Date.now(),n=requestAnimationFrame(a)},c=()=>{n&&(cancelAnimationFrame(n),n=0)},m=()=>{o&&(clearInterval(o),o=0)};this.eventEmitter.on("visible",T=>{s&&(console.log("visible",T),T?d():l())});let p=this.visible;return{start(){s||(s=!0,p?d():l())},stop(){s=!1,c(),m()}}}}});var Kt=g(()=>{"use strict"});function vn(e,t,r){let{response:n,startTime:o,endTime:s,requestFrom:i}=r,{errMsg:a="",profile:l={}}=n,c={duration:s-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:i};(i==="public"&&yn<ns||i==="inner")&&(c.joli_request_number=yn++,setTimeout(()=>{J("joliboxNetRequestResult",c)},500))}var yn,ns,bn=g(()=>{"use strict";Kt();ie();yn=0,ns=10});function Le(e,t,r){var l,d,c;let n=new Map,o=(l=r==null?void 0:r.baseUrl)!=null?l:"https://api.jolibox.com",s=(d=r==null?void 0:r.type)!=null?d:"public",i=(c=r==null?void 0:r.defaultHeaders)!=null?c:{};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:v,state:f}=T,k=ae(T,["requestTaskId","state"]);p.resolve(k),n.delete(v)}else if(m.state==="fail"){let w=m,{requestTaskId:v,state:f}=w,k=ae(w,["requestTaskId","state"]);p.reject(k),n.delete(v)}else j.warn("onRequestTaskStateChange unknown event",m)}),Z.on("onLoginComplete",({isLogin:m,token:p})=>{m&&p&&(i["X-JOLI-TOKEN"]=p)}),(T,...w)=>b(this,[T,...w],function*(m,p={}){let v=Date.now(),f=os(m,x(y({},p),{baseUrl:o})),{method:k="GET",responseType:_="text",dataType:h="json",timeout:A,enableCache:fe=!1,appendHostCookie:U=!0}=p,be=Object.assign({"content-type":"application/json"},i,p.header),re={url:f,method:k,header:be,enableCache:fe,responseType:_,appendHostCookie:U};if(k=="POST"||k=="PUT"){let G=is(p.data,be["content-type"]);re.data=G}A&&Object.assign(re,{timeout:A});let{data:{requestTaskId:yt}}=C(e,re);if(typeof yt!="string")throw ue({code:-1,msg:"requestTaskId is not a string"});let sr=(G,Q)=>{vn("request",f,{state:G,startTime:v,endTime:Date.now(),params:re,response:Q,requestId:yt,requestFrom:s=="public"?"public":"inner"})},{resolve:no,reject:oo,promise:so}=new ne;n.set(yt,{resolve:no,reject:oo});try{let G=yield so;sr("success",G);let{data:Q}=G;return h==="json"&&typeof Q=="string"&&(Q=ss(Q)),{url:f,timeout:A,method:k,response:x(y({},G),{data:Q})}}catch(G){let Q=G;if(M(Q)){let{errMsg:_e,prefetchDetail:io,isPrefetch:ao,errNo:co}=Q;ce(_e)&&(sr("fail",{errMsg:_e,isPrefetch:ao,prefetchDetail:io}),F(ue({code:-1,msg:_e},{errNo:co,errMsg:_e})))}throw G}})}function ss(e){try{return JSON.parse(e.trim())}catch(t){return e}}function is(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 os,qt=g(()=>{"use strict";S();bn();Kt();V();$();oe();os=(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 Gt,kn,Y,Be=g(()=>{"use strict";Ht();qt();q();Gt={"x-user-agent":tn()};(kn=E.hostUserInfo)!=null&&kn.token&&(Gt["x-joli-token"]=E.hostUserInfo.token);E.joliSource&&(Gt["x-joli-source"]=E.joliSource);Y=Le("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:E.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Gt})});var je,Tn=g(()=>{"use strict";q();gn();Be();V();je=class extends Me{constructor(t,r,n){super(r,n),this.gameId=E.mpId,this.sessionId=E.sessionId,this.track=t}reporter(t){return b(this,null,function*(){let{event:r,params:n}=t,o=[];o.push(Y("/api/base/app-event",{method:"POST",data:{eventType:r,gameInfo:y({gameId:this.gameId,sessionId:this.sessionId},n)}})),yield Promise.all(o)})}reportToNative(t){return b(this,null,function*(){let{event:r,params:n}=t;yield H("userTrackAsync",{event:r,params:y({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var _n={};lr(_n,{nativeTaskEmitter:()=>we,taskTracker:()=>B,track:()=>J,trackPerformance:()=>In});var as,En,Sn,J,In,wn,we,B,ie=g(()=>{"use strict";cn();S();$t();hn();q();Tn();V();as=(e,t,r)=>{var i,a;let n=t,o=M(n.extra)?n.extra:ce(n.extra)?JSON.parse(n.extra):{},s=x(y({},o),{mp_id:(i=n.mp_id)!=null?i:"",mp_version:(a=n.mp_version)!=null?a:""});C("trackAsync",{event:e,data:s,webviewId:r})},{track:J,trackPerformance:In}=mn(as,{type:Rt.AppSDK,platform:"native",jssdk_version:(Sn=(En=E.sdkInfo)==null?void 0:En.jssdkVersion)!=null?Sn:"1.0.0",mp_id:E.mpId,mp_version:E.mpVersion}),wn=O();wn.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{In(e,t,r)});wn.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{J(e,t)});we=new z,B=new je(J,we)});function Rn(){let e=null,t=window.fetch,r=()=>{e=document.createElement("style"),e.setAttribute("data-jolibox-sdk","default-styles");let s=`
1
+ var rs=Object.create;var Xe=Object.defineProperty,ns=Object.defineProperties,os=Object.getOwnPropertyDescriptor,is=Object.getOwnPropertyDescriptors,ss=Object.getOwnPropertyNames,Ye=Object.getOwnPropertySymbols,as=Object.getPrototypeOf,Xt=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable;var nn=(e,t,r)=>t in e?Xe(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)&&nn(e,r,t[r]);if(Ye)for(var r of Ye(t))on.call(t,r)&&nn(e,r,t[r]);return e},P=(e,t)=>ns(e,is(t));var Q=(e,t)=>{var r={};for(var n in e)Xt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ye)for(var n of Ye(e))t.indexOf(n)<0&&on.call(e,n)&&(r[n]=e[n]);return r};var k=(e,t)=>()=>(e&&(t=e(e=0)),t);var sn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),an=(e,t)=>{for(var r in t)Xe(e,r,{get:t[r],enumerable:!0})},cs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ss(t))!Xt.call(e,o)&&o!==r&&Xe(e,o,{get:()=>t[o],enumerable:!(n=os(t,o))||n.enumerable});return e};var cn=(e,t,r)=>(r=e!=null?rs(as(e)):{},cs(t||!e||!e.__esModule?Xe(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 ls(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(!ls(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=us(n.base64)),typeof o!="undefined"&&o instanceof ArrayBuffer&&(e[n.key]=o)}}return e}function ln(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:ds(i),key:o};n.push(s),delete r[o]}return n.length>0&&(r.__nativeBuffers__=n),r}var us,ds,Zt=k(()=>{"use strict";us=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};ds=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 _s(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function be(e){return typeof e=="string"}function K(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function hn(e){return typeof e=="object"&&Array.isArray(e)}function je(e){return e===!0||e===!1}function vs(e){return typeof e=="undefined"}function ys(e){return vs(e)||e===null}function gn(e){return typeof e=="function"}function _n(e){return K(e)&&gn(e.then)}function vn(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}function yn(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:pn(l)&&pn(a)?o[s]=n(mn({},a),l):Array.isArray(l)&&Array.isArray(a)?o[s]=[...a,...l]:o[s]=l}return o}return n(e,t)}function pn(e){return e&&typeof e=="object"&&e.constructor===Object}function bn(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 ks(e,t){return(...r)=>t(e,...r)}function nt(e){return t=>ks(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 Fs(e){return new Promise(t=>Pn(e)(t))}function Pn(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function Us(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 Ls(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Bs(e[n],t[n])}function Bs(e,t){if(be(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(gn(t)){try{if(e instanceof t)return}catch(r){}if(!ys(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 tt,t=new ir,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 sr,ps,un,ms,fs,dn,mn,hs,fn,gs,se,bs,ar,ke,kn,wn,$e,Tn,Sn,En,xn,In,Je,rt,cr,Y,Rn,ws,lr,Ts,ur,Ss,Es,Ze,xs,Is,Rs,An,dr,As,Cs,Ps,Cn,rr,F,Ns,Os,et,Be,te,or,Ds,er,Ms,de,tt,ir,tr,A=k(()=>{"use strict";sr=Object.defineProperty,ps=Object.getOwnPropertyDescriptor,un=Object.getOwnPropertySymbols,ms=Object.prototype.hasOwnProperty,fs=Object.prototype.propertyIsEnumerable,dn=(e,t,r)=>t in e?sr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,mn=(e,t)=>{for(var r in t||(t={}))ms.call(t,r)&&dn(e,r,t[r]);if(un)for(var r of un(t))fs.call(t,r)&&dn(e,r,t[r]);return e},hs=(e,t)=>{for(var r in t)sr(e,r,{get:t[r],enumerable:!0})},fn=(e,t,r,n)=>{for(var o=n>1?void 0:n?ps(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&&sr(t,r,o),o},gs=(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())});if(typeof window!="undefined"&&!window.AbortController){let e=function(){this.signal=new t};e.prototype.abort=function(){this.signal._aborted=!0,typeof this.signal.onabort=="function"&&this.signal.onabort(new Event("abort"));let r=new Event("abort");this.signal.dispatchEvent(r)};let t=function(){this._aborted=!1,this.aborted=!1,this.onabort=null,this._eventListeners={}};Object.defineProperty(t.prototype,"aborted",{get:function(){return this._aborted}}),t.prototype.addEventListener=function(r,n){this._eventListeners[r]||(this._eventListeners[r]=[]),this._eventListeners[r].push(n)},t.prototype.removeEventListener=function(r,n){if(!this._eventListeners[r])return;let o=this._eventListeners[r].indexOf(n);o!==-1&&this._eventListeners[r].splice(o,1)},t.prototype.dispatchEvent=function(r){if(this._eventListeners[r.type])for(let n of this._eventListeners[r.type])n.call(this,r)},window.AbortController=e,window.AbortSignal=t}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))}})}};bs=(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))(bs||{}),ar=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 ar{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}},kn=class extends ar{constructor(){super(...arguments),this.kind="USER_ERROR"}},wn=class extends kn{constructor(){super(...arguments),this.name="USER_VALIDATE_ERROR"}},$e=class extends kn{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))}},Tn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_SCHEMA_PARSE_ERROR",this.priority="P0"}},Sn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_INVOKE_NATIVE_ERROR"}},En=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}},xn=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_JSCORE_ERROR",this.priority="P0"}},In=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_GLOBAL_JS_ERROR",this.priority="P1"}},Je=class extends ar{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}}},rt=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_METRIC_REPORT_ERROR"}},cr=class extends ke{constructor(){super(...arguments),this.name="INTERNAL_REPORTER_ERROR"}};Y={log:Le("log"),warn:Le("warn"),info:Le("info"),error:Le("error"),debug:Le("debug")};Object.assign(globalThis,{logger:Y});Rn=Symbol.for("Jolibox.canIUseMap"),ws={};globalThis[Rn]=ws;lr={get config(){return globalThis[Rn]}},Ts=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Ts||{}),ur=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(ur||{}),Ss=(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))(Ss||{}),Es=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),Ze={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")},xs=()=>Ze.isiOS?"iOS":Ze.isAndroid?"Android":Ze.isMac?"Mac":Ze.isFacebook?"Facebook":"PC",Is="device_id",Rs="advertising_id",An=e=>(localStorage.getItem(e)||localStorage.setItem(e,Es()),localStorage.getItem(e)),dr=()=>An(Is),As=()=>An(Rs),Cs=e=>e.charAt(0).toUpperCase()+e.slice(1),Ps=()=>{var e;let t=new URLSearchParams(window.location.search);return Cs((e=t.get("utm_source"))!=null?e:"")||"JoliboxSDK"},Cn=e=>{let t="JoliboxWebSDK",r=xs(),n=navigator.language,o=dr(),i=As();return`${t} (${Ps()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${i} version/${e||""}`},rr=class nr{constructor(t){this.element=t,this.next=nr.Undefined,this.prev=nr.Undefined}};rr.Undefined=new rr(void 0);F=rr,Ns=class{constructor(){this._first=F.Undefined,this._last=F.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===F.Undefined}clear(){let e=this._first;for(;e!==F.Undefined;){let t=e.next;e.prev=F.Undefined,e.next=F.Undefined,e=t}this._first=F.Undefined,this._last=F.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new F(e);if(this._first===F.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!==F.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==F.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==F.Undefined&&e.next!==F.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===F.Undefined&&e.next===F.Undefined?(this._first=F.Undefined,this._last=F.Undefined):e.next===F.Undefined?(this._last=this._last.prev,this._last.next=F.Undefined):e.prev===F.Undefined&&(this._first=this._first.next,this._first.prev=F.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==F.Undefined;)yield e.element,e=e.next}},Os=0,et=class{constructor(e){this.value=e,this.id=Os++}},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 et&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var n,o,i,s,a,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let u=new et(t);this._listeners?this._listeners instanceof et?this._listeners=[this._listeners,u]:this._listeners.push(u):((o=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||o.call(n,this),this._listeners=u,(s=(i=this.options)==null?void 0:i.onDidFirstListener)==null||s.call(i,this)),(l=(a=this.options)==null?void 0:a.onDidAddListener)==null||l.call(a,this),this._size++}),this._event}_deliver(e,t){var r;if(!e)return;let n=((r=this.options)==null?void 0:r.onListenerError)||Error.constructor;if(!n){e.value(t);return}try{e.value(t)}catch(o){n(o)}}fire(e){this._listeners&&(this._listeners instanceof et?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 r;let n=(r=this.listeners.get(e))!=null?r:new Be,o=s=>t(...s.args);this.listerHandlerMap.set(t,o),n.event(o),this.listeners.set(e,n);let i=this.cachedEventQueue.get(e);if(i)for(;i.size>0;)n.fire(mn({event:e},i.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 Ns,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},or={};hs(or,{None:()=>Ds,filter:()=>Us,once:()=>Pn,toPromise:()=>Fs});Ds=()=>{console.log("[Jolibox SDK] None Event")};er=Symbol.for("Jolibox.hostEmitter"),Ms=()=>{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]},de=Ms();tt=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 Ls(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}};tt=fn([vn],tt);ir=class{constructor(){this._onWillExecuteCommand=new Be,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new Be,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new tt,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=_s(3e4)),this._starActivation}executeCommand(e,...t){return gs(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),or.toPromise(or.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}}};ir=fn([vn],ir);tr=Symbol.for("Jolibox.commands")});function $(e,t={}){pr.emit("ERROR_REPORT",{error:e,options:t})}var pr,we,re=k(()=>{"use strict";A();A();pr=new te,we=new te;$.debounce=He($,50,{leading:!0})});function ot(e,t){return`[${e}]:${t}`}var he,mr,ge=k(()=>{"use strict";re();A();re();he=(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)},mr=e=>new wn(e)});var Te,Nn,On,Dn,it,st=k(()=>{"use strict";Te="custom_event_",Nn=[],On=[],Dn=["env","createRequestTask","login"],it="__batch_event__"});function Un(e,t){Fn||(fr=new Se({eventName:"jolibox_invoke",tagNameOrder:["status","method","errNo","errMsg","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),hr=new Se({eventName:"jolibox_invoke_js2native",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),gr=new Se({eventName:"jolibox_invoke_native2js",tagNameOrder:["status","method","isForeground"],metricName:"duration",reporter(o){e.invoke("track",JSON.stringify({event:"reportMetrics",data:o}),-1)}}),t("onJoliboxEnterBackground",()=>{fr.flush(),hr.flush(),gr.flush()}),Fn=!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";fr.report({status:y,method:n(i,s),errNo:`${d}`,errMsg:u,isForeground:l,duration:Date.now()-a}),a&&p&&m&&(hr.report({status:y,method:i,isForeground:l,duration:Number((p-a).toFixed(3))}),gr.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 js,Se,Fn,fr,hr,gr,_r=k(()=>{"use strict";A();js=e=>e==="pv"?e:"default",Se=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=js(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&&K(a))throw new rt(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);if(l){let u=[];if(K(a))u.push(...Object.keys(a));else if(be(a)){if(i.length>0)throw new rt(`report value failed to match tagNameOrder, ${JSON.stringify(n)}`);u.push(a)}else throw new rt(`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=K(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={}}},Fn=!1});function Ln(e,t){let r=0,n=!0,o=new Map,i=Un(e,t);t("onJoliboxEnterBackground",()=>{n=!1}),t("onJoliboxEnterForeground",()=>{n=!0,vr.forEach(p=>T(this,[p],function*({method:u,args:d,resolve:c}){let m=yield a(u,d);c(m)})),vr.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 N,R;let c=Date.now(),p=`${n}`;r+=1;let m=new se;if(o.set(r,m.resolve),!n&&On.includes(u))return new Promise(S=>{vr.push({method:u,args:d,resolve:S})});let v=P(_({},{method:u,startTime:c,args:d,isForeground:p}),{invokeType:"js-bridge"}),h=!Hs&&Nn.includes(u),g=ln(d,h),b=h?g:JSON.stringify(g),E;if(u.endsWith("Sync")||Dn.includes(u)?E=(N=e.call)==null?void 0:N.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){Y.error(S)}return o.delete(r),E.errorCode&&(E.errorCode=ot(u,E.errorCode)),i(_(_({},v),E)),E}return u.endsWith("Sync")&&o.delete(r),m.promise.then(S=>(S.errorCode&&(S.errorCode=ot(u,S.errorCode)),i(_(_({},v),S)),S))};return{invokeNative:a,applyNative:(u,d)=>{let c=a(u,d);return _n(c)?c.then(p=>Mn(u,p)):Mn(u,c)},invokeHandler:s}}function Mn(e,t){if(!K(t)){Y.warn(`[Jolibox SDK]${e} no response value`);return}let a=t,{errMsg:r,errNo:n,errorType:o,errorCode:i}=a,s=Q(a,["errMsg","errNo","errorType","errorCode"]);if(r&&r!==`${e}:ok`)throw new En(r,n,o,i);return s}var vr,Hs,Bn=k(()=>{"use strict";Zt();A();ge();st();_r();vr=[],Hs=!1});function jn(e){let t=new te,r=new te,n=new Se({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===it){l.forEach(d=>{let[c,p]=d;try{r.emit(c.slice(Te.length),p,s)}catch(m){}});return}if(o.startsWith(Te)){r.emit(o.slice(Te.length),l,s);return}t.emit(o,l,s)}}}var Hn=k(()=>{"use strict";A();Zt();_r();st()});function $n(e){let t=new Map,r;return(o,i,s,a)=>{if(a){let u=s?[s]:"*";e.publish(`${Te}${o}`,i,u);return}r||(r=Promise.resolve().then(()=>{t.forEach((u,d)=>{try{let c=d?[d]:"*";e.publish(it,u,c)}catch(c){}}),r=void 0,t.clear()}));let l=t.get(s);l||(l=[],t.set(s,l)),l.push([`${Te}${o}`,i])}}var Jn=k(()=>{"use strict";st()});function yr(e){let{subscribeHandler:t,onNative:r,offNative:n,subscribe:o,unsubscribe:i}=jn(e),{invokeNative:s,invokeHandler:a,applyNative:l}=Ln(e,r),u=$n(e);return{invokeHandler:a,subscribeHandler:t,applyNative:l,invokeNative:s,onNative:r,offNative:n,publish:u,subscribe:o,unsubscribe:i}}var Vn=k(()=>{"use strict";Bn();Hn();Jn()});var Kn=k(()=>{"use strict"});var qn=k(()=>{"use strict";Vn();Kn()});function Ce(e,t){return{params:e,__extra:{startTime:Date.now(),type:t}}}var at=k(()=>{"use strict"});var _e,ne,Gn,Wn=k(()=>{"use strict";A();at();re();ne={trigger(){},exit(){return Promise.resolve(!1)},onReady(e){ne.trigger=e},doExit(e){ne.exit=e}},Gn=()=>{let e=window.prompt("invoke",JSON.stringify({event:"envSync",paramsString:JSON.stringify({})}));if(!e)$(new Sn("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=Ce(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:Gn};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=Ce(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:Gn};globalThis.joliboxJSCore=_({},n)}});function br(){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=Ce(r,"messagePort");Pe.postMessage(JSON.stringify(["publish",t,JSON.stringify(n)]))},Pe.postMessage("msg:setup:ok"))}}var Pe,zn=k(()=>{"use strict";at()});var ct=k(()=>{"use strict";Wn();zn();at()});var Yn,$s,Xn,Qn,X,O,ae,uu,Js,Zn,du,pu,q=k(()=>{"use strict";qn();ct();ge();A();ct();Yn=_e;if(!Yn)throw new xn("No joliboxJScore is found, native bridge not found.");br();$s=_({},Yn),Xn=yr($s),{invokeHandler:Qn}=Xn,{applyNative:X,invokeNative:O,onNative:ae,offNative:uu,subscribeHandler:Js,publish:Zn,subscribe:du,unsubscribe:pu}=Xn;globalThis.joliboxJSBridge={callHandler:Qn,invokeHandler:Qn,subscribeHandler:Js}});var kr,Vs,eo,to,ro=k(()=>{"use strict";A();re();kr=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{}}},Vs=e=>{let t=JSON.stringify(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},eo=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:kr(i),payloadJson:kr(s),signature:kr(a)}}else throw"joli_source is missing"}catch(r){return $(new Tn(`${e} not a valid schema: ${r}`)),{headerJson:{},payloadJson:{},signature:{}}}},to=(e,t)=>{let r=t.split(".");if(r&&r.length===3){let n=r[0],o=Vs(e),i=r[2];return`${n}.${o}.${i}`}return t}});var Ks,lt,no,wr=k(()=>{"use strict";A();Ks="1.1.13-beta.1",lt=()=>Ks,no=()=>{let e=lt();return`${Cn(e)}`}});var qs,oo,Tr,io,J,Gs,w,V=k(()=>{"use strict";A();ro();wr();A();qs={deviceInfo:{brand:"UnknownBrand",model:"UnknownModel",did:dr(),pixelRatio:window.devicePixelRatio||1,platform:"h5",system:"UnknownSystemVersion",lang:"zh"},sdkInfo:{nativeSDKVersion:"",jssdkVersion:lt()},schema:window.location.href,platform:"h5"},Tr=(oo=globalThis.joliboxJSCore)==null?void 0:oo.env,J=Object.assign({},(io=Tr==null?void 0:Tr())!=null?io:qs),Gs=()=>{var p,m,y,v,h,g,b,E,N;let{payloadJson:e,headerJson:t,signature:r}=J.schema.length?eo(J.schema):{},n=`${J.deviceInfo.did}-${new Date().getTime()}`,i=new URL(J.schema.length?J.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=J.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=(N=(E=e==null?void 0:e.joliboxEnv)!=null?E:i.get("joliboxEnv"))!=null?N:"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:lt()},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=J.platform)!=null?R:J.deviceInfo.platform},get deviceInfo(){return J.deviceInfo},get sdkInfo(){return J.sdkInfo},get hostInfo(){return J.hostInfo},get hostUserInfo(){return J.hostUserInfo},get sessionId(){var R,S;return(S=(R=J.clientSessionId)!=null?R:a)!=null?S:n},get channel(){return c},get webviewId(){var R;return(R=J.webviewId)!=null?R:-1},get shouldInterupt(){return e==null?void 0:e.__shouldInterupt},get from(){return e==null?void 0:e.__from},get baseApiHost(){return d?"https://stg-api.jolibox.com":"https://api.jolibox.com"},onEnvConfigChanged:R=>{yn(J,R,bn)},encodeJoliSourceQuery:R=>{var S,H;return t&&r?to(_(_({},e),R),(S=i.get("joliSource"))!=null?S:""):(H=i.get("joliSource"))!=null?H:""}}},w=Gs()});var Sr,ao,Ws,zs,so,Qs,co=k(()=>{"use strict";A();re();V();A();Sr=!1,ao=(e,t)=>e==null?!1:t in e,Ws=e=>ao(e,"kind"),zs=e=>{let t=e.toLowerCase().split("_");return t[0]+t.slice(1).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")},so=(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:zs(e.name)},o=P(_({},n),{env:t.environment,isFromUser:r});r?we.emit("GLOBAL_USER_ERROR",e,o):we.emit("GLOBAL_ERROR",e,o)},Qs=e=>ao(e,"kind")&&e.kind==="USER_ERROR";pr.on("ERROR_REPORT",({error:e,options:t})=>{if(Sr)return;Sr=!0;let r=Ws(e)&&e.raw?e.raw:e;try{let n=Qs(e);so(e,t,n)}catch(n){let o=n instanceof Error?n.message:String(n),i=new cr(`${o}, origin error: ${r.message}`);Y.error(i),so(new cr(i.message),{environment:t.environment},!1)}finally{Sr=!1}})});var lo=k(()=>{"use strict";co();ge();A();q();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)=>{Y.log("UserError",e,t)})});var Er=k(()=>{"use strict"});function uo(e,t){let r=(n,o,i)=>{let s=P(_({tag:n},t),{extra:_({},o)});n=="globalJsError"?$(new In(JSON.stringify(s))):e("systemLog",s,i)};return r.debounce=He(r,500,{leading:!0}),r}function po(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 mo=k(()=>{"use strict";A();A();re()});function fo(e,t){let r=uo(e,t),n=po(r);return{track:r,trackPerformance:n}}var ho=k(()=>{"use strict";mo()});var go=k(()=>{"use strict";V();A();A()});var _o=k(()=>{"use strict";ho();Er();go()});var ut,vo=k(()=>{"use strict";ut=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 xr=k(()=>{"use strict"});function bo(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"&&yo<Xs||s==="inner")&&(d.joli_request_number=yo++,setTimeout(()=>{Z("joliboxNetRequestResult",d)},500))}var yo,Xs,ko=k(()=>{"use strict";xr();ve();yo=0,Xs=10});function dt(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=Q(m,["requestTaskId","state"]);p.resolve(g),n.delete(v)}else if(c.state==="fail"){let y=c,{requestTaskId:v,state:h}=y,g=Q(y,["requestTaskId","state"]);p.reject(g),n.delete(v)}else Y.warn("onRequestTaskStateChange unknown event",c)}),de.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=Zs(c,P(_({},p),{baseUrl:o})),{method:g="GET",responseType:b="text",dataType:E="json",timeout:N,enableCache:R=!1,appendHostCookie:S=!0}=p,H=Object.assign({"content-type":"application/json"},s,p.header),z={url:h,method:g,header:H,enableCache:R,responseType:b,appendHostCookie:S};if(g=="POST"||g=="PUT"){let ie=ta(p.data,H["content-type"]);z.data=ie}N&&Object.assign(z,{timeout:N});let{data:{requestTaskId:le}}=O(e,z);if(typeof le!="string")throw he({code:-1,msg:"requestTaskId is not a string"});let Ae=(ie,ue)=>{bo("request",h,{state:ie,startTime:v,endTime:Date.now(),params:z,response:ue,requestId:le,requestFrom:i=="public"?"public":"inner"})},{resolve:ee,reject:ye,promise:Xi}=new se;n.set(le,{resolve:ee,reject:ye});try{let ie=yield Xi;Ae("success",ie);let{data:ue}=ie;return E==="json"&&typeof ue=="string"&&(ue=ea(ue)),{url:h,timeout:N,method:g,response:P(_({},ie),{data:ue})}}catch(ie){let ue=ie;if(K(ue)){let{errMsg:Qe,prefetchDetail:Zi,isPrefetch:es,errNo:ts}=ue;be(Qe)&&(Ae("fail",{errMsg:Qe,isPrefetch:es,prefetchDetail:Zi}),$(he({code:-1,msg:Qe},{errNo:ts,errMsg:Qe})))}throw ie}})}function ea(e){try{return JSON.parse(e.trim())}catch(t){return e}}function ta(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 Zs,Ir=k(()=>{"use strict";A();ko();xr();q();re();ge();Zs=(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 Rr,wo,G,Ne=k(()=>{"use strict";wr();Ir();V();Rr={"x-user-agent":no()};(wo=w.hostUserInfo)!=null&&wo.token&&(Rr["x-joli-token"]=w.hostUserInfo.token);w.joliSource&&(Rr["x-joli-source"]=w.joliSource);G=dt("createRequestTaskSync","operateRequestTaskSync",{type:"inner",baseUrl:w.testMode?"https://stg-api.jolibox.com":"https://api.jolibox.com",defaultHeaders:Rr})});var pt,To=k(()=>{"use strict";V();vo();Ne();q();pt=class extends ut{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(G("/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 X("userTrackAsync",{event:r,params:_({},n),gameId:this.gameId})})}tracker(t,r=null){this.track(t,r)}}});var Ro={};an(Ro,{nativeTaskEmitter:()=>Ve,taskTracker:()=>W,track:()=>Z,trackPerformance:()=>xo});var ra,So,Eo,Z,xo,Io,Ve,W,ve=k(()=>{"use strict";lo();A();Er();_o();V();To();q();ra=(e,t,r)=>{var s,a;let n=t,o=K(n.extra)?n.extra:be(n.extra)?JSON.parse(n.extra):{},i=P(_({},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:Z,trackPerformance:xo}=fo(ra,{type:ur.AppSDK,platform:"native",jssdk_version:(Eo=(So=w.sdkInfo)==null?void 0:So.jssdkVersion)!=null?Eo:"1.0.0",mp_id:w.mpId,mp_version:w.mpVersion}),Io=M();Io.registerCommand("ReportSDK.traceSystemTimeline",({event:e,duration:t,extra:r})=>{xo(e,t,r)});Io.registerCommand("ReportSDK.traceSystem",({event:e,info:t})=>{Z(e,t)});Ve=new te,W=new pt(Z,Ve)});function Ao(){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 lo=Object.create;var Ae=Object.defineProperty,uo=Object.defineProperties,mo=
16
16
  min-height: 100dvh;
17
17
  }
18
18
  }
19
- `;e.textContent=s;let i=document.head||document.getElementsByTagName("head")[0];i.insertBefore(e,i.firstChild),document.documentElement.setAttribute("data-jolibox-root","")},n=()=>{function s(a){return b(this,null,function*(){let l=a instanceof URL?a.href:a,d=new Promise((c,m)=>{let p=new XMLHttpRequest;p.open("GET",l),p.responseType="arraybuffer",p.addEventListener("load",()=>c(p.response)),p.addEventListener("error",m),p.send()});try{let c=yield d;return new Response(c,{headers:new Headers([["Content-Type","application/wasm"]])}).clone()}catch(c){throw console.error("Failed to load wasm:",c),c}})}let i=window.fetch;window.fetch=(a,l)=>{let d=a instanceof URL?a.href:a.toString();return d.endsWith(".wasm")?s(d):i(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 An=g(()=>{"use strict"});var He,xn=g(()=>{"use strict";He=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 Je,cs,ls,ds,us,Cn=g(()=>{"use strict";Je=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 s=this.checkShouldBanForTime(t);return s?{reason:s}:{reason:"ALLOWED"}};var p,T,w,v,f,k,_;let s=(p=o==null?void 0:o.maxAllowedAdsForTime)!=null?p:8,i=(T=o==null?void 0:o.banForTimeThreshold)!=null?T:6e4,a=(w=o==null?void 0:o.bannedReleaseTime)!=null?w:6e4,l=(v=o==null?void 0:o.maxAllowedAdsForSession)!=null?v:200,d=(f=o==null?void 0:o.banForSessionThreshold)!=null?f:6e5,c=(k=o==null?void 0:o.initialThreshold)!=null?k:2e3,m=(_=o==null?void 0:o.highFreqThreshold)!=null?_:2e3;this.checkShouldBanInitial=ds(c),this.checkShouldBanHighFreq=us(m),this.checkShouldBanForTime=ls(s,i,a),this.checkShouldBanForSession=cs(l,d)}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}})}},cs=(e,t)=>{let r=!1,n=[];return s=>{if(r)return"BANNED_FOR_SESSION";let i=Date.now();if(n=n.concat({timestamp:i,type:s}),n.length!==1&&(n.length>e&&(n=n.slice(-e)),n.length===e&&i-n[0].timestamp<=t))return r=!0,"BANNED_FOR_SESSION"}},ls=(e,t,r)=>{let n=null,o=c=>{n&&(window.clearTimeout(n),n=null),n=window.setTimeout(()=>{l.value=!1,n=null},c)},s="jolibox-sdk-ads-callbreak-timestamps",i="jolibox-sdk-ads-ban-for-time",a={_records:[],init(){var c;try{let m=JSON.parse((c=window.localStorage.getItem(s))!=null?c:"[]");Array.isArray(m)?this._records=m:this._records=[]}catch(m){this._records=[]}},get values(){return this._records},set values(c){try{window.localStorage.setItem(s,JSON.stringify(c))}catch(m){}this._records=c}},l={_record:!1,init(){var c;try{let m=JSON.parse((c=window.localStorage.getItem(i))!=null?c:"false");typeof m=="boolean"&&(this._record=m)}catch(m){this._record=!1}if(this._record){let m=a.values[a.values.length-1],p=m?Date.now()-m.timestamp:r;p<=r&&p>0?o(p):this._record=!1}},get value(){return this._record},set value(c){try{window.localStorage.setItem(i,JSON.stringify(c))}catch(m){}this._record=c}};return a.init(),l.init(),c=>{if(l.value)return"WAITING_BANNED_RELEASE";let m=Date.now();if(a.values=a.values.concat({timestamp:m,type:c}),a.values.length!==1&&(a.values.length>e&&(a.values=a.values.slice(-e)),a.values.length===e&&m-a.values[0].timestamp<=t))return l.value=!0,o(r),"BANNED_FOR_TIME"}},ds=e=>{let t=Date.now();return()=>{if(Date.now()-t<=e)return"BLOCK_INITIAL"}},us=(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 Ve,Pn=g(()=>{"use strict";q();Ve=class{constructor(t){this.httpClient=t;this.configs=null;this.firstRun=!0;this.init()}init(){return b(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=E.channel)!=null?r:"",s=this.configs[o],i=(n=s==null?void 0:s.interstitialRate)!=null?n:1;t=Math.random()<i}return this.firstRun=!1,t}}});var ge,$e,zt=g(()=>{"use strict";xn();Cn();q();Pn();S();ge=new z,$e=class{constructor(t,r,n){this.track=t;this.httpClient=r;this.checkNetwork=n;this.configured=!1;this.config={};this.getGameId=()=>E.mpId;this.getTestAdsMode=()=>E.testAdsMode;this.asyncLoad=()=>b(this,null,function*(){var i,a,l,d,c;let t="ca-pub-7171363994453626",r,n,o=window.encodeURIComponent(window.btoa((i=this.getGameId())!=null?i:"")),s=(a=this.getTestAdsMode())!=null?a:!1;try{let m=yield this.httpClient.get("/public/ads",{query:{objectId:o,testAdsMode:`${s}`}});t=(l=m.data)==null?void 0:l.clientId,r=(d=m.data)==null?void 0:d.channelId,n=(c=m.data)==null?void 0:c.unitId}catch(m){console.error("Failed to fetch client info",m)}this.clientId=t,this.channelId=r,this.unitId=n});this.asyncInit=t=>b(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 s=document.createElement("script");s.id=r,s.async=!0,s.crossOrigin="anonymous",s.src=`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${this.clientId}`,n&&s.setAttribute("data-adbreak-test","on"),this.channelId&&s.setAttribute("data-ad-channel",this.channelId),document.head.appendChild(s),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,o=s=>{ge.emit("isAdShowing",!1),n&&n(s)};return x(y({},t),{adBreakDone:o})}else{let n=t.beforeAd,o=t.afterAd,s=()=>{var a;ge.emit("isAdShowing",!0),this.track("CallBeforeAd",{type:t.type,name:(a=t.name)!=null?a:""}),n&&n()},i=()=>{var a;ge.emit("isAdShowing",!1),this.track("CallAfterAd",{type:t.type,name:(a=t.name)!=null?a:""}),o&&o()};return x(y({},t),{beforeAd:s,afterAd:i})}};this.adConfig=t=>{let o=t,{onReady:r}=o,n=ae(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 d,c,m,p,T,w;if(!this.getGameId()){console.warn("Game ID is not set, skip calling adBreak");return}if(t.type!=="reward"&&!this.channelPolicy.shouldBypassCallingInterstitial()){(d=t.adBreakDone)==null||d.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":(c=t.adBreakDone)==null||c.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":(m=t.adBreakDone)==null||m.call(t,{breakType:t.type,breakFormat:t.type==="reward"?"reward":"interstitial",breakStatus:"frequencyCapped"}),this.antiCheating.report(r);return;case"HOLDING_HIGH_FREQ":(T=t.adBreakDone)==null||T.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,s=t.adBreakDone,i=v=>{var f;this.adsActionDetection.adBreakIsShowing=!1,this.track("CallAdBreakDone",{breakType:v.breakType,breakName:(f=v.breakName)!=null?f:"",breakFormat:v.breakFormat,breakStatus:v.breakStatus}),s&&s(v)};if(t.adBreakDone=i,t.type==="reward"){let v=t.beforeReward,f=_=>()=>{this.track("CallShowAdFn",null),_()},k=_=>{v&&v(f(_))};t.beforeReward=k}let a;switch(o){case"preroll":a={type:o};break;case"start":case"pause":case"next":case"browse":case"reward":a={type:o,name:(w=t.name)!=null?w:""};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=>b(this,null,function*(){var p,T,w,v;if(this.track("CallAdUnit",{adFormat:(T=(p=t.adFormat)==null?void 0:p.toString())!=null?T:null,fullWidthResponsive:(w=t.fullWidthResponsive)!=null?w: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:s,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 l=n;if(l||(l=this.unitId),!l)throw new Error("slot is required");let d=typeof o=="object"&&Array.isArray(o)?o.join(", "):o,c=document.createElement("ins");if(c.className="adsbygoogle",c.id="jolibox-ads",c.style.display="block",c.setAttribute("data-ad-client",this.clientId),c.setAttribute("data-ad-slot",l),d&&c.setAttribute("data-ad-format",d),s&&c.setAttribute("data-full-width-responsive",s),i&&c.setAttribute("style",i),(v=this.getTestAdsMode())!=null?v:!1){let f=document.createElement("div");f.style.position="absolute",f.style.top="0",f.style.left="0",f.style.width="100%",f.style.height="100%",f.style.display="flex",f.style.justifyContent="center",f.style.alignItems="center",f.style.backgroundColor="rgba(0, 0, 0, 0.5)",f.style.color="white",f.innerHTML="Test Ad",c.style.position="relative",a.appendChild(c),c.appendChild(f)}else a.appendChild(c),new MutationObserver(k=>{k.forEach(_=>{if(_.type==="attributes"&&_.attributeName==="data-ad-status"){let h=c.getAttribute("data-ad-status");this.track("AdSenseUnitStatusChanged",{status:h!=null?h:"null"})}})}).observe(c,{attributes:!0,attributeFilter:["data-ad-status"]}),this.push({})});this.antiCheating=new Je(t,r,n),this.adsActionDetection=new He(this.track),this.channelPolicy=new Ve(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});var Nn={};lr(Nn,{config:()=>hs});function ms(){Z.on("onDocumentReady",()=>{var e;(e=se)==null||e.onDocumentReady(window.location.href),J("onDocumentReady",{start_timestamp:Ge,timestamp:Date.now()})})}function ps(e){E.mpType==="game"&&B.start(e)}function fs(){W("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&E.onEnvConfigChanged({hostUserInfo:e}),Z.emit("LifecycleEvent.onReady",y({},E.hostUserInfo?E.hostUserInfo:{isLogin:!1})),J("joliboxServiceReady",{start_timestamp:Ge,timestamp:Date.now()}),ps(t)}),W("onBeforeExit",({uuid:e})=>{var t;(t=se)==null||t.doExit(e)})}function hs(){Ge=Date.now(),fs(),ms(),Ke=Rn()}var Ke,qe,Ge,On=g(()=>{"use strict";V();Fe();q();S();ie();An();zt();K.onReady(()=>{});K.doExit(()=>(J("onBeforeExit",{timestamp:Date.now()}),Ke==null||Ke(),B.close(Date.now()-Ge),!!qe));qe=!1;ge.on("isAdShowing",e=>{qe=e,gr(qe)&&C("updateContainerConfigSync",{displayCapsuleButton:!qe,webviewId:E.webviewId})})});function Dn(e){let t=_t.config[e];return t||(t={},_t.config[e]=t),(r,n)=>{if(t[r]){j.warn(`[can i use] ${r} already registered`);return}t[r]=y({},n)}}var Fn=g(()=>{"use strict";S()});function Wt(e){Un=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 Un,P,We,Ye,Qe,Xe,ye,Ze,et,tt,rt,nt,ot,st,it,at,ct,lt,dt,Xt=g(()=>{"use strict";Un=!1;P=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(Un)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 P{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 P{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Qe=class extends P{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 P{validate(t){return this._optional&&t===void 0?!0:typeof t!="symbol"?this.fail({expect:"symbol",actual:t}):!0}},ye=class extends P{validate(t){return!0}},Ze=class extends P{validate(t){return t!==void 0?this.fail({expect:"undefined",actual:t}):!0}},et=class extends P{validate(t){return this._optional&&t===void 0?!0:t!==null?this.fail({expect:"null",actual:t}):!0}},tt=class extends P{validate(t){return this._optional&&t===void 0?!0:typeof t!="function"?this.fail({expect:"function",actual:t}):!0}},rt=class extends P{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 P{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 o=!0;if(r.forEach((s,i)=>{if(n.path=`${this.path}[${i}]`,n.errors=this.errors,s===void 0&&n.hasDefault){r[i]=n.defaultValue;return}n.validate(s)||(n.hasFallback?r[i]=n.fallbackValue:o=!1)}),this._uniqueItems){let s=new Map;for(let i in r)s.has(r[i])?o=this.fail(`${this.path} should NOT have duplicate items (${this.path}[${s.get(r[i])}] and ${this.path}[${i}] are identical)`):s.set(r[i],i)}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}},ot=class extends P{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 o=r,s=this._value;s.errors=this.errors;let i=!0;for(let a in o){let l=o[a];if(/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(a)?s.path=`${this.path}.${a}`:s.path=`${this.path}["${a}"]`,!(l===void 0&&s._optional)){if(l===void 0&&s.hasDefault){o[a]=s.defaultValue;continue}s.validate(l)||(s.hasFallback?o[a]=s.fallbackValue:i=!1)}}return i}},st=class extends P{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,o=!0;for(let s in this._object){let i=n[s],a=this._object[s];if(a.errors=this.errors,/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(s)?a.path=`${this.path}.${s}`:a.path=`${this.path}["${s}"]`,!(a._optional&&i===void 0)){if(i===void 0&&a.hasDefault){n[s]=a.defaultValue;continue}a.validate(i)||(a.hasFallback?n[s]=a.fallbackValue:o=!1)}}return o}},it=class extends P{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 P{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 s=0;s<o;s++){let i=this._items[s];if(i.errors=[],i.path=this.path,!i.validate(t))r.push(i.errors.join("; "));else if(!n){n=!0;break}}if(!n){let s=r.join(`
20
- or `);this.errors.push(s)}return n}},ct=class extends P{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}},lt=class extends P{validate(t){return t===void 0&&this._optional||t instanceof ArrayBuffer?!0:this.fail({expect:"arraybuffer",actual:t})}},dt=class extends P{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 u,er=g(()=>{"use strict";Xt();Xt();u={object(e){return new st(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 ot(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 ye},any(){return new ye},as(){return new ye},arraybuffer(){return new lt},enum(...e){return new rt(...e)},typedarray(e){return new dt(e)}}});var ut,Mn,Ln=g(()=>{"use strict";S();$();er();oe();ut=1,Mn=e=>{function t(n,o){return(...s)=>{var m,p,T,w;let i=Date.now(),a={method:n,trace_id:ut};ut+=1;let l="SUCCESS",d=`${n}:ok`,c=0;try{if(o.paramsSchema)try{Zt(o.paramsSchema,s,"params")}catch(_){throw Ct(`${n}:fail ${_.message}`)}let v=o.implement(...s),f=v,k=`${n}:ok`;if(v&&"code"in v){let{code:_,data:h,message:A}=v;l=_,f=h,k=A}return{code:l,message:k,data:f}}catch(v){let f=v;c=(p=(m=f.code)!=null?m:f.errNo)!=null?p:2e3,l="FAILURE";let k=(w=(T=f.message)!=null?T:f.errMsg)!=null?w:`${v}`;return d=`${n}:${l} ${k.replace(/^\S+:(fail|cancel)\s?/,"")}`,F(new Ie(d,c)),{code:l,message:d}}finally{let v=Date.now()-i;e("apiInvoked",x(y({},a),{duration:v,status:l}))}}}function r(n,o){return(...s)=>b(this,null,function*(){var p,T,w,v;let i=hr(s)?s:[s],a=Date.now(),l={method:n,trace_id:ut};ut+=1;let d=`${n}:ok`,c="SUCCESS",m={code:c,message:d};try{if(o.paramsSchema)try{Zt(o.paramsSchema,i,"params")}catch(_){throw Ct(_.message)}let k=yield o.implement(...i);if(k&&"code"in k){let{code:_,data:h,message:A}=k;c=_,d=A,k=h}return Object.assign(m,{code:c,message:d,data:k}),m}catch(f){let k=f,_=(T=(p=k.code)!=null?p:k.errNo)!=null?T:2e3;c="FAILURE";let h=(v=(w=k.message)!=null?w:k.errMsg)!=null?v:`${f}`,A=`${n}:${c} ${h.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(m,{code:c,message:A}),F(new Ie(A,_)),m}finally{let f=Date.now()-a;e("apiInvoked",x(y({},l),{duration:f,status:c}))}})}return{createAPI:r,createSyncAPI:t}}});var N,D,I,te=g(()=>{"use strict";Fn();ie();Ln();er();({createAPI:N,createSyncAPI:D}=Mn(J)),I=Dn("native")});var Bn,ys,vs,bs,ks,jn=g(()=>{"use strict";S();te();V();Bn=O(),ys="env",vs="getSystemInfoSync",bs=D(vs,{implement:()=>{var r;let e=C("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}}}),ks=D(ys,{implement:()=>{var t;let e=C("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});Bn.registerCommand("API.getSystemInfoSync",bs);Bn.registerCommand("API.env",ks);I("env",{version:"1.0.0"});I("getSystemInfoSync",{version:"1.0.0"})});var Hn=cr(tr=>{"use strict";S();te();$();V();ie();var Ts="exitGame",Es="onReady",Ss="onJoliboxShow",Is="onJoliboxHide",mt=O(),pt=Oe(F),ws=N(Ts,{paramsSchema:u.tuple(u.function()),implement:e=>b(tr,null,function*(){pt(e).call(tr),yield H("exitAppAsync")})}),_s=D(Ss,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);W("onJoliboxEnterForeground",()=>{t.call(this),we.emit("visible",!0)})}}),Rs=D(Is,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);W("onJoliboxEnterBackground",()=>{t.call(this),we.emit("visible",!1)})}}),As=D(Es,{paramsSchema:u.tuple(u.function()),implement(e){let t=pt(e);Z.on("LifecycleEvent.onReady",r=>{t(r)})}});mt.registerCommand("LifecycleSDK.exit",ws);mt.registerCommand("LifecycleSDK.onReady",As);mt.registerCommand("LifecycleSDK.onJoliboxShow",_s);mt.registerCommand("LifecycleSDK.onJoliboxHide",Rs);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 Jn(e){let t={};if(!M(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 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 $n(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function Kn(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!M(r))return e;let[n,o=""]=e.split("?"),s=JSON.stringify(y(y({},JSON.parse(o)),r));return`${n}?${s}`}var qn=g(()=>{"use strict";S()});var xs,Cs,rr,nr,Gn,Ps,Ns,Os,zn=g(()=>{"use strict";oe();qt();te();qn();S();$();xs=15,Cs=Le("createRequestTaskSync","operateRequestTaskSync",{type:"public"}),rr=0,nr=[],Gn=Oe(F),Ps=(e,t)=>{let r=e.filter(t),n=e.filter(o=>!t(o));return e.length=0,e.push(...n),r},Ns=e=>{let t=new ne,r=()=>{};return N("request",{paramsSchema:u.tuple(u.object({url:u.string(),method:u.string(),header:u.object(),data:u.object().optional(),query:u.object().optional(),dataType:u.string().default("json"),responseType:u.string().default("text"),enableCache:u.boolean().default(!1),appendHostCookie:u.boolean().default(!0),timeout:u.number().default(3e4),success:u.function(),fail:u.function()})),implement(o){let s=()=>b(this,null,function*(){var a,l;let i=Gn(o.fail);try{if(rr+=1,t.state!=="pending")return;let{data:d,dataType:c,responseType:m,enableCache:p,appendHostCookie:T}=o,w=Jn(o.header),v=Vn(o.method),f=$n(o.timeout),k=Kn(o.url,v,d),_=Gn(o.success),h=Object.assign({},o,{method:v,header:w,data:v==="GET"||v==="HEAD"?void 0:d,enableCache:p,query:(a=o.query)!=null?a:{},dataType:c,responseType:m,appendHostCookie:T});f&&(h.timeout=f);let A=Cs(k,h);{let{response:fe}=yield A,{code:U,data:be,message:re}=fe;t.resolve({code:U!=null?U:"SUCCESS",data:be,message:re!=null?re:"request:ok"}),_({code:"SUCCESS",message:"request:ok",data:be})}}catch(d){t.reject(d),i({code:"FAILURE",message:"httpRequst: failed"})}finally{rr-=1,(l=nr.shift())==null||l()}});return rr>=xs?(r=()=>{Ps(nr,i=>i===s)},nr.push(s)):s(),t.promise}})(e),{abort(){t.reject(ue({code:-1,msg:"request:fail abort"})),r()}}},Os=O();Os.registerCommand("HttpSDK.request",Ns);I("request",{version:"1.0.0"})});function Bs(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return Ls.includes(t)?t:""}function js(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 Hs(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,Ds,Fs,Us,Ms,ud,md,Ls,Wn=g(()=>{"use strict";te();V();S();Be();q();ft=O(),Ds=N("getLocalStorage",{paramsSchema:u.tuple(u.string()),implement(e){return b(this,null,function*(){let{response:t}=yield Y(`/api/games/user-storage/${E.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:s,dataType:i}}=yield H("getLocalStorageAsync",{key:e}),a=js(s,i);return{code:r,message:`${n}. fallback to native`,data:a}}catch(s){return{code:"INTERNAL_ERROR",message:"[Jolibox SDK] get local storage failed",data:null}}})}});ft.registerCommand("StorageSDK.getItem",Ds);I("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Fs=N("setStorage",{paramsSchema:u.tuple(u.string(),u.or(u.string(),u.boolean(),u.number())),implement(e,t){return b(this,null,function*(){let r=E.mpId,n=typeof t=="string"?t:String(t),{response:o}=yield Y(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:s,message:i}}=o,a=Bs(t),l=Hs(t,a);return yield H("setLocalStorageAsync",{key:e,data:l,dataType:a}),s=="SUCCESS"?{code:s,message:i}:{code:s,message:`${i}. fallback to native`}})}});ft.registerCommand("StorageSDK.setItem",Fs);I("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});Us=N("removeStorage",{paramsSchema:u.tuple(u.string()),implement(e){return b(this,null,function*(){let t=E.mpId,{response:r}=yield Y(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:o}}=r;return yield H("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:o}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});ft.registerCommand("StorageSDK.removeItem",Us);I("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});Ms=N("clearStorage",{implement(){return b(this,null,function*(){let e=E.mpId,{response:t}=yield Y(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});H("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",Ms);I("storage.clear",{version:"1.0.0"});ud=N("getStorageInfo",{implement(){return b(this,null,function*(){let{data:e}=yield H("getStorageInfoAsync");return e})}});I("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});md=D("getStorageInfoSync",{implement(){return C("getStorageInfoSync")}}),Ls=["string","number","boolean","object",""]});var Js,Vs,$s,or,Yn=g(()=>{"use strict";S();V();te();Js=D("showKeyboard",{paramsSchema:u.tuple(u.object({defaultValue:u.string().optional().default(""),multiple:u.boolean().optional().default(!1),maxLength:u.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)),C("showKeyboardSync",x(y({},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"}});Vs=D("updateKeyboard",{paramsSchema:u.tuple(u.object({value:u.string()})),implement(e){C("updateKeyboardSync",e)}});I("keyboard.updateKeyboard",{version:"1.0.0",properties:{params:{value:"1.0.0"}}});$s=D("hideKeyboard",{implement(){C("hideKeyboardSync")}});I("keyboard.hideKeyboard",{version:"1.0.0"});or=O();or.registerCommand("KeyboardSDK.showKeyboard",Js);or.registerCommand("KeyboardSDK.updateKeyboard",Vs);or.registerCommand("KeyboardSDK.hideKeyboard",$s)});var Qn=cr(pe=>{"use strict";S();te();ie();var ve=O(),Ks=N("levelFinished",{paramsSchema:u.tuple(u.string(),u.object({result:u.boolean(),duration:u.number()})),implement:(e,t)=>b(pe,null,function*(){let{result:r,duration:n}=t,o=[];o.push(B.tracker("LevelFinished",{levelId:e,result:r,duration:n})),o.push(B.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(o)})}),qs=N("taskFinished",{paramsSchema:u.tuple(u.string(),u.object({duration:u.number()})),implement:(e,t)=>b(pe,null,function*(){let{duration:r}=t;return yield B.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),Gs=N("levelUpgrade",{paramsSchema:u.tuple(u.string(),u.string()),implement:(e,t)=>b(pe,null,function*(){let r=[];r.push(B.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),zs=N("onHistoryUserLevel",{paramsSchema:u.tuple(u.number()),implement:e=>b(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),Ws=N("onHistoryUserScore",{paramsSchema:u.tuple(u.number()),implement:e=>b(pe,null,function*(){return yield B.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),Ys=N("taskEvent",{paramsSchema:u.tuple(u.string(),u.object({tools:u.array(u.object({id:u.string(),name:u.string(),count:u.number(),description:u.string().optional(),price:u.object({amount:u.number(),unit:u.string()}).optional()})).optional(),awards:u.array(u.object({id:u.string(),name:u.string()})).optional()})),implement:(e,t)=>b(pe,null,function*(){var n,o;let r=[];r.push(B.reportToNative({event:"TaskEvent",params:y({taskId:e},t)})),(o=(n=t.tools)==null?void 0:n.length)!=null&&o&&(r.push(B.reporter({event:"USE_GAME_ITEM"})),r.push(B.reportToNative({event:"UseGameItem",params:y({taskId:e},t)}))),yield Promise.all(r)})});ve.registerCommand("TaskTrackerSDK.levelFinished",Ks);ve.registerCommand("TaskTrackerSDK.taskFinished",qs);ve.registerCommand("TaskTrackerSDK.levelUpgrade",Gs);ve.registerCommand("TaskTrackerSDK.historyUserLevel",zs);ve.registerCommand("TaskTrackerSDK.historyUserScore",Ws);ve.registerCommand("TaskTrackerSDK.taskEvent",Ys);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 Qs,Xs,Xn,Zn=g(()=>{"use strict";q();V();te();S();oe();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"}});Qs=N("login",{implement(){return b(this,null,function*(){var i;let{data:{isLogin:e}}=yield H("checkLoginAsync");if(e)return{isLogin:!0,token:(i=E.hostUserInfo)==null?void 0:i.token};W("onLoginStateChange",({isLogin:a,token:l,uuid:d})=>{d==r&&o({isLogin:a,token:l})});let t=C("loginSync"),{data:{uuid:r}}=t;if(!r)throw ue({code:-1,msg:"login failed"});let{promise:n,resolve:o}=new ne,s=yield n;return E.onEnvConfigChanged({hostUserInfo:s}),Z.emit("onLoginComplete",s),s})}}),Xs=N("checkSession",{implement(){return b(this,null,function*(){let{data:{isLogin:e}}=yield H("checkLoginAsync");return{isLogin:e}})}}),Xn=O();Xn.registerCommand("API.login",Qs);Xn.registerCommand("API.checkSession",Xs)});var ht,Zs,gt,ei,ti,ri,ni,eo=g(()=>{"use strict";S();te();zt();ie();Be();V();ht=O(),Zs=()=>{let{data:e}=C("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},gt=new $e(J,{get:(e,t)=>Y(e,y({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data),post:(e,t,r)=>Y(e,y({method:"POST",responseType:"json",appendHostCookie:!0},r)).then(n=>n.response.data)},Zs),ei=D("adInit",{implement:e=>{gt.init(e)}}),ti=D("adConfig",{implement:e=>{gt.adConfig(e)}}),ri=D("adBreak",{implement:e=>{gt.adBreak(e)}}),ni=D("adUnit",{implement:e=>{gt.adUnit(e)}});ht.registerCommand("AdsSDK.init",ei);ht.registerCommand("AdsSDK.adConfig",ti);ht.registerCommand("AdsSDK.adBreak",ri);ht.registerCommand("AdsSDK.adUnit",ni);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 oi={};var Kd,Wd,to=g(()=>{"use strict";jn();Kd=dr(Hn());zn();Wn();Yn();Wd=dr(Qn());Zn();eo()});var ro=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[ro])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[ro]=!0;b(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(On(),Nn)),Promise.resolve().then(()=>(to(),oi)),Promise.resolve().then(()=>(ie(),_n))]);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 Co=k(()=>{"use strict"});var mt,Po=k(()=>{"use strict";mt=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 ft,na,oa,ia,sa,No=k(()=>{"use strict";ft=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=ia(d),this.checkShouldBanHighFreq=sa(c),this.checkShouldBanForTime=oa(i,s,a),this.checkShouldBanForSession=na(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}})}},na=(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"}},oa=(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"}},ia=e=>{let t=Date.now();return()=>{if(Date.now()-t<=e)return"BLOCK_INITIAL"}},sa=(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 ht,Oo=k(()=>{"use strict";V();ht=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,gt,Ar=k(()=>{"use strict";Po();No();V();Oo();A();Oe=new te,gt=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 P(_({},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 P(_({},t),{beforeAd:i,afterAd:s})}};this.adConfig=t=>{let o=t,{onReady:r}=o,n=Q(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 ft(t,r,n),this.adsActionDetection=new mt(this.track),this.channelPolicy=new ht(r)}init(t){this.track("CallAdsInit",null),typeof window!="undefined"&&(this.config=t!=null?t:{},window.adsbygoogle=window.adsbygoogle||[],this.asyncInit(t))}}});function pe(e,t){for(var r in t)e[r]=t[r];return e}function Hr(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function xe(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?St.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 yt(e,s,n,o,null)}function yt(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:++ei,__i:-1,__u:0};return o==null&&x.vnode!=null&&x.vnode(i),i}function Ie(e){return e.children}function me(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 ii(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 ii(e)}}function Fo(e){(!e.__d&&(e.__d=!0)&&Ee.push(e)&&!kt.__r++||Do!==x.debounceRendering)&&((Do=x.debounceRendering)||ti)(kt)}function kt(){for(var e,t,r,n,o,i,s,a=1;Ee.length;)Ee.length>a&&Ee.sort(ri),e=Ee.shift(),a=Ee.length,e.__d&&(r=void 0,o=(n=(t=e).__v).__e,i=[],s=[],t.__P&&((r=pe({},n)).__v=n.__v+1,x.vnode&&x.vnode(r),$r(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,ci(i,r,s),r.__e!=o&&ii(r)));kt.__r=0}function si(e,t,r,n,o,i,s,a,l,u,d){var c,p,m,y,v,h,g=n&&n.__k||oi,b=t.length;for(l=ca(r,t,g,l,b),c=0;c<b;c++)(m=r.__k[c])!=null&&(p=m.__i===-1?qe:g[m.__i]||qe,m.__i=c,h=$r(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=ai(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 ca(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?yt(null,s,null,null,null):ze(s)?yt(Ie,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?yt(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=la(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)),ui(a,a));return n}function ai(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=ai(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 wt(e,t){return t=t||[],e==null||typeof e=="boolean"||(ze(e)?e.some(function(r){wt(r,t)}):t.push(e)),t}function la(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 Uo(e,t,r){t[0]=="-"?e.setProperty(t,r!=null?r:""):e[t]=r==null?"":typeof r!="number"||aa.test(t)?r:r+"px"}function _t(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||Uo(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||Uo(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(ni,"$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=jr,e.addEventListener(t,i?Dr:Or,i)):e.removeEventListener(t,i?Dr:Or,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 Mo(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.u==null)t.u=jr++;else if(t.u<r.t)return;return r(x.event?x.event(t):t)}}}function $r(e,t,r,n,o,i,s,a,l,u){var d,c,p,m,y,v,h,g,b,E,N,R,S,H,z,le,Ae,ee=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 ee=="function")try{if(g=t.props,b="prototype"in ee&&ee.prototype.render,E=(d=ee.contextType)&&n[d.__c],N=d?E?E.props.value:d.__:n,r.__c?h=(c=t.__c=r.__c).__=c.__E:(b?t.__c=c=new ee(g,N):(t.__c=c=new me(g,N),c.constructor=ee,c.render=da),E&&E.sub(c),c.props=g,c.state||(c.state={}),c.context=N,c.__n=n,p=c.__d=!0,c.__h=[],c._sb=[]),b&&c.__s==null&&(c.__s=c.state),b&&ee.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=pe({},c.__s)),pe(c.__s,ee.getDerivedStateFromProps(g,c.__s))),m=c.props,y=c.state,c.__v=t,p)b&&ee.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),b&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(b&&ee.getDerivedStateFromProps==null&&g!==m&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(g,N),!c.__e&&(c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(g,c.__s,N)===!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,N),b&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(m,y,v)})}if(c.context=N,c.props=g,c.__P=e,c.__e=!1,S=x.__r,H=0,b){for(c.state=c.__s,c.__d=!1,S&&S(t),d=c.render(c.props,c.state,c.context),z=0;z<c._sb.length;z++)c.__h.push(c._sb[z]);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&&++H<25);c.state=c.__s,c.getChildContext!=null&&(n=pe(pe({},n),c.getChildContext())),b&&!p&&c.getSnapshotBeforeUpdate!=null&&(v=c.getSnapshotBeforeUpdate(m,y)),le=d,d!=null&&d.type===Ie&&d.key==null&&(le=li(d.props.children)),a=si(e,ze(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(Ae=i.length;Ae--;)Hr(i[Ae]);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=ua(r.__e,t,r,n,o,i,s,l,u);return(d=x.diffed)&&d(t),128&t.__u?void 0:a}function ci(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 li(e){return typeof e!="object"||e==null?e:ze(e)?e.map(li):pe({},e)}function ua(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&&St.call(e.childNodes),h=r.props||qe,!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;_t(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||_t(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=""),si(t.type==="template"?e.content:e,ze(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--;)Hr(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])&&_t(e,u,y,h[u],o),u="checked",v!==void 0&&v!==e[u]&&_t(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 ui(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]&&ui(n[o],t,r||typeof e.type!="function");r||Hr(e.__e),e.__c=e.__=e.__e=void 0}function da(e,t,r){return this.constructor(e,r)}function Fr(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=[],$r(t,e=t.__k=xe(Ie,null,[e]),o||qe,qe,t.namespaceURI,o?null:t.firstChild?St.call(t.childNodes):null,i,o?o.__e:t.firstChild,n,s),ci(i,e,s)}function Vr(e,t){L.__h&&L.__h(U,e,We||t),We=0;var r=U.__H||(U.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function Ur(e){return We=1,pa(fi,e)}function pa(e,t,r){var n=Vr(Ge++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):fi(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 Ke(e,t){var r=Vr(Ge++,3);!L.__s&&mi(r.__H,t)&&(r.__=e,r.u=t,U.__H.__h.push(r))}function Tt(e){return We=5,pi(function(){return{current:e}},[])}function pi(e,t){var r=Vr(Ge++,7);return mi(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function oe(e,t){return We=8,pi(function(){return e},t)}function ma(){for(var e;e=di.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(bt),e.__H.__h.forEach(Mr),e.__H.__h=[]}catch(t){e.__H.__h=[],L.__e(t,e.__v)}}function fa(e){var t,r=function(){clearTimeout(n),Ko&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);Ko&&(t=requestAnimationFrame(r))}function bt(e){var t=U,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),U=t}function Mr(e){var t=U;e.__c=e.__(),U=t}function mi(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function fi(e,t){return typeof t=="function"?t(e):t}function hi(e,t){for(var r in t)e[r]=t[r];return e}function Lr(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 qo(e,t){this.props=e,this.context=t}function ha(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:Lr(this.props,o)}function n(o){return this.shouldComponentUpdate=r,xe(e,o)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}function _a(e){function t(r){var n=hi({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=ga,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}function gi(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=hi({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return gi(n,t,r)})),e}function _i(e,t,r){return e&&r&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return _i(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 Pr(){this.__u=0,this.o=null,this.__b=null}function vi(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function vt(){this.i=null,this.l=null}function Ea(){}function xa(){return this.cancelBubble}function Ia(){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:--Aa,__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 Ma(a){var l=a,{elementTag:e="Image",src:t="",children:r,handleExposure:n,className:o,imgStyle:i}=l,s=Q(l,["elementTag","src","children","handleExposure","className","imgStyle"]);let u=Ua(()=>{t&&n()});return e==="Image"?C("div",{className:o,style:{borderRadius:"8px"},children:xe("img",P(_({},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",P(_({},s),{ref:u,className:o,children:r}))}function La(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?xe(o.type,P(_({},o.props),{style:P(_({},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?xe(e.type,P(_({},e.props),{style:P(_({},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 St,x,ei,Ee,Do,ti,ri,ni,jr,Or,Dr,qe,oi,aa,ze,Ge,U,Cr,Lo,We,di,L,Bo,jo,Ho,$o,Jo,Vo,Ko,Go,ga,va,Wo,zo,ya,ba,ka,wa,Ta,Sa,Qo,Ra,Yo,Xo,Zo,Aa,Nr,Ca,Pa,Na,Oa,Da,Fa,Ua,yi,bi,Ba,ja,Ha,$a,Br,Ja,ki,wi=k(()=>{"use strict";qe={},oi=[],aa=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ze=Array.isArray;St=oi.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}},ei=0,me.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=pe({},this.state),typeof e=="function"&&(e=e(pe({},r),this.props)),e&&pe(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Fo(this))},me.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Fo(this))},me.prototype.render=Ie,Ee=[],ti=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ri=function(e,t){return e.__v.__b-t.__v.__b},kt.__r=0,ni=/(PointerCapture)$|Capture$/i,jr=0,Or=Mo(!1),Dr=Mo(!0);We=0,di=[],L=x,Bo=L.__b,jo=L.__r,Ho=L.diffed,$o=L.__c,Jo=L.unmount,Vo=L.__;L.__b=function(e){U=null,Bo&&Bo(e)},L.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Vo&&Vo(e,t)},L.__r=function(e){jo&&jo(e),Ge=0;var t=(U=e.__c).__H;t&&(Cr===U?(t.__h=[],U.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.forEach(bt),t.__h.forEach(Mr),t.__h=[],Ge=0)),Cr=U},L.diffed=function(e){Ho&&Ho(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(di.push(t)!==1&&Lo===L.requestAnimationFrame||((Lo=L.requestAnimationFrame)||fa)(ma)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Cr=U=null},L.__c=function(e,t){t.some(function(r){try{r.__h.forEach(bt),r.__h=r.__h.filter(function(n){return!n.__||Mr(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],L.__e(n,r.__v)}}),$o&&$o(e,t)},L.unmount=function(e){Jo&&Jo(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{bt(n)}catch(o){t=o}}),r.__H=void 0,t&&L.__e(t,r.__v))};Ko=typeof requestAnimationFrame=="function";(qo.prototype=new me).isPureReactComponent=!0,qo.prototype.shouldComponentUpdate=function(e,t){return Lr(this.props,e)||Lr(this.state,t)};Go=x.__b;x.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Go&&Go(e)};ga=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;va=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)}va(e,t,r,n)};Wo=x.unmount;x.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Wo&&Wo(e)},(Pr.prototype=new me).__c=function(e,t){var r=t.__c,n=this;n.o==null&&(n.o=[]),n.o.push(r);var o=vi(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]=_i(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)},Pr.prototype.componentWillUnmount=function(){this.o=[]},Pr.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]=gi(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&xe(Ie,null,e.fallback);return o&&(o.__u&=-33),[xe(Ie,null,t.__a?null:e.children),o]};zo=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]}};(vt.prototype=new me).__a=function(e){var t=this,r=vi(t.__v),n=t.l.get(e);return n[0]++,function(o){var i=function(){t.props.revealOrder?(n.push(o),zo(t,e,n)):o()};r?r(i):i()}},vt.prototype.render=function(e){this.i=null,this.l=new Map;var t=wt(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},vt.prototype.componentDidUpdate=vt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,r){zo(e,r,t)})};ya=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,ba=/^(?: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]/,ka=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,wa=/[A-Z0-9]/g,Ta=typeof document<"u",Sa=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};me.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(me.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});Qo=x.event;x.event=function(e){return Qo&&(e=Qo(e)),e.persist=Ea,e.isPropagationStopped=xa,e.isDefaultPrevented=Ia,e.nativeEvent=e};Ra={enumerable:!1,configurable:!0,get:function(){return this.class}},Yo=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||Ta&&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"||Sa(r.type)?l==="onfocus"?s="onfocusin":l==="onblur"?s="onfocusout":ka.test(s)&&(s=l):l=s="oninput":i&&ba.test(s)?s=s.replace(wa,"-$&").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=wt(r.children).forEach(function(u){u.props.selected=o.value.indexOf(u.props.value)!=-1})),n=="select"&&o.defaultValue!=null&&(o.value=wt(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",Ra)):(r.className&&!r.class||r.class&&r.className)&&(o.class=o.className=r.className),t.props=o}(e),e.$$typeof=ya,Yo&&Yo(e)};Xo=x.__r;x.__r=function(e){Xo&&Xo(e),e.__c};Zo=x.diffed;x.diffed=function(e){Zo&&Zo(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)};Aa=0;Nr={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"}},Ca=`
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
+ `,Pa=({children:e,isOpen:t=!1,onClose:r,height:n="50%",className:o="",backdropColor:i},s)=>{let[a,l]=Ur(t),[u,d]=Ur(null),c=Tt(null),p=Tt(!1);Ke(()=>{let S=document.createElement("style");return S.innerHTML=Ca,document.head.appendChild(S),()=>{document.head.removeChild(S)}},[]),Ke(()=>{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(Ke(()=>{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=P(_({},Nr.drawer),{height:typeof n=="number"?`${n}px`:n,backgroundColor:i||"rgba(255, 255, 255, 1)"}),E=_({},Nr.drawerBackdrop),N=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:`${N} ${o}`,onAnimationEnd:m,onTouchMove:S=>S.stopPropagation(),children:C("div",{style:Nr.drawerContent,children:e})})})},Na=_a(Pa),Oa=({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:P(_({},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))})]})},Da=(()=>{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)})(),Fa=e=>{let t=Da(),r=null,n=!1,o=!1,i=()=>{o||(n=!1,e.onClose&&e.onClose(),a())},s=()=>window.innerWidth>window.innerHeight,a=()=>{Fr(C(Na,{ref:u=>{r=u},isOpen:n,onClose:i,height:s()?"90vh":"50vh",backdropColor:e.backdropColor,children:C(Oa,P(_({},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(()=>{Fr(null,t)},300)}}},Ua=(e,t={threshold:.6})=>{let r=Tt(null),n=Tt(!1),o=oe(i=>{let[s]=i;s.isIntersecting&&!n.current?(n.current=!0,e()):s.isIntersecting||(n.current=!1)},[e]);return Ke(()=>{if(r.current){let i=new IntersectionObserver(o,t);return i.observe(r.current),()=>{r.current&&i.unobserve(r.current)}}},[o,t]),r};yi=i=>{var s=i,{children:e,fluid:t=!1,className:r="",style:n={}}=s,o=Q(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",P(_({className:r,style:a},o),{children:e}))},bi=a=>{var l=a,{children:e,gutter:t=0,justify:r="start",align:n="top",className:o="",style:i={}}=l,s=Q(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?La(e,t):e;return C("div",P(_({className:o,style:c},s),{children:p}))};Ba=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=Q(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",P(_({className:l,style:m},d),{children:e}))},ja=({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(Ba,{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(Ma,{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)},Ha=i=>{var s=i,{list:e,routeMode:t,layerName:r,onGameClick:n}=s,o=Q(s,["list","routeMode","layerName","onGameClick"]);return C(yi,{className:"w-full max-w-[440px] mx-auto flex-grow overflow-y-auto",children:C(bi,{gutter:8,className:"flex-wrap",children:e==null?void 0:e.map(a=>C(ja,{game:a,routeMode:t,layerName:r,onGameClick:n},a.gameId))})})},$a=ha(Ha),Br=(e=>(e.Dismiss="DISMISS",e.Quit="QUIT",e))(Br||{}),Ja=e=>{let{games:t,title:r,buttons:n,onClose:o}=e,[i,s]=Ur(null),a=oe(d=>{o==null||o({type:d.type===Br.Quit?"quit":"dismiss"})},[o]),l=oe(d=>{o==null||o({type:"navigate",data:{game:d}})},[o]);if(!t.length)return C(Ie,{});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 Ke(()=>{if(i){let d=i.getElementById("recommend-panel-content");d&&Fr(C("div",{className:"recommend-panel",children:C("div",{className:"container",children:[C("p",{className:"title",children:r}),C("div",{className:"games-container",children:C($a,{list:t||[],routeMode:"REDIRECT",layerName:"RecommendedGuide",onGameClick:l})}),C("div",{className:"buttons-container",children:C(yi,{children:C(bi,{gutter:10,children:(n!=null?n:[]).map((c,p)=>C("div",{className:"button-wrapper",children:C("button",{className:`button ${c.type===Br.Quit?"quit-button":"action-button"}`,onClick:()=>a(c),children:c.text})},p))})})})]})}),d)}},[i,t,r,n,a,l]),C("div",{ref:u})},ki=e=>{let t=Fa({title:e.title,content:C(Ja,{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 Ti(){return T(this,null,function*(){if(Kr)return Kr;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 G(t);return Kr=r,r})}function Si(){return T(this,null,function*(){let e=new se;if(w.mpType!=="game")return e.resolve(!1),e.promise;let t=yield Ti();if(t.code!=="SUCCESS")return e.resolve(!1),e.promise;let{gameListInfo:r,title:n,buttons:o}=t.data,i=ki({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?Va(s.data.game):e.resolve(!0),i.hide();break;default:e.resolve(!0);break}}});return e.promise})}var Kr,Va,Ei=k(()=>{"use strict";V();q();A();wi();Ne();Kr=null;Ti();Va=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 xi={};an(xi,{config:()=>Ya});function Ka(){Oe.on("isAdShowing",e=>{xt=e,je(xt)&&O("updateContainerConfigSync",{displayCapsuleButton:!xt,webviewId:w.webviewId})})}function qa(){de.on("onDocumentReady",()=>{var e;(e=_e)==null||e.onDocumentReady(window.location.href),Z("onDocumentReady",{start_timestamp:Rt,timestamp:Date.now()})})}function Ga(e){w.mpType==="game"&&W.start(e)}function Wa(){ae("onJoliboxServiceReady",({runtimeInfo:e,loadDuration:t})=>{e&&w.onEnvConfigChanged({hostUserInfo:e}),de.emit("LifecycleEvent.onReady",_({},w.hostUserInfo?w.hostUserInfo:{isLogin:!1})),Z("joliboxServiceReady",{start_timestamp:Rt,timestamp:Date.now()}),Ga(t)}),ae("onBeforeExit",({uuid:e})=>{var t;(t=_e)==null||t.doExit(e)})}function za(){let e=()=>{Z("onBeforeExit",{timestamp:Date.now()}),Et==null||Et(),W.close(Date.now()-Rt)};ne.doExit(()=>T(this,null,function*(){return xt?!0:je(w.shouldInterupt)?(w.shouldInterupt||e(),w.shouldInterupt):It!=null&&It.canShowRecommended&&(yield Si())?!0:(e(),!1)}))}function Qa(){return T(this,null,function*(){let e=`${w.baseApiHost}/api/fe-configs/js-sdk/basic-meta`,{response:{data:t}}=yield G(e);t&&(It=t)})}function Ya(){Rt=Date.now(),Wa(),Ka(),za(),qa(),Qa(),Et=Ao()}var Et,Rt,xt,It,Ii=k(()=>{"use strict";q();ct();V();A();ve();Co();Ar();Ei();Ne();xt=!1,It=null;ne.onReady(()=>{})});function Ri(e){let t=lr.config[e];return t||(t={},lr.config[e]=t),(r,n)=>{if(t[r]){Y.warn(`[can i use] ${r} already registered`);return}t[r]=_({},n)}}var Ai=k(()=>{"use strict";A()});function qr(e){Ci=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 fe(e){return typeof e=="number"}function Gr(e){let t=Wr(e);switch(t){case"string":return`"${e}"`;case"number":case"boolean":case"null":case"undefined":return String(e);default:return`a(n) ${t}`}}function Wr(e){return typeof e=="function"?"function":Object.prototype.toString.call(e).slice(8).slice(0,-1).toLowerCase()}var Ci,B,Ct,Pt,Nt,Ot,Fe,Dt,Ft,Ut,Mt,Lt,Bt,jt,Ht,$t,Jt,Vt,Kt,zr=k(()=>{"use strict";Ci=!1;B=class{constructor(){this.errors=[];this.hasFallback=!1;this.hasDefault=!1;this._optional=!1}fail(t){if(Ci)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 ${Gr(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:fe(t)?fe(this._min)&&t<this._min?this.fail(`the value of ${this.path} should be greater than or equal to ${this._min}`):fe(this._max)&&t>this._max?this.fail(`the value of ${this.path} should be less than or equal to ${this._max}`):fe(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}},Pt=class extends B{validate(t){return this._optional&&t===void 0?!0:typeof t!="boolean"?this.fail({expect:"boolean",actual:t}):!0}},Nt=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(fe(this._maxLength)&&t.length>this._maxLength)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxLength}`);if(fe(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 ${Gr(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(fe(this._minItems)&&r.length<this._minItems)return this.fail(`the length of ${this.path} should be greater than or equal to ${this._minItems}`);if(fe(this._maxItems)&&r.length>this._maxItems)return this.fail(`the length of ${this.path} should be less than or equal to ${this._maxItems}`);if(fe(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(Wr(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(Wr(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:Gr(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 Qr(e,t,r="param"){if(e.errors=[],e.path=r,qr(!0),!e.validate(t)){let n=e.errors.join(`
127
+ `);throw e.errors.length=0,qr(!1),new TypeError(n)}}var f,Yr=k(()=>{"use strict";zr();zr();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 Pt},string(){return new Nt},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,Pi,Ni=k(()=>{"use strict";A();re();Yr();ge();qt=1,Pi=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{Qr(o.paramsSchema,i,"params")}catch(b){throw mr(`${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:N}=v;l=b,h=E,g=N}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?/,"")}`,$(new Je(u,d)),{code:l,message:u}}finally{let v=Date.now()-s;e("apiInvoked",P(_({},a),{duration:v,status:l}))}}}function r(n,o){return(...i)=>T(this,null,function*(){var p,m,y,v;let s=hn(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{Qr(o.paramsSchema,s,"params")}catch(b){throw mr(b.message)}let g=yield o.implement(...s);if(g&&"code"in g){let{code:b,data:E,message:N}=g;d=b,u=N,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}`,N=`${n}:${d} ${E.replace(/^\S+:(fail|cancel)\s?/,"")}`;return Object.assign(c,{code:d,message:N}),$(new Je(N,b)),c}finally{let h=Date.now()-a;e("apiInvoked",P(_({},l),{duration:h,status:d}))}})}return{createAPI:r,createSyncAPI:t}}});var j,D,I,ce=k(()=>{"use strict";Ai();ve();Ni();Yr();({createAPI:j,createSyncAPI:D}=Pi(Z)),I=Ri("native")});var Oi,Za,ec,tc,rc,Di=k(()=>{"use strict";A();ce();q();Oi=M(),Za="env",ec="getSystemInfoSync",tc=D(ec,{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}}}),rc=D(Za,{implement:()=>{var t;let e=O("envSync");return(t=e==null?void 0:e.data)!=null?t:void 0}});Oi.registerCommand("API.getSystemInfoSync",tc);Oi.registerCommand("API.env",rc);I("env",{version:"1.0.0"});I("getSystemInfoSync",{version:"1.0.0"})});var Fi=sn(Xr=>{"use strict";A();ce();re();q();ve();V();var nc="exitGame",oc="onReady",ic="onJoliboxShow",sc="onJoliboxHide",Gt=M(),Wt=nt($),ac=j(nc,{paramsSchema:f.tuple(f.function(),f.boolean().optional().default(!1)),implement:(e,t=!1)=>T(Xr,null,function*(){Wt(e).call(Xr),je(w.shouldInterupt)&&!w.shouldInterupt&&w.from&&Zn("onRetentionResult",{shouldStay:t},w.from,!0),yield X("exitAppAsync")})}),cc=D(ic,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);ae("onJoliboxEnterForeground",()=>{t.call(this),Ve.emit("visible",!0)})}}),lc=D(sc,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);ae("onJoliboxEnterBackground",()=>{t.call(this),Ve.emit("visible",!1)})}}),uc=D(oc,{paramsSchema:f.tuple(f.function()),implement(e){let t=Wt(e);de.on("LifecycleEvent.onReady",r=>{t(r)})}});Gt.registerCommand("LifecycleSDK.exit",ac);Gt.registerCommand("LifecycleSDK.onReady",uc);Gt.registerCommand("LifecycleSDK.onJoliboxShow",cc);Gt.registerCommand("LifecycleSDK.onJoliboxHide",lc);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 Ui(e){let t={};if(!K(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 Mi(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 Li(e,t=!1){if(e)return t||e>0&&e<=6e4?Math.ceil(e):6e4}function Bi(e,t,r){if(["POST","PUT","PATCH"].includes(t)||!K(r))return e;let[n,o=""]=e.split("?"),i=new URLSearchParams(o);for(let[a,l]of Object.entries(r))l!=null&&i.append(a,String(l));let s=i.toString();return s?`${n}?${s}`:n}var ji=k(()=>{"use strict";A()});var dc,pc,Zr,en,Hi,mc,fc,hc,$i=k(()=>{"use strict";ge();Ir();ce();ji();A();re();V();dc=15,pc=dt("createRequestTaskSync","operateRequestTaskSync",{type:"public",baseUrl:w.baseApiHost}),Zr=0,en=[],Hi=nt($),mc=(e,t)=>{let r=e.filter(t),n=e.filter(o=>!t(o));return e.length=0,e.push(...n),r},fc=e=>{let t=new se,r=()=>{};return D("request",{paramsSchema:f.tuple(f.object({url:f.string(),method:f.string(),headers: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=Hi(o.fail);try{if(Zr+=1,t.state!=="pending")return;let{data:u,dataType:d,responseType:c,enableCache:p,appendHostCookie:m}=o,y=Ui(o.headers),v=Mi(o.method),h=Li(o.timeout),g=Bi(o.url,v,u),b=Hi(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 N=pc(g,E);{let{response:R}=yield N,{code:S,data:H,message:z}=R;if(H&&typeof H=="object"&&"status"in H&&H.status!==200)throw he({code:H.status||-1,msg:`request:fail status ${H.status}`});t.resolve({code:S!=null?S:"SUCCESS",data:H,message:z!=null?z:"request:ok"}),b({code:"SUCCESS",message:"request:ok",data:H})}}catch(u){t.reject(u),s({code:"FAILURE",message:"httpRequst: failed"})}finally{Zr-=1,(l=en.shift())==null||l()}});return Zr>=dc?(r=()=>{mc(en,s=>s===i)},en.push(i)):i(),t.promise}})(e),{abort(){t.reject(he({code:-1,msg:"request:fail abort"})),r()}}},hc=M();hc.registerCommand("HttpSDK.request",fc);I("request",{version:"1.0.0"})});function kc(e){let t=Object.prototype.toString.call(e).split(" ")[1].split("]")[0].toLocaleLowerCase();return bc.includes(t)?t:""}function wc(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 Tc(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,gc,_c,vc,yc,km,wm,bc,Ji=k(()=>{"use strict";ce();q();A();Ne();V();zt=M(),gc=j("getLocalStorage",{paramsSchema:f.tuple(f.string()),implement(e){return T(this,null,function*(){let{response:t}=yield G(`/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 X("getLocalStorageAsync",{key:e}),a=wc(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",gc);I("storage.getItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});_c=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 G(`/api/games/user-storage/${r}`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e,value:n}}),{data:{code:i,message:s}}=o,a=kc(t),l=Tc(t,a);return yield X("setLocalStorageAsync",{key:e,data:l,dataType:a}),i=="SUCCESS"?{code:i,message:s}:{code:i,message:`${s}. fallback to native`}})}});zt.registerCommand("StorageSDK.setItem",_c);I("storage.setItem",{version:"1.0.0",properties:{key:"1.0.0",value:"1.0.0"}});vc=j("removeStorage",{paramsSchema:f.tuple(f.string()),implement(e){return T(this,null,function*(){let t=w.mpId,{response:r}=yield G(`/api/games/user-storage/${t}/remove`,{method:"POST",responseType:"json",appendHostCookie:!0,data:{key:e}}),{data:{code:n,message:o}}=r;return yield X("removeLocalStorageAsync",{key:e}),n==="SUCCESS"?{code:n,message:o}:{code:n,message:"[Jolibox SDK] remove item succ"}})}});zt.registerCommand("StorageSDK.removeItem",vc);I("storage.removeItem",{version:"1.0.0",properties:{key:"1.0.0"}});yc=j("clearStorage",{implement(){return T(this,null,function*(){let e=w.mpId,{response:t}=yield G(`/api/games/user-storage/${e}/clear`,{method:"POST",appendHostCookie:!0});X("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",yc);I("storage.clear",{version:"1.0.0"});km=j("getStorageInfo",{implement(){return T(this,null,function*(){let{data:e}=yield X("getStorageInfoAsync");return e})}});I("getStorageInfo",{version:"1.0.0",success:{keys:"1.0.0",currentSize:"1.0.0",limitSize:"1.0.0"}});wm=D("getStorageInfoSync",{implement(){return O("getStorageInfoSync")}}),bc=["string","number","boolean","object",""]});var Sc,Ec,xc,tn,Vi=k(()=>{"use strict";A();q();ce();Sc=D("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",P(_({},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"}});Ec=D("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"}}});xc=D("hideKeyboard",{implement(){O("hideKeyboardSync")}});I("keyboard.hideKeyboard",{version:"1.0.0"});tn=M();tn.registerCommand("KeyboardSDK.showKeyboard",Sc);tn.registerCommand("KeyboardSDK.updateKeyboard",Ec);tn.registerCommand("KeyboardSDK.hideKeyboard",xc)});var Ki=sn(Re=>{"use strict";A();ce();ve();var Ue=M(),Ic=j("levelFinished",{paramsSchema:f.tuple(f.string(),f.object({result:f.boolean(),duration:f.number()})),implement:(e,t)=>T(Re,null,function*(){let{result:r,duration:n}=t,o=[];o.push(W.tracker("LevelFinished",{levelId:e,result:r,duration:n})),o.push(W.reporter({event:"COMPLETE_GAME_LEVEL"})),yield Promise.all(o)})}),Rc=j("taskFinished",{paramsSchema:f.tuple(f.string(),f.object({duration:f.number()})),implement:(e,t)=>T(Re,null,function*(){let{duration:r}=t;return yield W.reportToNative({event:"TaskFinished",params:{duration:r,taskId:e}})})}),Ac=j("levelUpgrade",{paramsSchema:f.tuple(f.string(),f.string()),implement:(e,t)=>T(Re,null,function*(){let r=[];r.push(W.reportToNative({event:"LevelUpgrade",params:{name:t,levelId:e}})),yield Promise.all(r)})}),Cc=j("onHistoryUserLevel",{paramsSchema:f.tuple(f.number()),implement:e=>T(Re,null,function*(){return yield W.reportToNative({event:"HistoryUserLevel",params:{level:e}})})}),Pc=j("onHistoryUserScore",{paramsSchema:f.tuple(f.number()),implement:e=>T(Re,null,function*(){return yield W.reportToNative({event:"HistoryUserScore",params:{score:e}})})}),Nc=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(Re,null,function*(){var n,o;let r=[];r.push(W.reportToNative({event:"TaskEvent",params:_({taskId:e},t)})),(o=(n=t.tools)==null?void 0:n.length)!=null&&o&&(r.push(W.reporter({event:"USE_GAME_ITEM"})),r.push(W.reportToNative({event:"UseGameItem",params:_({taskId:e},t)}))),yield Promise.all(r)})});Ue.registerCommand("TaskTrackerSDK.levelFinished",Ic);Ue.registerCommand("TaskTrackerSDK.taskFinished",Rc);Ue.registerCommand("TaskTrackerSDK.levelUpgrade",Ac);Ue.registerCommand("TaskTrackerSDK.historyUserLevel",Cc);Ue.registerCommand("TaskTrackerSDK.historyUserScore",Pc);Ue.registerCommand("TaskTrackerSDK.taskEvent",Nc);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 Oc,Dc,qi,Gi=k(()=>{"use strict";V();q();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"}});Oc=j("login",{implement(){return T(this,null,function*(){var s;let{data:{isLogin:e}}=yield X("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 he({code:-1,msg:"login failed"});let{promise:n,resolve:o}=new se,i=yield n;return w.onEnvConfigChanged({hostUserInfo:i}),de.emit("onLoginComplete",i),i})}}),Dc=j("checkSession",{implement(){return T(this,null,function*(){let{data:{isLogin:e}}=yield X("checkLoginAsync");return{isLogin:e}})}}),qi=M();qi.registerCommand("API.login",Oc);qi.registerCommand("API.checkSession",Dc)});var Qt,Fc,Yt,Uc,Mc,Lc,Bc,Wi=k(()=>{"use strict";A();ce();Ar();ve();Ne();q();Qt=M(),Fc=()=>{let{data:e}=O("getNetworkStatusSync");return!!(e!=null&&e.isConnected)},Yt=new gt(Z,{get:(e,t)=>G(e,_({method:"GET",responseType:"json",appendHostCookie:!0},t)).then(r=>r.response.data),post:(e,t,r)=>G(e,_({method:"POST",responseType:"json",appendHostCookie:!0},r)).then(n=>n.response.data)},Fc),Uc=D("adInit",{implement:e=>{Yt.init(e)}}),Mc=D("adConfig",{implement:e=>{Yt.adConfig(e)}}),Lc=D("adBreak",{implement:e=>{Yt.adBreak(e)}}),Bc=D("adUnit",{implement:e=>{Yt.adUnit(e)}});Qt.registerCommand("AdsSDK.init",Uc);Qt.registerCommand("AdsSDK.adConfig",Mc);Qt.registerCommand("AdsSDK.adBreak",Lc);Qt.registerCommand("AdsSDK.adUnit",Bc);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 rn,jc,Hc,$c,zi=k(()=>{"use strict";A();q();ce();V();rn=M(),jc=D("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)}}),Hc=D("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}}}),$c=D("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)}});rn.registerCommand("RouterSDK.openSchema",jc);rn.registerCommand("RouterSDK.openPage",Hc);rn.registerCommand("RouterSDK.closePage",$c);I("router.openSchema",{version:"1.1.10"});I("router.openPage",{version:"1.1.10"});I("router.closePage",{version:"1.1.10"})});var Jc={};var sf,uf,Qi=k(()=>{"use strict";Di();sf=cn(Fi());$i();Ji();Vi();uf=cn(Ki());Gi();Wi();zi()});var Yi=Symbol.for("JOLIBOX_IMPLEMENT_INIT");if(window[Yi])throw console.info("Jolibox Implement Already Initialized"),new Error("Jolibox Implement Already Initialized");window[Yi]=!0;T(void 0,null,function*(){let[{config:e}]=yield Promise.all([Promise.resolve().then(()=>(Ii(),xi)),Promise.resolve().then(()=>(Qi(),Jc)),Promise.resolve().then(()=>(ve(),Ro))]);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;