@kalamba/sdk 0.30.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors-BUjKnbx5.cjs +112 -0
- package/dist/errors-CakYyMwc.js +88 -0
- package/dist/i18n-CM87VHyx.d.ts +525 -0
- package/dist/i18n-Dff1pHdh.d.cts +525 -0
- package/dist/i18n-NIrYZyLs.cjs +538 -0
- package/dist/i18n-vzEFUHe0.js +532 -0
- package/dist/index-B_FWnjNV.d.ts +94 -0
- package/dist/index-l1uA5NOP.d.cts +94 -0
- package/dist/index.cjs +108 -2
- package/dist/index.d.cts +113 -0
- package/dist/index.d.ts +113 -616
- package/dist/index.js +101 -347
- package/dist/logger-BR4jdx4T.cjs +28 -0
- package/dist/logger-f0OQvO5X.js +22 -0
- package/dist/plugins.cjs +152 -239
- package/dist/plugins.d.cts +6 -0
- package/dist/plugins.d.ts +6 -1032
- package/dist/plugins.js +149 -6402
- package/dist/wrapper.cjs +741 -2
- package/dist/wrapper.d.cts +63 -0
- package/dist/wrapper.d.ts +63 -613
- package/dist/wrapper.js +736 -2900
- package/package.json +11 -25
- package/dist/encoders-BDr7fjKQ.js +0 -13
- package/dist/encoders-DVHzIpWT.cjs +0 -5
- package/dist/errors-BXO3dlhS.cjs +0 -5
- package/dist/errors-NnLrKjTz.js +0 -90
- package/dist/v4-85TkMtXc.js +0 -50
- package/dist/v4-Cj9BnqmU.cjs +0 -5
package/dist/wrapper.cjs
CHANGED
|
@@ -1,5 +1,744 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BSD 3-Clause License
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2026, Kalamba Games Limited
|
|
4
4
|
*/
|
|
5
|
-
"use strict";var Ou=Object.defineProperty;var Gt=a=>{throw TypeError(a)};var Lu=(a,e,r)=>e in a?Ou(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var Dt=(a,e,r)=>Lu(a,typeof e!="symbol"?e+"":e,r),xt=(a,e,r)=>e.has(a)||Gt("Cannot "+r);var O=(a,e,r)=>(xt(a,e,"read from private field"),r?r.call(a):e.get(a)),D=(a,e,r)=>e.has(a)?Gt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,r),x=(a,e,r,n)=>(xt(a,e,"write to private field"),n?n.call(a,r):e.set(a,r),r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const oe=require("./errors-BXO3dlhS.cjs"),M=require("./v4-Cj9BnqmU.cjs"),jt=()=>{},Iu=()=>{};var U,Z,K,j,H,k;class Mu{constructor({messagePort:e,plugins:r,sdkConfigManager:n}){D(this,U);D(this,Z);D(this,K,{dataDecoder:void 0,dataEncoder:void 0,gameName:"UNKNOWN",gameVersion:"unknown",showErrors:!0,showFreeRounds:!0,showPromoPanel:!1,showRealityCheck:!0,showBars:!0,skipErrors:[]});D(this,j,{isSdkConfigured:!1,balance:0,bet:{base:0,multiplier:0},openGameResponse:void 0,lastPlayResponse:void 0,freeRoundId:void 0});D(this,H);D(this,k);x(this,U,e),x(this,H,new n),x(this,Z,{rgs:new r.rgs(this.config,this.sdkConfig),casino:r.casino.map(t=>new t(this.config,this.sdkConfig)),telemetry:r.telemetry.map(({plugin:t,trackers:i})=>new t(i.map(s=>new s(this.config,this.sdkConfig)),this.config,this.sdkConfig))}),this.on("balance",({balance:t})=>{this.setState(i=>({...i,balance:t}))}),this.on("bet",t=>{this.setState(i=>({...i,bet:t}))}),this.on("sdk:playCycleStart",async()=>{await this.requestWakeLock(),!this.state.freeRoundId&&this.setState(t=>({...t,balance:t.balance-t.bet.base*t.bet.multiplier}))}),this.on("sdk:play",t=>{this.send("play",{...t,payloadToInject:{freeRoundId:this.state.freeRoundId}})}),this.on("sdk:configure",t=>{Object.assign(O(this,K),t)}),this.on("freeRoundsPopup",()=>{var i;const t=(i=this.state.lastPlayResponse??this.state.openGameResponse)==null?void 0:i.contract.freeRounds[0];t&&this.state.freeRoundId&&this.send("freeRoundsInfo",t)}),this.on("rgs:openGameResponse",async t=>{this.setState(i=>({...i,openGameResponse:t,balance:t.contract.balance.coins})),this.on("playReady",()=>{this.handleFreeRounds(t)}),this.sdkConfig.ui=await O(this,H).getConfig(),this.setState(i=>({...i,isSdkConfigured:!0})),this.send("configured",this.sdkConfig)}),this.on("rgs:openGameError",async t=>{t.type==="timeout"&&!this.config.skipErrors.includes("TIMEOUT")&&this.send("error",{messageKey:"Error.TIMEOUT",messageCode:"TIMEOUT",type:"RELOAD"}),t.type==="error"&&!this.config.skipErrors.includes(t.data.code)&&this.send("error",{messageKey:`RgsError.${t.data.code}`,messageCode:t.data.code,type:oe.RgsErrorAction[t.data.code]})}),this.on("rgs:playResponse",async t=>{this.setState(i=>({...i,lastPlayResponse:t}))}),this.on("playCycleEnd",()=>{this.releaseWakeLock(),this.setState(t=>({...t,balance:this.state.lastPlayResponse.contract.balance.coins})),this.handleFreeRounds(this.state.lastPlayResponse)}),this.on("rgs:playError",async t=>{t.type==="timeout"&&!this.config.skipErrors.includes("TIMEOUT")&&this.send("error",{messageKey:"Error.TIMEOUT",messageCode:"TIMEOUT",type:"RELOAD"}),t.type==="error"&&!this.config.skipErrors.includes(t.data.code)&&this.send("error",{messageKey:`RgsError.${t.data.code}`,messageCode:t.data.code,type:oe.RgsErrorAction[t.data.code]})}),this.on("rgs:freeRoundsResponse",async t=>{var i;if(t.action==="ACCEPT"){const s=(i=this.state.lastPlayResponse??this.state.openGameResponse)==null?void 0:i.contract.freeRounds.find(u=>u.id===t.id);if(!s)return;this.setState(u=>({...u,freeRoundId:s.id})),this.send("legalBets",{[s.conf.base]:[s.conf.multiplier]}),this.send("bet",{base:s.conf.base,multiplier:s.conf.multiplier})}}),this.on("rgs:freeRoundsError",async t=>{t.type==="timeout"&&!this.config.skipErrors.includes("TIMEOUT")&&this.send("error",{messageKey:"Error.TIMEOUT",messageCode:"TIMEOUT",type:"RELOAD"}),t.type==="error"&&!this.config.skipErrors.includes(t.data.code)&&this.send("error",{messageKey:`RgsError.${t.data.code}`,messageCode:t.data.code,type:oe.RgsErrorAction[t.data.code]})}),this.forwardMessages(),document.addEventListener("visibilitychange",async()=>{O(this,k)&&document.visibilityState==="visible"&&await this.requestWakeLock()})}get state(){const e=this;return new Proxy({},{get(r,n){return Reflect.get(O(e,j),n)}})}setState(e){x(this,j,e(O(this,j))),this.send("state",O(this,j))}forwardMessages(){this.forwardToPlugins("casino",["sdk:autoplay","sdk:balance","sdk:bet","sdk:cashier","sdk:choice","sdk:close","sdk:error","sdk:history","sdk:loadEnd","sdk:loadProgress","sdk:loadStart","sdk:playReady","sdk:playCycleEnd","sdk:playCycleStart","sdk:playEnd","sdk:playStart","sdk:settings","sdk:openGame","sdk:configure","sdk:fullscreen"]),this.forwardToPlugins("casino",["rgs:playResponse","rgs:openGameResponse"]),this.forwardToPlugins("rgs",["sdk:openGame","sdk:history"]),this.forwardToPlugins("rgs",["casino:play","casino:cashier","casino:close","casino:history","casino:getBalance"]),this.forwardToPlugins("telemetry",["sdk:autoplay","sdk:error","sdk:playCycleStart","sdk:playCycleEnd","sdk:loadStart","sdk:loadProgress","sdk:loadEnd","sdk:telemetry.click","sdk:telemetry.orientationChange"]),this.forwardToPlugins("telemetry",["rgs:openGameResponse","rgs:playResponse"]),this.forwardToSdk(["casino:balance","casino:bet","casino:choice","casino:freeze","casino:help","casino:paytable","casino:resume","casino:settings","casino:suspend","casino:unfreeze"]),this.forwardToSdk(["rgs:openGameError","rgs:openGameResponse","rgs:playError","rgs:playResponse","rgs:realityCheck"])}get config(){const e=this;return new Proxy({},{get(r,n){return Reflect.get(O(e,K),n)},set(r,n,t){return Reflect.set(O(e,K),n,t)}})}get sdkConfig(){return O(this,H).config}forwardToPlugins(e,r){r.forEach(n=>{const t=i=>{i.data.message===`kalamba:${n}`&&(jt("wrapper:forwardToPlugins",e,i.data.message.replace(/^kalamba:/,""),i.data.payload),window.postMessage({message:`kalamba:wrapper-${e}:${n.replace(/^(.+):/,"")}`,payload:i.data.payload}))};window.addEventListener("message",t)})}forwardToSdk(e){e.forEach(r=>{const n=t=>{t.data.message===`kalamba:${r}`&&(Iu("wrapper:forwardToSdk",t.data.message.replace(/^kalamba:/,""),t.data.payload),O(this,U).postMessage({message:`kalamba:wrapper:${r.replace(/^(.+):/,"")}`,payload:t.data.payload},"*"))};window.addEventListener("message",n)})}on(e,r,n){const t=function i(s){!new RegExp(`^kalamba:${e.includes(":")?"":"(.+):"}${e}$`).test(s.data.message)||new RegExp(`^kalamba:wrapper-(.+):${e}`).test(s.data.message)||new RegExp(`^kalamba:(.+)-wrapper:${e}`).test(s.data.message)||(jt("on",s.data.message.replace(/^kalamba:/,""),s.data.payload),r(s.data.payload),n!=null&&n.once&&window.removeEventListener("message",i))};window.addEventListener("message",t)}send(e,...[r]){window.postMessage({message:`kalamba:wrapper:${e}`,payload:r}),O(this,U).postMessage({message:`kalamba:wrapper:${e}`,payload:r},"*")}handleFreeRounds(e){const r=e.contract.freeRounds[0];if(r)switch(r.status){case"ACTIVE":this.setState(n=>({...n,freeRoundId:r.id})),this.send("legalBets",{[r.conf.base]:[r.conf.multiplier]}),this.send("bet",{base:r.conf.base,multiplier:r.conf.multiplier});break;case"PENDING":this.send("freeRoundsOffer",r);break;case"FINISHED":this.send("freeRoundsComplete",r),this.setState(n=>({...n,freeRoundId:void 0})),this.send("legalBets",this.state.openGameResponse.contract.bet.available),this.send("bet",this.state.openGameResponse.contract.bet.default);break}}async requestWakeLock(){try{const e=await navigator.wakeLock.request("screen");x(this,k,e)}catch{}}async releaseWakeLock(){O(this,k)&&(await O(this,k).release(),x(this,k,void 0))}}U=new WeakMap,Z=new WeakMap,K=new WeakMap,j=new WeakMap,H=new WeakMap,k=new WeakMap;var fe,Bt;function F(){if(Bt)return fe;Bt=1;function a(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}return fe=a,fe}var ce,Nt;function bt(){if(Nt)return ce;Nt=1;var a=F(),e=Object.create,r=function(){function n(){}return function(t){if(!a(t))return{};if(e)return e(t);n.prototype=t;var i=new n;return n.prototype=void 0,i}}();return ce=r,ce}var le,Ut;function mt(){if(Ut)return le;Ut=1;function a(){}return le=a,le}var he,Kt;function qt(){if(Kt)return he;Kt=1;var a=bt(),e=mt();function r(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}return r.prototype=a(e.prototype),r.prototype.constructor=r,he=r,he}var de,Ht;function Zs(){if(Ht)return de;Ht=1;function a(e,r){for(var n=-1,t=r.length,i=e.length;++n<t;)e[i+n]=r[n];return e}return de=a,de}var pe,Wt;function eu(){if(Wt)return pe;Wt=1;var a=typeof M.commonjsGlobal=="object"&&M.commonjsGlobal&&M.commonjsGlobal.Object===Object&&M.commonjsGlobal;return pe=a,pe}var _e,zt;function E(){if(zt)return _e;zt=1;var a=eu(),e=typeof self=="object"&&self&&self.Object===Object&&self,r=a||e||Function("return this")();return _e=r,_e}var ve,$t;function X(){if($t)return ve;$t=1;var a=E(),e=a.Symbol;return ve=e,ve}var ye,Vt;function Eu(){if(Vt)return ye;Vt=1;var a=X(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,t=a?a.toStringTag:void 0;function i(s){var u=r.call(s,t),o=s[t];try{s[t]=void 0;var f=!0}catch{}var l=n.call(s);return f&&(u?s[t]=o:delete s[t]),l}return ye=i,ye}var ge,Qt;function ku(){if(Qt)return ge;Qt=1;var a=Object.prototype,e=a.toString;function r(n){return e.call(n)}return ge=r,ge}var be,Jt;function W(){if(Jt)return be;Jt=1;var a=X(),e=Eu(),r=ku(),n="[object Null]",t="[object Undefined]",i=a?a.toStringTag:void 0;function s(u){return u==null?u===void 0?t:n:i&&i in Object(u)?e(u):r(u)}return be=s,be}var me,Xt;function G(){if(Xt)return me;Xt=1;function a(e){return e!=null&&typeof e=="object"}return me=a,me}var qe,Yt;function Fu(){if(Yt)return qe;Yt=1;var a=W(),e=G(),r="[object Arguments]";function n(t){return e(t)&&a(t)==r}return qe=n,qe}var we,Zt;function ee(){if(Zt)return we;Zt=1;var a=Fu(),e=G(),r=Object.prototype,n=r.hasOwnProperty,t=r.propertyIsEnumerable,i=a(function(){return arguments}())?a:function(s){return e(s)&&n.call(s,"callee")&&!t.call(s,"callee")};return we=i,we}var Re,en;function I(){if(en)return Re;en=1;var a=Array.isArray;return Re=a,Re}var Ce,rn;function Gu(){if(rn)return Ce;rn=1;var a=X(),e=ee(),r=I(),n=a?a.isConcatSpreadable:void 0;function t(i){return r(i)||e(i)||!!(n&&i&&i[n])}return Ce=t,Ce}var Se,an;function ru(){if(an)return Se;an=1;var a=Zs(),e=Gu();function r(n,t,i,s,u){var o=-1,f=n.length;for(i||(i=e),u||(u=[]);++o<f;){var l=n[o];t>0&&i(l)?t>1?r(l,t-1,i,s,u):a(u,l):s||(u[u.length]=l)}return u}return Se=r,Se}var Te,tn;function Du(){if(tn)return Te;tn=1;var a=ru();function e(r){var n=r==null?0:r.length;return n?a(r,1):[]}return Te=e,Te}var Ae,nn;function xu(){if(nn)return Ae;nn=1;function a(e,r,n){switch(n.length){case 0:return e.call(r);case 1:return e.call(r,n[0]);case 2:return e.call(r,n[0],n[1]);case 3:return e.call(r,n[0],n[1],n[2])}return e.apply(r,n)}return Ae=a,Ae}var Pe,sn;function au(){if(sn)return Pe;sn=1;var a=xu(),e=Math.max;function r(n,t,i){return t=e(t===void 0?n.length-1:t,0),function(){for(var s=arguments,u=-1,o=e(s.length-t,0),f=Array(o);++u<o;)f[u]=s[t+u];u=-1;for(var l=Array(t+1);++u<t;)l[u]=s[u];return l[t]=i(f),a(n,this,l)}}return Pe=r,Pe}var Oe,un;function ju(){if(un)return Oe;un=1;function a(e){return function(){return e}}return Oe=a,Oe}var Le,on;function wt(){if(on)return Le;on=1;var a=W(),e=F(),r="[object AsyncFunction]",n="[object Function]",t="[object GeneratorFunction]",i="[object Proxy]";function s(u){if(!e(u))return!1;var o=a(u);return o==n||o==t||o==r||o==i}return Le=s,Le}var Ie,fn;function Bu(){if(fn)return Ie;fn=1;var a=E(),e=a["__core-js_shared__"];return Ie=e,Ie}var Me,cn;function Nu(){if(cn)return Me;cn=1;var a=Bu(),e=function(){var n=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function r(n){return!!e&&e in n}return Me=r,Me}var Ee,ln;function tu(){if(ln)return Ee;ln=1;var a=Function.prototype,e=a.toString;function r(n){if(n!=null){try{return e.call(n)}catch{}try{return n+""}catch{}}return""}return Ee=r,Ee}var ke,hn;function Uu(){if(hn)return ke;hn=1;var a=wt(),e=Nu(),r=F(),n=tu(),t=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,o=s.toString,f=u.hasOwnProperty,l=RegExp("^"+o.call(f).replace(t,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function c(h){if(!r(h)||e(h))return!1;var _=a(h)?l:i;return _.test(n(h))}return ke=c,ke}var Fe,dn;function Ku(){if(dn)return Fe;dn=1;function a(e,r){return e==null?void 0:e[r]}return Fe=a,Fe}var Ge,pn;function B(){if(pn)return Ge;pn=1;var a=Uu(),e=Ku();function r(n,t){var i=e(n,t);return a(i)?i:void 0}return Ge=r,Ge}var De,_n;function nu(){if(_n)return De;_n=1;var a=B(),e=function(){try{var r=a(Object,"defineProperty");return r({},"",{}),r}catch{}}();return De=e,De}var xe,vn;function re(){if(vn)return xe;vn=1;function a(e){return e}return xe=a,xe}var je,yn;function Hu(){if(yn)return je;yn=1;var a=ju(),e=nu(),r=re(),n=e?function(t,i){return e(t,"toString",{configurable:!0,enumerable:!1,value:a(i),writable:!0})}:r;return je=n,je}var Be,gn;function Wu(){if(gn)return Be;gn=1;var a=800,e=16,r=Date.now;function n(t){var i=0,s=0;return function(){var u=r(),o=e-(u-s);if(s=u,o>0){if(++i>=a)return arguments[0]}else i=0;return t.apply(void 0,arguments)}}return Be=n,Be}var Ne,bn;function iu(){if(bn)return Ne;bn=1;var a=Hu(),e=Wu(),r=e(a);return Ne=r,Ne}var Ue,mn;function zu(){if(mn)return Ue;mn=1;var a=Du(),e=au(),r=iu();function n(t){return r(e(t,void 0,a),t+"")}return Ue=n,Ue}var Ke,qn;function su(){if(qn)return Ke;qn=1;var a=B(),e=E(),r=a(e,"WeakMap");return Ke=r,Ke}var He,wn;function $u(){if(wn)return He;wn=1;var a=su(),e=a&&new a;return He=e,He}var We,Rn;function uu(){if(Rn)return We;Rn=1;var a=$u(),e=M.requireNoop(),r=a?function(n){return a.get(n)}:e;return We=r,We}var ze,Cn;function Vu(){if(Cn)return ze;Cn=1;var a={};return ze=a,ze}var $e,Sn;function ou(){if(Sn)return $e;Sn=1;var a=Vu(),e=Object.prototype,r=e.hasOwnProperty;function n(t){for(var i=t.name+"",s=a[i],u=r.call(a,i)?s.length:0;u--;){var o=s[u],f=o.func;if(f==null||f==t)return o.name}return i}return $e=n,$e}var Ve,Tn;function Rt(){if(Tn)return Ve;Tn=1;var a=bt(),e=mt(),r=4294967295;function n(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=r,this.__views__=[]}return n.prototype=a(e.prototype),n.prototype.constructor=n,Ve=n,Ve}var Qe,An;function fu(){if(An)return Qe;An=1;function a(e,r){var n=-1,t=e.length;for(r||(r=Array(t));++n<t;)r[n]=e[n];return r}return Qe=a,Qe}var Je,Pn;function Qu(){if(Pn)return Je;Pn=1;var a=Rt(),e=qt(),r=fu();function n(t){if(t instanceof a)return t.clone();var i=new e(t.__wrapped__,t.__chain__);return i.__actions__=r(t.__actions__),i.__index__=t.__index__,i.__values__=t.__values__,i}return Je=n,Je}var Xe,On;function Ju(){if(On)return Xe;On=1;var a=Rt(),e=qt(),r=mt(),n=I(),t=G(),i=Qu(),s=Object.prototype,u=s.hasOwnProperty;function o(f){if(t(f)&&!n(f)&&!(f instanceof a)){if(f instanceof e)return f;if(u.call(f,"__wrapped__"))return i(f)}return new e(f)}return o.prototype=r.prototype,o.prototype.constructor=o,Xe=o,Xe}var Ye,Ln;function Xu(){if(Ln)return Ye;Ln=1;var a=Rt(),e=uu(),r=ou(),n=Ju();function t(i){var s=r(i),u=n[s];if(typeof u!="function"||!(s in a.prototype))return!1;if(i===u)return!0;var o=e(u);return!!o&&i===o[0]}return Ye=t,Ye}var Ze,In;function Yu(){if(In)return Ze;In=1;var a=qt(),e=zu(),r=uu(),n=ou(),t=I(),i=Xu(),s="Expected a function",u=8,o=32,f=128,l=256;function c(h){return e(function(_){var w=_.length,p=w,g=a.prototype.thru;for(h&&_.reverse();p--;){var y=_[p];if(typeof y!="function")throw new TypeError(s);if(g&&!d&&n(y)=="wrapper")var d=new a([],!0)}for(p=d?p:w;++p<w;){y=_[p];var S=n(y),b=S=="wrapper"?r(y):void 0;b&&i(b[0])&&b[1]==(f|u|o|l)&&!b[4].length&&b[9]==1?d=d[n(b[0])].apply(d,b[3]):d=y.length==1&&i(y)?d[S]():d.thru(y)}return function(){var C=arguments,m=C[0];if(d&&C.length==1&&t(m))return d.plant(m).value();for(var v=0,R=w?_[v].apply(this,C):m;++v<w;)R=_[v].call(this,R);return R}})}return Ze=c,Ze}var er,Mn;function Zu(){if(Mn)return er;Mn=1;var a=Yu(),e=a();return er=e,er}var eo=Zu();const ro=M.getDefaultExportFromCjs(eo);var rr,En;function ao(){if(En)return rr;En=1;function a(){this.__data__=[],this.size=0}return rr=a,rr}var ar,kn;function z(){if(kn)return ar;kn=1;function a(e,r){return e===r||e!==e&&r!==r}return ar=a,ar}var tr,Fn;function ae(){if(Fn)return tr;Fn=1;var a=z();function e(r,n){for(var t=r.length;t--;)if(a(r[t][0],n))return t;return-1}return tr=e,tr}var nr,Gn;function to(){if(Gn)return nr;Gn=1;var a=ae(),e=Array.prototype,r=e.splice;function n(t){var i=this.__data__,s=a(i,t);if(s<0)return!1;var u=i.length-1;return s==u?i.pop():r.call(i,s,1),--this.size,!0}return nr=n,nr}var ir,Dn;function no(){if(Dn)return ir;Dn=1;var a=ae();function e(r){var n=this.__data__,t=a(n,r);return t<0?void 0:n[t][1]}return ir=e,ir}var sr,xn;function io(){if(xn)return sr;xn=1;var a=ae();function e(r){return a(this.__data__,r)>-1}return sr=e,sr}var ur,jn;function so(){if(jn)return ur;jn=1;var a=ae();function e(r,n){var t=this.__data__,i=a(t,r);return i<0?(++this.size,t.push([r,n])):t[i][1]=n,this}return ur=e,ur}var or,Bn;function te(){if(Bn)return or;Bn=1;var a=ao(),e=to(),r=no(),n=io(),t=so();function i(s){var u=-1,o=s==null?0:s.length;for(this.clear();++u<o;){var f=s[u];this.set(f[0],f[1])}}return i.prototype.clear=a,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=t,or=i,or}var fr,Nn;function uo(){if(Nn)return fr;Nn=1;var a=te();function e(){this.__data__=new a,this.size=0}return fr=e,fr}var cr,Un;function oo(){if(Un)return cr;Un=1;function a(e){var r=this.__data__,n=r.delete(e);return this.size=r.size,n}return cr=a,cr}var lr,Kn;function fo(){if(Kn)return lr;Kn=1;function a(e){return this.__data__.get(e)}return lr=a,lr}var hr,Hn;function co(){if(Hn)return hr;Hn=1;function a(e){return this.__data__.has(e)}return hr=a,hr}var dr,Wn;function Ct(){if(Wn)return dr;Wn=1;var a=B(),e=E(),r=a(e,"Map");return dr=r,dr}var pr,zn;function ne(){if(zn)return pr;zn=1;var a=B(),e=a(Object,"create");return pr=e,pr}var _r,$n;function lo(){if($n)return _r;$n=1;var a=ne();function e(){this.__data__=a?a(null):{},this.size=0}return _r=e,_r}var vr,Vn;function ho(){if(Vn)return vr;Vn=1;function a(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}return vr=a,vr}var yr,Qn;function po(){if(Qn)return yr;Qn=1;var a=ne(),e="__lodash_hash_undefined__",r=Object.prototype,n=r.hasOwnProperty;function t(i){var s=this.__data__;if(a){var u=s[i];return u===e?void 0:u}return n.call(s,i)?s[i]:void 0}return yr=t,yr}var gr,Jn;function _o(){if(Jn)return gr;Jn=1;var a=ne(),e=Object.prototype,r=e.hasOwnProperty;function n(t){var i=this.__data__;return a?i[t]!==void 0:r.call(i,t)}return gr=n,gr}var br,Xn;function vo(){if(Xn)return br;Xn=1;var a=ne(),e="__lodash_hash_undefined__";function r(n,t){var i=this.__data__;return this.size+=this.has(n)?0:1,i[n]=a&&t===void 0?e:t,this}return br=r,br}var mr,Yn;function yo(){if(Yn)return mr;Yn=1;var a=lo(),e=ho(),r=po(),n=_o(),t=vo();function i(s){var u=-1,o=s==null?0:s.length;for(this.clear();++u<o;){var f=s[u];this.set(f[0],f[1])}}return i.prototype.clear=a,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=t,mr=i,mr}var qr,Zn;function go(){if(Zn)return qr;Zn=1;var a=yo(),e=te(),r=Ct();function n(){this.size=0,this.__data__={hash:new a,map:new(r||e),string:new a}}return qr=n,qr}var wr,ei;function bo(){if(ei)return wr;ei=1;function a(e){var r=typeof e;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?e!=="__proto__":e===null}return wr=a,wr}var Rr,ri;function ie(){if(ri)return Rr;ri=1;var a=bo();function e(r,n){var t=r.__data__;return a(n)?t[typeof n=="string"?"string":"hash"]:t.map}return Rr=e,Rr}var Cr,ai;function mo(){if(ai)return Cr;ai=1;var a=ie();function e(r){var n=a(this,r).delete(r);return this.size-=n?1:0,n}return Cr=e,Cr}var Sr,ti;function qo(){if(ti)return Sr;ti=1;var a=ie();function e(r){return a(this,r).get(r)}return Sr=e,Sr}var Tr,ni;function wo(){if(ni)return Tr;ni=1;var a=ie();function e(r){return a(this,r).has(r)}return Tr=e,Tr}var Ar,ii;function Ro(){if(ii)return Ar;ii=1;var a=ie();function e(r,n){var t=a(this,r),i=t.size;return t.set(r,n),this.size+=t.size==i?0:1,this}return Ar=e,Ar}var Pr,si;function St(){if(si)return Pr;si=1;var a=go(),e=mo(),r=qo(),n=wo(),t=Ro();function i(s){var u=-1,o=s==null?0:s.length;for(this.clear();++u<o;){var f=s[u];this.set(f[0],f[1])}}return i.prototype.clear=a,i.prototype.delete=e,i.prototype.get=r,i.prototype.has=n,i.prototype.set=t,Pr=i,Pr}var Or,ui;function Co(){if(ui)return Or;ui=1;var a=te(),e=Ct(),r=St(),n=200;function t(i,s){var u=this.__data__;if(u instanceof a){var o=u.__data__;if(!e||o.length<n-1)return o.push([i,s]),this.size=++u.size,this;u=this.__data__=new r(o)}return u.set(i,s),this.size=u.size,this}return Or=t,Or}var Lr,oi;function Tt(){if(oi)return Lr;oi=1;var a=te(),e=uo(),r=oo(),n=fo(),t=co(),i=Co();function s(u){var o=this.__data__=new a(u);this.size=o.size}return s.prototype.clear=e,s.prototype.delete=r,s.prototype.get=n,s.prototype.has=t,s.prototype.set=i,Lr=s,Lr}var Ir,fi;function At(){if(fi)return Ir;fi=1;var a=nu();function e(r,n,t){n=="__proto__"&&a?a(r,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[n]=t}return Ir=e,Ir}var Mr,ci;function cu(){if(ci)return Mr;ci=1;var a=At(),e=z();function r(n,t,i){(i!==void 0&&!e(n[t],i)||i===void 0&&!(t in n))&&a(n,t,i)}return Mr=r,Mr}var Er,li;function So(){if(li)return Er;li=1;function a(e){return function(r,n,t){for(var i=-1,s=Object(r),u=t(r),o=u.length;o--;){var f=u[e?o:++i];if(n(s[f],f,s)===!1)break}return r}}return Er=a,Er}var kr,hi;function lu(){if(hi)return kr;hi=1;var a=So(),e=a();return kr=e,kr}var V={exports:{}};V.exports;var di;function To(){return di||(di=1,function(a,e){var r=E(),n=e&&!e.nodeType&&e,t=n&&!0&&a&&!a.nodeType&&a,i=t&&t.exports===n,s=i?r.Buffer:void 0,u=s?s.allocUnsafe:void 0;function o(f,l){if(l)return f.slice();var c=f.length,h=u?u(c):new f.constructor(c);return f.copy(h),h}a.exports=o}(V,V.exports)),V.exports}var Fr,pi;function hu(){if(pi)return Fr;pi=1;var a=E(),e=a.Uint8Array;return Fr=e,Fr}var Gr,_i;function Ao(){if(_i)return Gr;_i=1;var a=hu();function e(r){var n=new r.constructor(r.byteLength);return new a(n).set(new a(r)),n}return Gr=e,Gr}var Dr,vi;function Po(){if(vi)return Dr;vi=1;var a=Ao();function e(r,n){var t=n?a(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}return Dr=e,Dr}var xr,yi;function du(){if(yi)return xr;yi=1;function a(e,r){return function(n){return e(r(n))}}return xr=a,xr}var jr,gi;function pu(){if(gi)return jr;gi=1;var a=du(),e=a(Object.getPrototypeOf,Object);return jr=e,jr}var Br,bi;function Pt(){if(bi)return Br;bi=1;var a=Object.prototype;function e(r){var n=r&&r.constructor,t=typeof n=="function"&&n.prototype||a;return r===t}return Br=e,Br}var Nr,mi;function Oo(){if(mi)return Nr;mi=1;var a=bt(),e=pu(),r=Pt();function n(t){return typeof t.constructor=="function"&&!r(t)?a(e(t)):{}}return Nr=n,Nr}var Ur,qi;function Ot(){if(qi)return Ur;qi=1;var a=9007199254740991;function e(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=a}return Ur=e,Ur}var Kr,wi;function $(){if(wi)return Kr;wi=1;var a=wt(),e=Ot();function r(n){return n!=null&&e(n.length)&&!a(n)}return Kr=r,Kr}var Hr,Ri;function Lo(){if(Ri)return Hr;Ri=1;var a=$(),e=G();function r(n){return e(n)&&a(n)}return Hr=r,Hr}var Q={exports:{}},Wr,Ci;function Io(){if(Ci)return Wr;Ci=1;function a(){return!1}return Wr=a,Wr}Q.exports;var Si;function Lt(){return Si||(Si=1,function(a,e){var r=E(),n=Io(),t=e&&!e.nodeType&&e,i=t&&!0&&a&&!a.nodeType&&a,s=i&&i.exports===t,u=s?r.Buffer:void 0,o=u?u.isBuffer:void 0,f=o||n;a.exports=f}(Q,Q.exports)),Q.exports}var zr,Ti;function Mo(){if(Ti)return zr;Ti=1;var a=W(),e=pu(),r=G(),n="[object Object]",t=Function.prototype,i=Object.prototype,s=t.toString,u=i.hasOwnProperty,o=s.call(Object);function f(l){if(!r(l)||a(l)!=n)return!1;var c=e(l);if(c===null)return!0;var h=u.call(c,"constructor")&&c.constructor;return typeof h=="function"&&h instanceof h&&s.call(h)==o}return zr=f,zr}var $r,Ai;function Eo(){if(Ai)return $r;Ai=1;var a=W(),e=Ot(),r=G(),n="[object Arguments]",t="[object Array]",i="[object Boolean]",s="[object Date]",u="[object Error]",o="[object Function]",f="[object Map]",l="[object Number]",c="[object Object]",h="[object RegExp]",_="[object Set]",w="[object String]",p="[object WeakMap]",g="[object ArrayBuffer]",y="[object DataView]",d="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",C="[object Int16Array]",m="[object Int32Array]",v="[object Uint8Array]",R="[object Uint8ClampedArray]",A="[object Uint16Array]",T="[object Uint32Array]",q={};q[d]=q[S]=q[b]=q[C]=q[m]=q[v]=q[R]=q[A]=q[T]=!0,q[n]=q[t]=q[g]=q[i]=q[y]=q[s]=q[u]=q[o]=q[f]=q[l]=q[c]=q[h]=q[_]=q[w]=q[p]=!1;function L(P){return r(P)&&e(P.length)&&!!q[a(P)]}return $r=L,$r}var Vr,Pi;function _u(){if(Pi)return Vr;Pi=1;function a(e){return function(r){return e(r)}}return Vr=a,Vr}var J={exports:{}};J.exports;var Oi;function ko(){return Oi||(Oi=1,function(a,e){var r=eu(),n=e&&!e.nodeType&&e,t=n&&!0&&a&&!a.nodeType&&a,i=t&&t.exports===n,s=i&&r.process,u=function(){try{var o=t&&t.require&&t.require("util").types;return o||s&&s.binding&&s.binding("util")}catch{}}();a.exports=u}(J,J.exports)),J.exports}var Qr,Li;function It(){if(Li)return Qr;Li=1;var a=Eo(),e=_u(),r=ko(),n=r&&r.isTypedArray,t=n?e(n):a;return Qr=t,Qr}var Jr,Ii;function vu(){if(Ii)return Jr;Ii=1;function a(e,r){if(!(r==="constructor"&&typeof e[r]=="function")&&r!="__proto__")return e[r]}return Jr=a,Jr}var Xr,Mi;function Fo(){if(Mi)return Xr;Mi=1;var a=At(),e=z(),r=Object.prototype,n=r.hasOwnProperty;function t(i,s,u){var o=i[s];(!(n.call(i,s)&&e(o,u))||u===void 0&&!(s in i))&&a(i,s,u)}return Xr=t,Xr}var Yr,Ei;function Go(){if(Ei)return Yr;Ei=1;var a=Fo(),e=At();function r(n,t,i,s){var u=!i;i||(i={});for(var o=-1,f=t.length;++o<f;){var l=t[o],c=s?s(i[l],n[l],l,i,n):void 0;c===void 0&&(c=n[l]),u?e(i,l,c):a(i,l,c)}return i}return Yr=r,Yr}var Zr,ki;function Do(){if(ki)return Zr;ki=1;function a(e,r){for(var n=-1,t=Array(e);++n<e;)t[n]=r(n);return t}return Zr=a,Zr}var ea,Fi;function Mt(){if(Fi)return ea;Fi=1;var a=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function r(n,t){var i=typeof n;return t=t??a,!!t&&(i=="number"||i!="symbol"&&e.test(n))&&n>-1&&n%1==0&&n<t}return ea=r,ea}var ra,Gi;function yu(){if(Gi)return ra;Gi=1;var a=Do(),e=ee(),r=I(),n=Lt(),t=Mt(),i=It(),s=Object.prototype,u=s.hasOwnProperty;function o(f,l){var c=r(f),h=!c&&e(f),_=!c&&!h&&n(f),w=!c&&!h&&!_&&i(f),p=c||h||_||w,g=p?a(f.length,String):[],y=g.length;for(var d in f)(l||u.call(f,d))&&!(p&&(d=="length"||_&&(d=="offset"||d=="parent")||w&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||t(d,y)))&&g.push(d);return g}return ra=o,ra}var aa,Di;function xo(){if(Di)return aa;Di=1;function a(e){var r=[];if(e!=null)for(var n in Object(e))r.push(n);return r}return aa=a,aa}var ta,xi;function jo(){if(xi)return ta;xi=1;var a=F(),e=Pt(),r=xo(),n=Object.prototype,t=n.hasOwnProperty;function i(s){if(!a(s))return r(s);var u=e(s),o=[];for(var f in s)f=="constructor"&&(u||!t.call(s,f))||o.push(f);return o}return ta=i,ta}var na,ji;function gu(){if(ji)return na;ji=1;var a=yu(),e=jo(),r=$();function n(t){return r(t)?a(t,!0):e(t)}return na=n,na}var ia,Bi;function Bo(){if(Bi)return ia;Bi=1;var a=Go(),e=gu();function r(n){return a(n,e(n))}return ia=r,ia}var sa,Ni;function No(){if(Ni)return sa;Ni=1;var a=cu(),e=To(),r=Po(),n=fu(),t=Oo(),i=ee(),s=I(),u=Lo(),o=Lt(),f=wt(),l=F(),c=Mo(),h=It(),_=vu(),w=Bo();function p(g,y,d,S,b,C,m){var v=_(g,d),R=_(y,d),A=m.get(R);if(A){a(g,d,A);return}var T=C?C(v,R,d+"",g,y,m):void 0,q=T===void 0;if(q){var L=s(R),P=!L&&o(R),N=!L&&!P&&h(R);T=R,L||P||N?s(v)?T=v:u(v)?T=n(v):P?(q=!1,T=e(R,!0)):N?(q=!1,T=r(R,!0)):T=[]:c(R)||i(R)?(T=v,i(v)?T=w(v):(!l(v)||f(v))&&(T=t(R))):q=!1}q&&(m.set(R,T),b(T,R,S,C,m),m.delete(R)),a(g,d,T)}return sa=p,sa}var ua,Ui;function Uo(){if(Ui)return ua;Ui=1;var a=Tt(),e=cu(),r=lu(),n=No(),t=F(),i=gu(),s=vu();function u(o,f,l,c,h){o!==f&&r(f,function(_,w){if(h||(h=new a),t(_))n(o,f,w,l,u,c,h);else{var p=c?c(s(o,w),_,w+"",o,f,h):void 0;p===void 0&&(p=_),e(o,w,p)}},i)}return ua=u,ua}var oa,Ki;function bu(){if(Ki)return oa;Ki=1;var a=re(),e=au(),r=iu();function n(t,i){return r(e(t,i,a),t+"")}return oa=n,oa}var fa,Hi;function mu(){if(Hi)return fa;Hi=1;var a=z(),e=$(),r=Mt(),n=F();function t(i,s,u){if(!n(u))return!1;var o=typeof s;return(o=="number"?e(u)&&r(s,u.length):o=="string"&&s in u)?a(u[s],i):!1}return fa=t,fa}var ca,Wi;function Ko(){if(Wi)return ca;Wi=1;var a=bu(),e=mu();function r(n){return a(function(t,i){var s=-1,u=i.length,o=u>1?i[u-1]:void 0,f=u>2?i[2]:void 0;for(o=n.length>3&&typeof o=="function"?(u--,o):void 0,f&&e(i[0],i[1],f)&&(o=u<3?void 0:o,u=1),t=Object(t);++s<u;){var l=i[s];l&&n(t,l,s,o)}return t})}return ca=r,ca}var la,zi;function Ho(){if(zi)return la;zi=1;var a=Uo(),e=Ko(),r=e(function(n,t,i){a(n,t,i)});return la=r,la}var Wo=Ho();const ha=M.getDefaultExportFromCjs(Wo);var da,$i;function qu(){if($i)return da;$i=1;function a(e,r){for(var n=-1,t=e==null?0:e.length,i=Array(t);++n<t;)i[n]=r(e[n],n,e);return i}return da=a,da}var pa,Vi;function se(){if(Vi)return pa;Vi=1;var a=W(),e=G(),r="[object Symbol]";function n(t){return typeof t=="symbol"||e(t)&&a(t)==r}return pa=n,pa}var _a,Qi;function Et(){if(Qi)return _a;Qi=1;var a=I(),e=se(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;function t(i,s){if(a(i))return!1;var u=typeof i;return u=="number"||u=="symbol"||u=="boolean"||i==null||e(i)?!0:n.test(i)||!r.test(i)||s!=null&&i in Object(s)}return _a=t,_a}var va,Ji;function zo(){if(Ji)return va;Ji=1;var a=St(),e="Expected a function";function r(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(e);var i=function(){var s=arguments,u=t?t.apply(this,s):s[0],o=i.cache;if(o.has(u))return o.get(u);var f=n.apply(this,s);return i.cache=o.set(u,f)||o,f};return i.cache=new(r.Cache||a),i}return r.Cache=a,va=r,va}var ya,Xi;function $o(){if(Xi)return ya;Xi=1;var a=zo(),e=500;function r(n){var t=a(n,function(s){return i.size===e&&i.clear(),s}),i=t.cache;return t}return ya=r,ya}var ga,Yi;function Vo(){if(Yi)return ga;Yi=1;var a=$o(),e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,n=a(function(t){var i=[];return t.charCodeAt(0)===46&&i.push(""),t.replace(e,function(s,u,o,f){i.push(o?f.replace(r,"$1"):u||s)}),i});return ga=n,ga}var ba,Zi;function Qo(){if(Zi)return ba;Zi=1;var a=X(),e=qu(),r=I(),n=se(),t=a?a.prototype:void 0,i=t?t.toString:void 0;function s(u){if(typeof u=="string")return u;if(r(u))return e(u,s)+"";if(n(u))return i?i.call(u):"";var o=u+"";return o=="0"&&1/u==-1/0?"-0":o}return ba=s,ba}var ma,es;function Jo(){if(es)return ma;es=1;var a=Qo();function e(r){return r==null?"":a(r)}return ma=e,ma}var qa,rs;function wu(){if(rs)return qa;rs=1;var a=I(),e=Et(),r=Vo(),n=Jo();function t(i,s){return a(i)?i:e(i,s)?[i]:r(n(i))}return qa=t,qa}var wa,as;function ue(){if(as)return wa;as=1;var a=se();function e(r){if(typeof r=="string"||a(r))return r;var n=r+"";return n=="0"&&1/r==-1/0?"-0":n}return wa=e,wa}var Ra,ts;function kt(){if(ts)return Ra;ts=1;var a=wu(),e=ue();function r(n,t){t=a(t,n);for(var i=0,s=t.length;n!=null&&i<s;)n=n[e(t[i++])];return i&&i==s?n:void 0}return Ra=r,Ra}var Ca,ns;function Xo(){if(ns)return Ca;ns=1;var a="__lodash_hash_undefined__";function e(r){return this.__data__.set(r,a),this}return Ca=e,Ca}var Sa,is;function Yo(){if(is)return Sa;is=1;function a(e){return this.__data__.has(e)}return Sa=a,Sa}var Ta,ss;function Zo(){if(ss)return Ta;ss=1;var a=St(),e=Xo(),r=Yo();function n(t){var i=-1,s=t==null?0:t.length;for(this.__data__=new a;++i<s;)this.add(t[i])}return n.prototype.add=n.prototype.push=e,n.prototype.has=r,Ta=n,Ta}var Aa,us;function ef(){if(us)return Aa;us=1;function a(e,r){for(var n=-1,t=e==null?0:e.length;++n<t;)if(r(e[n],n,e))return!0;return!1}return Aa=a,Aa}var Pa,os;function rf(){if(os)return Pa;os=1;function a(e,r){return e.has(r)}return Pa=a,Pa}var Oa,fs;function Ru(){if(fs)return Oa;fs=1;var a=Zo(),e=ef(),r=rf(),n=1,t=2;function i(s,u,o,f,l,c){var h=o&n,_=s.length,w=u.length;if(_!=w&&!(h&&w>_))return!1;var p=c.get(s),g=c.get(u);if(p&&g)return p==u&&g==s;var y=-1,d=!0,S=o&t?new a:void 0;for(c.set(s,u),c.set(u,s);++y<_;){var b=s[y],C=u[y];if(f)var m=h?f(C,b,y,u,s,c):f(b,C,y,s,u,c);if(m!==void 0){if(m)continue;d=!1;break}if(S){if(!e(u,function(v,R){if(!r(S,R)&&(b===v||l(b,v,o,f,c)))return S.push(R)})){d=!1;break}}else if(!(b===C||l(b,C,o,f,c))){d=!1;break}}return c.delete(s),c.delete(u),d}return Oa=i,Oa}var La,cs;function af(){if(cs)return La;cs=1;function a(e){var r=-1,n=Array(e.size);return e.forEach(function(t,i){n[++r]=[i,t]}),n}return La=a,La}var Ia,ls;function tf(){if(ls)return Ia;ls=1;function a(e){var r=-1,n=Array(e.size);return e.forEach(function(t){n[++r]=t}),n}return Ia=a,Ia}var Ma,hs;function nf(){if(hs)return Ma;hs=1;var a=X(),e=hu(),r=z(),n=Ru(),t=af(),i=tf(),s=1,u=2,o="[object Boolean]",f="[object Date]",l="[object Error]",c="[object Map]",h="[object Number]",_="[object RegExp]",w="[object Set]",p="[object String]",g="[object Symbol]",y="[object ArrayBuffer]",d="[object DataView]",S=a?a.prototype:void 0,b=S?S.valueOf:void 0;function C(m,v,R,A,T,q,L){switch(R){case d:if(m.byteLength!=v.byteLength||m.byteOffset!=v.byteOffset)return!1;m=m.buffer,v=v.buffer;case y:return!(m.byteLength!=v.byteLength||!q(new e(m),new e(v)));case o:case f:case h:return r(+m,+v);case l:return m.name==v.name&&m.message==v.message;case _:case p:return m==v+"";case c:var P=t;case w:var N=A&s;if(P||(P=i),m.size!=v.size&&!N)return!1;var Y=L.get(m);if(Y)return Y==v;A|=u,L.set(m,v);var Pu=n(P(m),P(v),A,T,q,L);return L.delete(m),Pu;case g:if(b)return b.call(m)==b.call(v)}return!1}return Ma=C,Ma}var Ea,ds;function sf(){if(ds)return Ea;ds=1;var a=Zs(),e=I();function r(n,t,i){var s=t(n);return e(n)?s:a(s,i(n))}return Ea=r,Ea}var ka,ps;function uf(){if(ps)return ka;ps=1;function a(e,r){for(var n=-1,t=e==null?0:e.length,i=0,s=[];++n<t;){var u=e[n];r(u,n,e)&&(s[i++]=u)}return s}return ka=a,ka}var Fa,_s;function of(){if(_s)return Fa;_s=1;function a(){return[]}return Fa=a,Fa}var Ga,vs;function ff(){if(vs)return Ga;vs=1;var a=uf(),e=of(),r=Object.prototype,n=r.propertyIsEnumerable,t=Object.getOwnPropertySymbols,i=t?function(s){return s==null?[]:(s=Object(s),a(t(s),function(u){return n.call(s,u)}))}:e;return Ga=i,Ga}var Da,ys;function cf(){if(ys)return Da;ys=1;var a=du(),e=a(Object.keys,Object);return Da=e,Da}var xa,gs;function lf(){if(gs)return xa;gs=1;var a=Pt(),e=cf(),r=Object.prototype,n=r.hasOwnProperty;function t(i){if(!a(i))return e(i);var s=[];for(var u in Object(i))n.call(i,u)&&u!="constructor"&&s.push(u);return s}return xa=t,xa}var ja,bs;function Ft(){if(bs)return ja;bs=1;var a=yu(),e=lf(),r=$();function n(t){return r(t)?a(t):e(t)}return ja=n,ja}var Ba,ms;function hf(){if(ms)return Ba;ms=1;var a=sf(),e=ff(),r=Ft();function n(t){return a(t,r,e)}return Ba=n,Ba}var Na,qs;function df(){if(qs)return Na;qs=1;var a=hf(),e=1,r=Object.prototype,n=r.hasOwnProperty;function t(i,s,u,o,f,l){var c=u&e,h=a(i),_=h.length,w=a(s),p=w.length;if(_!=p&&!c)return!1;for(var g=_;g--;){var y=h[g];if(!(c?y in s:n.call(s,y)))return!1}var d=l.get(i),S=l.get(s);if(d&&S)return d==s&&S==i;var b=!0;l.set(i,s),l.set(s,i);for(var C=c;++g<_;){y=h[g];var m=i[y],v=s[y];if(o)var R=c?o(v,m,y,s,i,l):o(m,v,y,i,s,l);if(!(R===void 0?m===v||f(m,v,u,o,l):R)){b=!1;break}C||(C=y=="constructor")}if(b&&!C){var A=i.constructor,T=s.constructor;A!=T&&"constructor"in i&&"constructor"in s&&!(typeof A=="function"&&A instanceof A&&typeof T=="function"&&T instanceof T)&&(b=!1)}return l.delete(i),l.delete(s),b}return Na=t,Na}var Ua,ws;function pf(){if(ws)return Ua;ws=1;var a=B(),e=E(),r=a(e,"DataView");return Ua=r,Ua}var Ka,Rs;function _f(){if(Rs)return Ka;Rs=1;var a=B(),e=E(),r=a(e,"Promise");return Ka=r,Ka}var Ha,Cs;function vf(){if(Cs)return Ha;Cs=1;var a=B(),e=E(),r=a(e,"Set");return Ha=r,Ha}var Wa,Ss;function yf(){if(Ss)return Wa;Ss=1;var a=pf(),e=Ct(),r=_f(),n=vf(),t=su(),i=W(),s=tu(),u="[object Map]",o="[object Object]",f="[object Promise]",l="[object Set]",c="[object WeakMap]",h="[object DataView]",_=s(a),w=s(e),p=s(r),g=s(n),y=s(t),d=i;return(a&&d(new a(new ArrayBuffer(1)))!=h||e&&d(new e)!=u||r&&d(r.resolve())!=f||n&&d(new n)!=l||t&&d(new t)!=c)&&(d=function(S){var b=i(S),C=b==o?S.constructor:void 0,m=C?s(C):"";if(m)switch(m){case _:return h;case w:return u;case p:return f;case g:return l;case y:return c}return b}),Wa=d,Wa}var za,Ts;function gf(){if(Ts)return za;Ts=1;var a=Tt(),e=Ru(),r=nf(),n=df(),t=yf(),i=I(),s=Lt(),u=It(),o=1,f="[object Arguments]",l="[object Array]",c="[object Object]",h=Object.prototype,_=h.hasOwnProperty;function w(p,g,y,d,S,b){var C=i(p),m=i(g),v=C?l:t(p),R=m?l:t(g);v=v==f?c:v,R=R==f?c:R;var A=v==c,T=R==c,q=v==R;if(q&&s(p)){if(!s(g))return!1;C=!0,A=!1}if(q&&!A)return b||(b=new a),C||u(p)?e(p,g,y,d,S,b):r(p,g,v,y,d,S,b);if(!(y&o)){var L=A&&_.call(p,"__wrapped__"),P=T&&_.call(g,"__wrapped__");if(L||P){var N=L?p.value():p,Y=P?g.value():g;return b||(b=new a),S(N,Y,y,d,b)}}return q?(b||(b=new a),n(p,g,y,d,S,b)):!1}return za=w,za}var $a,As;function Cu(){if(As)return $a;As=1;var a=gf(),e=G();function r(n,t,i,s,u){return n===t?!0:n==null||t==null||!e(n)&&!e(t)?n!==n&&t!==t:a(n,t,i,s,r,u)}return $a=r,$a}var Va,Ps;function bf(){if(Ps)return Va;Ps=1;var a=Tt(),e=Cu(),r=1,n=2;function t(i,s,u,o){var f=u.length,l=f,c=!o;if(i==null)return!l;for(i=Object(i);f--;){var h=u[f];if(c&&h[2]?h[1]!==i[h[0]]:!(h[0]in i))return!1}for(;++f<l;){h=u[f];var _=h[0],w=i[_],p=h[1];if(c&&h[2]){if(w===void 0&&!(_ in i))return!1}else{var g=new a;if(o)var y=o(w,p,_,i,s,g);if(!(y===void 0?e(p,w,r|n,o,g):y))return!1}}return!0}return Va=t,Va}var Qa,Os;function Su(){if(Os)return Qa;Os=1;var a=F();function e(r){return r===r&&!a(r)}return Qa=e,Qa}var Ja,Ls;function mf(){if(Ls)return Ja;Ls=1;var a=Su(),e=Ft();function r(n){for(var t=e(n),i=t.length;i--;){var s=t[i],u=n[s];t[i]=[s,u,a(u)]}return t}return Ja=r,Ja}var Xa,Is;function Tu(){if(Is)return Xa;Is=1;function a(e,r){return function(n){return n==null?!1:n[e]===r&&(r!==void 0||e in Object(n))}}return Xa=a,Xa}var Ya,Ms;function qf(){if(Ms)return Ya;Ms=1;var a=bf(),e=mf(),r=Tu();function n(t){var i=e(t);return i.length==1&&i[0][2]?r(i[0][0],i[0][1]):function(s){return s===t||a(s,t,i)}}return Ya=n,Ya}var Za,Es;function wf(){if(Es)return Za;Es=1;var a=kt();function e(r,n,t){var i=r==null?void 0:a(r,n);return i===void 0?t:i}return Za=e,Za}var et,ks;function Rf(){if(ks)return et;ks=1;function a(e,r){return e!=null&&r in Object(e)}return et=a,et}var rt,Fs;function Cf(){if(Fs)return rt;Fs=1;var a=wu(),e=ee(),r=I(),n=Mt(),t=Ot(),i=ue();function s(u,o,f){o=a(o,u);for(var l=-1,c=o.length,h=!1;++l<c;){var _=i(o[l]);if(!(h=u!=null&&f(u,_)))break;u=u[_]}return h||++l!=c?h:(c=u==null?0:u.length,!!c&&t(c)&&n(_,c)&&(r(u)||e(u)))}return rt=s,rt}var at,Gs;function Sf(){if(Gs)return at;Gs=1;var a=Rf(),e=Cf();function r(n,t){return n!=null&&e(n,t,a)}return at=r,at}var tt,Ds;function Tf(){if(Ds)return tt;Ds=1;var a=Cu(),e=wf(),r=Sf(),n=Et(),t=Su(),i=Tu(),s=ue(),u=1,o=2;function f(l,c){return n(l)&&t(c)?i(s(l),c):function(h){var _=e(h,l);return _===void 0&&_===c?r(h,l):a(c,_,u|o)}}return tt=f,tt}var nt,xs;function Af(){if(xs)return nt;xs=1;function a(e){return function(r){return r==null?void 0:r[e]}}return nt=a,nt}var it,js;function Pf(){if(js)return it;js=1;var a=kt();function e(r){return function(n){return a(n,r)}}return it=e,it}var st,Bs;function Of(){if(Bs)return st;Bs=1;var a=Af(),e=Pf(),r=Et(),n=ue();function t(i){return r(i)?a(n(i)):e(i)}return st=t,st}var ut,Ns;function Lf(){if(Ns)return ut;Ns=1;var a=qf(),e=Tf(),r=re(),n=I(),t=Of();function i(s){return typeof s=="function"?s:s==null?r:typeof s=="object"?n(s)?e(s[0],s[1]):a(s):t(s)}return ut=i,ut}var ot,Us;function If(){if(Us)return ot;Us=1;var a=lu(),e=Ft();function r(n,t){return n&&a(n,t,e)}return ot=r,ot}var ft,Ks;function Mf(){if(Ks)return ft;Ks=1;var a=$();function e(r,n){return function(t,i){if(t==null)return t;if(!a(t))return r(t,i);for(var s=t.length,u=n?s:-1,o=Object(t);(n?u--:++u<s)&&i(o[u],u,o)!==!1;);return t}}return ft=e,ft}var ct,Hs;function Ef(){if(Hs)return ct;Hs=1;var a=If(),e=Mf(),r=e(a);return ct=r,ct}var lt,Ws;function kf(){if(Ws)return lt;Ws=1;var a=Ef(),e=$();function r(n,t){var i=-1,s=e(n)?Array(n.length):[];return a(n,function(u,o,f){s[++i]=t(u,o,f)}),s}return lt=r,lt}var ht,zs;function Ff(){if(zs)return ht;zs=1;function a(e,r){var n=e.length;for(e.sort(r);n--;)e[n]=e[n].value;return e}return ht=a,ht}var dt,$s;function Gf(){if($s)return dt;$s=1;var a=se();function e(r,n){if(r!==n){var t=r!==void 0,i=r===null,s=r===r,u=a(r),o=n!==void 0,f=n===null,l=n===n,c=a(n);if(!f&&!c&&!u&&r>n||u&&o&&l&&!f&&!c||i&&o&&l||!t&&l||!s)return 1;if(!i&&!u&&!c&&r<n||c&&t&&s&&!i&&!u||f&&t&&s||!o&&s||!l)return-1}return 0}return dt=e,dt}var pt,Vs;function Df(){if(Vs)return pt;Vs=1;var a=Gf();function e(r,n,t){for(var i=-1,s=r.criteria,u=n.criteria,o=s.length,f=t.length;++i<o;){var l=a(s[i],u[i]);if(l){if(i>=f)return l;var c=t[i];return l*(c=="desc"?-1:1)}}return r.index-n.index}return pt=e,pt}var _t,Qs;function xf(){if(Qs)return _t;Qs=1;var a=qu(),e=kt(),r=Lf(),n=kf(),t=Ff(),i=_u(),s=Df(),u=re(),o=I();function f(l,c,h){c.length?c=a(c,function(p){return o(p)?function(g){return e(g,p.length===1?p[0]:p)}:p}):c=[u];var _=-1;c=a(c,i(r));var w=n(l,function(p,g,y){var d=a(c,function(S){return S(p)});return{criteria:d,index:++_,value:p}});return t(w,function(p,g){return s(p,g,h)})}return _t=f,_t}var vt,Js;function jf(){if(Js)return vt;Js=1;var a=ru(),e=xf(),r=bu(),n=mu(),t=r(function(i,s){if(i==null)return[];var u=s.length;return u>1&&n(i,s[0],s[1])?s=[]:u>2&&n(s[0],s[1],s[2])&&(s=[s[0]]),e(i,a(s,1),[])});return vt=t,vt}var Bf=jf();const Nf=M.getDefaultExportFromCjs(Bf);var yt,Xs;function Uf(){if(Xs)return yt;Xs=1;var a=z();function e(r,n){for(var t=-1,i=r.length,s=0,u=[];++t<i;){var o=r[t],f=n?n(o):o;if(!t||!a(f,l)){var l=f;u[s++]=o===0?0:o}}return u}return yt=e,yt}var gt,Ys;function Kf(){if(Ys)return gt;Ys=1;var a=Uf();function e(r){return r&&r.length?a(r):[]}return gt=e,gt}var Hf=Kf();const Wf=M.getDefaultExportFromCjs(Hf);class Au{constructor(){Dt(this,"config");this.config={api:{brand:"",cashierUrl:void 0,coinValueInCents:1,country:"",currency:"",game:"",gameHistoryUrl:"",homeUrl:void 0,integration:"",jurisdiction:null,playMode:"FUN",user:"",sessionId:M.v4(),backendSessionId:void 0},ui:{autoplay:{enabled:!1,rounds:{enabled:!1,showNoLimit:!1,showCustomLimit:!1,options:[]},lossLimit:{enabled:!1,showNoLimit:!1,showCustomLimit:!1,options:[]},winLimit:{enabled:!1,showNoLimit:!1,showCustomLimit:!1,options:[]},simple:!1,stopOnFeature:!1},cashier:{enabled:!1,balanceThreshold:[0]},feature:{allowTelemetry:!1,allowFullscreen:!1,allowGamble:!1,allowQuickStop:!1,showCashier:!1,showClock:!1,showCloseGame:!1,showCurrency:!0,showFastPlay:!1,showFeatureBuy:!1,showFeatureIntro:!1,showFeatureOutro:!1,showFunModeBanner:!1,showHistory:!1,showLowWinCelebration:!1,showMaximumWin:!1,showNetPosition:!1,showPaylineLines:!1,showPaytable:!1,showRoundId:!1,showRtp:!1,showRules:!1,showSessionDuration:!1,showUi:!0},language:"en",minimumSpinDuration:0,requestTimeoutMs:1e4,incompleteGameResolution:{type:"NONE"},realityCheck:{sessionDurationPeriodFormat:"minutes",showCloseGame:!1,showHistory:!1,showNetPosition:!1,showSessionDuration:!1,showSumBets:!1,showSumWins:!1},skipInsufficientFundsCheck:!1,skipSplash:!1,cheatPanel:!1}}}}function zf(a,e){function r(n,{maxCount:t}){const i=o=>(o==null?void 0:o.filter(f=>f<=t))??[],s=o=>(o==null?void 0:o.map(f=>Number(f)))??[],u=[...n,t];return ro([s,i,Nf,Wf])(u)}switch(e){case"BG":return{autoplay:{lossLimit:{enabled:!0,showNoLimit:!1},winLimit:{enabled:!0}}};case"BR":return{feature:{showPaylineLines:!0}};case"CA":return{autoplay:{enabled:!1},feature:{showFastPlay:!1,allowQuickStop:!1,showFeatureBuy:!1},minimumSpinDuration:2.5};case"CO":return{autoplay:{rounds:{showNoLimit:!1,showCustomLimit:!1,options:r(a.autoplay.rounds.options,{maxCount:100})}},feature:{showFastPlay:!1,allowQuickStop:!1},minimumSpinDuration:3};case"CZ":return{feature:{showFastPlay:!1,showFeatureBuy:!1,allowGamble:!1},minimumSpinDuration:2};case"DE":return{autoplay:{enabled:!1},feature:{showFastPlay:!1,allowQuickStop:!1,showFeatureBuy:!1},minimumSpinDuration:5};case"ES":return{autoplay:{rounds:{showNoLimit:!1,showCustomLimit:!1,options:r(a.autoplay.rounds.options,{maxCount:100})}},feature:{showFastPlay:!1,allowQuickStop:!1},minimumSpinDuration:3};case"GR":return{feature:{showFastPlay:!1,allowQuickStop:!1,showFeatureBuy:!1},minimumSpinDuration:3};case"IT":return{feature:{showPaylineLines:!0}};case"NL":return{autoplay:{enabled:!1},feature:{showFeatureBuy:!1}};case"PT":return{autoplay:{rounds:{showNoLimit:!1,showCustomLimit:!1,options:r(a.autoplay.rounds.options,{maxCount:100})}},feature:{showFeatureBuy:!1,showFastPlay:!1,allowQuickStop:!1},minimumSpinDuration:3};case"SE":return{autoplay:{rounds:{showNoLimit:!1,showCustomLimit:!1,options:r(a.autoplay.rounds.options,{maxCount:100})}},feature:{showFastPlay:!1,allowQuickStop:!1},minimumSpinDuration:3};case"UK":return{autoplay:{enabled:!1},feature:{showFastPlay:!1,allowQuickStop:!1,showFeatureBuy:!1},minimumSpinDuration:2.5};case"US":return{feature:{showPaylineLines:!0}};case"MT":return{feature:{showClock:!0}};case"SOCIAL":return{feature:{showHistory:!1}};case"CLASS2":return{autoplay:{enabled:!1},feature:{showFeatureBuy:!1}}}return{}}class $f extends Au{async getConfig(){let e=this.config.ui;const r=await this.fetchOperatorConfig();e=ha({},e,r);const n=new URLSearchParams(window.location.search),t=JSON.parse(n.get("badgeParameters")??"{}");e=ha({},e,t);const i=zf(e,this.config.api.jurisdiction);return e=ha({},e,i),e}get mappedIntegration(){const e=this.config.api.integration.toLowerCase(),r=this.config.api.brand.toLowerCase();if(e==="spinomenal"){if(r.startsWith("gg-"))return"groove"}else if(e==="pariplay"){if(r.startsWith("8x1"))return"pariplay-8x1"}else{if(/openbox-.*/.test(e))return"openbox";if(/oryx-.*/.test(e))return"oryx";if(/relax-.*/.test(e))return"relax"}return e}get mappedBrand(){const e=this.config.api.integration.toLowerCase(),r=this.config.api.brand.toLowerCase();return e==="bspot"&&this.config.api.playMode.toLowerCase()==="fun"?"demo":r}mapUiConfig(e){return e?{autoplay:{enabled:e.badge.autoplayType!==5,rounds:{enabled:e.badge.autoplayType!==5,showNoLimit:!1,showCustomLimit:!1,options:e.badge.autoplayRounds??[5,10,25,75,100]},lossLimit:{enabled:e.badge.autoplayType===1||e.badge.autoplayType===4,showNoLimit:e.badge.autoplayType===1,showCustomLimit:e.badge.autoplayType!==6,options:[5,25,50]},winLimit:{enabled:e.badge.autoplayType===1||e.badge.autoplayType===4,showNoLimit:!0,showCustomLimit:e.badge.autoplayType!==6,options:[10,20,75]},simple:e.badge.autoplayType===3},cashier:{enabled:e.badge.showQuickDeposit,balanceThreshold:e.badge.quickDepositBalanceThresholds},feature:{allowTelemetry:!0,allowFullscreen:e.defaults.fullscreen==="true",allowGamble:e.badge.gambleHideWithAutoCollect===void 0?!0:!e.badge.gambleHideWithAutoCollect,allowQuickStop:e.badge.minimumSpinDuration===0,showCashier:e.badge.showQuickDeposit,showClock:e.badge.showClock,showCloseGame:e.badge.showCloseGameButton&&(!e.badge.showCloseGameButtonOptional||!!this.config.api.homeUrl),showCurrency:e.badge.showCurrency,showFastPlay:e.badge.showTurboButton,showFeatureBuy:e.badge.showHyperBonus,showFunModeBanner:e.badge.showFunBanner,showHistory:e.badge.showGameHistory,showPaylineLines:e.badge.showPaylineLines,showRoundId:e.badge.showRoundId,showRules:e.badge.showGameRules,showSessionDuration:e.badge.realityCheckShowSessionDuration,showUi:e.badge.showGameUi},minimumSpinDuration:e.badge.minimumSpinDuration,requestTimeoutMs:e.badge.requestTimeoutMs,incompleteGameResolution:{daysToAutoResolution:e.badge.incompleteGamesResolutionType===3?e.badge.daysToAutoResolution??90:void 0,type:e.badge.incompleteGamesResolutionType===2?"MANUAL":e.badge.incompleteGamesResolutionType===3?"AUTOMATIC":void 0},realityCheck:{sessionDurationPeriodFormat:e.badge.realityCheckPeriodFormat,showCloseGame:e.badge.realityCheckShowCloseGame,showHistory:e.badge.realityCheckShowHistoryLink,showNetPosition:e.badge.realityCheckShowNetGamingActivity,showSessionDuration:e.badge.realityCheckShowSessionDuration,showSumBets:e.badge.realityCheckShowSumBets,showSumWins:e.badge.realityCheckShowSumWins},skipInsufficientFundsCheck:e.badge.skipInsufficientFundsCheck,skipSplash:e.badge.loaderAutoContinue}:{}}async fetchOperatorConfig(){const e="https://awscdn.kalamba.net/games/games/build/",r=this.mappedIntegration,n=this.mappedBrand;let t={};try{t=await fetch(`${e}config/${r}/cage/${n}.json`).then(i=>i.json())}catch{try{t=await fetch(`${e}config/${r}/operator.json`).then(s=>s.json())}catch{t=await fetch(`${e}config/fun/operator.json`).then(u=>u.json())}}return this.mapUiConfig(t)}}exports.KalambaSdkConfigManager=$f;exports.KalambaSdkWrapper=Mu;exports.SdkConfigManager=Au;
|
|
5
|
+
const require_errors = require('./errors-BUjKnbx5.cjs');
|
|
6
|
+
let lodash_es = require("lodash-es");
|
|
7
|
+
let uuid = require("uuid");
|
|
8
|
+
|
|
9
|
+
//#region src/common/PayloadInjectionManager.ts
|
|
10
|
+
/**
|
|
11
|
+
* PayloadInjectionManager manages payload injection from multiple sources.
|
|
12
|
+
* Each source can register either static payload data or async functions that will be merged together when creating the final payload for injection.
|
|
13
|
+
*/
|
|
14
|
+
var PayloadInjectionManager = class {
|
|
15
|
+
#injectors = /* @__PURE__ */ new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Register or update payload injector from a specific source
|
|
18
|
+
* @param source - Unique identifier for the payload source (e.g., 'bspot', 'freeRounds')
|
|
19
|
+
* @param payload - Payload data or async function that receives playPayload and returns payload data
|
|
20
|
+
*/
|
|
21
|
+
register(source, payloadProvider) {
|
|
22
|
+
this.#injectors.set(source, payloadProvider);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Remove payload injector from a specific source
|
|
26
|
+
* @param source - Source identifier to remove
|
|
27
|
+
*/
|
|
28
|
+
unregister(source) {
|
|
29
|
+
this.#injectors.delete(source);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get merged payload from all registered injectors
|
|
33
|
+
* @param playPayload - The play payload that will be passed to registered functions
|
|
34
|
+
* @returns Promise resolving to merged payload object or undefined if no injectors registered
|
|
35
|
+
*/
|
|
36
|
+
async getPayload(playPayload) {
|
|
37
|
+
if (this.#injectors.size === 0) return;
|
|
38
|
+
const merged = {};
|
|
39
|
+
for (const payloadProvider of this.#injectors.values()) (0, lodash_es.merge)(merged, typeof payloadProvider === "function" ? await payloadProvider(playPayload) : payloadProvider);
|
|
40
|
+
return merged;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/wrapper/KalambaSdkWrapper.ts
|
|
46
|
+
const logIn = () => {};
|
|
47
|
+
const logOut = () => {};
|
|
48
|
+
var KalambaSdkWrapper = class {
|
|
49
|
+
#messagePort;
|
|
50
|
+
#plugins;
|
|
51
|
+
#config = {
|
|
52
|
+
gameName: "UNKNOWN",
|
|
53
|
+
gameVersion: "unknown",
|
|
54
|
+
showErrors: true,
|
|
55
|
+
showFreeRounds: true,
|
|
56
|
+
showPromoPanel: false,
|
|
57
|
+
showRealityCheck: true,
|
|
58
|
+
showBars: true,
|
|
59
|
+
skipErrors: []
|
|
60
|
+
};
|
|
61
|
+
#state = {
|
|
62
|
+
isSdkConfigured: false,
|
|
63
|
+
balance: 0,
|
|
64
|
+
bet: {
|
|
65
|
+
base: 0,
|
|
66
|
+
multiplier: 0
|
|
67
|
+
},
|
|
68
|
+
openGameResponse: void 0,
|
|
69
|
+
lastPlayResponse: void 0,
|
|
70
|
+
freeRoundId: void 0
|
|
71
|
+
};
|
|
72
|
+
#sdkConfigManager;
|
|
73
|
+
#payloadInjectionManager;
|
|
74
|
+
#wakeLock;
|
|
75
|
+
constructor({ messagePort, plugins, sdkConfigManager }) {
|
|
76
|
+
this.#messagePort = messagePort;
|
|
77
|
+
this.#sdkConfigManager = new sdkConfigManager();
|
|
78
|
+
this.#payloadInjectionManager = new PayloadInjectionManager();
|
|
79
|
+
this.injectPayload = this.injectPayload.bind(this);
|
|
80
|
+
this.#plugins = {
|
|
81
|
+
rgs: new plugins.rgs(this.config, this.sdkConfig),
|
|
82
|
+
casino: plugins.casino.map((casinoPlugin) => new casinoPlugin(this.config, this.sdkConfig, this.state, this.injectPayload)),
|
|
83
|
+
telemetry: plugins.telemetry.map(({ plugin, trackers }) => new plugin(trackers.map((tracker) => new tracker(this.config, this.sdkConfig)), this.config, this.sdkConfig))
|
|
84
|
+
};
|
|
85
|
+
this.on("balance", ({ balance }) => {
|
|
86
|
+
this.setState((state) => ({
|
|
87
|
+
...state,
|
|
88
|
+
balance
|
|
89
|
+
}));
|
|
90
|
+
});
|
|
91
|
+
this.on("bet", (bet) => {
|
|
92
|
+
this.setState((state) => ({
|
|
93
|
+
...state,
|
|
94
|
+
bet
|
|
95
|
+
}));
|
|
96
|
+
});
|
|
97
|
+
this.on("sdk:playCycleStart", async () => {
|
|
98
|
+
await this.requestWakeLock();
|
|
99
|
+
if (this.state.freeRoundId) return;
|
|
100
|
+
this.setState((state) => ({
|
|
101
|
+
...state,
|
|
102
|
+
balance: state.balance - state.bet.base * state.bet.multiplier
|
|
103
|
+
}));
|
|
104
|
+
});
|
|
105
|
+
this.on("sdk:play", async (payload) => {
|
|
106
|
+
const payloadToInject = await this.#payloadInjectionManager.getPayload(payload.contract);
|
|
107
|
+
this.send("play", {
|
|
108
|
+
...payload,
|
|
109
|
+
payloadToInject
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
this.on("sdk:configure", (payload) => {
|
|
113
|
+
Object.assign(this.#config, payload);
|
|
114
|
+
});
|
|
115
|
+
this.on("freeRoundsPopup", () => {
|
|
116
|
+
const freeRound = (this.state.lastPlayResponse ?? this.state.openGameResponse)?.freeRounds[0];
|
|
117
|
+
if (freeRound && this.state.freeRoundId) this.send("freeRoundsInfo", freeRound);
|
|
118
|
+
});
|
|
119
|
+
this.on("rgs:openGameResponse", async (response) => {
|
|
120
|
+
this.setState((state) => ({
|
|
121
|
+
...state,
|
|
122
|
+
openGameResponse: response.contract
|
|
123
|
+
}));
|
|
124
|
+
if (this.sdkConfig.api.integration !== "bspot") this.setState((state) => ({
|
|
125
|
+
...state,
|
|
126
|
+
balance: response.contract.balance.coins
|
|
127
|
+
}));
|
|
128
|
+
this.on("playReady", () => {
|
|
129
|
+
this.handleFreeRounds(response.contract.freeRounds[0]);
|
|
130
|
+
});
|
|
131
|
+
this.sdkConfig.ui = await this.#sdkConfigManager.getConfig();
|
|
132
|
+
this.setState((state) => ({
|
|
133
|
+
...state,
|
|
134
|
+
isSdkConfigured: true
|
|
135
|
+
}));
|
|
136
|
+
this.send("configured", this.sdkConfig);
|
|
137
|
+
});
|
|
138
|
+
this.on("rgs:openGameError", async (error) => {
|
|
139
|
+
if (error.type === "timeout" && !this.config.skipErrors.includes("TIMEOUT")) this.send("error", {
|
|
140
|
+
messageKey: `Error.TIMEOUT`,
|
|
141
|
+
messageCode: "TIMEOUT",
|
|
142
|
+
type: "RELOAD"
|
|
143
|
+
});
|
|
144
|
+
if (error.type === "error" && !this.config.skipErrors.includes(error.data.code)) this.send("error", {
|
|
145
|
+
messageKey: `RgsError.${error.data.code}`,
|
|
146
|
+
messageCode: error.data.code,
|
|
147
|
+
type: require_errors.RgsErrorAction[error.data.code]
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
this.on("rgs:playResponse", async (response) => {
|
|
151
|
+
this.setState((state) => ({
|
|
152
|
+
...state,
|
|
153
|
+
lastPlayResponse: response.contract
|
|
154
|
+
}));
|
|
155
|
+
});
|
|
156
|
+
this.on("playCycleEnd", () => {
|
|
157
|
+
this.releaseWakeLock();
|
|
158
|
+
if (this.sdkConfig.api.integration !== "bspot") this.setState((state) => ({
|
|
159
|
+
...state,
|
|
160
|
+
balance: this.state.lastPlayResponse.balance.coins
|
|
161
|
+
}));
|
|
162
|
+
this.handleFreeRounds(this.state.lastPlayResponse.freeRounds[0]);
|
|
163
|
+
});
|
|
164
|
+
this.on("rgs:playError", async (error) => {
|
|
165
|
+
if (error.type === "timeout" && !this.config.skipErrors.includes("TIMEOUT")) this.send("error", {
|
|
166
|
+
messageKey: `Error.TIMEOUT`,
|
|
167
|
+
messageCode: "TIMEOUT",
|
|
168
|
+
type: "RELOAD"
|
|
169
|
+
});
|
|
170
|
+
if (error.type === "error" && !this.config.skipErrors.includes(error.data.code)) this.send("error", {
|
|
171
|
+
messageKey: `RgsError.${error.data.code}`,
|
|
172
|
+
messageCode: error.data.code,
|
|
173
|
+
type: require_errors.RgsErrorAction[error.data.code]
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
this.on("rgs:freeRoundsResponse", async (response) => {
|
|
177
|
+
if (response.action === "ACCEPT") {
|
|
178
|
+
const freeRound = (this.state.lastPlayResponse ?? this.state.openGameResponse)?.freeRounds[0];
|
|
179
|
+
this.activateFreeRounds(freeRound);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
this.on("rgs:freeRoundsError", async (error) => {
|
|
183
|
+
if (error.type === "timeout" && !this.config.skipErrors.includes("TIMEOUT")) this.send("error", {
|
|
184
|
+
messageKey: `Error.TIMEOUT`,
|
|
185
|
+
messageCode: "TIMEOUT",
|
|
186
|
+
type: "RELOAD"
|
|
187
|
+
});
|
|
188
|
+
if (error.type === "error" && !this.config.skipErrors.includes(error.data.code)) this.send("error", {
|
|
189
|
+
messageKey: `RgsError.${error.data.code}`,
|
|
190
|
+
messageCode: error.data.code,
|
|
191
|
+
type: require_errors.RgsErrorAction[error.data.code]
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
this.forwardMessages();
|
|
195
|
+
document.addEventListener("visibilitychange", async () => {
|
|
196
|
+
if (this.#wakeLock && document.visibilityState === "visible") await this.requestWakeLock();
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
get state() {
|
|
200
|
+
const that = this;
|
|
201
|
+
return new Proxy({}, { get(_target, prop) {
|
|
202
|
+
return Reflect.get(that.#state, prop);
|
|
203
|
+
} });
|
|
204
|
+
}
|
|
205
|
+
setState(setter) {
|
|
206
|
+
this.#state = setter(this.#state);
|
|
207
|
+
this.send("state", this.#state);
|
|
208
|
+
}
|
|
209
|
+
forwardMessages() {
|
|
210
|
+
this.forwardToPlugins("casino", [
|
|
211
|
+
"sdk:autoplay",
|
|
212
|
+
"sdk:bet",
|
|
213
|
+
"sdk:cashier",
|
|
214
|
+
"sdk:choice",
|
|
215
|
+
"sdk:close",
|
|
216
|
+
"sdk:error",
|
|
217
|
+
"sdk:history",
|
|
218
|
+
"sdk:loadEnd",
|
|
219
|
+
"sdk:loadProgress",
|
|
220
|
+
"sdk:loadStart",
|
|
221
|
+
"sdk:playReady",
|
|
222
|
+
"sdk:playCycleEnd",
|
|
223
|
+
"sdk:playCycleStart",
|
|
224
|
+
"sdk:playEnd",
|
|
225
|
+
"sdk:playStart",
|
|
226
|
+
"sdk:settings",
|
|
227
|
+
"sdk:openGame",
|
|
228
|
+
"sdk:configure",
|
|
229
|
+
"sdk:fullscreen"
|
|
230
|
+
]);
|
|
231
|
+
this.forwardToPlugins("casino", ["rgs:playResponse", "rgs:openGameResponse"]);
|
|
232
|
+
this.forwardToPlugins("rgs", ["sdk:openGame", "sdk:history"]);
|
|
233
|
+
this.forwardToPlugins("rgs", [
|
|
234
|
+
"casino:play",
|
|
235
|
+
"casino:cashier",
|
|
236
|
+
"casino:close",
|
|
237
|
+
"casino:history",
|
|
238
|
+
"casino:getBalance"
|
|
239
|
+
]);
|
|
240
|
+
this.forwardToPlugins("telemetry", [
|
|
241
|
+
"sdk:autoplay",
|
|
242
|
+
"sdk:error",
|
|
243
|
+
"sdk:playCycleStart",
|
|
244
|
+
"sdk:playCycleEnd",
|
|
245
|
+
"sdk:loadStart",
|
|
246
|
+
"sdk:loadProgress",
|
|
247
|
+
"sdk:loadEnd",
|
|
248
|
+
"sdk:telemetry.click",
|
|
249
|
+
"sdk:telemetry.orientationChange"
|
|
250
|
+
]);
|
|
251
|
+
this.forwardToPlugins("telemetry", ["rgs:openGameResponse", "rgs:playResponse"]);
|
|
252
|
+
this.forwardToSdk([
|
|
253
|
+
"casino:balance",
|
|
254
|
+
"casino:bet",
|
|
255
|
+
"casino:choice",
|
|
256
|
+
"casino:freeze",
|
|
257
|
+
"casino:help",
|
|
258
|
+
"casino:paytable",
|
|
259
|
+
"casino:resume",
|
|
260
|
+
"casino:settings",
|
|
261
|
+
"casino:suspend",
|
|
262
|
+
"casino:unfreeze"
|
|
263
|
+
]);
|
|
264
|
+
this.forwardToSdk([
|
|
265
|
+
"rgs:balance",
|
|
266
|
+
"rgs:openGameError",
|
|
267
|
+
"rgs:openGameResponse",
|
|
268
|
+
"rgs:playError",
|
|
269
|
+
"rgs:playResponse",
|
|
270
|
+
"rgs:realityCheck"
|
|
271
|
+
]);
|
|
272
|
+
}
|
|
273
|
+
get config() {
|
|
274
|
+
const that = this;
|
|
275
|
+
return new Proxy({}, {
|
|
276
|
+
get(_target, prop) {
|
|
277
|
+
return Reflect.get(that.#config, prop);
|
|
278
|
+
},
|
|
279
|
+
set(_target, prop, value) {
|
|
280
|
+
return Reflect.set(that.#config, prop, value);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
get sdkConfig() {
|
|
285
|
+
return this.#sdkConfigManager.config;
|
|
286
|
+
}
|
|
287
|
+
forwardToPlugins(targetDomain, messages) {
|
|
288
|
+
messages.forEach((message) => {
|
|
289
|
+
const onMessage = (event) => {
|
|
290
|
+
if (event.data.message !== `kalamba:${message}`) return;
|
|
291
|
+
logIn("wrapper:forwardToPlugins", targetDomain, event.data.message.replace(/^kalamba:/, ""), event.data.payload);
|
|
292
|
+
window.postMessage({
|
|
293
|
+
message: `kalamba:wrapper-${targetDomain}:${message.replace(/^(.+):/, "")}`,
|
|
294
|
+
payload: event.data.payload
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
window.addEventListener("message", onMessage);
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
forwardToSdk(messages) {
|
|
301
|
+
messages.forEach((message) => {
|
|
302
|
+
const onMessage = (event) => {
|
|
303
|
+
if (event.data.message !== `kalamba:${message}`) return;
|
|
304
|
+
logOut("wrapper:forwardToSdk", event.data.message.replace(/^kalamba:/, ""), event.data.payload);
|
|
305
|
+
this.#messagePort.postMessage({
|
|
306
|
+
message: `kalamba:wrapper:${message.replace(/^(.+):/, "")}`,
|
|
307
|
+
payload: event.data.payload
|
|
308
|
+
}, "*");
|
|
309
|
+
};
|
|
310
|
+
window.addEventListener("message", onMessage);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
on(message, listener, options) {
|
|
314
|
+
const onMessage = function onMessage(event) {
|
|
315
|
+
if (!new RegExp(`^kalamba:${message.includes(":") ? "" : "(.+):"}${message}$`).test(event.data.message) || new RegExp(`^kalamba:wrapper-(.+):${message}`).test(event.data.message) || new RegExp(`^kalamba:(.+)-wrapper:${message}`).test(event.data.message)) return;
|
|
316
|
+
logIn("on", event.data.message.replace(/^kalamba:/, ""), event.data.payload);
|
|
317
|
+
listener(event.data.payload);
|
|
318
|
+
if (options?.once) window.removeEventListener("message", onMessage);
|
|
319
|
+
};
|
|
320
|
+
window.addEventListener("message", onMessage);
|
|
321
|
+
return () => window.removeEventListener("message", onMessage);
|
|
322
|
+
}
|
|
323
|
+
send(message, ...[payload]) {
|
|
324
|
+
logOut("wrapper:send", message, payload);
|
|
325
|
+
window.postMessage({
|
|
326
|
+
message: `kalamba:wrapper:${message}`,
|
|
327
|
+
payload
|
|
328
|
+
});
|
|
329
|
+
this.#messagePort.postMessage({
|
|
330
|
+
message: `kalamba:wrapper:${message}`,
|
|
331
|
+
payload
|
|
332
|
+
}, "*");
|
|
333
|
+
}
|
|
334
|
+
injectPayload(...[source, payload]) {
|
|
335
|
+
this.#payloadInjectionManager.register(source, payload);
|
|
336
|
+
return () => this.#payloadInjectionManager.unregister(source);
|
|
337
|
+
}
|
|
338
|
+
activateFreeRounds(freeRound) {
|
|
339
|
+
if (!freeRound) return;
|
|
340
|
+
this.setState((state) => ({
|
|
341
|
+
...state,
|
|
342
|
+
freeRoundId: freeRound.id
|
|
343
|
+
}));
|
|
344
|
+
this.#payloadInjectionManager.register("freeRounds", { freeRoundId: freeRound.id });
|
|
345
|
+
this.send("legalBets", { [freeRound.conf.base]: [freeRound.conf.multiplier] });
|
|
346
|
+
this.send("bet", {
|
|
347
|
+
base: freeRound.conf.base,
|
|
348
|
+
multiplier: freeRound.conf.multiplier
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
handleFreeRounds(freeRound) {
|
|
352
|
+
if (!freeRound) return;
|
|
353
|
+
switch (freeRound.status) {
|
|
354
|
+
case "ACTIVE":
|
|
355
|
+
this.activateFreeRounds(freeRound);
|
|
356
|
+
break;
|
|
357
|
+
case "PENDING":
|
|
358
|
+
this.send("freeRoundsOffer", freeRound);
|
|
359
|
+
break;
|
|
360
|
+
case "FINISHED":
|
|
361
|
+
this.send("freeRoundsComplete", freeRound);
|
|
362
|
+
this.setState((state) => ({
|
|
363
|
+
...state,
|
|
364
|
+
freeRoundId: void 0
|
|
365
|
+
}));
|
|
366
|
+
this.#payloadInjectionManager.unregister("freeRounds");
|
|
367
|
+
this.send("legalBets", this.state.openGameResponse.bet.available);
|
|
368
|
+
this.send("bet", this.state.openGameResponse.bet.default);
|
|
369
|
+
break;
|
|
370
|
+
default: break;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async requestWakeLock() {
|
|
374
|
+
try {
|
|
375
|
+
this.#wakeLock = await navigator.wakeLock.request("screen");
|
|
376
|
+
} catch {}
|
|
377
|
+
}
|
|
378
|
+
async releaseWakeLock() {
|
|
379
|
+
if (!this.#wakeLock) return;
|
|
380
|
+
await this.#wakeLock.release();
|
|
381
|
+
this.#wakeLock = void 0;
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
//#endregion
|
|
386
|
+
//#region src/common/config/SdkConfigManager.ts
|
|
387
|
+
var SdkConfigManager = class {
|
|
388
|
+
config;
|
|
389
|
+
constructor() {
|
|
390
|
+
this.config = {
|
|
391
|
+
api: {
|
|
392
|
+
brand: "",
|
|
393
|
+
cashierUrl: void 0,
|
|
394
|
+
coinValueInCents: 1,
|
|
395
|
+
country: "",
|
|
396
|
+
currency: "",
|
|
397
|
+
game: "",
|
|
398
|
+
gameHistoryUrl: "",
|
|
399
|
+
homeUrl: void 0,
|
|
400
|
+
integration: "",
|
|
401
|
+
jurisdiction: null,
|
|
402
|
+
playMode: "FUN",
|
|
403
|
+
user: "",
|
|
404
|
+
sessionId: (0, uuid.v4)(),
|
|
405
|
+
backendSessionId: void 0
|
|
406
|
+
},
|
|
407
|
+
ui: {
|
|
408
|
+
autoplay: {
|
|
409
|
+
enabled: false,
|
|
410
|
+
rounds: {
|
|
411
|
+
enabled: false,
|
|
412
|
+
showNoLimit: false,
|
|
413
|
+
showCustomLimit: false,
|
|
414
|
+
options: []
|
|
415
|
+
},
|
|
416
|
+
lossLimit: {
|
|
417
|
+
enabled: false,
|
|
418
|
+
showNoLimit: false,
|
|
419
|
+
showCustomLimit: false,
|
|
420
|
+
options: []
|
|
421
|
+
},
|
|
422
|
+
winLimit: {
|
|
423
|
+
enabled: false,
|
|
424
|
+
showNoLimit: false,
|
|
425
|
+
showCustomLimit: false,
|
|
426
|
+
options: []
|
|
427
|
+
},
|
|
428
|
+
simple: false,
|
|
429
|
+
stopOnFeature: false
|
|
430
|
+
},
|
|
431
|
+
cashier: {
|
|
432
|
+
enabled: false,
|
|
433
|
+
balanceThreshold: [0]
|
|
434
|
+
},
|
|
435
|
+
feature: {
|
|
436
|
+
allowTelemetry: false,
|
|
437
|
+
allowFullscreen: false,
|
|
438
|
+
allowGamble: false,
|
|
439
|
+
allowQuickStop: false,
|
|
440
|
+
showCashier: false,
|
|
441
|
+
showClock: false,
|
|
442
|
+
showCloseGame: false,
|
|
443
|
+
showCurrency: true,
|
|
444
|
+
showFastPlay: false,
|
|
445
|
+
showFeatureBuy: false,
|
|
446
|
+
showFeatureIntro: false,
|
|
447
|
+
showFeatureOutro: false,
|
|
448
|
+
showFunModeBanner: false,
|
|
449
|
+
showHistory: false,
|
|
450
|
+
showLowWinCelebration: false,
|
|
451
|
+
showMaximumWin: false,
|
|
452
|
+
showNetPosition: false,
|
|
453
|
+
showPaylineLines: false,
|
|
454
|
+
showPaytable: false,
|
|
455
|
+
showRoundId: false,
|
|
456
|
+
showRtp: false,
|
|
457
|
+
showRules: false,
|
|
458
|
+
showSessionDuration: false,
|
|
459
|
+
showUi: true
|
|
460
|
+
},
|
|
461
|
+
language: "en",
|
|
462
|
+
minimumSpinDuration: 0,
|
|
463
|
+
requestTimeoutMs: 1e4,
|
|
464
|
+
incompleteGameResolution: { type: "NONE" },
|
|
465
|
+
realityCheck: {
|
|
466
|
+
sessionDurationPeriodFormat: "minutes",
|
|
467
|
+
showCloseGame: false,
|
|
468
|
+
showHistory: false,
|
|
469
|
+
showNetPosition: false,
|
|
470
|
+
showSessionDuration: false,
|
|
471
|
+
showSumBets: false,
|
|
472
|
+
showSumWins: false
|
|
473
|
+
},
|
|
474
|
+
skipInsufficientFundsCheck: false,
|
|
475
|
+
skipSplash: false,
|
|
476
|
+
cheatPanel: false
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
//#endregion
|
|
483
|
+
//#region src/common/config/KalambaSdkConfigManager.ts
|
|
484
|
+
function jurisdictionConfigOverrides(config, jurisdiction) {
|
|
485
|
+
function limitRounds(autoPlayRounds, { maxCount }) {
|
|
486
|
+
const limitCount = (rounds) => rounds?.filter((count) => count <= maxCount) ?? [];
|
|
487
|
+
const castToNumber = (rounds) => rounds?.map((count) => Number(count)) ?? [];
|
|
488
|
+
const rounds = [...autoPlayRounds, maxCount];
|
|
489
|
+
return (0, lodash_es.flow)([
|
|
490
|
+
castToNumber,
|
|
491
|
+
limitCount,
|
|
492
|
+
lodash_es.sortBy,
|
|
493
|
+
lodash_es.sortedUniq
|
|
494
|
+
])(rounds);
|
|
495
|
+
}
|
|
496
|
+
switch (jurisdiction) {
|
|
497
|
+
case "BG": return { autoplay: {
|
|
498
|
+
lossLimit: {
|
|
499
|
+
enabled: true,
|
|
500
|
+
showNoLimit: false
|
|
501
|
+
},
|
|
502
|
+
winLimit: { enabled: true }
|
|
503
|
+
} };
|
|
504
|
+
case "BR": return { feature: { showPaylineLines: true } };
|
|
505
|
+
case "CA": return {
|
|
506
|
+
autoplay: { enabled: false },
|
|
507
|
+
feature: {
|
|
508
|
+
showFastPlay: false,
|
|
509
|
+
allowQuickStop: false,
|
|
510
|
+
showFeatureBuy: false
|
|
511
|
+
},
|
|
512
|
+
minimumSpinDuration: 2.5
|
|
513
|
+
};
|
|
514
|
+
case "CO": return {
|
|
515
|
+
autoplay: { rounds: {
|
|
516
|
+
showNoLimit: false,
|
|
517
|
+
showCustomLimit: false,
|
|
518
|
+
options: limitRounds(config.autoplay.rounds.options, { maxCount: 100 })
|
|
519
|
+
} },
|
|
520
|
+
feature: {
|
|
521
|
+
showFastPlay: false,
|
|
522
|
+
allowQuickStop: false
|
|
523
|
+
},
|
|
524
|
+
minimumSpinDuration: 3
|
|
525
|
+
};
|
|
526
|
+
case "CZ": return {
|
|
527
|
+
feature: {
|
|
528
|
+
showFastPlay: false,
|
|
529
|
+
showFeatureBuy: false,
|
|
530
|
+
allowGamble: false
|
|
531
|
+
},
|
|
532
|
+
minimumSpinDuration: 2
|
|
533
|
+
};
|
|
534
|
+
case "DE": return {
|
|
535
|
+
autoplay: { enabled: false },
|
|
536
|
+
feature: {
|
|
537
|
+
showFastPlay: false,
|
|
538
|
+
allowQuickStop: false,
|
|
539
|
+
showFeatureBuy: false
|
|
540
|
+
},
|
|
541
|
+
minimumSpinDuration: 5
|
|
542
|
+
};
|
|
543
|
+
case "ES": return {
|
|
544
|
+
autoplay: { rounds: {
|
|
545
|
+
showNoLimit: false,
|
|
546
|
+
showCustomLimit: false,
|
|
547
|
+
options: limitRounds(config.autoplay.rounds.options, { maxCount: 100 })
|
|
548
|
+
} },
|
|
549
|
+
feature: {
|
|
550
|
+
showFastPlay: false,
|
|
551
|
+
allowQuickStop: false
|
|
552
|
+
},
|
|
553
|
+
minimumSpinDuration: 3
|
|
554
|
+
};
|
|
555
|
+
case "GR": return {
|
|
556
|
+
feature: {
|
|
557
|
+
showFastPlay: false,
|
|
558
|
+
allowQuickStop: false,
|
|
559
|
+
showFeatureBuy: false
|
|
560
|
+
},
|
|
561
|
+
minimumSpinDuration: 3
|
|
562
|
+
};
|
|
563
|
+
case "IT": return { feature: { showPaylineLines: true } };
|
|
564
|
+
case "NL": return {
|
|
565
|
+
autoplay: { enabled: false },
|
|
566
|
+
feature: { showFeatureBuy: false }
|
|
567
|
+
};
|
|
568
|
+
case "PT": return {
|
|
569
|
+
autoplay: { rounds: {
|
|
570
|
+
showNoLimit: false,
|
|
571
|
+
showCustomLimit: false,
|
|
572
|
+
options: limitRounds(config.autoplay.rounds.options, { maxCount: 100 })
|
|
573
|
+
} },
|
|
574
|
+
feature: {
|
|
575
|
+
showFeatureBuy: false,
|
|
576
|
+
showFastPlay: false,
|
|
577
|
+
allowQuickStop: false
|
|
578
|
+
},
|
|
579
|
+
minimumSpinDuration: 3
|
|
580
|
+
};
|
|
581
|
+
case "SE": return {
|
|
582
|
+
autoplay: { rounds: {
|
|
583
|
+
showNoLimit: false,
|
|
584
|
+
showCustomLimit: false,
|
|
585
|
+
options: limitRounds(config.autoplay.rounds.options, { maxCount: 100 })
|
|
586
|
+
} },
|
|
587
|
+
feature: {
|
|
588
|
+
showFastPlay: false,
|
|
589
|
+
allowQuickStop: false
|
|
590
|
+
},
|
|
591
|
+
minimumSpinDuration: 3
|
|
592
|
+
};
|
|
593
|
+
case "UK": return {
|
|
594
|
+
autoplay: { enabled: false },
|
|
595
|
+
feature: {
|
|
596
|
+
showFastPlay: false,
|
|
597
|
+
allowQuickStop: false,
|
|
598
|
+
showFeatureBuy: false
|
|
599
|
+
},
|
|
600
|
+
minimumSpinDuration: 2.5
|
|
601
|
+
};
|
|
602
|
+
case "US": return { feature: { showPaylineLines: true } };
|
|
603
|
+
case "MT": return { feature: { showClock: true } };
|
|
604
|
+
case "SOCIAL": return { feature: { showHistory: false } };
|
|
605
|
+
case "CLASS2": return {
|
|
606
|
+
autoplay: { enabled: false },
|
|
607
|
+
feature: { showFeatureBuy: false }
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
return {};
|
|
611
|
+
}
|
|
612
|
+
var KalambaSdkConfigManager = class extends SdkConfigManager {
|
|
613
|
+
async getConfig() {
|
|
614
|
+
let uiConfig = this.config.ui;
|
|
615
|
+
const operatorConfig = await this.fetchOperatorConfig();
|
|
616
|
+
uiConfig = (0, lodash_es.merge)({}, uiConfig, operatorConfig);
|
|
617
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
618
|
+
const badgeOverrides = JSON.parse(searchParams.get("badgeParameters") ?? "{}");
|
|
619
|
+
uiConfig = (0, lodash_es.merge)({}, uiConfig, badgeOverrides);
|
|
620
|
+
const jurisdictionOverrides = jurisdictionConfigOverrides(uiConfig, this.config.api.jurisdiction);
|
|
621
|
+
uiConfig = (0, lodash_es.merge)({}, uiConfig, jurisdictionOverrides);
|
|
622
|
+
return uiConfig;
|
|
623
|
+
}
|
|
624
|
+
get mappedIntegration() {
|
|
625
|
+
const integration = this.config.api.integration.toLowerCase();
|
|
626
|
+
const brand = this.config.api.brand.toLowerCase();
|
|
627
|
+
if (integration === "spinomenal") {
|
|
628
|
+
if (brand.startsWith("gg-")) return "groove";
|
|
629
|
+
} else if (integration === "pariplay") {
|
|
630
|
+
if (brand.startsWith("8x1")) return "pariplay-8x1";
|
|
631
|
+
} else if (/openbox-.*/.test(integration)) return "openbox";
|
|
632
|
+
else if (/oryx-.*/.test(integration)) return "oryx";
|
|
633
|
+
else if (/relax-.*/.test(integration)) return "relax";
|
|
634
|
+
return integration;
|
|
635
|
+
}
|
|
636
|
+
get mappedBrand() {
|
|
637
|
+
const integration = this.config.api.integration.toLowerCase();
|
|
638
|
+
const brand = this.config.api.brand.toLowerCase();
|
|
639
|
+
if (integration === "bspot" && this.config.api.playMode.toLowerCase() === "fun") return "demo";
|
|
640
|
+
return brand;
|
|
641
|
+
}
|
|
642
|
+
mapUiConfig(config) {
|
|
643
|
+
if (!config) return {};
|
|
644
|
+
return {
|
|
645
|
+
autoplay: {
|
|
646
|
+
enabled: config.badge.autoplayType !== 5,
|
|
647
|
+
rounds: {
|
|
648
|
+
enabled: config.badge.autoplayType !== 5,
|
|
649
|
+
showNoLimit: false,
|
|
650
|
+
showCustomLimit: false,
|
|
651
|
+
options: config.badge.autoplayRounds ?? [
|
|
652
|
+
5,
|
|
653
|
+
10,
|
|
654
|
+
25,
|
|
655
|
+
75,
|
|
656
|
+
100
|
|
657
|
+
]
|
|
658
|
+
},
|
|
659
|
+
lossLimit: {
|
|
660
|
+
enabled: config.badge.autoplayType === 1 || config.badge.autoplayType === 4,
|
|
661
|
+
showNoLimit: config.badge.autoplayType === 1,
|
|
662
|
+
showCustomLimit: config.badge.autoplayType !== 6,
|
|
663
|
+
options: [
|
|
664
|
+
5,
|
|
665
|
+
25,
|
|
666
|
+
50
|
|
667
|
+
]
|
|
668
|
+
},
|
|
669
|
+
winLimit: {
|
|
670
|
+
enabled: config.badge.autoplayType === 1 || config.badge.autoplayType === 4,
|
|
671
|
+
showNoLimit: true,
|
|
672
|
+
showCustomLimit: config.badge.autoplayType !== 6,
|
|
673
|
+
options: [
|
|
674
|
+
10,
|
|
675
|
+
20,
|
|
676
|
+
75
|
|
677
|
+
]
|
|
678
|
+
},
|
|
679
|
+
simple: config.badge.autoplayType === 3
|
|
680
|
+
},
|
|
681
|
+
cashier: {
|
|
682
|
+
enabled: config.badge.showQuickDeposit,
|
|
683
|
+
balanceThreshold: config.badge.quickDepositBalanceThresholds
|
|
684
|
+
},
|
|
685
|
+
feature: {
|
|
686
|
+
allowTelemetry: true,
|
|
687
|
+
allowFullscreen: config.defaults.fullscreen === "true",
|
|
688
|
+
allowGamble: config.badge.gambleHideWithAutoCollect === void 0 ? true : !config.badge.gambleHideWithAutoCollect,
|
|
689
|
+
allowQuickStop: config.badge.minimumSpinDuration === 0,
|
|
690
|
+
showCashier: config.badge.showQuickDeposit,
|
|
691
|
+
showClock: config.badge.showClock,
|
|
692
|
+
showCloseGame: config.badge.showCloseGameButton && (!config.badge.showCloseGameButtonOptional || !!this.config.api.homeUrl),
|
|
693
|
+
showCurrency: config.badge.showCurrency,
|
|
694
|
+
showFastPlay: config.badge.showTurboButton,
|
|
695
|
+
showFeatureBuy: config.badge.showHyperBonus,
|
|
696
|
+
showFunModeBanner: config.badge.showFunBanner,
|
|
697
|
+
showHistory: config.badge.showGameHistory,
|
|
698
|
+
showPaylineLines: config.badge.showPaylineLines,
|
|
699
|
+
showRoundId: config.badge.showRoundId,
|
|
700
|
+
showRules: config.badge.showGameRules,
|
|
701
|
+
showSessionDuration: config.badge.realityCheckShowSessionDuration,
|
|
702
|
+
showUi: config.badge.showGameUi
|
|
703
|
+
},
|
|
704
|
+
minimumSpinDuration: config.badge.minimumSpinDuration,
|
|
705
|
+
requestTimeoutMs: config.badge.requestTimeoutMs,
|
|
706
|
+
incompleteGameResolution: {
|
|
707
|
+
daysToAutoResolution: config.badge.incompleteGamesResolutionType === 3 ? config.badge.daysToAutoResolution ?? 90 : void 0,
|
|
708
|
+
type: config.badge.incompleteGamesResolutionType === 2 ? "MANUAL" : config.badge.incompleteGamesResolutionType === 3 ? "AUTOMATIC" : void 0
|
|
709
|
+
},
|
|
710
|
+
realityCheck: {
|
|
711
|
+
sessionDurationPeriodFormat: config.badge.realityCheckPeriodFormat,
|
|
712
|
+
showCloseGame: config.badge.realityCheckShowCloseGame,
|
|
713
|
+
showHistory: config.badge.realityCheckShowHistoryLink,
|
|
714
|
+
showNetPosition: config.badge.realityCheckShowNetGamingActivity,
|
|
715
|
+
showSessionDuration: config.badge.realityCheckShowSessionDuration,
|
|
716
|
+
showSumBets: config.badge.realityCheckShowSumBets,
|
|
717
|
+
showSumWins: config.badge.realityCheckShowSumWins
|
|
718
|
+
},
|
|
719
|
+
skipInsufficientFundsCheck: config.badge.skipInsufficientFundsCheck,
|
|
720
|
+
skipSplash: config.badge.loaderAutoContinue
|
|
721
|
+
};
|
|
722
|
+
}
|
|
723
|
+
async fetchOperatorConfig() {
|
|
724
|
+
const rootUrl = "https://awscdn.kalamba.net/games/games/build/";
|
|
725
|
+
const integration = this.mappedIntegration;
|
|
726
|
+
const brand = this.mappedBrand;
|
|
727
|
+
let config = {};
|
|
728
|
+
try {
|
|
729
|
+
config = await fetch(`${rootUrl}config/${integration}/cage/${brand}.json`).then((r) => r.json());
|
|
730
|
+
} catch (e) {
|
|
731
|
+
try {
|
|
732
|
+
config = await fetch(`${rootUrl}config/${integration}/operator.json`).then((r) => r.json());
|
|
733
|
+
} catch (e) {
|
|
734
|
+
config = await fetch(`${rootUrl}config/fun/operator.json`).then((r) => r.json());
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
return this.mapUiConfig(config);
|
|
738
|
+
}
|
|
739
|
+
};
|
|
740
|
+
|
|
741
|
+
//#endregion
|
|
742
|
+
exports.KalambaSdkConfigManager = KalambaSdkConfigManager;
|
|
743
|
+
exports.KalambaSdkWrapper = KalambaSdkWrapper;
|
|
744
|
+
exports.SdkConfigManager = SdkConfigManager;
|