@goodgamestudios/cxf-webshop 7.1.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";(()=>{var Ze=Object.create;var ce=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var qe=(e,t)=>()=>(e&&(t=e(e=0)),t);var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var We=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ke(t))!Ye.call(e,i)&&i!==r&&ce(e,i,{get:()=>t[i],enumerable:!(s=Je(t,i))||s.enumerable});return e};var B=(e,t,r)=>(r=e!=null?Ze(Qe(e)):{},We(t||!e||!e.__esModule?ce(r,"default",{value:e,enumerable:!0}):r,e));var a,o=qe(()=>{a={env:{BASE_URL:{"12":"https://canvas.goodgamestudios.com","15":"https://canvas.goodgamestudios.com","16":"https://canvas.goodgamestudios.com",default:"https://canvas.goodgamestudios.com"},CANVAS_AGENT_URL:"https://app.canvas.stillfront.com/agent.js",CANVAS_APP_ID_BY_GAME:{"12":"","15":{google:"a9510af7-9092-4f2f-8c09-4e9dde1a0d91",stillpay:"729bbc22-2cc0-4025-bcda-05aa01b41db2"},"16":""},CUSTOMIZATION_URL_TEMPLATE:"",CUSTOMIZATION_URL:"https://cdn.jsdelivr.net/npm/@lemonstand.org/config-goodgamestudios/dist/goodgamestudios-{0}.json"}}});var me=T((Xt,ue)=>{o();var N=1e3,L=N*60,U=L*60,_=U*24,rt=_*7,ot=_*365.25;ue.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return nt(e);if(r==="number"&&isFinite(e))return t.long?it(e):st(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function nt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),s=(t[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return r*ot;case"weeks":case"week":case"w":return r*rt;case"days":case"day":case"d":return r*_;case"hours":case"hour":case"hrs":case"hr":case"h":return r*U;case"minutes":case"minute":case"mins":case"min":case"m":return r*L;case"seconds":case"second":case"secs":case"sec":case"s":return r*N;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function st(e){var t=Math.abs(e);return t>=_?Math.round(e/_)+"d":t>=U?Math.round(e/U)+"h":t>=L?Math.round(e/L)+"m":t>=N?Math.round(e/N)+"s":e+"ms"}function it(e){var t=Math.abs(e);return t>=_?V(e,t,_,"day"):t>=U?V(e,t,U,"hour"):t>=L?V(e,t,L,"minute"):t>=N?V(e,t,N,"second"):e+" ms"}function V(e,t,r,s){var i=t>=r*1.5;return Math.round(e/r)+" "+s+(i?"s":"")}});var ge=T((Bt,le)=>{o();function at(e){r.debug=r,r.default=r,r.coerce=E,r.disable=I,r.enable=i,r.enabled=x,r.humanize=me(),r.destroy=v,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let c=0;for(let l=0;l<f.length;l++)c=(c<<5)-c+f.charCodeAt(l),c|=0;return r.colors[Math.abs(c)%r.colors.length]}r.selectColor=t;function r(f){let c,l=null,C,A;function m(...g){if(!m.enabled)return;let S=m,h=Number(new Date),O=h-(c||h);S.diff=O,S.prev=c,S.curr=h,c=h,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let w=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(F,te)=>{if(F==="%%")return"%";w++;let ae=r.formatters[te];if(typeof ae=="function"){let $e=g[w];F=ae.call(S,$e),g.splice(w,1),w--}return F}),r.formatArgs.call(S,g),(S.log||r.log).apply(S,g)}return m.namespace=f,m.useColors=r.useColors(),m.color=r.selectColor(f),m.extend=s,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>l!==null?l:(C!==r.namespaces&&(C=r.namespaces,A=r.enabled(f)),A),set:g=>{l=g}}),typeof r.init=="function"&&r.init(m),m}function s(f,c){let l=r(this.namespace+(typeof c>"u"?":":c)+f);return l.log=this.log,l}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let c=(typeof f=="string"?f:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let l of c)l[0]==="-"?r.skips.push(l.slice(1)):r.names.push(l)}function u(f,c){let l=0,C=0,A=-1,m=0;for(;l<f.length;)if(C<c.length&&(c[C]===f[l]||c[C]==="*"))c[C]==="*"?(A=C,m=l,C++):(l++,C++);else if(A!==-1)C=A+1,m++,l=m;else return!1;for(;C<c.length&&c[C]==="*";)C++;return C===c.length}function I(){let f=[...r.names,...r.skips.map(c=>"-"+c)].join(",");return r.enable(""),f}function x(f){for(let c of r.skips)if(u(f,c))return!1;for(let c of r.names)if(u(f,c))return!0;return!1}function E(f){return f instanceof Error?f.stack||f.message:f}function v(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}le.exports=at});var pe=T((y,j)=>{o();y.formatArgs=ft;y.save=dt;y.load=ut;y.useColors=ct;y.storage=mt();y.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();y.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ct(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ft(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+j.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,s=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(s=r))}),e.splice(s,0,t)}y.log=console.debug||console.log||(()=>{});function dt(e){try{e?y.storage.setItem("debug",e):y.storage.removeItem("debug")}catch{}}function ut(){let e;try{e=y.storage.getItem("debug")||y.storage.getItem("DEBUG")}catch{}return!e&&typeof a<"u"&&"env"in a&&(e=a.env.DEBUG),e}function mt(){try{return localStorage}catch{}}j.exports=ge()(y);var{formatters:lt}=j.exports;lt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var re=T((Yt,Ie)=>{"use strict";o();var $=window&&window.CXF;Ie.exports=new Promise(function(e,t){if(window||t(),$)return e($);window.addEventListener("cxf.initialized",function(r){$=r.cxf,e($)},{capture:!0,once:!0,passive:!0})})});var Te=T((Oe,oe)=>{o();(function(){var e={};function t(m,g){return i(m)||s(m,g)||r()}function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function s(m,g){var S=[],h=!0,O=!1,w=void 0;try{for(var ee,F=m[Symbol.iterator]();!(h=(ee=F.next()).done)&&(S.push(ee.value),!g||S.length!==g);h=!0);}catch(te){O=!0,w=te}finally{try{h||F.return==null||F.return()}finally{if(O)throw w}}return S}function i(m){if(Array.isArray(m))return m}var u=0,I=1,x=2,E={1:["poker","poker2","poker"],12:["empire","castle","em"],15:["bigfarm","ranch","bf"],16:["empirefourkingdoms","fourkingdoms","e4k"],23:["legendsofhonor",void 0,"loh"],41:["empiremillenniumwars",void 0,"emmw"]},v=Object.entries(E).reduce(function(m,g){var S=t(g,2),h=S[0],O=S[1];return h=parseInt(h,10),m[h]=h,O.forEach(function(w){m[w]=h}),m},{}),f=function(m){m=m.toString().toLowerCase();var g=v[m];return g&&0|g},c=function(m,g){return(g=v[g])&&E[g][m]},l=c.bind(null,u),C=c.bind(null,I),A=c.bind(null,x);e={id:f,name:l,codename:C,acronym:A},typeof Oe=="object"&&typeof oe<"u"?oe.exports=e:typeof define=="function"&&define.amd&&define(function(){return e})})()});var ne=T(z=>{"use strict";o();Object.defineProperty(z,"__esModule",{value:!0});z.CxfEvents=void 0;var vt;(function(e){e.Token="cxf.token",e.Login="cxf.login",e.Signup="cxf.signup",e.GameEventUpdate="cxf.gameEvent.update",e.GameEventAdd="cxf.gameEvent.add",e.GameEventRemove="cxf.gameEvent.remove",e.XpChanged="cxf.xp.changed",e.LevelChanged="cxf.level.changed",e.LegendLevelChanged="cxf.legendLevel.changed",e.Push="cxf.push",e.OpenIGS="cxf.igs.open",e.JoinTempServer="cxf.join.temp.server",e.Subscription="cxf.subscription",e.RewardedAdStart="cxf.rewardedad.start",e.RewardedAdDone="cxf.rewardedad.done"})(vt=z.CxfEvents||(z.CxfEvents={}))});o();o();o();o();o();function fe(e){return{isCanvas:!1,playerId:e.playerId,instanceId:e.instanceId,networkId:e.networkId,gameId:e.gameId,gameApi:e.gameApi,language:e.language,token:e.token,zoneId:e.zoneId,gameEvents:[],xp:0,level:0,legendLevel:void 0,countryCode:"",lastPurchaseTab:"",subscriptionDisabled:!1,isTempServer:!1,customizationSuffix:"",resolvedCustomizationUrl:"",sourceId:"unknown",unreadOfferNotifsCountUrl:""}}function H({legendLevel:e,level:t}){return{legendLevel:e,level:t}}o();o();var tt=e=>{let t=e.match(/^https?:\/\/([^#/?]+)(?:[#/?]|$)/i);if(!t||!t[1])return;let r=t[1].match(/[^.]+\.[^.]+$/);if(r)return r[0]},de=e=>tt(e);o();o();var Ce=B(pe()),gt=(0,Ce.default)("CXF-WEBSHOP"),d=(e,...t)=>gt(e,...t),b=(...e)=>console.error("%c CXF-WEBSHOP ->","background: #ff0000; color: #fff",...e);var X=e=>(...t)=>{try{return e(...t)}catch(r){b(r),pt(r)}},pt=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_ERROR,e)};o();var Ct=(e,t)=>{let r=setTimeout(e,t);return()=>clearTimeout(r)},It=(e,t)=>r=>new Promise((s,i)=>{let u=Ct(()=>{i(new Error(`Timeout has exceeded ${t}`))},t);e(r).then(I=>{s(I),u()}).catch(i)}),ve=e=>new Promise((t,r)=>{let s=document.createElement("script");s.type="text/javascript",s.type="module",s.async=!0,s.src=e,s.addEventListener("load",t),s.addEventListener("error",r),document.body.append(s)}),Wt=It(()=>re(),1e4);o();var Se=e=>e.reduce((t,r,s)=>(t.offers.push({id:r,tier:0,productIds:{googleplay:r}}),t),{category:"all",offers:[],eventName:"lemonstand.nativePrice",eventType:"bubble"});o();var he={itunes:"apple",Android:"google",googleplay:"google",amazonmobile:"amazon",facebook:"facebook",samsung:"samsung",huawei:"huawei"},Ee=(e="stillpay")=>{let t=navigator.userAgent.match(/(itunes)|(googleplay)|(Android)|(amazonmobile)|(facebook)|(samsung)|(huawei)/g);if(!t)return e;let r=t[0];return Object.prototype.hasOwnProperty.call(he,r)?he[r]:e},ye={apple:"itunes",google:"googleplay",amazon:"amazonmobile",facebook:"facebook",samsung:"samsung",huawei:"huawei"},be=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(ye,e))throw new Error(`Platform ${e} is not supported`);let r=Object.create(null);return r[ye[e]]=t,r};o();function xe(e){return Object.entries(e).filter(([t,r])=>r!=null).map(([t,r])=>`${t}=${encodeURIComponent(r)}`).join("&")}var we=()=>ggsGetQueryParameters(),Ae=()=>ggsGetReferrer();o();o();var P=256,J=[],Z;for(;P--;)J[P]=(P+256).toString(16).substring(1);function Fe(){var e=0,t,r="";if(!Z||P+16>256){for(Z=Array(e=256);e--;)Z[e]=256*Math.random()|0;e=P=0}for(;e<16;e++)t=Z[P+e],e==6?r+=J[t&15|64]:e==8?r+=J[t&63|128]:r+=J[t],e&1&&e>1&&e<11&&(r+="-");return P++,r}o();var R=class extends Error{constructor(t,r){super(`${t} has null value: ${r}`),this.name="ArgumentNullError"}};o();function _e({gameId:e,networkId:t,instanceId:r,playerId:s}){return[e,t,r,s].join("-")}var G=()=>Fe(),K=e=>{let{playerId:t,token:r,zoneId:s,language:i}=e;if(!t)throw new R("playerId",t);return{token:r,zoneId:s,locale:i,ping:_e({...e,playerId:t})}};o();function Pe(e){return Math.floor(e/1e3)}o();var Me=B(Te());o();var Ne=B(ne());o();o();o();var Q=e=>{let t=e;return{get:()=>t,set:r=>{t=r}}};var St=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return{default:e}}return e||{default:""}},Le={CANVAS_AGENT_URL:a.env.CANVAS_AGENT_URL,CANVAS_APP_ID_BY_GAME:a.env.CANVAS_APP_ID_BY_GAME,CUSTOMIZATION_URL:a.env.CUSTOMIZATION_URL,CUSTOMIZATION_URL_TEMPLATE:a.env.CUSTOMIZATION_URL_TEMPLATE,BASE_URL:St(a.env.BASE_URL),CXF_DIALOG_OPEN:"cxf.dialog.open",CXF_DIALOG_CLOSE:"cxf.dialog.close",CXF_TRACK_MSG:"cxf.tracking.message",CXF_BTN_CLICK_MSG:Ne.CxfEvents.OpenIGS,CXF_OPEN_SALES_MSG:"cxf.webshop.sales.open",WEB_SHOP_CALL_TRACK_ID:1181,CXF_ERROR:"cxf.error",CXF_PUSH:"cxf.push",CXF_AD_STATUS:"cxf.adBanner.status"},ht={12:{LEGEND_LEVEL_IS_USED:!0},15:{LEGEND_LEVEL_IS_USED:!1},16:{LEGEND_LEVEL_IS_USED:!0}},Ue=e=>({...Le,...ht[e]}),Re=e=>{let t=Le.BASE_URL,r=String(e);return t[r]||t.default||""};o();var Ge=e=>{for(let t of Object.keys(e)){let r=e[t];if(r==null||Number.isNaN(r))throw new R(t,r)}};var M=({page:e,route:t,sid:r,config:s={}})=>{let i=n.getStore(),{token:u,zoneId:I,locale:x}=K(i),E={token:u,zoneId:I,locale:x,sid:r||G()};Object.keys(s).length>0&&(E.config=JSON.stringify(s)),Ge(E);let v=new URLSearchParams(we()),f={...E,"lemonstand.customization.url":i.resolvedCustomizationUrl||Y(),domain:de(Ae()),websiteId:v.get("w"),criteria:JSON.stringify(H(i)),level:i.level},c=v.get("network");return v.get("usekeybaselogin")==="false"&&Number(c)>0&&(f.network=c),i.adStatus?.areBannersAvailable&&(f.ads=!0),`${Re(i.gameId)}/?${xe(f)}${e?`#${e}`:""}${t?`--${t}--${Date.now()}`:""}`},Y=()=>{let e=n.getConfig(),t=n.getStore(),r=n.getCxf(),s=(0,Me.acronym)(t.gameId),i=t.customizationSuffix?`-${t.customizationSuffix}`:"",u=`${s}${i}`;if(r.env==="test"){let I=new URLSearchParams(window.location.search).get("configGGS");if(I!==null)return e.CUSTOMIZATION_URL_TEMPLATE.replace("{0}",u).replace("{1}",I)}return e.CUSTOMIZATION_URL.replace("{0}",u)};var D=async()=>{let e=n.getConfig(),t=n.getStore();if(e.LEGEND_LEVEL_IS_USED&&t.legendLevel===void 0){d("Skip fetchUnreadOfferNotificationsCount due to legendLevel is undefined");return}if(!t.isCanvas&&t.token&&t.unreadOfferNotifsCountUrl){d("fetchUnreadOfferNotificationsCount");let r=0,s={Authorization:`Bearer ${t.token}`},i=t.unreadOfferNotifsCountUrl.replace("{locale}",t.language||"").replace("{zoneId}",t.zoneId||"").replace("{criteria}",encodeURIComponent(JSON.stringify(H(t))));try{d("fetch",i);let u=await fetch(i,{headers:s});if(u.ok){let I=await u.json();r=Number(I?.notifCount)}}catch(u){b(`cannot fetch ${i}`,u)}d("setUnseenOffersCounter",r),t.gameApi.invokeFn("setUnseenOffersCounter",r).catch(u=>{b("setUnseenOffersCounter error:",u)})}};o();var q=class{post(t){let r=document.querySelector("#dialog");r&&r.tagName.toLocaleLowerCase()==="iframe"&&r.contentWindow?.postMessage(t,"*")}};o();var De=()=>{if(typeof fetch!="function")return;let e=Y(),t="";fetch(e).then(r=>{if(Y()===e)return t=r.url,d("parsed customization url is "+t),n.updateStore({resolvedCustomizationUrl:t}),r.json()}).then(r=>{r&&n.updateStore({unreadOfferNotifsCountUrl:r.unreadOfferNotifsCountUrl||""})})};var ie=class{constructor(){this.config=void 0;this.cxfProvider=Q();this.dialogProvider=Q();this.storeProvider=Q();this.shopMessageBus=new q;this.fetchUnreadOfferNotificationsCount=D;this.preResolveConfig=De}setConfig(t){this.config=t}getConfig(){if(this.config===void 0)throw new Error("Config is not initialized");return this.config}setCxf(t){this.cxfProvider.set(t)}getCxf(){let t=this.cxfProvider.get();if(!t)throw new Error("CXF is not loaded");return t}setStore(t){this.storeProvider.set(t)}getStore(){let t=this.storeProvider.get();if(!t)throw new Error("Store is not initialized");return t}updateStore(t){let r=this.getStore();this.setStore({...r,...t})}},n=new ie;o();var p=B(ne());o();var k=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_DIALOG_OPEN,e)};o();var W=e=>{let t=n.getConfig(),r=n.getStore(),s=Date.now(),i=K(r),{zoneId:u}=i,I=e,{playerId:x,gameId:E,networkId:v,instanceId:f,sourceId:c}=r;yt({eventId:t.WEB_SHOP_CALL_TRACK_ID,date:Pe(s),unixtimeMS:s,sessionId:I,zoneId:u?Number.parseInt(u,10):void 0,playerId:Number.parseInt(x,10),gameId:Number.parseInt(E,10),networkId:Number.parseInt(v,10),instanceId:Number.parseInt(f,10),sourceId:c})},yt=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_TRACK_MSG,e)};o();var ke=new Set([218,316,318,460,461,768,802,814,830,877]);o();var Xe=e=>{d("OnReward: payload",e);let{isCanvas:t}=n.getStore();if(t){window.CanvasAgent?.instance?.hide(),window.CanvasAgent?.instance?.navigate();return}let r=M({route:encodeURIComponent(e.successUrl),...e});n.updateStore({lastPurchaseTab:e.page,sourceId:"successfulPayoutReward"}),W(e.sid),k(r)},Et=({target:e,action:t,data:r})=>{n.shopMessageBus.post({eventName:"lemonstand.category.update",target:e,data:{action:t,data:r}})},bt=({notifCount:e})=>{d("onLemonstandNotificationsCreated -> notifCount:",e);let t=n.getStore();if(e>0){let r=Math.floor(Math.random()*(Number(t.networkId)<250?12e4:15e3));setTimeout(()=>{D()},r)}else t.gameApi.invokeFn("setUnseenOffersCounter",0).catch(r=>{b("setUnseenOffersCounter error:",r)})},ze=()=>({reward:Xe,reward_received:Xe,"lemonstand.category.update":Et,"lemonstand.notifs.created":bt});var Be=!1,xt=e=>{switch(d(`Canvas event "${e.eventType}" received:`,e),e.eventType){case"native_catalog_request":{if(e?.paymentContractIds?.length>0){Be||(window.addEventListener("message",({data:r})=>{if(r?.eventName==="lemonstand.category.update"&&r?.data?.action==="nativePriceUpdate"){if(d("lemonstand.category.update event",r.data),!r.data.data)return;let s={};for(let i in r.data.data){let{priceString:u,...I}=r.data.data[i];s[i]=I}d("nativeCatalog:",s),window.CanvasAgent?.instance?.setNativeCatalog(s)}}),Be=!0);let t=Se(e.paymentContractIds);window.postMessage(t,"*"),d("Event `lemonstand.nativePrice` sent")}break}case"native_checkout_request":{let{paymentContract:t,sessionId:r,offerId:s,distributionPlatform:i}=e,{zoneId:u}=n.getStore();window.postMessage({eventName:"lemonstand.nativePay",eventType:"bubble",nativePayInfo:{pkg:{price:t?.price?.amount,productIdMS:"",productIds:be(i,t?.id),tier:Number(t?.id?.split("_")?.at(-1))},meta:{criteria:window.CanvasAgent?.instance?.getState()?.appConfig?.canvasAppId,lemonstand:!0,offerId:s,sid:r,type:"canvas",zoneId:u,successUrl:window.location.href}}},"*"),d("Event `lemonstand.nativePay` sent");break}default:break}},wt=(e={})=>{d(p.CxfEvents.OpenIGS,"payload:",e),e.sourceId&&n.updateStore({sourceId:e.sourceId});let{isCanvas:t,lastPurchaseTab:r,gameApi:s}=n.getStore();if(t){e.page&&window.CanvasAgent?.instance?.navigate(e.page),window.CanvasAgent?.instance?.show();return}let i=G();W(i);let u=M({sid:i,page:r,...e});k(u),setTimeout(()=>{s.invokeFn("setUnseenOffersCounter",0)},1e3)},At=e=>{let t=ze();e.on(p.CxfEvents.OpenIGS,X(wt)),e.on(p.CxfEvents.Push,X(({id:r,payload:s})=>{d(p.CxfEvents.Push,r,s);let i=t[r];i&&i(s)}))},Ft=e=>{e.on(p.CxfEvents.Login,t=>{let{gameEvents:r,language:s,token:i,zoneId:u}=t;ke.has(Number(u))&&(Number(u)>316||localStorage.getItem("cxf_canvas")==="enabled")&&n.updateStore({isCanvas:!0});let{gameEvents:I,isCanvas:x}=n.getStore(),E=v=>f=>!v.map(c=>c.type).includes(f.type);if(n.updateStore({...t,gameEvents:[...I.filter(E(r)),...r]}),d(p.CxfEvents.Login,n.getStore()),!x){n.fetchUnreadOfferNotificationsCount();return}if(typeof window.CanvasAgent?.create=="function"){let{CANVAS_APP_ID_BY_GAME:v}=n.getConfig(),f=Ee(),c=v[e.gameId],l=typeof c=="string"?c:c[f];if(!l){b("Canvas app id not found for platform",{platform:f,canvasApps:c});return}window.CanvasAgent.create({authClientId:"lemonstand",canvasAppId:l,eventListener:xt,locale:s,token:i}).then(C=>{window.CanvasAgent.instance=C,d(p.CxfEvents.Login,"Canvas created")}).catch(C=>{b("Cannot create instance of Canvas",C)})}}),e.on(p.CxfEvents.GameEventUpdate,t=>{d(p.CxfEvents.GameEventUpdate,t);let{gameEvents:r,isCanvas:s}=n.getStore(),i=new Set(t.map(u=>u.type));n.updateStore({gameEvents:[...r.filter(u=>!i.has(u.type)),...t]}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventUpdate,"reducer",n.getStore())}),e.on(p.CxfEvents.GameEventAdd,t=>{d(p.CxfEvents.GameEventAdd,t);let{gameEvents:r,isCanvas:s}=n.getStore();n.updateStore({gameEvents:[...r,t]}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventAdd,"reducer",n.getStore())}),e.on(p.CxfEvents.GameEventRemove,t=>{d(p.CxfEvents.GameEventRemove,t);let{gameEvents:r,isCanvas:s}=n.getStore();n.updateStore({gameEvents:r.filter(({type:i})=>i!==t)}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventRemove,"reducer",n.getStore())}),e.on(p.CxfEvents.LevelChanged,t=>{d(p.CxfEvents.LevelChanged,t);let{isCanvas:r}=n.getStore();n.updateStore({level:t}),d(p.CxfEvents.LevelChanged,"reducer",n.getStore()),r?window.CanvasAgent?.instance?.refresh():n.fetchUnreadOfferNotificationsCount()}),e.on(p.CxfEvents.LegendLevelChanged,t=>{d(p.CxfEvents.LegendLevelChanged,`legendLevel: ${t}`),n.updateStore({legendLevel:t});let r=n.getStore();d(p.CxfEvents.LegendLevelChanged,"reducer",r),n.fetchUnreadOfferNotificationsCount()})},_t=e=>{e.on("cxf.native.subscription.enable",t=>{n.updateStore({subscriptionDisabled:t===0,customizationSuffix:t===0?"no-subscription":""}),n.preResolveConfig()})},Pt=e=>{e.on("cxf.set.customization.surfix",t=>{let{customizationSuffix:r}=n.getStore();t!==r&&(n.updateStore({customizationSuffix:t||""}),n.preResolveConfig())})},Ot=e=>{let t=n.getConfig();e.on(t.CXF_AD_STATUS,({areBannersAvailable:r,bannersDetails:s})=>{n.updateStore({adStatus:{areBannersAvailable:r,bannersDetails:s}})})},Tt=e=>{e.on("cxf.join.temp.server",t=>{let r=n.getStore();n.updateStore({isTempServer:!!t}),(r.customizationSuffix===""||r.customizationSuffix==="temp")&&(n.updateStore({customizationSuffix:t?"temp":""}),n.preResolveConfig())})},He=()=>[At,Ft,Ot,Tt,_t,Pt];o();var Nt=()=>{d("OnOpenSalesOffersPage");let{isCanvas:e}=n.getStore();if(e){window.CanvasAgent?.instance?.navigate("supersale");return}let t=G(),r=M({page:"sale-offers",sid:t});k(r)},Lt=()=>{let e=n.getStore();d("onLemonstandClose",e),D()},Ve=()=>({"cxf.webshop.sales.open":Nt,"cxf.dialog.close":Lt});var je=e=>{let t=Ve(),r=He();window.addEventListener("message",X(({data:s})=>{if(s){let i=t[s.name];i&&(d("POST MESSAGE",s),i(s.payload))}}));for(let s of r)s(e);n.preResolveConfig(),d("App has started")};re().then(e=>{let t=Ue(e.gameId);n.setConfig(t),n.setCxf(e);let r=fe(e);n.setStore(r),ve(t.CANVAS_AGENT_URL).then(()=>{d(`Canvas agent loaded: ${t.CANVAS_AGENT_URL}`)}).catch(s=>{b("Canvas agent load error",s)}),je(e)});})();
1
+ "use strict";(()=>{var Ze=Object.create;var ce=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var qe=(e,t)=>()=>(e&&(t=e(e=0)),t);var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var We=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ke(t))!Ye.call(e,i)&&i!==r&&ce(e,i,{get:()=>t[i],enumerable:!(s=Je(t,i))||s.enumerable});return e};var B=(e,t,r)=>(r=e!=null?Ze(Qe(e)):{},We(t||!e||!e.__esModule?ce(r,"default",{value:e,enumerable:!0}):r,e));var a,o=qe(()=>{a={env:{BASE_URL:{"12":"https://canvas.goodgamestudios.com","15":"https://canvas.goodgamestudios.com","16":"https://canvas.goodgamestudios.com",default:"https://canvas.goodgamestudios.com"},CANVAS_AGENT_URL:"https://app.canvas.stillfront.com/agent.js",CANVAS_APP_ID_BY_GAME:{"12":"","15":{google:"a9510af7-9092-4f2f-8c09-4e9dde1a0d91",stillpay:"729bbc22-2cc0-4025-bcda-05aa01b41db2"},"16":""},CUSTOMIZATION_URL_TEMPLATE:"",CUSTOMIZATION_URL:"https://cdn.jsdelivr.net/npm/@lemonstand.org/config-goodgamestudios/dist/goodgamestudios-{0}.json"}}});var me=T((Xt,ue)=>{o();var N=1e3,L=N*60,U=L*60,P=U*24,rt=P*7,ot=P*365.25;ue.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return nt(e);if(r==="number"&&isFinite(e))return t.long?it(e):st(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function nt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),s=(t[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return r*ot;case"weeks":case"week":case"w":return r*rt;case"days":case"day":case"d":return r*P;case"hours":case"hour":case"hrs":case"hr":case"h":return r*U;case"minutes":case"minute":case"mins":case"min":case"m":return r*L;case"seconds":case"second":case"secs":case"sec":case"s":return r*N;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function st(e){var t=Math.abs(e);return t>=P?Math.round(e/P)+"d":t>=U?Math.round(e/U)+"h":t>=L?Math.round(e/L)+"m":t>=N?Math.round(e/N)+"s":e+"ms"}function it(e){var t=Math.abs(e);return t>=P?V(e,t,P,"day"):t>=U?V(e,t,U,"hour"):t>=L?V(e,t,L,"minute"):t>=N?V(e,t,N,"second"):e+" ms"}function V(e,t,r,s){var i=t>=r*1.5;return Math.round(e/r)+" "+s+(i?"s":"")}});var ge=T((Bt,le)=>{o();function at(e){r.debug=r,r.default=r,r.coerce=E,r.disable=I,r.enable=i,r.enabled=x,r.humanize=me(),r.destroy=v,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let c=0;for(let l=0;l<f.length;l++)c=(c<<5)-c+f.charCodeAt(l),c|=0;return r.colors[Math.abs(c)%r.colors.length]}r.selectColor=t;function r(f){let c,l=null,C,A;function m(...g){if(!m.enabled)return;let S=m,h=Number(new Date),O=h-(c||h);S.diff=O,S.prev=c,S.curr=h,c=h,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let w=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(F,te)=>{if(F==="%%")return"%";w++;let ae=r.formatters[te];if(typeof ae=="function"){let $e=g[w];F=ae.call(S,$e),g.splice(w,1),w--}return F}),r.formatArgs.call(S,g),(S.log||r.log).apply(S,g)}return m.namespace=f,m.useColors=r.useColors(),m.color=r.selectColor(f),m.extend=s,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>l!==null?l:(C!==r.namespaces&&(C=r.namespaces,A=r.enabled(f)),A),set:g=>{l=g}}),typeof r.init=="function"&&r.init(m),m}function s(f,c){let l=r(this.namespace+(typeof c>"u"?":":c)+f);return l.log=this.log,l}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let c=(typeof f=="string"?f:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let l of c)l[0]==="-"?r.skips.push(l.slice(1)):r.names.push(l)}function u(f,c){let l=0,C=0,A=-1,m=0;for(;l<f.length;)if(C<c.length&&(c[C]===f[l]||c[C]==="*"))c[C]==="*"?(A=C,m=l,C++):(l++,C++);else if(A!==-1)C=A+1,m++,l=m;else return!1;for(;C<c.length&&c[C]==="*";)C++;return C===c.length}function I(){let f=[...r.names,...r.skips.map(c=>"-"+c)].join(",");return r.enable(""),f}function x(f){for(let c of r.skips)if(u(f,c))return!1;for(let c of r.names)if(u(f,c))return!0;return!1}function E(f){return f instanceof Error?f.stack||f.message:f}function v(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}le.exports=at});var pe=T((y,j)=>{o();y.formatArgs=ft;y.save=dt;y.load=ut;y.useColors=ct;y.storage=mt();y.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();y.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ct(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ft(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+j.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,s=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(s=r))}),e.splice(s,0,t)}y.log=console.debug||console.log||(()=>{});function dt(e){try{e?y.storage.setItem("debug",e):y.storage.removeItem("debug")}catch{}}function ut(){let e;try{e=y.storage.getItem("debug")||y.storage.getItem("DEBUG")}catch{}return!e&&typeof a<"u"&&"env"in a&&(e=a.env.DEBUG),e}function mt(){try{return localStorage}catch{}}j.exports=ge()(y);var{formatters:lt}=j.exports;lt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var re=T((Yt,Ie)=>{"use strict";o();var $=window&&window.CXF;Ie.exports=new Promise(function(e,t){if(window||t(),$)return e($);window.addEventListener("cxf.initialized",function(r){$=r.cxf,e($)},{capture:!0,once:!0,passive:!0})})});var Te=T((Oe,oe)=>{o();(function(){var e={};function t(m,g){return i(m)||s(m,g)||r()}function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function s(m,g){var S=[],h=!0,O=!1,w=void 0;try{for(var ee,F=m[Symbol.iterator]();!(h=(ee=F.next()).done)&&(S.push(ee.value),!g||S.length!==g);h=!0);}catch(te){O=!0,w=te}finally{try{h||F.return==null||F.return()}finally{if(O)throw w}}return S}function i(m){if(Array.isArray(m))return m}var u=0,I=1,x=2,E={1:["poker","poker2","poker"],12:["empire","castle","em"],15:["bigfarm","ranch","bf"],16:["empirefourkingdoms","fourkingdoms","e4k"],23:["legendsofhonor",void 0,"loh"],41:["empiremillenniumwars",void 0,"emmw"]},v=Object.entries(E).reduce(function(m,g){var S=t(g,2),h=S[0],O=S[1];return h=parseInt(h,10),m[h]=h,O.forEach(function(w){m[w]=h}),m},{}),f=function(m){m=m.toString().toLowerCase();var g=v[m];return g&&0|g},c=function(m,g){return(g=v[g])&&E[g][m]},l=c.bind(null,u),C=c.bind(null,I),A=c.bind(null,x);e={id:f,name:l,codename:C,acronym:A},typeof Oe=="object"&&typeof oe<"u"?oe.exports=e:typeof define=="function"&&define.amd&&define(function(){return e})})()});var ne=T(z=>{"use strict";o();Object.defineProperty(z,"__esModule",{value:!0});z.CxfEvents=void 0;var vt;(function(e){e.Token="cxf.token",e.Login="cxf.login",e.Signup="cxf.signup",e.GameEventUpdate="cxf.gameEvent.update",e.GameEventAdd="cxf.gameEvent.add",e.GameEventRemove="cxf.gameEvent.remove",e.XpChanged="cxf.xp.changed",e.LevelChanged="cxf.level.changed",e.LegendLevelChanged="cxf.legendLevel.changed",e.Push="cxf.push",e.OpenIGS="cxf.igs.open",e.JoinTempServer="cxf.join.temp.server",e.Subscription="cxf.subscription",e.RewardedAdStart="cxf.rewardedad.start",e.RewardedAdDone="cxf.rewardedad.done"})(vt=z.CxfEvents||(z.CxfEvents={}))});o();o();o();o();o();function fe(e){return{isCanvas:!1,playerId:e.playerId,instanceId:e.instanceId,networkId:e.networkId,gameId:e.gameId,gameApi:e.gameApi,language:e.language,token:e.token,zoneId:e.zoneId,gameEvents:[],xp:0,level:0,legendLevel:void 0,countryCode:"",lastPurchaseTab:"",subscriptionDisabled:!1,isTempServer:!1,customizationSuffix:"",resolvedCustomizationUrl:"",sourceId:"unknown",unreadOfferNotifsCountUrl:""}}function H({legendLevel:e,level:t}){return{legendLevel:e,level:t}}o();o();var tt=e=>{let t=e.match(/^https?:\/\/([^#/?]+)(?:[#/?]|$)/i);if(!t||!t[1])return;let r=t[1].match(/[^.]+\.[^.]+$/);if(r)return r[0]},de=e=>tt(e);o();o();var Ce=B(pe()),gt=(0,Ce.default)("CXF-WEBSHOP"),d=(e,...t)=>gt(e,...t),b=(...e)=>console.error("%c CXF-WEBSHOP ->","background: #ff0000; color: #fff",...e);var X=e=>(...t)=>{try{return e(...t)}catch(r){b(r),pt(r)}},pt=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_ERROR,e)};o();var Ct=(e,t)=>{let r=setTimeout(e,t);return()=>clearTimeout(r)},It=(e,t)=>r=>new Promise((s,i)=>{let u=Ct(()=>{i(new Error(`Timeout has exceeded ${t}`))},t);e(r).then(I=>{s(I),u()}).catch(i)}),ve=e=>new Promise((t,r)=>{let s=document.createElement("script");s.type="text/javascript",s.type="module",s.async=!0,s.src=e,s.addEventListener("load",t),s.addEventListener("error",r),document.body.append(s)}),Wt=It(()=>re(),1e4);o();var Se=e=>e.reduce((t,r,s)=>(t.offers.push({id:r,tier:0,productIds:{googleplay:r}}),t),{category:"all",offers:[],eventName:"lemonstand.nativePrice",eventType:"bubble"});o();var he={itunes:"apple",Android:"google",googleplay:"google",amazonmobile:"amazon",facebook:"facebook",samsung:"samsung",huawei:"huawei"},Ee=(e="stillpay")=>{let t=navigator.userAgent.match(/(itunes)|(googleplay)|(Android)|(amazonmobile)|(facebook)|(samsung)|(huawei)/g);if(!t)return e;let r=t[0];return Object.prototype.hasOwnProperty.call(he,r)?he[r]:e},ye={apple:"itunes",google:"googleplay",amazon:"amazonmobile",facebook:"facebook",samsung:"samsung",huawei:"huawei"},be=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(ye,e))throw new Error(`Platform ${e} is not supported`);let r=Object.create(null);return r[ye[e]]=t,r};o();function xe(e){return Object.entries(e).filter(([t,r])=>r!=null).map(([t,r])=>`${t}=${encodeURIComponent(r)}`).join("&")}var we=()=>ggsGetQueryParameters(),Ae=()=>ggsGetReferrer();o();o();var _=256,J=[],Z;for(;_--;)J[_]=(_+256).toString(16).substring(1);function Fe(){var e=0,t,r="";if(!Z||_+16>256){for(Z=Array(e=256);e--;)Z[e]=256*Math.random()|0;e=_=0}for(;e<16;e++)t=Z[_+e],e==6?r+=J[t&15|64]:e==8?r+=J[t&63|128]:r+=J[t],e&1&&e>1&&e<11&&(r+="-");return _++,r}o();var R=class extends Error{constructor(t,r){super(`${t} has null value: ${r}`),this.name="ArgumentNullError"}};o();function Pe({gameId:e,networkId:t,instanceId:r,playerId:s}){return[e,t,r,s].join("-")}var G=()=>Fe(),K=e=>{let{playerId:t,token:r,zoneId:s,language:i}=e;if(!t)throw new R("playerId",t);return{token:r,zoneId:s,locale:i,ping:Pe({...e,playerId:t})}};o();function _e(e){return Math.floor(e/1e3)}o();var Me=B(Te());o();var Ne=B(ne());o();o();o();var Q=e=>{let t=e;return{get:()=>t,set:r=>{t=r}}};var St=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return{default:e}}return e||{default:""}},Le={CANVAS_AGENT_URL:a.env.CANVAS_AGENT_URL,CANVAS_APP_ID_BY_GAME:a.env.CANVAS_APP_ID_BY_GAME,CUSTOMIZATION_URL:a.env.CUSTOMIZATION_URL,CUSTOMIZATION_URL_TEMPLATE:a.env.CUSTOMIZATION_URL_TEMPLATE,BASE_URL:St(a.env.BASE_URL),CXF_DIALOG_OPEN:"cxf.dialog.open",CXF_DIALOG_CLOSE:"cxf.dialog.close",CXF_TRACK_MSG:"cxf.tracking.message",CXF_BTN_CLICK_MSG:Ne.CxfEvents.OpenIGS,CXF_OPEN_SALES_MSG:"cxf.webshop.sales.open",WEB_SHOP_CALL_TRACK_ID:1181,CXF_ERROR:"cxf.error",CXF_PUSH:"cxf.push",CXF_AD_STATUS:"cxf.adBanner.status"},ht={12:{LEGEND_LEVEL_IS_USED:!0},15:{LEGEND_LEVEL_IS_USED:!1},16:{LEGEND_LEVEL_IS_USED:!0}},Ue=e=>({...Le,...ht[e]}),Re=e=>{let t=Le.BASE_URL,r=String(e);return t[r]||t.default||""};o();var Ge=e=>{for(let t of Object.keys(e)){let r=e[t];if(r==null||Number.isNaN(r))throw new R(t,r)}};var M=({page:e,route:t,sid:r,config:s={}})=>{let i=n.getStore(),{token:u,zoneId:I,locale:x}=K(i),E={token:u,zoneId:I,locale:x,sid:r||G()};Object.keys(s).length>0&&(E.config=JSON.stringify(s)),Ge(E);let v=new URLSearchParams(we()),f={...E,"lemonstand.customization.url":i.resolvedCustomizationUrl||Y(),domain:de(Ae()),websiteId:v.get("w"),criteria:JSON.stringify(H(i)),level:i.level},c=v.get("network");return v.get("usekeybaselogin")==="false"&&Number(c)>0&&(f.network=c),i.adStatus?.areBannersAvailable&&(f.ads=!0),`${Re(i.gameId)}/?${xe(f)}${e?`#${e}`:""}${t?`--${t}--${Date.now()}`:""}`},Y=()=>{let e=n.getConfig(),t=n.getStore(),r=n.getCxf(),s=(0,Me.acronym)(t.gameId),i=t.customizationSuffix?`-${t.customizationSuffix}`:"",u=`${s}${i}`;if(r.env==="test"){let I=new URLSearchParams(window.location.search).get("configGGS");if(I!==null)return e.CUSTOMIZATION_URL_TEMPLATE.replace("{0}",u).replace("{1}",I)}return e.CUSTOMIZATION_URL.replace("{0}",u)};var D=async()=>{let e=n.getConfig(),t=n.getStore();if(e.LEGEND_LEVEL_IS_USED&&t.legendLevel===void 0){d("Skip fetchUnreadOfferNotificationsCount due to legendLevel is undefined");return}if(!t.isCanvas&&t.token&&t.unreadOfferNotifsCountUrl){d("fetchUnreadOfferNotificationsCount");let r=0,s={Authorization:`Bearer ${t.token}`},i=t.unreadOfferNotifsCountUrl.replace("{locale}",t.language||"").replace("{zoneId}",t.zoneId||"").replace("{criteria}",encodeURIComponent(JSON.stringify(H(t))));try{d("fetch",i);let u=await fetch(i,{headers:s});if(u.ok){let I=await u.json();r=Number(I?.notifCount)}}catch(u){b(`cannot fetch ${i}`,u)}d("setUnseenOffersCounter",r),t.gameApi.invokeFn("setUnseenOffersCounter",r).catch(u=>{b("setUnseenOffersCounter error:",u)})}};o();var q=class{post(t){let r=document.querySelector("#dialog");r&&r.tagName.toLocaleLowerCase()==="iframe"&&r.contentWindow?.postMessage(t,"*")}};o();var De=()=>{if(typeof fetch!="function")return;let e=Y(),t="";fetch(e).then(r=>{if(Y()===e)return t=r.url,d("parsed customization url is "+t),n.updateStore({resolvedCustomizationUrl:t}),r.json()}).then(r=>{r&&n.updateStore({unreadOfferNotifsCountUrl:r.unreadOfferNotifsCountUrl||""})})};var ie=class{constructor(){this.config=void 0;this.cxfProvider=Q();this.dialogProvider=Q();this.storeProvider=Q();this.shopMessageBus=new q;this.fetchUnreadOfferNotificationsCount=D;this.preResolveConfig=De}setConfig(t){this.config=t}getConfig(){if(this.config===void 0)throw new Error("Config is not initialized");return this.config}setCxf(t){this.cxfProvider.set(t)}getCxf(){let t=this.cxfProvider.get();if(!t)throw new Error("CXF is not loaded");return t}setStore(t){this.storeProvider.set(t)}getStore(){let t=this.storeProvider.get();if(!t)throw new Error("Store is not initialized");return t}updateStore(t){let r=this.getStore();this.setStore({...r,...t})}},n=new ie;o();var p=B(ne());o();var k=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_DIALOG_OPEN,e)};o();var W=e=>{let t=n.getConfig(),r=n.getStore(),s=Date.now(),i=K(r),{zoneId:u}=i,I=e,{playerId:x,gameId:E,networkId:v,instanceId:f,sourceId:c}=r;yt({eventId:t.WEB_SHOP_CALL_TRACK_ID,date:_e(s),unixtimeMS:s,sessionId:I,zoneId:u?Number.parseInt(u,10):void 0,playerId:Number.parseInt(x,10),gameId:Number.parseInt(E,10),networkId:Number.parseInt(v,10),instanceId:Number.parseInt(f,10),sourceId:c})},yt=e=>{let t=n.getConfig();n.getCxf().emit(t.CXF_TRACK_MSG,e)};o();var ke=new Set([218,316,318,460,461,768,802,814,830,877]);o();var Xe=e=>{d("OnReward: payload",e);let{isCanvas:t}=n.getStore();if(t){window.CanvasAgent?.instance?.hide(),window.CanvasAgent?.instance?.navigate();return}let r=M({route:encodeURIComponent(e.successUrl),...e});n.updateStore({lastPurchaseTab:e.page,sourceId:"successfulPayoutReward"}),W(e.sid),k(r)},Et=({target:e,action:t,data:r})=>{n.shopMessageBus.post({eventName:"lemonstand.category.update",target:e,data:{action:t,data:r}})},bt=({notifCount:e})=>{d("onLemonstandNotificationsCreated -> notifCount:",e);let t=n.getStore();if(e>0){let r=Math.floor(Math.random()*(Number(t.networkId)<250?12e4:15e3));setTimeout(()=>{D()},r)}else t.gameApi.invokeFn("setUnseenOffersCounter",0).catch(r=>{b("setUnseenOffersCounter error:",r)})},ze=()=>({reward:Xe,reward_received:Xe,"lemonstand.category.update":Et,"lemonstand.notifs.created":bt});var Be=!1,xt=e=>{switch(d(`Canvas event "${e.eventType}" received:`,e),e.eventType){case"native_catalog_request":{if(e?.paymentContractIds?.length>0){Be||(window.addEventListener("message",({data:r})=>{if(r?.eventName==="lemonstand.category.update"&&r?.data?.action==="nativePriceUpdate"){if(d("lemonstand.category.update event",r.data),!r.data.data)return;let s={};for(let i in r.data.data){let{priceString:u,...I}=r.data.data[i];s[i]=I}d("nativeCatalog:",s),window.CanvasAgent?.instance?.setNativeCatalog(s)}}),Be=!0);let t=Se(e.paymentContractIds);window.postMessage(t,"*"),d("Event `lemonstand.nativePrice` sent")}break}case"native_checkout_request":{let{paymentContract:t,sessionId:r,offerId:s,distributionPlatform:i}=e,{zoneId:u}=n.getStore();window.postMessage({eventName:"lemonstand.nativePay",eventType:"bubble",nativePayInfo:{pkg:{price:t?.price?.amount,productIdMS:"",productIds:be(i,t?.id),tier:Number(t?.id?.split("_")?.at(-1))},meta:{criteria:window.CanvasAgent?.instance?.getState()?.appConfig?.canvasAppId,lemonstand:!0,offerId:s,sid:r,type:"canvas",zoneId:u,successUrl:window.location.href}}},"*"),d("Event `lemonstand.nativePay` sent");break}default:break}},wt=(e={})=>{d(p.CxfEvents.OpenIGS,"payload:",e),e.sourceId&&n.updateStore({sourceId:e.sourceId});let{isCanvas:t,lastPurchaseTab:r,gameApi:s}=n.getStore();if(t){e.page&&window.CanvasAgent?.instance?.navigate(e.page),window.CanvasAgent?.instance?.show();return}let i=G();W(i);let u=M({sid:i,page:r,...e});k(u),setTimeout(()=>{s.invokeFn("setUnseenOffersCounter",0)},1e3)},At=e=>{let t=ze();e.on(p.CxfEvents.OpenIGS,X(wt)),e.on(p.CxfEvents.Push,X(({id:r,payload:s})=>{d(p.CxfEvents.Push,r,s);let i=t[r];i&&i(s)}))},Ft=e=>{e.on(p.CxfEvents.Login,t=>{let{gameEvents:r,language:s,token:i,zoneId:u}=t;ke.has(Number(u))&&n.updateStore({isCanvas:!0});let{gameEvents:I,isCanvas:x}=n.getStore(),E=v=>f=>!v.map(c=>c.type).includes(f.type);if(n.updateStore({...t,gameEvents:[...I.filter(E(r)),...r]}),d(p.CxfEvents.Login,n.getStore()),!x){n.fetchUnreadOfferNotificationsCount();return}if(typeof window.CanvasAgent?.create=="function"){let{CANVAS_APP_ID_BY_GAME:v}=n.getConfig(),f=Ee(),c=v[e.gameId],l=typeof c=="string"?c:c[f];if(!l){b("Canvas app id not found for platform",{platform:f,canvasApps:c});return}window.CanvasAgent.create({authClientId:"lemonstand",canvasAppId:l,eventListener:xt,locale:s,token:i}).then(C=>{window.CanvasAgent.instance=C,d(p.CxfEvents.Login,"Canvas created")}).catch(C=>{b("Cannot create instance of Canvas",C)})}}),e.on(p.CxfEvents.GameEventUpdate,t=>{d(p.CxfEvents.GameEventUpdate,t);let{gameEvents:r,isCanvas:s}=n.getStore(),i=new Set(t.map(u=>u.type));n.updateStore({gameEvents:[...r.filter(u=>!i.has(u.type)),...t]}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventUpdate,"reducer",n.getStore())}),e.on(p.CxfEvents.GameEventAdd,t=>{d(p.CxfEvents.GameEventAdd,t);let{gameEvents:r,isCanvas:s}=n.getStore();n.updateStore({gameEvents:[...r,t]}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventAdd,"reducer",n.getStore())}),e.on(p.CxfEvents.GameEventRemove,t=>{d(p.CxfEvents.GameEventRemove,t);let{gameEvents:r,isCanvas:s}=n.getStore();n.updateStore({gameEvents:r.filter(({type:i})=>i!==t)}),s&&window.CanvasAgent?.instance?.refresh(),d(p.CxfEvents.GameEventRemove,"reducer",n.getStore())}),e.on(p.CxfEvents.LevelChanged,t=>{d(p.CxfEvents.LevelChanged,t);let{isCanvas:r}=n.getStore();n.updateStore({level:t}),d(p.CxfEvents.LevelChanged,"reducer",n.getStore()),r?window.CanvasAgent?.instance?.refresh():n.fetchUnreadOfferNotificationsCount()}),e.on(p.CxfEvents.LegendLevelChanged,t=>{d(p.CxfEvents.LegendLevelChanged,`legendLevel: ${t}`),n.updateStore({legendLevel:t});let r=n.getStore();d(p.CxfEvents.LegendLevelChanged,"reducer",r),n.fetchUnreadOfferNotificationsCount()})},Pt=e=>{e.on("cxf.native.subscription.enable",t=>{n.updateStore({subscriptionDisabled:t===0,customizationSuffix:t===0?"no-subscription":""}),n.preResolveConfig()})},_t=e=>{e.on("cxf.set.customization.surfix",t=>{let{customizationSuffix:r}=n.getStore();t!==r&&(n.updateStore({customizationSuffix:t||""}),n.preResolveConfig())})},Ot=e=>{let t=n.getConfig();e.on(t.CXF_AD_STATUS,({areBannersAvailable:r,bannersDetails:s})=>{n.updateStore({adStatus:{areBannersAvailable:r,bannersDetails:s}})})},Tt=e=>{e.on("cxf.join.temp.server",t=>{let r=n.getStore();n.updateStore({isTempServer:!!t}),(r.customizationSuffix===""||r.customizationSuffix==="temp")&&(n.updateStore({customizationSuffix:t?"temp":""}),n.preResolveConfig())})},He=()=>[At,Ft,Ot,Tt,Pt,_t];o();var Nt=()=>{d("OnOpenSalesOffersPage");let{isCanvas:e}=n.getStore();if(e){window.CanvasAgent?.instance?.navigate("supersale");return}let t=G(),r=M({page:"sale-offers",sid:t});k(r)},Lt=()=>{let e=n.getStore();d("onLemonstandClose",e),D()},Ve=()=>({"cxf.webshop.sales.open":Nt,"cxf.dialog.close":Lt});var je=e=>{let t=Ve(),r=He();window.addEventListener("message",X(({data:s})=>{if(s){let i=t[s.name];i&&(d("POST MESSAGE",s),i(s.payload))}}));for(let s of r)s(e);n.preResolveConfig(),d("App has started")};re().then(e=>{let t=Ue(e.gameId);n.setConfig(t),n.setCxf(e);let r=fe(e);n.setStore(r),ve(t.CANVAS_AGENT_URL).then(()=>{d(`Canvas agent loaded: ${t.CANVAS_AGENT_URL}`)}).catch(s=>{b("Canvas agent load error",s)}),je(e)});})();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goodgamestudios/cxf-webshop",
3
3
  "description": "WebShop CXF Module",
4
- "version": "7.1.1",
4
+ "version": "7.1.2",
5
5
  "keywords": [],
6
6
  "license": "UNLICENSED",
7
7
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "release": "semantic-release",
31
31
  "deploy:dev": "npm run build:qa && npm publish --tag qa --access public",
32
32
  "deploy:qa": "npm run build:qa && npm run release",
33
- "deploy:live": "npm run build:live && npm run release",
33
+ "deploy:live": "npm run build:live && npm publish",
34
34
  "prepare": ""
35
35
  },
36
36
  "main": "dist/webshop-cxf.js",