@jolibox/sdk 1.1.12 → 1.1.13-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/package-deps_build.json +10 -8
- package/.rush/temp/shrinkwrap-deps.json +155 -2
- package/dist/api/index.d.ts +1 -0
- package/dist/api/request.d.ts +7 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/index.js +1519 -0
- package/dist/loader/h5.d.ts +5 -0
- package/dist/sdks/lifecycle.d.ts +1 -0
- package/dist/sdks/router.d.ts +15 -0
- package/esbuild.config.js +26 -0
- package/package.json +7 -4
- package/sdk.build.log +4 -4
- package/src/api/index.ts +1 -0
- package/src/api/request.ts +15 -0
- package/src/index.ts +7 -2
- package/src/loader/h5.ts +12 -2
- package/src/loader/index.ts +3 -3
- package/src/sdks/lifecycle.ts +2 -2
- package/src/sdks/router.ts +30 -0
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Qe=Object.defineProperty,Xe=Object.defineProperties;var qe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var Ze=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable;var ae=(e,t,r)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))Ze.call(t,r)&&ae(e,r,t[r]);if(ie)for(var r of ie(t))et.call(t,r)&&ae(e,r,t[r]);return e},R=(e,t)=>Xe(e,qe(t));var l=(e,t,r)=>new Promise((n,s)=>{var o=m=>{try{c(r.next(m))}catch(a){s(a)}},i=m=>{try{c(r.throw(m))}catch(a){s(a)}},c=m=>m.done?n(m.value):Promise.resolve(m.value).then(o,i);c((r=r.apply(e,t)).next())});var me=Object.defineProperty,tt=Object.getOwnPropertyDescriptor,rt=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})},le=(e,t,r,n)=>{for(var s=n>1?void 0:n?tt(t,r):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(s=(n?i(t,r,s):i(s))||s);return n&&s&&me(t,r,s),s};function nt(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function W(e){return typeof e=="string"}function de(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function st(e){return typeof e>"u"}function ot(e){return st(e)||e===null}function it(e){return typeof e=="function"}function ue(e){let t=e,r=null,n=function(...s){return r||(r=new t(...s)),r};return n.prototype=t.prototype,n}var at=(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))(at||{}),ct=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}},pe=class extends ct{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}};var fe=class extends pe{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_FETCH_ERROR",this.priority="P0"}},I=class extends pe{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_EVAL_ERROR",this.priority="P0"}};function b(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}var mt={log:b("log"),warn:b("warn"),info:b("info"),error:b("error"),debug:b("debug")};Object.assign(globalThis,{logger:mt});var he=Symbol.for("Jolibox.canIUseMap"),lt={};globalThis[he]=lt;var ge={get config(){return globalThis[he]}};function z(e,t,r){let n=0;if(e!==t){let s=e.split("."),o=t.split("."),i=Math.max(s.length,o.length);for(let c=0;c<i;c++){let m=parseInt(s[c],10)||0,a=parseInt(o[c],10)||0;if(m>a){n=1;break}else if(m<a){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}var Y=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Y||{}),Q=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(Q||{}),dt=(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))(dt||{}),ce=["name","params"],ut=["name","type","location","target","extra","timestamp","userId"],pt=["platform","os","appVersion","appId","model","brand","uuid","jsSdkVersion","extra"];function O(e,t){return t.map(r=>{if(r==="params"&&e[r]){let n=e[r];return Object.keys(n).reduce((s,o)=>(s[o]=String(n[o]),s),{})}return e[r]})}function ft(e){let t=e.location?O(e.location,ce):null,r=e.target?O(e.target,ce):null;return O(R(y({},e),{location:t,target:r}),ut)}function Ee(e){let t=e.events.map(n=>ft(n)),r=O(e.device,pt);return[e.protocolVersion,t,r,e.project]}var ht=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});var L={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")},gt=()=>L.isiOS?"iOS":L.isAndroid?"Android":L.isMac?"Mac":L.isFacebook?"Facebook":"PC",Et="device_id",_t="advertising_id",_e=e=>(localStorage.getItem(e)||localStorage.setItem(e,ht()),localStorage.getItem(e)),yt=()=>_e(Et),St=()=>_e(_t),xt=e=>e.charAt(0).toUpperCase()+e.slice(1),vt=()=>{var t;let e=new URLSearchParams(window.location.search);return xt((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},ye=e=>{let t="JoliboxWebSDK",r=gt(),n=navigator.language,s=yt(),o=St();return`${t} (${vt()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${s} adid/${o} version/${e||""}`},_,d=(_=class{constructor(t){this.element=t,this.next=_.Undefined,this.prev=_.Undefined}},_.Undefined=new _(void 0),_),Rt=class{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let e=this._first;for(;e!==d.Undefined;){let t=e.next;e.prev=d.Undefined,e.next=d.Undefined,e=t}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new d(e);if(this._first===d.Undefined)this._first=r,this._last=r;else if(t){let s=this._last;this._last=r,r.prev=s,s.next=r}else{let s=this._first;this._first=r,r.next=s,s.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==d.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==d.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==d.Undefined&&e.next!==d.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===d.Undefined&&e.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):e.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):e.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==d.Undefined;)yield e.element,e=e.next}},It=0,k=class{constructor(e){this.value=e,this.id=It++}},T=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 k&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var s,o,i,c,m,a;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new k(t);this._listeners?this._listeners instanceof k?this._listeners=[this._listeners,n]:this._listeners.push(n):((o=(s=this.options)==null?void 0:s.onWillAddFirstListener)==null||o.call(s,this),this._listeners=n,(c=(i=this.options)==null?void 0:i.onDidFirstListener)==null||c.call(i,this)),(a=(m=this.options)==null?void 0:m.onDidAddListener)==null||a.call(m,this),this._size++}),this._event}_deliver(e,t){var n;if(!e)return;let r=((n=this.options)==null?void 0:n.onListenerError)||Error.constructor;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}fire(e){this._listeners&&(this._listeners instanceof k?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},X=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var o;let r=(o=this.listeners.get(e))!=null?o:new T,n=i=>t(...i.args);this.listerHandlerMap.set(t,n),r.event(n),this.listeners.set(e,r);let s=this.cachedEventQueue.get(e);if(s)for(;s.size>0;)r.fire(y({event:e},s.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Rt,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},G={};rt(G,{None:()=>bt,filter:()=>At,once:()=>Se,toPromise:()=>Tt});var bt=()=>{console.log("[Jolibox SDK] None Event")};function Tt(e){return new Promise(t=>Se(e)(t))}function Se(e){return(t,r=null)=>{let n=!1;return e(s=>{if(!n)return n=!0,t.call(r,s)},null)}}function At(e,t){return(r=>{let n,s={onWillAddFirstListener(){n=r(o.fire,o)}},o=new T(s);return o.event})((r,n=null)=>e(s=>t(s)&&r.call(n,s),null))}var V=Symbol.for("Jolibox.hostEmitter"),wt=()=>{let e=new X;return globalThis[V]||(globalThis[V]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[V]},xe=wt();function Dt(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ut(e[n],t[n])}function Ut(e,t){if(W(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(it(t)){try{if(e instanceof t)return}catch(r){}if(!ot(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")}}var C=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new T,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let s of e.metadata.args)r.push(s.constraint);let n=e.handler;e.handler=function(...s){return Dt(s,r),n(...s)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};C=le([ue],C);var H=class{constructor(){this._onWillExecuteCommand=new T,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new T,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new C,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=nt(3e4)),this._starActivation}executeCommand(e,...t){return l(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),G.toPromise(G.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}}};H=le([ue],H);var $=Symbol.for("Jolibox.commands");function E(){if(globalThis[$])return globalThis[$];let e=new C,t=new H,r={registerCommand(n,s,o){e.registerCommand({id:n,handler:s,metadata:o})},executeCommand(n,...s){return t.executeCommand(n,...s)},excuteCommandSync(n,...s){return t.executeCommandThowErr(n,...s)}};return globalThis[$]=r,r}var P=new URLSearchParams(window.location.search).get("joliboxEnv")==="staging";function Lt(){let e=new URLSearchParams(window.location.search),t={};return e.forEach((r,n)=>{t[n]=r}),{name:"GamePage",params:t}}function kt(){return{platform:1e3,os:"h5",appVersion:"1.1.12",appId:"1",model:"UnknownModel",brand:"UnknownBrand",uuid:"1",jsSdkVersion:"1.1.12",extra:{}}}var ve={default:{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.jolibox.com":{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.pico-game.com":{test:"https://stg-collect.pico-game.com",prod:"https://collect.pico-game.com"}},Ot=()=>{var t;let e=(t=ve[window.location.host])!=null?t:ve.default;return P?e.test:e.prod},Ct=Ot(),Ie=e=>{let t=new AbortController;return setTimeout(()=>t.abort(),e),t.signal},Re;(Re=AbortSignal.timeout)!=null||(AbortSignal.timeout=Ie);var Pt=()=>{var t;return(t=new URLSearchParams(window.location.search).get("joliSource"))!=null?t:null},Kt=Pt(),Mt=e=>l(void 0,null,function*(){try{let r=`${Ct}/report`,n=ye("1.1.12"),s=Kt,o={"Content-Type":"application/json"};return n&&(o["x-user-agent"]=n),s&&(o["x-joli-source"]=s),yield fetch(r,{method:"POST",headers:o,body:JSON.stringify(e),signal:Ie(5e3)})}catch(t){return console.error("Error posting to reporter:",t),null}});function S(e){return l(this,null,function*(){try{let t={name:"globalJsError",type:Y.ErrorTrace,location:Lt(),target:null,extra:e,timestamp:Date.now(),userId:null},r=kt(),s={protocolVersion:"1.0.0",events:[t],device:r,project:Q.WebSDK},o=Ee(s);yield Mt(o)}catch(t){console.error("Failed to track error:",t)}})}document.addEventListener("DOMContentLoaded",()=>xe.emit("onDocumentReady",A.startTime));var Nt=()=>{let e=0;return{set startTime(t){e=t},get startTime(){return e}}},A=Nt(),be=E(),q=e=>{be.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify(e)}}).catch(t=>{console.error(`Fallback report: ${t} ${JSON.stringify(e)}`),S({err:JSON.stringify({message:t.message,source:t.source,lineno:t.lineno,colno:t.colno,error:t.error})})})},Z=q;window.addEventListener("unhandledrejection",q.bind(void 0));window.addEventListener("error",q.bind(void 0));window.onerror=(e,t,r,n,s)=>{be.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:s})}}).catch(o=>{S({err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:s})})})};var ee=e=>{var c,m,a;let t=e.split("-")[1];t&&(e=e.replace(`-${t}`,""));let r=e.split("+")[1];r&&(e=e.replace(`+${r}`,""));let n=e.split(".").slice(0,3),[s,o,i]=[(c=n[0])!=null?c:"0",(m=n[1])!=null?m:"0",(a=n[2])!=null?a:"0"];return{major:s,minor:o,patch:i,prerelease:t,build:r}},w=e=>parseInt(ee(e).major,10),D=(e,t)=>{let{major:r,minor:n,patch:s,prerelease:o}=ee(e),{major:i,minor:c,patch:m,prerelease:a}=ee(t);return r!==i?r>i?1:-1:n!==c?n>c?1:-1:s!==m?s>m?1:-1:o&&!a?-1:!o&&a?1:o&&a?o>a?1:o<a?-1:0:0};var Te=E(),K=(e,t)=>{Te.executeCommand("ReportSDK.traceSystem",{event:e,info:t})},x=(e,t,r)=>{Te.executeCommand("ReportSDK.traceSystemTimeline",{event:e,duration:t,extra:r})};var Ue="jolibox-sdk-loadermeta",De,U=JSON.parse((De=localStorage.getItem(Ue))!=null?De:"{}"),te=Date.now(),Ae=(e,t)=>e>t&&Math.abs(e-t)/(1e3*60*60*24)>=7,we=e=>!/^(Failed to fetch version|Couldn't find the requested file)/.test(e);function jt(){return l(this,null,function*(){let t=`${P?"https://stg-api.jolibox.com":"https://api.jolibox.com"}/api/fe-configs/js-sdk/version-metadata`;try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}}),{implement_version:n,bootstrap_version:s}=yield r.json(),o=R(y({},U),{timestamp:te});if(s){let{bootstrap_version:i}=U;if(!(i&&D(i,s)>=0)){let c=yield(yield fetch(re(s))).text();we(c)&&(o=R(y({},o),{bootstrap_version:s,bootstrap_script:c}))}}if(n){let{implement_version:i}=U;if(!(i&&D(i,n)>=0)){let c=yield(yield fetch(ne(n))).text();we(c)&&(o=R(y({},o),{implement_version:n,implement_script:c}))}}localStorage.setItem(Ue,JSON.stringify(o))}catch(r){console.warn("Failed to fetch loader metadata: ",r)}})}var Le=e=>{let{currentMajorVersion:t,currentVersion:r,bootstrapUrl:n,implementUrl:s}=e;function o(){let{bootstrap_version:a,bootstrap_script:h,timestamp:g}=U;if(a&&h&&g&&!Ae(te,g)&&w(a)==t&&D(a,r)>=0)return{script:h,type:"localscript"};try{let p=new XMLHttpRequest;return p.open("GET",n,!1),p.send(),{script:p.responseText,type:"fetch_from_cdn"}}catch(p){let u=new fe(`Bootstrap module faile to fetch ${p}`);S({err:`${u}`})}}function i(){var p;let a=Date.now();K("jsSdkBegin",{t:a}),A.startTime=a;let{script:h,type:g}=(p=o())!=null?p:{};if(h){let u=document.createElement("script");u.type="text/javascript",u.innerHTML=h,document.head.appendChild(u),x("bootstrapModuleLoaded",Date.now()-a,{type:g})}}function c(a){(g=>l(this,null,function*(){try{let p=new Blob([g],{type:"application/javascript"}),u=URL.createObjectURL(p),Ye=yield import(u);return URL.revokeObjectURL(u),Ye}catch(p){let u=new I(`implement module evaluate error in h5:${p} `);S({err:`${u}`})}}))(a)}function m(){let a=Date.now(),{implement_script:h,implement_version:g,timestamp:p}=U;if(h&&g&&p&&!Ae(te,p)&&w(g)==t&&D(g,r)>=0){c(h),x("implementModuleLoaded",Date.now()-a,{type:"loadscript"});return}let u=document.createElement("script");u.type="module",u.crossOrigin="anonymous",u.src=s,u.onload=()=>{x("implementModuleLoaded",Date.now()-a,{type:"fetch_from_cdn"})},document.head.appendChild(u)}return()=>{try{i(),m(),jt()}catch(a){let h=new I(`module evaluate error: ${a}`);S({err:`${h}`})}}};var ke=(e,t)=>{let r=s=>{let o=e({path:s});if(!o)throw`module ${s} load failed ${o}`;return o};function n(s){(i=>l(this,null,function*(){try{let c=new Blob([i],{type:"application/javascript"}),m=URL.createObjectURL(c),a=yield import(m);return URL.revokeObjectURL(m),a}catch(c){Z(new I(`implement module evaluate error in native:${c} `))}}))(s)}return()=>{try{let s=Date.now();K("jsSdkBegin",{t:s}),A.startTime=s;let o=r(t.bootstrapUrl),i=document.createElement("script");i.type="text/javascript",i.innerHTML=o,document.head.appendChild(i),x("bootstrapModuleLoaded",Date.now()-s,{type:"native"});let c=Date.now(),m=r(t.implementUrl);n(m),x("implementModuleLoaded",Date.now()-c,{type:"native"})}catch(s){console.error(`native load script error: ${s}`),Z(new I(`module load failed ${s}`))}}};var Jt="1.1.12",M=Jt,Pe=w(M),Ke=!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),Ft=Ke?e=>{let t=window.prompt("invoke",JSON.stringify({event:"loadScriptSync",paramsString:JSON.stringify(e)}));if(t){let{data:r}=JSON.parse(t);return r}}:void 0,re=e=>`https://cdn.jsdelivr.net/npm/@jolibox/bootstrap@${e}/dist/index.js`,ne=e=>`https://cdn.jsdelivr.net/npm/@jolibox/implement@${e}/dist/index.js`,Bt=e=>/^\d+\.\d+\.\d+$/.test(e),Me=Bt(M)?Pe:M,Oe=re(Me),Ce=ne(Me);function Vt(){Ke?ke(Ft,{bootstrapUrl:Oe,implementUrl:Ce})():Le({bootstrapUrl:Oe,implementUrl:Ce,currentMajorVersion:Pe,currentVersion:M})()}Vt();var Ne=E();function je(){return Ne.excuteCommandSync("API.getSystemInfoSync")}function Je(){return Ne.excuteCommandSync("API.env")}function Fe(e,t){var r;return(r=ge.config[e])==null?void 0:r[t]}function Be(e,t,r){let n=Array.isArray(t)?t:t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let o of n)if(s&&(typeof s=="object"||Array.isArray(s)))s=s[o];else return r;return s===void 0?r:s}var $e="1.1.12";function v(e){var c,m;let r=(m=(c=Je().data)==null?void 0:c.deviceInfo)==null?void 0:m.platform;if(!r)return!1;let[n,...s]=e.split(":"),o=Fe(r=="h5"?r:"native",n);if(!o)return!1;let i=o.version;return typeof i!="string"||z($e,i,"<")?!1:s.length===0?!0:Ve(o,s)||Ve(o.properties,s)}function Ve(e,t){if(!e)return!1;let r=Be(e,t);return r?de(r)?!0:W(r)?z($e,r,">="):!1:!1}var Ge=E();function He(){return l(this,null,function*(){return v("login")?yield Ge.executeCommand("API.login"):{code:"FAILURE",message:"[Jolibox SDK]login is not supported in this platform"}})}function We(){return l(this,null,function*(){return v("checkSession")?yield Ge.executeCommand("API.checkSession"):{code:"FAILURE",message:"[Jolibox SDK]checkSession is not supported in this platform"}})}var se=class{constructor(){this.loadFinished=()=>{let t=new Event("JOLIBOX_RUNTIME_LOAD_FINISHED");window.dispatchEvent(t)};this.notifyLoadProgress=t=>{let r=Math.ceil(t),n=new CustomEvent("JOLIBOX_RUNTIME_LOAD_PROGRESS",{detail:r});window.dispatchEvent(n)}}},ze=window.JoliboxRuntime||se;var f=class{constructor(){this.commands=E();this._emitter=new X}addEventListener(t,r){this._emitter.on(t,(...n)=>r(n[0]))}triggerEvent(t,r){this._emitter.emit(t,r)}canUse(t){return v(t)}canIUseIfThrow(t){if(!this.canUse(t))return{code:"FAILURE",message:`[Jolibox SDK] ${t} is not supported in this platform`}}};var $t="LifecycleSDK.onReady",N=class extends f{constructor(){super()}onReady(t){let r=n=>{t.call(this,n),this.triggerEvent($t,n)};this.commands.executeCommand("LifecycleSDK.onReady",r.bind(this))}exit(t){let r=this.canIUseIfThrow("lifeCycle.exit");if(r)return r;this.commands.executeCommand("LifecycleSDK.exit",t.onBeforeExit)}onJoliboxHide(t){this.commands.executeCommand("LifecycleSDK.onJoliboxHide",t.bind(this))}onJoliboxShow(t){this.commands.executeCommand("LifecycleSDK.onJoliboxShow",t.bind(this))}};var j=class extends f{getItem(t){return l(this,null,function*(){return yield this.commands.executeCommand("StorageSDK.getItem",t)})}setItem(t,r){return l(this,null,function*(){if(t.length>128)return{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key should be less than 128"};let n=typeof r=="string"?r:String(r);return t.length+n.length>1024?{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key and value should be less than 1024"}:yield this.commands.executeCommand("StorageSDK.setItem",t,r)})}removeItem(t){return l(this,null,function*(){return this.commands.executeCommand("StorageSDK.removeItem",t)})}clear(){return l(this,null,function*(){return this.commands.executeCommand("StorageSDK.clear")})}};var J=class extends f{constructor(){super();this.init=r=>{this.commands.executeCommand("AdsSDK.init",r)};this.adConfig=r=>{this.commands.executeCommand("AdsSDK.adConfig",r)};this.adBreak=r=>{this.commands.executeCommand("AdsSDK.adBreak",r)};this.adUnit=r=>{this.commands.executeCommand("AdsSDK.adUnit",r)}}};var F=class extends f{showKeyboard(t){let r=this.canIUseIfThrow("keyboard.showKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.showKeyboard",t)}updateKeyboard(t){let r=this.canIUseIfThrow("keyboard.updateKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.updateKeyboard",{value:t})}hideKeyboard(){let t=this.canIUseIfThrow("keyboard.hideKeyboard");if(t)return t;this.commands.executeCommand("KeyboardSDK.hideKeyboard")}};var B=class extends f{onLevelFinished(t,r,n){return l(this,null,function*(){let s=this.canIUseIfThrow("TaskTrackerSDK.onLevelFinished");return s?Promise.resolve(s):yield this.commands.executeCommand("TaskTrackerSDK.levelFinished",t,{result:r,duration:n})})}onTaskFinished(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskFinished");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskFinished",t,{duration:r}))})}onTaskEvent(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskEvent");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskEvent",t,r))})}onLevelUpgrade(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onLevelUpgrade");return n||(yield this.commands.executeCommand("TaskTrackerSDK.levelUpgrade",t,r))})}onHistoryUserLevel(t){return l(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserLevel");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserLevel",t))})}onHistoryUserScore(t){return l(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserScore");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserScore",t))})}};var oe=class{constructor(){this.jssdkVersion="1.1.12";this.runtime=new ze;this.ads=new J;this.lifecycle=new N;this.storage=new j;this.keyboard=new F;this.task=new B;this.getSystemInfoSync=je.bind(this);this.canIUse=v.bind(this);this.login=He.bind(this);this.checkSession=We.bind(this);window.joliboxsdk={runtime:this.runtime,ads:this.ads,lifecycle:this.lifecycle,storage:this.storage,keyboard:this.keyboard,task:this.task}}};window.JoliboxSDK=oe;export{oe as JoliboxSDK};
|
|
1
|
+
var nt=Object.defineProperty,ot=Object.defineProperties;var st=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var me=(e,t,r)=>t in e?nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,L=(e,t)=>{for(var r in t||(t={}))it.call(t,r)&&me(e,r,t[r]);if(le)for(var r of le(t))at.call(t,r)&&me(e,r,t[r]);return e},A=(e,t)=>ot(e,st(t));var m=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{c(r.next(l))}catch(i){o(i)}},a=l=>{try{c(r.throw(l))}catch(i){o(i)}},c=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,a);c((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}var z=Object.defineProperty,ct=Object.defineProperties,lt=Object.getOwnPropertyDescriptor,mt=Object.getOwnPropertyDescriptors,de=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable,ue=(e,t,r)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fe=(e,t)=>{for(var r in t||(t={}))dt.call(t,r)&&ue(e,r,t[r]);if(de)for(var r of de(t))ut.call(t,r)&&ue(e,r,t[r]);return e},pt=(e,t)=>ct(e,mt(t)),ft=(e,t)=>{for(var r in t)z(e,r,{get:t[r],enumerable:!0})},he=(e,t,r,n)=>{for(var o=n>1?void 0:n?lt(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(o=(n?a(t,r,o):a(o))||o);return n&&o&&z(t,r,o),o},ht=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{c(r.next(l))}catch(i){o(i)}},a=l=>{try{c(r.throw(l))}catch(i){o(i)}},c=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,a);c((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}function gt(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function q(e){return typeof e=="string"}function ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function _t(e){return typeof e=="undefined"}function yt(e){return _t(e)||e===null}function Et(e){return typeof e=="function"}function _e(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}var vt=(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))(vt||{}),bt=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}},ye=class extends bt{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}};var Ee=class extends ye{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_FETCH_ERROR",this.priority="P0"}},b=class extends ye{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_EVAL_ERROR",this.priority="P0"}};function S(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}var St={log:S("log"),warn:S("warn"),info:S("info"),error:S("error"),debug:S("debug")};Object.assign(globalThis,{logger:St});var ve=Symbol.for("Jolibox.canIUseMap"),xt={};globalThis[ve]=xt;var be={get config(){return globalThis[ve]}};function Y(e,t,r){let n=0;if(e!==t){let o=e.split("."),s=t.split("."),a=Math.max(o.length,s.length);for(let c=0;c<a;c++){let l=parseInt(o[c],10)||0,i=parseInt(s[c],10)||0;if(l>i){n=1;break}else if(l<i){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}var Q=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Q||{}),X=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(X||{}),Rt=(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))(Rt||{}),pe=["name","params"],wt=["name","type","location","target","extra","timestamp","userId"],It=["platform","os","appVersion","appId","model","brand","uuid","jsSdkVersion","extra"];function O(e,t){return t.map(r=>{if(r==="params"&&e[r]){let n=e[r];return Object.keys(n).reduce((o,s)=>(o[s]=String(n[s]),o),{})}return e[r]})}function Tt(e){let t=e.location?O(e.location,pe):null,r=e.target?O(e.target,pe):null;return O(pt(fe({},e),{location:t,target:r}),wt)}function Se(e){let t=e.events.map(n=>Tt(n)),r=O(e.device,It);return[e.protocolVersion,t,r,e.project]}var Lt=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});function Z(){try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}Z();var D={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")},At=()=>D.isiOS?"iOS":D.isAndroid?"Android":D.isMac?"Mac":D.isFacebook?"Facebook":"PC",Dt="device_id",Ut="advertising_id",xe=e=>(window.__joliboxLocalStorage__.getItem(e)||window.__joliboxLocalStorage__.setItem(e,Lt()),window.__joliboxLocalStorage__.getItem(e)),Ot=()=>new URLSearchParams(window.location.search).get("deviceId")||xe(Dt),Pt=()=>xe(Ut),kt=e=>e.charAt(0).toUpperCase()+e.slice(1),Ct=()=>{var e;let t=new URLSearchParams(window.location.search);return kt((e=t.get("utm_source"))!=null?e:"")||"JoliboxSDK"},Re=e=>{let t="JoliboxWebSDK",r=At(),n=navigator.language,o=Ot(),s=Pt();return`${t} (${Ct()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${s} version/${e||""}`},$=class G{constructor(t){this.element=t,this.next=G.Undefined,this.prev=G.Undefined}};$.Undefined=new $(void 0);var d=$,Kt=class{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let e=this._first;for(;e!==d.Undefined;){let t=e.next;e.prev=d.Undefined,e.next=d.Undefined,e=t}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new d(e);if(this._first===d.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==d.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==d.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==d.Undefined&&e.next!==d.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===d.Undefined&&e.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):e.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):e.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==d.Undefined;)yield e.element,e=e.next}},Mt=0,U=class{constructor(e){this.value=e,this.id=Mt++}},x=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 U&&(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,s,a,c,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let i=new U(t);this._listeners?this._listeners instanceof U?this._listeners=[this._listeners,i]:this._listeners.push(i):((o=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||o.call(n,this),this._listeners=i,(a=(s=this.options)==null?void 0:s.onDidFirstListener)==null||a.call(s,this)),(l=(c=this.options)==null?void 0:c.onDidAddListener)==null||l.call(c,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 U?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},ee=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 x,o=a=>t(...a.args);this.listerHandlerMap.set(t,o),n.event(o),this.listeners.set(e,n);let s=this.cachedEventQueue.get(e);if(s)for(;s.size>0;)n.fire(fe({event:e},s.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Kt,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},H={};ft(H,{None:()=>jt,filter:()=>Jt,once:()=>we,toPromise:()=>Nt});var jt=()=>{console.log("[Jolibox SDK] None Event")};function Nt(e){return new Promise(t=>we(e)(t))}function we(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function Jt(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(s.fire,s)}},s=new x(o);return s.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}var V=Symbol.for("Jolibox.hostEmitter"),Ft=()=>{let e=new ee;return globalThis[V]||(globalThis[V]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[V]},Ie=Ft();function Bt(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Vt(e[n],t[n])}function Vt(e,t){if(q(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Et(t)){try{if(e instanceof t)return}catch(r){}if(!yt(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")}}var P=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new x,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 Bt(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}};P=he([_e],P);var W=class{constructor(){this._onWillExecuteCommand=new x,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new x,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new P,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=gt(3e4)),this._starActivation}executeCommand(e,...t){return ht(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),H.toPromise(H.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}}};W=he([_e],W);var Te=Symbol.for("Jolibox.commands");function $t(){return typeof globalThis!="undefined"?globalThis[Te]:void 0}function Gt(e){typeof globalThis!="undefined"&&(globalThis[Te]=e)}function h(){let e=$t();if(e)return e;let t=new P,r=new W,n={registerCommand(o,s,a){t.registerCommand({id:o,handler:s,metadata:a})},executeCommand(o,...s){return r.executeCommand(o,...s)},excuteCommandSync(o,...s){return r.executeCommandThowErr(o,...s)}};return Gt(n),n}var k=new URLSearchParams(window.location.search).get("joliboxEnv")==="staging";function Ht(){let e=new URLSearchParams(window.location.search),t={};return e.forEach((r,n)=>{t[n]=r}),{name:"GamePage",params:t}}function Wt(){return{platform:1e3,os:"h5",appVersion:"1.1.13-beta.10",appId:"1",model:"UnknownModel",brand:"UnknownBrand",uuid:"1",jsSdkVersion:"1.1.13-beta.10",extra:{}}}var Le={default:{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.jolibox.com":{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.pico-game.com":{test:"https://stg-collect.pico-game.com",prod:"https://collect.pico-game.com"}},zt=()=>{var t;let e=(t=Le[window.location.host])!=null?t:Le.default;return k?e.test:e.prod},qt=zt(),De=e=>{let t=new AbortController;return setTimeout(()=>t.abort(),e),t.signal},Ae;(Ae=AbortSignal.timeout)!=null||(AbortSignal.timeout=De);var Yt=()=>{var t;return(t=new URLSearchParams(window.location.search).get("joliSource"))!=null?t:null},Qt=Yt(),Xt=e=>m(void 0,null,function*(){try{let r=`${qt}/report`,n=Re("1.1.13-beta.10"),o=Qt,s={"Content-Type":"application/json"};return n&&(s["x-user-agent"]=n),o&&(s["x-joli-source"]=o),yield fetch(r,{method:"POST",headers:s,body:JSON.stringify(e),signal:De(5e3)})}catch(t){return console.error("Error posting to reporter:",t),null}});function E(e){return m(this,null,function*(){try{let t={name:"globalJsError",type:Q.ErrorTrace,location:Ht(),target:null,extra:e,timestamp:Date.now(),userId:null},r=Wt(),o={protocolVersion:"1.0.0",events:[t],device:r,project:X.WebSDK},s=Se(o);yield Xt(s)}catch(t){console.error("Failed to track error:",t)}})}document.addEventListener("DOMContentLoaded",()=>Ie.emit("onDocumentReady",R.startTime));var Zt=()=>{let e=0;return{set startTime(t){e=t},get startTime(){return e}}},R=Zt(),Ue=h(),te=e=>{Ue.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify(e)}}).catch(t=>{console.error(`Fallback report: ${t} ${JSON.stringify(e)}`),E({err:JSON.stringify({message:t.message,source:t.source,lineno:t.lineno,colno:t.colno,error:t.error})})})},re=te;window.addEventListener("unhandledrejection",te.bind(void 0));window.addEventListener("error",te.bind(void 0));window.onerror=(e,t,r,n,o)=>{Ue.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:o})}}).catch(s=>{E({err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:o})})})};var ne=e=>{var c,l,i;let t=e.split("-")[1];t&&(e=e.replace(`-${t}`,""));let r=e.split("+")[1];r&&(e=e.replace(`+${r}`,""));let n=e.split(".").slice(0,3),[o,s,a]=[(c=n[0])!=null?c:"0",(l=n[1])!=null?l:"0",(i=n[2])!=null?i:"0"];return{major:o,minor:s,patch:a,prerelease:t,build:r}},w=e=>parseInt(ne(e).major,10),I=(e,t)=>{let{major:r,minor:n,patch:o,prerelease:s}=ne(e),{major:a,minor:c,patch:l,prerelease:i}=ne(t);return r!==a?r>a?1:-1:n!==c?n>c?1:-1:o!==l?o>l?1:-1:s&&!i?-1:!s&&i?1:s&&i?s>i?1:s<i?-1:0:0};var Oe=h(),C=(e,t)=>{Oe.executeCommand("ReportSDK.traceSystem",{event:e,info:t})},v=(e,t,r)=>{Oe.executeCommand("ReportSDK.traceSystemTimeline",{event:e,duration:t,extra:r})};Z();var Ke="jolibox-sdk-loadermeta",Ce,T=JSON.parse((Ce=window.__joliboxLocalStorage__.getItem(Ke))!=null?Ce:"{}"),oe=Date.now(),Pe=(e,t)=>e>t&&Math.abs(e-t)/(1e3*60*60*24)>=7,ke=e=>!/^(Failed to fetch version|Couldn't find the requested file)/.test(e);function er(){return m(this,null,function*(){let t=`${k?"https://stg-api.jolibox.com":"https://api.jolibox.com"}/api/fe-configs/js-sdk/version-metadata`;try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}}),{implement_version:n,bootstrap_version:o}=yield r.json(),s=A(L({},T),{timestamp:oe});if(o){let{bootstrap_version:a}=T;if(!(a&&I(a,o)>=0)){let c=yield(yield fetch(se(o))).text();ke(c)&&(s=A(L({},s),{bootstrap_version:o,bootstrap_script:c}))}}if(n){let{implement_version:a}=T;if(!(a&&I(a,n)>=0)){let c=yield(yield fetch(ie(n))).text();ke(c)&&(s=A(L({},s),{implement_version:n,implement_script:c}))}}window.__joliboxLocalStorage__.setItem(Ke,JSON.stringify(s))}catch(r){console.warn("Failed to fetch loader metadata: ",r)}})}var Me=e=>{let{currentMajorVersion:t,currentVersion:r,bootstrapUrl:n,implementUrl:o}=e;function s(){let{bootstrap_version:i,bootstrap_script:g,timestamp:_}=T;if(i&&g&&_&&!Pe(oe,_)&&w(i)==t&&I(i,r)>=0)return{script:g,type:"localscript"};try{let p=new XMLHttpRequest;return p.open("GET",n,!1),p.send(),{script:p.responseText,type:"fetch_from_cdn"}}catch(p){let u=new Ee(`Bootstrap module faile to fetch ${p}`);E({err:`${u}`})}}function a(){var p;let i=Date.now();C("jsSdkBegin",{t:i}),R.startTime=i;let{script:g,type:_}=(p=s())!=null?p:{};if(g){let u=document.createElement("script");u.type="text/javascript",u.innerHTML=g,document.head.appendChild(u),v("bootstrapModuleLoaded",Date.now()-i,{type:_})}}function c(i){(_=>m(this,null,function*(){try{let p=new Blob([_],{type:"application/javascript"}),u=URL.createObjectURL(p),rt=yield import(u);return URL.revokeObjectURL(u),rt}catch(p){let u=new b(`implement module evaluate error in h5:${p} `);E({err:`${u}`})}}))(i)}function l(){let i=Date.now(),{implement_script:g,implement_version:_,timestamp:p}=T;if(g&&_&&p&&!Pe(oe,p)&&w(_)==t&&I(_,r)>=0){c(g),v("implementModuleLoaded",Date.now()-i,{type:"loadscript"});return}let u=document.createElement("script");u.type="module",u.crossOrigin="anonymous",u.src=o,u.onload=()=>{v("implementModuleLoaded",Date.now()-i,{type:"fetch_from_cdn"})},document.head.appendChild(u)}return()=>{try{a(),l(),er()}catch(i){let g=new b(`module evaluate error: ${i}`);E({err:`${g}`})}}};var je=(e,t)=>{let r=o=>{let s=e({path:o});if(!s)throw`module ${o} load failed ${s}`;return s};function n(o){(a=>m(this,null,function*(){try{let c=new Blob([a],{type:"application/javascript"}),l=URL.createObjectURL(c),i=yield import(l);return URL.revokeObjectURL(l),i}catch(c){re(new b(`implement module evaluate error in native:${c} `))}}))(o)}return()=>{try{let o=Date.now();C("jsSdkBegin",{t:o}),R.startTime=o;let s=r(t.bootstrapUrl),a=document.createElement("script");a.type="text/javascript",a.innerHTML=s,document.head.appendChild(a),v("bootstrapModuleLoaded",Date.now()-o,{type:"native"});let c=Date.now(),l=r(t.implementUrl);n(l),v("implementModuleLoaded",Date.now()-c,{type:"native"})}catch(o){console.error(`native load script error: ${o}`),re(new b(`module load failed ${o}`))}}};var tr="1.1.13-beta.10",K=tr,Fe=w(K),Be=!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),rr=Be?e=>{let t=window.prompt("invoke",JSON.stringify({event:"loadScriptSync",paramsString:JSON.stringify(e)}));if(t){let{data:r}=JSON.parse(t);return r}}:void 0,se=e=>`https://jsdelivr.jolibox.com/npm/@jolibox/bootstrap@${e}/dist/index.js`,ie=e=>`https://jsdelivr.jolibox.com/npm/@jolibox/implement@${e}/dist/index.js`,nr=e=>/^\d+\.\d+\.\d+$/.test(e),Ve=nr(K)?Fe:K,Ne=se(Ve),Je=ie(Ve);function or(){Be?je(rr,{bootstrapUrl:Ne,implementUrl:Je})():Me({bootstrapUrl:Ne,implementUrl:Je,currentMajorVersion:Fe,currentVersion:K})()}or();var $e=h();function Ge(){return $e.excuteCommandSync("API.getSystemInfoSync")}function He(){return $e.excuteCommandSync("API.env")}function We(e,t){var r;return(r=be.config[e])==null?void 0:r[t]}function ze(e,t,r){let n=Array.isArray(t)?t:t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let s of n)if(o&&(typeof o=="object"||Array.isArray(o)))o=o[s];else return r;return o===void 0?r:o}var Ye="1.1.13-beta.10";function y(e){var c,l;let r=(l=(c=He().data)==null?void 0:c.deviceInfo)==null?void 0:l.platform;if(!r)return!1;let[n,...o]=e.split(":"),s=We(r=="h5"?r:"native",n);if(!s)return!1;let a=s.version;return typeof a!="string"||Y(Ye,a,"<")?!1:o.length===0?!0:qe(s,o)||qe(s.properties,o)}function qe(e,t){if(!e)return!1;let r=ze(e,t);return r?ge(r)?!0:q(r)?Y(Ye,r,">="):!1:!1}var Qe=h();function Xe(){return m(this,null,function*(){return y("login")?yield Qe.executeCommand("API.login"):{code:"FAILURE",message:"[Jolibox SDK]login is not supported in this platform"}})}function Ze(){return m(this,null,function*(){return y("checkSession")?yield Qe.executeCommand("API.checkSession"):{code:"FAILURE",message:"[Jolibox SDK]checkSession is not supported in this platform"}})}var sr=h();function et(e){return m(this,null,function*(){return y("request")?yield sr.executeCommand("HttpSDK.request",e):{code:"FAILURE",message:"[Jolibox SDK]request is not supported in this platform"}})}var ae=class{constructor(){this.loadFinished=()=>{let t=new Event("JOLIBOX_RUNTIME_LOAD_FINISHED");window.dispatchEvent(t)};this.notifyLoadProgress=t=>{let r=Math.ceil(t),n=new CustomEvent("JOLIBOX_RUNTIME_LOAD_PROGRESS",{detail:r});window.dispatchEvent(n)}}},tt=window.JoliboxRuntime||ae;var f=class{constructor(){this.commands=h();this._emitter=new ee}addEventListener(t,r){this._emitter.on(t,(...n)=>r(n[0]))}triggerEvent(t,r){this._emitter.emit(t,r)}canUse(t){return y(t)}canIUseIfThrow(t){if(!this.canUse(t))return{code:"FAILURE",message:`[Jolibox SDK] ${t} is not supported in this platform`}}};var ir="LifecycleSDK.onReady",M=class extends f{constructor(){super()}onReady(t){let r=n=>{t.call(this,n),this.triggerEvent(ir,n)};this.commands.executeCommand("LifecycleSDK.onReady",r.bind(this))}exit(t){let r=this.canIUseIfThrow("lifeCycle.exit");if(r)return r;this.commands.executeCommand("LifecycleSDK.exit",t.onBeforeExit,t.shouldStay)}onJoliboxHide(t){this.commands.executeCommand("LifecycleSDK.onJoliboxHide",t.bind(this))}onJoliboxShow(t){this.commands.executeCommand("LifecycleSDK.onJoliboxShow",t.bind(this))}};var j=class extends f{getItem(t){return m(this,null,function*(){return yield this.commands.executeCommand("StorageSDK.getItem",t)})}setItem(t,r){return m(this,null,function*(){if(t.length>128)return{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key should be less than 128"};let n=typeof r=="string"?r:String(r);return t.length+n.length>1024?{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key and value should be less than 1024"}:yield this.commands.executeCommand("StorageSDK.setItem",t,r)})}removeItem(t){return m(this,null,function*(){return this.commands.executeCommand("StorageSDK.removeItem",t)})}clear(){return m(this,null,function*(){return this.commands.executeCommand("StorageSDK.clear")})}};var N=class extends f{constructor(){super();this.init=r=>{this.commands.executeCommand("AdsSDK.init",r)};this.adConfig=r=>{this.commands.executeCommand("AdsSDK.adConfig",r)};this.adBreak=r=>{this.commands.executeCommand("AdsSDK.adBreak",r)};this.adUnit=r=>{this.commands.executeCommand("AdsSDK.adUnit",r)}}};var J=class extends f{showKeyboard(t){let r=this.canIUseIfThrow("keyboard.showKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.showKeyboard",t)}updateKeyboard(t){let r=this.canIUseIfThrow("keyboard.updateKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.updateKeyboard",{value:t})}hideKeyboard(){let t=this.canIUseIfThrow("keyboard.hideKeyboard");if(t)return t;this.commands.executeCommand("KeyboardSDK.hideKeyboard")}};var F=class extends f{onLevelFinished(t,r,n){return m(this,null,function*(){let o=this.canIUseIfThrow("TaskTrackerSDK.onLevelFinished");return o?Promise.resolve(o):yield this.commands.executeCommand("TaskTrackerSDK.levelFinished",t,{result:r,duration:n})})}onTaskFinished(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskFinished");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskFinished",t,{duration:r}))})}onTaskEvent(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskEvent");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskEvent",t,r))})}onLevelUpgrade(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onLevelUpgrade");return n||(yield this.commands.executeCommand("TaskTrackerSDK.levelUpgrade",t,r))})}onHistoryUserLevel(t){return m(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserLevel");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserLevel",t))})}onHistoryUserScore(t){return m(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserScore");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserScore",t))})}};var B=class extends f{openSchema(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.openSchema");return r||(yield this.commands.executeCommand("RouterSDK.openSchema",t))})}openPage(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.openPage");return r||(yield this.commands.executeCommand("RouterSDK.openPage",t))})}closePage(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.closePage");return r||(yield this.commands.executeCommand("RouterSDK.closePage",t))})}};var ce=class{constructor(){this.jssdkVersion="1.1.13-beta.10";this.runtime=new tt;this.ads=new N;this.lifecycle=new M;this.storage=new j;this.keyboard=new J;this.task=new F;this.router=new B;this.getSystemInfoSync=Ge.bind(this);this.canIUse=y.bind(this);this.login=Xe.bind(this);this.checkSession=Ze.bind(this);this.request=et.bind(this);window.joliboxsdk={runtime:this.runtime,ads:this.ads,lifecycle:this.lifecycle,storage:this.storage,keyboard:this.keyboard,task:this.task,router:this.router}}};window.JoliboxSDK=ce;export{ce as JoliboxSDK};
|
package/dist/index.iife.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var Qe=Object.defineProperty,Xe=Object.defineProperties;var qe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var Ze=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable;var ae=(e,t,r)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))Ze.call(t,r)&&ae(e,r,t[r]);if(ie)for(var r of ie(t))et.call(t,r)&&ae(e,r,t[r]);return e},R=(e,t)=>Xe(e,qe(t));var l=(e,t,r)=>new Promise((n,s)=>{var o=m=>{try{c(r.next(m))}catch(a){s(a)}},i=m=>{try{c(r.throw(m))}catch(a){s(a)}},c=m=>m.done?n(m.value):Promise.resolve(m.value).then(o,i);c((r=r.apply(e,t)).next())});var me=Object.defineProperty,tt=Object.getOwnPropertyDescriptor,rt=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})},le=(e,t,r,n)=>{for(var s=n>1?void 0:n?tt(t,r):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(s=(n?i(t,r,s):i(s))||s);return n&&s&&me(t,r,s),s};function nt(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function W(e){return typeof e=="string"}function de(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function st(e){return typeof e>"u"}function ot(e){return st(e)||e===null}function it(e){return typeof e=="function"}function ue(e){let t=e,r=null,n=function(...s){return r||(r=new t(...s)),r};return n.prototype=t.prototype,n}var at=(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))(at||{}),ct=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}},pe=class extends ct{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}};var fe=class extends pe{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_FETCH_ERROR",this.priority="P0"}},I=class extends pe{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_EVAL_ERROR",this.priority="P0"}};function b(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}var mt={log:b("log"),warn:b("warn"),info:b("info"),error:b("error"),debug:b("debug")};Object.assign(globalThis,{logger:mt});var he=Symbol.for("Jolibox.canIUseMap"),lt={};globalThis[he]=lt;var ge={get config(){return globalThis[he]}};function z(e,t,r){let n=0;if(e!==t){let s=e.split("."),o=t.split("."),i=Math.max(s.length,o.length);for(let c=0;c<i;c++){let m=parseInt(s[c],10)||0,a=parseInt(o[c],10)||0;if(m>a){n=1;break}else if(m<a){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}var Y=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Y||{}),Q=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(Q||{}),dt=(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))(dt||{}),ce=["name","params"],ut=["name","type","location","target","extra","timestamp","userId"],pt=["platform","os","appVersion","appId","model","brand","uuid","jsSdkVersion","extra"];function O(e,t){return t.map(r=>{if(r==="params"&&e[r]){let n=e[r];return Object.keys(n).reduce((s,o)=>(s[o]=String(n[o]),s),{})}return e[r]})}function ft(e){let t=e.location?O(e.location,ce):null,r=e.target?O(e.target,ce):null;return O(R(y({},e),{location:t,target:r}),ut)}function Ee(e){let t=e.events.map(n=>ft(n)),r=O(e.device,pt);return[e.protocolVersion,t,r,e.project]}var ht=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});var L={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")},gt=()=>L.isiOS?"iOS":L.isAndroid?"Android":L.isMac?"Mac":L.isFacebook?"Facebook":"PC",Et="device_id",_t="advertising_id",_e=e=>(localStorage.getItem(e)||localStorage.setItem(e,ht()),localStorage.getItem(e)),yt=()=>_e(Et),St=()=>_e(_t),xt=e=>e.charAt(0).toUpperCase()+e.slice(1),vt=()=>{var t;let e=new URLSearchParams(window.location.search);return xt((t=e.get("utm_source"))!=null?t:"")||"JoliboxSDK"},ye=e=>{let t="JoliboxWebSDK",r=gt(),n=navigator.language,s=yt(),o=St();return`${t} (${vt()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${s} adid/${o} version/${e||""}`},_,d=(_=class{constructor(t){this.element=t,this.next=_.Undefined,this.prev=_.Undefined}},_.Undefined=new _(void 0),_),Rt=class{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let e=this._first;for(;e!==d.Undefined;){let t=e.next;e.prev=d.Undefined,e.next=d.Undefined,e=t}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new d(e);if(this._first===d.Undefined)this._first=r,this._last=r;else if(t){let s=this._last;this._last=r,r.prev=s,s.next=r}else{let s=this._first;this._first=r,r.next=s,s.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==d.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==d.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==d.Undefined&&e.next!==d.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===d.Undefined&&e.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):e.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):e.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==d.Undefined;)yield e.element,e=e.next}},It=0,k=class{constructor(e){this.value=e,this.id=It++}},T=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 k&&(this._listeners=[this._listeners]),this._listeners=this._listeners.filter(n=>(n==null?void 0:n.value)===e)):(this._listeners=void 0,this._size=0)),(r=(t=this.options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t))}get event(){var e;return(e=this._event)!=null||(this._event=(t,r)=>{var s,o,i,c,m,a;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let n=new k(t);this._listeners?this._listeners instanceof k?this._listeners=[this._listeners,n]:this._listeners.push(n):((o=(s=this.options)==null?void 0:s.onWillAddFirstListener)==null||o.call(s,this),this._listeners=n,(c=(i=this.options)==null?void 0:i.onDidFirstListener)==null||c.call(i,this)),(a=(m=this.options)==null?void 0:m.onDidAddListener)==null||a.call(m,this),this._size++}),this._event}_deliver(e,t){var n;if(!e)return;let r=((n=this.options)==null?void 0:n.onListenerError)||Error.constructor;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}fire(e){this._listeners&&(this._listeners instanceof k?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},X=class{constructor(){this.listeners=new Map,this.listerHandlerMap=new WeakMap,this.cachedEventQueue=new Map}on(e,t){var o;let r=(o=this.listeners.get(e))!=null?o:new T,n=i=>t(...i.args);this.listerHandlerMap.set(t,n),r.event(n),this.listeners.set(e,r);let s=this.cachedEventQueue.get(e);if(s)for(;s.size>0;)r.fire(y({event:e},s.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Rt,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},G={};rt(G,{None:()=>bt,filter:()=>At,once:()=>Se,toPromise:()=>Tt});var bt=()=>{console.log("[Jolibox SDK] None Event")};function Tt(e){return new Promise(t=>Se(e)(t))}function Se(e){return(t,r=null)=>{let n=!1;return e(s=>{if(!n)return n=!0,t.call(r,s)},null)}}function At(e,t){return(r=>{let n,s={onWillAddFirstListener(){n=r(o.fire,o)}},o=new T(s);return o.event})((r,n=null)=>e(s=>t(s)&&r.call(n,s),null))}var V=Symbol.for("Jolibox.hostEmitter"),wt=()=>{let e=new X;return globalThis[V]||(globalThis[V]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[V]},xe=wt();function Dt(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Ut(e[n],t[n])}function Ut(e,t){if(W(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(it(t)){try{if(e instanceof t)return}catch(r){}if(!ot(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")}}var C=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new T,this.onDidRegisterCommand=this._onDidRegisterCommand.event,console.log("[Jolibox SDK] command registry")}registerCommand(e){if(!e)throw new Error("invalid command");if(e.metadata&&Array.isArray(e.metadata.args)){let r=[];for(let s of e.metadata.args)r.push(s.constraint);let n=e.handler;e.handler=function(...s){return Dt(s,r),n(...s)}}let{id:t}=e;this._commands.get(t)&&console.info(`[Jolibox SDK] duplicated command is registered ${t}`),this._commands.set(t,e),this._onDidRegisterCommand.fire(t)}getCommand(e){return this._commands.get(e)}getCommands(){let e=new Map;for(let t of this._commands.keys()){let r=this.getCommand(t);r&&e.set(t,r)}return e}};C=le([ue],C);var H=class{constructor(){this._onWillExecuteCommand=new T,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new T,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new C,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=nt(3e4)),this._starActivation}executeCommand(e,...t){return l(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),G.toPromise(G.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}}};H=le([ue],H);var $=Symbol.for("Jolibox.commands");function E(){if(globalThis[$])return globalThis[$];let e=new C,t=new H,r={registerCommand(n,s,o){e.registerCommand({id:n,handler:s,metadata:o})},executeCommand(n,...s){return t.executeCommand(n,...s)},excuteCommandSync(n,...s){return t.executeCommandThowErr(n,...s)}};return globalThis[$]=r,r}var P=new URLSearchParams(window.location.search).get("joliboxEnv")==="staging";function Lt(){let e=new URLSearchParams(window.location.search),t={};return e.forEach((r,n)=>{t[n]=r}),{name:"GamePage",params:t}}function kt(){return{platform:1e3,os:"h5",appVersion:"1.1.12",appId:"1",model:"UnknownModel",brand:"UnknownBrand",uuid:"1",jsSdkVersion:"1.1.12",extra:{}}}var ve={default:{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.jolibox.com":{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.pico-game.com":{test:"https://stg-collect.pico-game.com",prod:"https://collect.pico-game.com"}},Ot=()=>{var t;let e=(t=ve[window.location.host])!=null?t:ve.default;return P?e.test:e.prod},Ct=Ot(),Ie=e=>{let t=new AbortController;return setTimeout(()=>t.abort(),e),t.signal},Re;(Re=AbortSignal.timeout)!=null||(AbortSignal.timeout=Ie);var Pt=()=>{var t;return(t=new URLSearchParams(window.location.search).get("joliSource"))!=null?t:null},Kt=Pt(),Mt=e=>l(void 0,null,function*(){try{let r=`${Ct}/report`,n=ye("1.1.12"),s=Kt,o={"Content-Type":"application/json"};return n&&(o["x-user-agent"]=n),s&&(o["x-joli-source"]=s),yield fetch(r,{method:"POST",headers:o,body:JSON.stringify(e),signal:Ie(5e3)})}catch(t){return console.error("Error posting to reporter:",t),null}});function S(e){return l(this,null,function*(){try{let t={name:"globalJsError",type:Y.ErrorTrace,location:Lt(),target:null,extra:e,timestamp:Date.now(),userId:null},r=kt(),s={protocolVersion:"1.0.0",events:[t],device:r,project:Q.WebSDK},o=Ee(s);yield Mt(o)}catch(t){console.error("Failed to track error:",t)}})}document.addEventListener("DOMContentLoaded",()=>xe.emit("onDocumentReady",A.startTime));var Nt=()=>{let e=0;return{set startTime(t){e=t},get startTime(){return e}}},A=Nt(),be=E(),q=e=>{be.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify(e)}}).catch(t=>{console.error(`Fallback report: ${t} ${JSON.stringify(e)}`),S({err:JSON.stringify({message:t.message,source:t.source,lineno:t.lineno,colno:t.colno,error:t.error})})})},Z=q;window.addEventListener("unhandledrejection",q.bind(void 0));window.addEventListener("error",q.bind(void 0));window.onerror=(e,t,r,n,s)=>{be.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:s})}}).catch(o=>{S({err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:s})})})};var ee=e=>{var c,m,a;let t=e.split("-")[1];t&&(e=e.replace(`-${t}`,""));let r=e.split("+")[1];r&&(e=e.replace(`+${r}`,""));let n=e.split(".").slice(0,3),[s,o,i]=[(c=n[0])!=null?c:"0",(m=n[1])!=null?m:"0",(a=n[2])!=null?a:"0"];return{major:s,minor:o,patch:i,prerelease:t,build:r}},w=e=>parseInt(ee(e).major,10),D=(e,t)=>{let{major:r,minor:n,patch:s,prerelease:o}=ee(e),{major:i,minor:c,patch:m,prerelease:a}=ee(t);return r!==i?r>i?1:-1:n!==c?n>c?1:-1:s!==m?s>m?1:-1:o&&!a?-1:!o&&a?1:o&&a?o>a?1:o<a?-1:0:0};var Te=E(),K=(e,t)=>{Te.executeCommand("ReportSDK.traceSystem",{event:e,info:t})},x=(e,t,r)=>{Te.executeCommand("ReportSDK.traceSystemTimeline",{event:e,duration:t,extra:r})};var Ue="jolibox-sdk-loadermeta",De,U=JSON.parse((De=localStorage.getItem(Ue))!=null?De:"{}"),te=Date.now(),Ae=(e,t)=>e>t&&Math.abs(e-t)/(1e3*60*60*24)>=7,we=e=>!/^(Failed to fetch version|Couldn't find the requested file)/.test(e);function jt(){return l(this,null,function*(){let t=`${P?"https://stg-api.jolibox.com":"https://api.jolibox.com"}/api/fe-configs/js-sdk/version-metadata`;try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}}),{implement_version:n,bootstrap_version:s}=yield r.json(),o=R(y({},U),{timestamp:te});if(s){let{bootstrap_version:i}=U;if(!(i&&D(i,s)>=0)){let c=yield(yield fetch(re(s))).text();we(c)&&(o=R(y({},o),{bootstrap_version:s,bootstrap_script:c}))}}if(n){let{implement_version:i}=U;if(!(i&&D(i,n)>=0)){let c=yield(yield fetch(ne(n))).text();we(c)&&(o=R(y({},o),{implement_version:n,implement_script:c}))}}localStorage.setItem(Ue,JSON.stringify(o))}catch(r){console.warn("Failed to fetch loader metadata: ",r)}})}var Le=e=>{let{currentMajorVersion:t,currentVersion:r,bootstrapUrl:n,implementUrl:s}=e;function o(){let{bootstrap_version:a,bootstrap_script:h,timestamp:g}=U;if(a&&h&&g&&!Ae(te,g)&&w(a)==t&&D(a,r)>=0)return{script:h,type:"localscript"};try{let p=new XMLHttpRequest;return p.open("GET",n,!1),p.send(),{script:p.responseText,type:"fetch_from_cdn"}}catch(p){let u=new fe(`Bootstrap module faile to fetch ${p}`);S({err:`${u}`})}}function i(){var p;let a=Date.now();K("jsSdkBegin",{t:a}),A.startTime=a;let{script:h,type:g}=(p=o())!=null?p:{};if(h){let u=document.createElement("script");u.type="text/javascript",u.innerHTML=h,document.head.appendChild(u),x("bootstrapModuleLoaded",Date.now()-a,{type:g})}}function c(a){(g=>l(this,null,function*(){try{let p=new Blob([g],{type:"application/javascript"}),u=URL.createObjectURL(p),Ye=yield import(u);return URL.revokeObjectURL(u),Ye}catch(p){let u=new I(`implement module evaluate error in h5:${p} `);S({err:`${u}`})}}))(a)}function m(){let a=Date.now(),{implement_script:h,implement_version:g,timestamp:p}=U;if(h&&g&&p&&!Ae(te,p)&&w(g)==t&&D(g,r)>=0){c(h),x("implementModuleLoaded",Date.now()-a,{type:"loadscript"});return}let u=document.createElement("script");u.type="module",u.crossOrigin="anonymous",u.src=s,u.onload=()=>{x("implementModuleLoaded",Date.now()-a,{type:"fetch_from_cdn"})},document.head.appendChild(u)}return()=>{try{i(),m(),jt()}catch(a){let h=new I(`module evaluate error: ${a}`);S({err:`${h}`})}}};var ke=(e,t)=>{let r=s=>{let o=e({path:s});if(!o)throw`module ${s} load failed ${o}`;return o};function n(s){(i=>l(this,null,function*(){try{let c=new Blob([i],{type:"application/javascript"}),m=URL.createObjectURL(c),a=yield import(m);return URL.revokeObjectURL(m),a}catch(c){Z(new I(`implement module evaluate error in native:${c} `))}}))(s)}return()=>{try{let s=Date.now();K("jsSdkBegin",{t:s}),A.startTime=s;let o=r(t.bootstrapUrl),i=document.createElement("script");i.type="text/javascript",i.innerHTML=o,document.head.appendChild(i),x("bootstrapModuleLoaded",Date.now()-s,{type:"native"});let c=Date.now(),m=r(t.implementUrl);n(m),x("implementModuleLoaded",Date.now()-c,{type:"native"})}catch(s){console.error(`native load script error: ${s}`),Z(new I(`module load failed ${s}`))}}};var Jt="1.1.12",M=Jt,Pe=w(M),Ke=!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),Ft=Ke?e=>{let t=window.prompt("invoke",JSON.stringify({event:"loadScriptSync",paramsString:JSON.stringify(e)}));if(t){let{data:r}=JSON.parse(t);return r}}:void 0,re=e=>`https://cdn.jsdelivr.net/npm/@jolibox/bootstrap@${e}/dist/index.js`,ne=e=>`https://cdn.jsdelivr.net/npm/@jolibox/implement@${e}/dist/index.js`,Bt=e=>/^\d+\.\d+\.\d+$/.test(e),Me=Bt(M)?Pe:M,Oe=re(Me),Ce=ne(Me);function Vt(){Ke?ke(Ft,{bootstrapUrl:Oe,implementUrl:Ce})():Le({bootstrapUrl:Oe,implementUrl:Ce,currentMajorVersion:Pe,currentVersion:M})()}Vt();var Ne=E();function je(){return Ne.excuteCommandSync("API.getSystemInfoSync")}function Je(){return Ne.excuteCommandSync("API.env")}function Fe(e,t){var r;return(r=ge.config[e])==null?void 0:r[t]}function Be(e,t,r){let n=Array.isArray(t)?t:t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let o of n)if(s&&(typeof s=="object"||Array.isArray(s)))s=s[o];else return r;return s===void 0?r:s}var $e="1.1.12";function v(e){var c,m;let r=(m=(c=Je().data)==null?void 0:c.deviceInfo)==null?void 0:m.platform;if(!r)return!1;let[n,...s]=e.split(":"),o=Fe(r=="h5"?r:"native",n);if(!o)return!1;let i=o.version;return typeof i!="string"||z($e,i,"<")?!1:s.length===0?!0:Ve(o,s)||Ve(o.properties,s)}function Ve(e,t){if(!e)return!1;let r=Be(e,t);return r?de(r)?!0:W(r)?z($e,r,">="):!1:!1}var Ge=E();function He(){return l(this,null,function*(){return v("login")?yield Ge.executeCommand("API.login"):{code:"FAILURE",message:"[Jolibox SDK]login is not supported in this platform"}})}function We(){return l(this,null,function*(){return v("checkSession")?yield Ge.executeCommand("API.checkSession"):{code:"FAILURE",message:"[Jolibox SDK]checkSession is not supported in this platform"}})}var se=class{constructor(){this.loadFinished=()=>{let t=new Event("JOLIBOX_RUNTIME_LOAD_FINISHED");window.dispatchEvent(t)};this.notifyLoadProgress=t=>{let r=Math.ceil(t),n=new CustomEvent("JOLIBOX_RUNTIME_LOAD_PROGRESS",{detail:r});window.dispatchEvent(n)}}},ze=window.JoliboxRuntime||se;var f=class{constructor(){this.commands=E();this._emitter=new X}addEventListener(t,r){this._emitter.on(t,(...n)=>r(n[0]))}triggerEvent(t,r){this._emitter.emit(t,r)}canUse(t){return v(t)}canIUseIfThrow(t){if(!this.canUse(t))return{code:"FAILURE",message:`[Jolibox SDK] ${t} is not supported in this platform`}}};var $t="LifecycleSDK.onReady",N=class extends f{constructor(){super()}onReady(t){let r=n=>{t.call(this,n),this.triggerEvent($t,n)};this.commands.executeCommand("LifecycleSDK.onReady",r.bind(this))}exit(t){let r=this.canIUseIfThrow("lifeCycle.exit");if(r)return r;this.commands.executeCommand("LifecycleSDK.exit",t.onBeforeExit)}onJoliboxHide(t){this.commands.executeCommand("LifecycleSDK.onJoliboxHide",t.bind(this))}onJoliboxShow(t){this.commands.executeCommand("LifecycleSDK.onJoliboxShow",t.bind(this))}};var j=class extends f{getItem(t){return l(this,null,function*(){return yield this.commands.executeCommand("StorageSDK.getItem",t)})}setItem(t,r){return l(this,null,function*(){if(t.length>128)return{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key should be less than 128"};let n=typeof r=="string"?r:String(r);return t.length+n.length>1024?{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key and value should be less than 1024"}:yield this.commands.executeCommand("StorageSDK.setItem",t,r)})}removeItem(t){return l(this,null,function*(){return this.commands.executeCommand("StorageSDK.removeItem",t)})}clear(){return l(this,null,function*(){return this.commands.executeCommand("StorageSDK.clear")})}};var J=class extends f{constructor(){super();this.init=r=>{this.commands.executeCommand("AdsSDK.init",r)};this.adConfig=r=>{this.commands.executeCommand("AdsSDK.adConfig",r)};this.adBreak=r=>{this.commands.executeCommand("AdsSDK.adBreak",r)};this.adUnit=r=>{this.commands.executeCommand("AdsSDK.adUnit",r)}}};var F=class extends f{showKeyboard(t){let r=this.canIUseIfThrow("keyboard.showKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.showKeyboard",t)}updateKeyboard(t){let r=this.canIUseIfThrow("keyboard.updateKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.updateKeyboard",{value:t})}hideKeyboard(){let t=this.canIUseIfThrow("keyboard.hideKeyboard");if(t)return t;this.commands.executeCommand("KeyboardSDK.hideKeyboard")}};var B=class extends f{onLevelFinished(t,r,n){return l(this,null,function*(){let s=this.canIUseIfThrow("TaskTrackerSDK.onLevelFinished");return s?Promise.resolve(s):yield this.commands.executeCommand("TaskTrackerSDK.levelFinished",t,{result:r,duration:n})})}onTaskFinished(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskFinished");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskFinished",t,{duration:r}))})}onTaskEvent(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskEvent");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskEvent",t,r))})}onLevelUpgrade(t,r){return l(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onLevelUpgrade");return n||(yield this.commands.executeCommand("TaskTrackerSDK.levelUpgrade",t,r))})}onHistoryUserLevel(t){return l(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserLevel");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserLevel",t))})}onHistoryUserScore(t){return l(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserScore");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserScore",t))})}};var oe=class{constructor(){this.jssdkVersion="1.1.12";this.runtime=new ze;this.ads=new J;this.lifecycle=new N;this.storage=new j;this.keyboard=new F;this.task=new B;this.getSystemInfoSync=je.bind(this);this.canIUse=v.bind(this);this.login=He.bind(this);this.checkSession=We.bind(this);window.joliboxsdk={runtime:this.runtime,ads:this.ads,lifecycle:this.lifecycle,storage:this.storage,keyboard:this.keyboard,task:this.task}}};window.JoliboxSDK=oe;})();
|
|
1
|
+
"use strict";(()=>{var nt=Object.defineProperty,ot=Object.defineProperties;var st=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var me=(e,t,r)=>t in e?nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,L=(e,t)=>{for(var r in t||(t={}))it.call(t,r)&&me(e,r,t[r]);if(le)for(var r of le(t))at.call(t,r)&&me(e,r,t[r]);return e},A=(e,t)=>ot(e,st(t));var m=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{c(r.next(l))}catch(i){o(i)}},a=l=>{try{c(r.throw(l))}catch(i){o(i)}},c=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,a);c((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}var z=Object.defineProperty,ct=Object.defineProperties,lt=Object.getOwnPropertyDescriptor,mt=Object.getOwnPropertyDescriptors,de=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable,ue=(e,t,r)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fe=(e,t)=>{for(var r in t||(t={}))dt.call(t,r)&&ue(e,r,t[r]);if(de)for(var r of de(t))ut.call(t,r)&&ue(e,r,t[r]);return e},pt=(e,t)=>ct(e,mt(t)),ft=(e,t)=>{for(var r in t)z(e,r,{get:t[r],enumerable:!0})},he=(e,t,r,n)=>{for(var o=n>1?void 0:n?lt(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(o=(n?a(t,r,o):a(o))||o);return n&&o&&z(t,r,o),o},ht=(e,t,r)=>new Promise((n,o)=>{var s=l=>{try{c(r.next(l))}catch(i){o(i)}},a=l=>{try{c(r.throw(l))}catch(i){o(i)}},c=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,a);c((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}function gt(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function q(e){return typeof e=="string"}function ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function _t(e){return typeof e=="undefined"}function yt(e){return _t(e)||e===null}function Et(e){return typeof e=="function"}function _e(e){let t=e,r=null,n=function(...o){return r||(r=new t(...o)),r};return n.prototype=t.prototype,n}var vt=(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))(vt||{}),bt=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}},ye=class extends bt{constructor(){super(...arguments),this.kind="INTERNAL_ERROR"}};var Ee=class extends ye{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_FETCH_ERROR",this.priority="P0"}},b=class extends ye{constructor(){super(...arguments),this.name="INTERNAL_JS_MODULE_EVAL_ERROR",this.priority="P0"}};function S(e){return(...t)=>{var r,n;((n=(r=globalThis.VConsole)==null?void 0:r[e])!=null?n:globalThis.console[e])(...t)}}var St={log:S("log"),warn:S("warn"),info:S("info"),error:S("error"),debug:S("debug")};Object.assign(globalThis,{logger:St});var ve=Symbol.for("Jolibox.canIUseMap"),xt={};globalThis[ve]=xt;var be={get config(){return globalThis[ve]}};function Y(e,t,r){let n=0;if(e!==t){let o=e.split("."),s=t.split("."),a=Math.max(o.length,s.length);for(let c=0;c<a;c++){let l=parseInt(o[c],10)||0,i=parseInt(s[c],10)||0;if(l>i){n=1;break}else if(l<i){n=-1;break}}}if(!r)return n;switch(r){case">":return n>0;case"<":return n<0;case"=":return n===0;case">=":return n>=0;case"<=":return n<=0;default:return!1}}var Q=(e=>(e[e.System=1e3]="System",e[e.ErrorTrace=1001]="ErrorTrace",e[e.UserDefined=1002]="UserDefined",e))(Q||{}),X=(e=>(e.MiniGame="mini-game",e.MiniDrama="mini-drama",e.App="app",e.WebSDK="web-sdk",e.AppSDK="app-sdk",e))(X||{}),Rt=(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))(Rt||{}),pe=["name","params"],wt=["name","type","location","target","extra","timestamp","userId"],It=["platform","os","appVersion","appId","model","brand","uuid","jsSdkVersion","extra"];function O(e,t){return t.map(r=>{if(r==="params"&&e[r]){let n=e[r];return Object.keys(n).reduce((o,s)=>(o[s]=String(n[s]),o),{})}return e[r]})}function Tt(e){let t=e.location?O(e.location,pe):null,r=e.target?O(e.target,pe):null;return O(pt(fe({},e),{location:t,target:r}),wt)}function Se(e){let t=e.events.map(n=>Tt(n)),r=O(e.device,It);return[e.protocolVersion,t,r,e.project]}var Lt=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)});function Z(){try{if(window.__joliboxLocalStorage__)return window.__joliboxLocalStorage__;let e=Object.getOwnPropertyDescriptor(window,"localStorage");if(e&&e.get){let n=e.get.call(window);return window.__joliboxLocalStorage__=n,n}if(e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window),"localStorage"),e&&e.get)return e.get.call(window);let t=Window.prototype,r=Object.getOwnPropertyDescriptor(t,"localStorage");if(r&&r.get){let n=r.get.call(window);return window.__joliboxLocalStorage__=n,n}return localStorage}catch(e){return console.warn("Failed to get original localStorage, fallback to default implementation",e),localStorage}}Z();var D={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")},At=()=>D.isiOS?"iOS":D.isAndroid?"Android":D.isMac?"Mac":D.isFacebook?"Facebook":"PC",Dt="device_id",Ut="advertising_id",xe=e=>(window.__joliboxLocalStorage__.getItem(e)||window.__joliboxLocalStorage__.setItem(e,Lt()),window.__joliboxLocalStorage__.getItem(e)),Ot=()=>new URLSearchParams(window.location.search).get("deviceId")||xe(Dt),Pt=()=>xe(Ut),kt=e=>e.charAt(0).toUpperCase()+e.slice(1),Ct=()=>{var e;let t=new URLSearchParams(window.location.search);return kt((e=t.get("utm_source"))!=null?e:"")||"JoliboxSDK"},Re=e=>{let t="JoliboxWebSDK",r=At(),n=navigator.language,o=Ot(),s=Pt();return`${t} (${Ct()}${r}; UnknownModel; UnknownSystemVersion; ${n}) uuid/${o} adid/${s} version/${e||""}`},$=class G{constructor(t){this.element=t,this.next=G.Undefined,this.prev=G.Undefined}};$.Undefined=new $(void 0);var d=$,Kt=class{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let e=this._first;for(;e!==d.Undefined;){let t=e.next;e.prev=d.Undefined,e.next=d.Undefined,e=t}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let r=new d(e);if(this._first===d.Undefined)this._first=r,this._last=r;else if(t){let o=this._last;this._last=r,r.prev=o,o.next=r}else{let o=this._first;this._first=r,r.next=o,o.prev=r}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(r))}}shift(){if(this._first!==d.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==d.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==d.Undefined&&e.next!==d.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===d.Undefined&&e.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):e.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):e.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==d.Undefined;)yield e.element,e=e.next}},Mt=0,U=class{constructor(e){this.value=e,this.id=Mt++}},x=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 U&&(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,s,a,c,l;if(this._disposed)return()=>{console.info("[Jolibox SDK] Emitter is _disposed")};r&&(t=t.bind(r));let i=new U(t);this._listeners?this._listeners instanceof U?this._listeners=[this._listeners,i]:this._listeners.push(i):((o=(n=this.options)==null?void 0:n.onWillAddFirstListener)==null||o.call(n,this),this._listeners=i,(a=(s=this.options)==null?void 0:s.onDidFirstListener)==null||a.call(s,this)),(l=(c=this.options)==null?void 0:c.onDidAddListener)==null||l.call(c,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 U?this._deliver(this._listeners,e):this._listeners.forEach(t=>this._deliver(t,e)))}hasListeners(){return this._size>0}},ee=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 x,o=a=>t(...a.args);this.listerHandlerMap.set(t,o),n.event(o),this.listeners.set(e,n);let s=this.cachedEventQueue.get(e);if(s)for(;s.size>0;)n.fire(fe({event:e},s.shift()))}off(e,t){let r=this.listeners.get(e);if(r){let n=this.listerHandlerMap.get(t);r.dispose(n)}}emit(e,...t){let r=this.listeners.get(e);if(r)r.fire({event:e,args:t});else{let n=this.cachedEventQueue.get(e);n||(n=new Kt,this.cachedEventQueue.set(e,n)),n.push({args:t})}}},H={};ft(H,{None:()=>jt,filter:()=>Jt,once:()=>we,toPromise:()=>Nt});var jt=()=>{console.log("[Jolibox SDK] None Event")};function Nt(e){return new Promise(t=>we(e)(t))}function we(e){return(t,r=null)=>{let n=!1;return e(o=>{if(!n)return n=!0,t.call(r,o)},null)}}function Jt(e,t){return(r=>{let n,o={onWillAddFirstListener(){n=r(s.fire,s)}},s=new x(o);return s.event})((r,n=null)=>e(o=>t(o)&&r.call(n,o),null))}var V=Symbol.for("Jolibox.hostEmitter"),Ft=()=>{let e=new ee;return globalThis[V]||(globalThis[V]={on:e.on.bind(e),off:e.off.bind(e),emit:e.emit.bind(e)}),globalThis[V]},Ie=Ft();function Bt(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)Vt(e[n],t[n])}function Vt(e,t){if(q(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Et(t)){try{if(e instanceof t)return}catch(r){}if(!yt(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")}}var P=class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new x,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 Bt(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}};P=he([_e],P);var W=class{constructor(){this._onWillExecuteCommand=new x,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this._onDidExecuteCommand=new x,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this.registry=new P,this._starActivation=null}_activateStar(){return this._starActivation||(this._starActivation=gt(3e4)),this._starActivation}executeCommand(e,...t){return ht(this,null,function*(){return this.registry.getCommand(e)?this._tryExecuteCommand(e,t):(yield Promise.all([Promise.race([this._activateStar(),H.toPromise(H.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}}};W=he([_e],W);var Te=Symbol.for("Jolibox.commands");function $t(){return typeof globalThis!="undefined"?globalThis[Te]:void 0}function Gt(e){typeof globalThis!="undefined"&&(globalThis[Te]=e)}function h(){let e=$t();if(e)return e;let t=new P,r=new W,n={registerCommand(o,s,a){t.registerCommand({id:o,handler:s,metadata:a})},executeCommand(o,...s){return r.executeCommand(o,...s)},excuteCommandSync(o,...s){return r.executeCommandThowErr(o,...s)}};return Gt(n),n}var k=new URLSearchParams(window.location.search).get("joliboxEnv")==="staging";function Ht(){let e=new URLSearchParams(window.location.search),t={};return e.forEach((r,n)=>{t[n]=r}),{name:"GamePage",params:t}}function Wt(){return{platform:1e3,os:"h5",appVersion:"1.1.13-beta.10",appId:"1",model:"UnknownModel",brand:"UnknownBrand",uuid:"1",jsSdkVersion:"1.1.13-beta.10",extra:{}}}var Le={default:{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.jolibox.com":{test:"https://stg-collect.jolibox.com",prod:"https://collect.jolibox.com"},"oss.pico-game.com":{test:"https://stg-collect.pico-game.com",prod:"https://collect.pico-game.com"}},zt=()=>{var t;let e=(t=Le[window.location.host])!=null?t:Le.default;return k?e.test:e.prod},qt=zt(),De=e=>{let t=new AbortController;return setTimeout(()=>t.abort(),e),t.signal},Ae;(Ae=AbortSignal.timeout)!=null||(AbortSignal.timeout=De);var Yt=()=>{var t;return(t=new URLSearchParams(window.location.search).get("joliSource"))!=null?t:null},Qt=Yt(),Xt=e=>m(void 0,null,function*(){try{let r=`${qt}/report`,n=Re("1.1.13-beta.10"),o=Qt,s={"Content-Type":"application/json"};return n&&(s["x-user-agent"]=n),o&&(s["x-joli-source"]=o),yield fetch(r,{method:"POST",headers:s,body:JSON.stringify(e),signal:De(5e3)})}catch(t){return console.error("Error posting to reporter:",t),null}});function E(e){return m(this,null,function*(){try{let t={name:"globalJsError",type:Q.ErrorTrace,location:Ht(),target:null,extra:e,timestamp:Date.now(),userId:null},r=Wt(),o={protocolVersion:"1.0.0",events:[t],device:r,project:X.WebSDK},s=Se(o);yield Xt(s)}catch(t){console.error("Failed to track error:",t)}})}document.addEventListener("DOMContentLoaded",()=>Ie.emit("onDocumentReady",R.startTime));var Zt=()=>{let e=0;return{set startTime(t){e=t},get startTime(){return e}}},R=Zt(),Ue=h(),te=e=>{Ue.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify(e)}}).catch(t=>{console.error(`Fallback report: ${t} ${JSON.stringify(e)}`),E({err:JSON.stringify({message:t.message,source:t.source,lineno:t.lineno,colno:t.colno,error:t.error})})})},re=te;window.addEventListener("unhandledrejection",te.bind(void 0));window.addEventListener("error",te.bind(void 0));window.onerror=(e,t,r,n,o)=>{Ue.executeCommand("ReportSDK.traceSystem",{event:"globalJsError",info:{err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:o})}}).catch(s=>{E({err:JSON.stringify({message:e,source:t,lineno:r,colno:n,error:o})})})};var ne=e=>{var c,l,i;let t=e.split("-")[1];t&&(e=e.replace(`-${t}`,""));let r=e.split("+")[1];r&&(e=e.replace(`+${r}`,""));let n=e.split(".").slice(0,3),[o,s,a]=[(c=n[0])!=null?c:"0",(l=n[1])!=null?l:"0",(i=n[2])!=null?i:"0"];return{major:o,minor:s,patch:a,prerelease:t,build:r}},w=e=>parseInt(ne(e).major,10),I=(e,t)=>{let{major:r,minor:n,patch:o,prerelease:s}=ne(e),{major:a,minor:c,patch:l,prerelease:i}=ne(t);return r!==a?r>a?1:-1:n!==c?n>c?1:-1:o!==l?o>l?1:-1:s&&!i?-1:!s&&i?1:s&&i?s>i?1:s<i?-1:0:0};var Oe=h(),C=(e,t)=>{Oe.executeCommand("ReportSDK.traceSystem",{event:e,info:t})},v=(e,t,r)=>{Oe.executeCommand("ReportSDK.traceSystemTimeline",{event:e,duration:t,extra:r})};Z();var Ke="jolibox-sdk-loadermeta",Ce,T=JSON.parse((Ce=window.__joliboxLocalStorage__.getItem(Ke))!=null?Ce:"{}"),oe=Date.now(),Pe=(e,t)=>e>t&&Math.abs(e-t)/(1e3*60*60*24)>=7,ke=e=>!/^(Failed to fetch version|Couldn't find the requested file)/.test(e);function er(){return m(this,null,function*(){let t=`${k?"https://stg-api.jolibox.com":"https://api.jolibox.com"}/api/fe-configs/js-sdk/version-metadata`;try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}}),{implement_version:n,bootstrap_version:o}=yield r.json(),s=A(L({},T),{timestamp:oe});if(o){let{bootstrap_version:a}=T;if(!(a&&I(a,o)>=0)){let c=yield(yield fetch(se(o))).text();ke(c)&&(s=A(L({},s),{bootstrap_version:o,bootstrap_script:c}))}}if(n){let{implement_version:a}=T;if(!(a&&I(a,n)>=0)){let c=yield(yield fetch(ie(n))).text();ke(c)&&(s=A(L({},s),{implement_version:n,implement_script:c}))}}window.__joliboxLocalStorage__.setItem(Ke,JSON.stringify(s))}catch(r){console.warn("Failed to fetch loader metadata: ",r)}})}var Me=e=>{let{currentMajorVersion:t,currentVersion:r,bootstrapUrl:n,implementUrl:o}=e;function s(){let{bootstrap_version:i,bootstrap_script:g,timestamp:_}=T;if(i&&g&&_&&!Pe(oe,_)&&w(i)==t&&I(i,r)>=0)return{script:g,type:"localscript"};try{let p=new XMLHttpRequest;return p.open("GET",n,!1),p.send(),{script:p.responseText,type:"fetch_from_cdn"}}catch(p){let u=new Ee(`Bootstrap module faile to fetch ${p}`);E({err:`${u}`})}}function a(){var p;let i=Date.now();C("jsSdkBegin",{t:i}),R.startTime=i;let{script:g,type:_}=(p=s())!=null?p:{};if(g){let u=document.createElement("script");u.type="text/javascript",u.innerHTML=g,document.head.appendChild(u),v("bootstrapModuleLoaded",Date.now()-i,{type:_})}}function c(i){(_=>m(this,null,function*(){try{let p=new Blob([_],{type:"application/javascript"}),u=URL.createObjectURL(p),rt=yield import(u);return URL.revokeObjectURL(u),rt}catch(p){let u=new b(`implement module evaluate error in h5:${p} `);E({err:`${u}`})}}))(i)}function l(){let i=Date.now(),{implement_script:g,implement_version:_,timestamp:p}=T;if(g&&_&&p&&!Pe(oe,p)&&w(_)==t&&I(_,r)>=0){c(g),v("implementModuleLoaded",Date.now()-i,{type:"loadscript"});return}let u=document.createElement("script");u.type="module",u.crossOrigin="anonymous",u.src=o,u.onload=()=>{v("implementModuleLoaded",Date.now()-i,{type:"fetch_from_cdn"})},document.head.appendChild(u)}return()=>{try{a(),l(),er()}catch(i){let g=new b(`module evaluate error: ${i}`);E({err:`${g}`})}}};var je=(e,t)=>{let r=o=>{let s=e({path:o});if(!s)throw`module ${o} load failed ${s}`;return s};function n(o){(a=>m(this,null,function*(){try{let c=new Blob([a],{type:"application/javascript"}),l=URL.createObjectURL(c),i=yield import(l);return URL.revokeObjectURL(l),i}catch(c){re(new b(`implement module evaluate error in native:${c} `))}}))(o)}return()=>{try{let o=Date.now();C("jsSdkBegin",{t:o}),R.startTime=o;let s=r(t.bootstrapUrl),a=document.createElement("script");a.type="text/javascript",a.innerHTML=s,document.head.appendChild(a),v("bootstrapModuleLoaded",Date.now()-o,{type:"native"});let c=Date.now(),l=r(t.implementUrl);n(l),v("implementModuleLoaded",Date.now()-c,{type:"native"})}catch(o){console.error(`native load script error: ${o}`),re(new b(`module load failed ${o}`))}}};var tr="1.1.13-beta.10",K=tr,Fe=w(K),Be=!!(navigator.userAgent||"").includes("JoliboxPlatformSDK"),rr=Be?e=>{let t=window.prompt("invoke",JSON.stringify({event:"loadScriptSync",paramsString:JSON.stringify(e)}));if(t){let{data:r}=JSON.parse(t);return r}}:void 0,se=e=>`https://jsdelivr.jolibox.com/npm/@jolibox/bootstrap@${e}/dist/index.js`,ie=e=>`https://jsdelivr.jolibox.com/npm/@jolibox/implement@${e}/dist/index.js`,nr=e=>/^\d+\.\d+\.\d+$/.test(e),Ve=nr(K)?Fe:K,Ne=se(Ve),Je=ie(Ve);function or(){Be?je(rr,{bootstrapUrl:Ne,implementUrl:Je})():Me({bootstrapUrl:Ne,implementUrl:Je,currentMajorVersion:Fe,currentVersion:K})()}or();var $e=h();function Ge(){return $e.excuteCommandSync("API.getSystemInfoSync")}function He(){return $e.excuteCommandSync("API.env")}function We(e,t){var r;return(r=be.config[e])==null?void 0:r[t]}function ze(e,t,r){let n=Array.isArray(t)?t:t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let s of n)if(o&&(typeof o=="object"||Array.isArray(o)))o=o[s];else return r;return o===void 0?r:o}var Ye="1.1.13-beta.10";function y(e){var c,l;let r=(l=(c=He().data)==null?void 0:c.deviceInfo)==null?void 0:l.platform;if(!r)return!1;let[n,...o]=e.split(":"),s=We(r=="h5"?r:"native",n);if(!s)return!1;let a=s.version;return typeof a!="string"||Y(Ye,a,"<")?!1:o.length===0?!0:qe(s,o)||qe(s.properties,o)}function qe(e,t){if(!e)return!1;let r=ze(e,t);return r?ge(r)?!0:q(r)?Y(Ye,r,">="):!1:!1}var Qe=h();function Xe(){return m(this,null,function*(){return y("login")?yield Qe.executeCommand("API.login"):{code:"FAILURE",message:"[Jolibox SDK]login is not supported in this platform"}})}function Ze(){return m(this,null,function*(){return y("checkSession")?yield Qe.executeCommand("API.checkSession"):{code:"FAILURE",message:"[Jolibox SDK]checkSession is not supported in this platform"}})}var sr=h();function et(e){return m(this,null,function*(){return y("request")?yield sr.executeCommand("HttpSDK.request",e):{code:"FAILURE",message:"[Jolibox SDK]request is not supported in this platform"}})}var ae=class{constructor(){this.loadFinished=()=>{let t=new Event("JOLIBOX_RUNTIME_LOAD_FINISHED");window.dispatchEvent(t)};this.notifyLoadProgress=t=>{let r=Math.ceil(t),n=new CustomEvent("JOLIBOX_RUNTIME_LOAD_PROGRESS",{detail:r});window.dispatchEvent(n)}}},tt=window.JoliboxRuntime||ae;var f=class{constructor(){this.commands=h();this._emitter=new ee}addEventListener(t,r){this._emitter.on(t,(...n)=>r(n[0]))}triggerEvent(t,r){this._emitter.emit(t,r)}canUse(t){return y(t)}canIUseIfThrow(t){if(!this.canUse(t))return{code:"FAILURE",message:`[Jolibox SDK] ${t} is not supported in this platform`}}};var ir="LifecycleSDK.onReady",M=class extends f{constructor(){super()}onReady(t){let r=n=>{t.call(this,n),this.triggerEvent(ir,n)};this.commands.executeCommand("LifecycleSDK.onReady",r.bind(this))}exit(t){let r=this.canIUseIfThrow("lifeCycle.exit");if(r)return r;this.commands.executeCommand("LifecycleSDK.exit",t.onBeforeExit,t.shouldStay)}onJoliboxHide(t){this.commands.executeCommand("LifecycleSDK.onJoliboxHide",t.bind(this))}onJoliboxShow(t){this.commands.executeCommand("LifecycleSDK.onJoliboxShow",t.bind(this))}};var j=class extends f{getItem(t){return m(this,null,function*(){return yield this.commands.executeCommand("StorageSDK.getItem",t)})}setItem(t,r){return m(this,null,function*(){if(t.length>128)return{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key should be less than 128"};let n=typeof r=="string"?r:String(r);return t.length+n.length>1024?{code:"PARAMETER_ERROR",message:"[SDK] cloud storage setItem error: length of key and value should be less than 1024"}:yield this.commands.executeCommand("StorageSDK.setItem",t,r)})}removeItem(t){return m(this,null,function*(){return this.commands.executeCommand("StorageSDK.removeItem",t)})}clear(){return m(this,null,function*(){return this.commands.executeCommand("StorageSDK.clear")})}};var N=class extends f{constructor(){super();this.init=r=>{this.commands.executeCommand("AdsSDK.init",r)};this.adConfig=r=>{this.commands.executeCommand("AdsSDK.adConfig",r)};this.adBreak=r=>{this.commands.executeCommand("AdsSDK.adBreak",r)};this.adUnit=r=>{this.commands.executeCommand("AdsSDK.adUnit",r)}}};var J=class extends f{showKeyboard(t){let r=this.canIUseIfThrow("keyboard.showKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.showKeyboard",t)}updateKeyboard(t){let r=this.canIUseIfThrow("keyboard.updateKeyboard");if(r)return r;this.commands.executeCommand("KeyboardSDK.updateKeyboard",{value:t})}hideKeyboard(){let t=this.canIUseIfThrow("keyboard.hideKeyboard");if(t)return t;this.commands.executeCommand("KeyboardSDK.hideKeyboard")}};var F=class extends f{onLevelFinished(t,r,n){return m(this,null,function*(){let o=this.canIUseIfThrow("TaskTrackerSDK.onLevelFinished");return o?Promise.resolve(o):yield this.commands.executeCommand("TaskTrackerSDK.levelFinished",t,{result:r,duration:n})})}onTaskFinished(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskFinished");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskFinished",t,{duration:r}))})}onTaskEvent(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onTaskEvent");return n||(yield this.commands.executeCommand("TaskTrackerSDK.taskEvent",t,r))})}onLevelUpgrade(t,r){return m(this,null,function*(){let n=this.canIUseIfThrow("TaskTrackerSDK.onLevelUpgrade");return n||(yield this.commands.executeCommand("TaskTrackerSDK.levelUpgrade",t,r))})}onHistoryUserLevel(t){return m(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserLevel");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserLevel",t))})}onHistoryUserScore(t){return m(this,null,function*(){let r=this.canIUseIfThrow("TaskTrackerSDK.onHistoryUserScore");return r||(yield this.commands.executeCommand("TaskTrackerSDK.historyUserScore",t))})}};var B=class extends f{openSchema(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.openSchema");return r||(yield this.commands.executeCommand("RouterSDK.openSchema",t))})}openPage(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.openPage");return r||(yield this.commands.executeCommand("RouterSDK.openPage",t))})}closePage(t){return m(this,null,function*(){let r=this.canIUseIfThrow("router.closePage");return r||(yield this.commands.executeCommand("RouterSDK.closePage",t))})}};var ce=class{constructor(){this.jssdkVersion="1.1.13-beta.10";this.runtime=new tt;this.ads=new N;this.lifecycle=new M;this.storage=new j;this.keyboard=new J;this.task=new F;this.router=new B;this.getSystemInfoSync=Ge.bind(this);this.canIUse=y.bind(this);this.login=Xe.bind(this);this.checkSession=Ze.bind(this);this.request=et.bind(this);window.joliboxsdk={runtime:this.runtime,ads:this.ads,lifecycle:this.lifecycle,storage:this.storage,keyboard:this.keyboard,task:this.task,router:this.router}}};window.JoliboxSDK=ce;})();
|