@kalamba/sdk 0.13.1 → 0.16.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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * BSD 3-Clause License
3
+ * Copyright (c) 2025, Kalamba Games Limited
4
+ */
5
+ "use strict";var N=Object.defineProperty;var S=(_,E,O)=>E in _?N(_,E,{enumerable:!0,configurable:!0,writable:!0,value:O}):_[E]=O;var R=(_,E,O)=>S(_,typeof E!="symbol"?E+"":E,O);const A={CONNECTION_ERROR:"CONNECTION_ERROR",INVALID_BET_CURRENCY:"INVALID_BET_CURRENCY",INVALID_BET:"INVALID_BET",INVALID_CAGE_CODE:"INVALID_CAGE_CODE",INVALID_CLIENT_TYPE:"INVALID_CLIENT_TYPE",INVALID_MESSAGE_FORMAT:"INVALID_MESSAGE_FORMAT",INVALID_SESSION:"INVALID_SESSION",TOO_HIGH_BET_FREQUENCY:"TOO_HIGH_BET_FREQUENCY",TOO_HIGH_ACTION_FREQUENCY:"TOO_HIGH_ACTION_FREQUENCY",USER_LOCK_INVALID_PARAMS:"USER_LOCK_INVALID_PARAMS",USER_ALREADY_LOCKED:"USER_ALREADY_LOCKED",GAME_SERVER_ERROR:"GAME_SERVER_ERROR",SESSION_MANAGEMENT_ERROR:"SESSION_MANAGEMENT_ERROR",MESSAGE_SENDER_ERROR:"MESSAGE_SENDER_ERROR",FREE_ROUNDS_PROCESSING_ERROR:"FREE_ROUNDS_PROCESSING_ERROR",WEB_SESSION_NOT_OPEN:"WEB_SESSION_NOT_OPEN",GAMING_LIMITS_REACHED:"GAMING_LIMITS_REACHED",OUT_OF_MONEY:"OUT_OF_MONEY",UNFINISHED_ROUND_IN_PROGRESS:"UNFINISHED_ROUND_IN_PROGRESS",ACCESS_DENIED:"ACCESS_DENIED",CREDENTIALS_NOT_FOUND:"CREDENTIALS_NOT_FOUND",ALREADY_LOGGED_IN:"ALREADY_LOGGED_IN",GAME_UNAVAILABLE:"GAME_UNAVAILABLE",BONUS_RESTRICTION:"BONUS_RESTRICTION",TOO_MANY_OPEN_GAMES:"TOO_MANY_OPEN_GAMES",GAME_FROZEN:"GAME_FROZEN",WALLET_PROCESSING_ERROR:"WALLET_PROCESSING_ERROR",FORCED_OUTCOMES_NOT_ALLOWED:"FORCED_OUTCOMES_NOT_ALLOWED",MISSING_GAME_STATE:"MISSING_GAME_STATE",DATA_ACCESS_ERROR:"DATA_ACCESS_ERROR",UNKNOWN:"UNKNOWN"},I={CONNECTION_ERROR:"RELOAD",INVALID_BET_CURRENCY:"CLOSE",INVALID_BET:"CONTINUE",INVALID_CAGE_CODE:"CLOSE",INVALID_CLIENT_TYPE:"CLOSE",INVALID_MESSAGE_FORMAT:"CLOSE",INVALID_SESSION:"CLOSE",TOO_HIGH_BET_FREQUENCY:"CONTINUE",TOO_HIGH_ACTION_FREQUENCY:"CONTINUE",USER_LOCK_INVALID_PARAMS:"CLOSE",USER_ALREADY_LOCKED:"CLOSE",GAME_SERVER_ERROR:"RELOAD",SESSION_MANAGEMENT_ERROR:"RELOAD",MESSAGE_SENDER_ERROR:"RELOAD",FREE_ROUNDS_PROCESSING_ERROR:"RELOAD",WEB_SESSION_NOT_OPEN:"RELOAD",GAMING_LIMITS_REACHED:"CLOSE",OUT_OF_MONEY:"CONTINUE",UNFINISHED_ROUND_IN_PROGRESS:"CLOSE",ACCESS_DENIED:"CLOSE",CREDENTIALS_NOT_FOUND:"CLOSE",ALREADY_LOGGED_IN:"CLOSE",GAME_UNAVAILABLE:"CLOSE",BONUS_RESTRICTION:"CLOSE",TOO_MANY_OPEN_GAMES:"CLOSE",GAME_FROZEN:"CLOSE",WALLET_PROCESSING_ERROR:"CLOSE",FORCED_OUTCOMES_NOT_ALLOWED:"CONTINUE",MISSING_GAME_STATE:"RELOAD",DATA_ACCESS_ERROR:"RELOAD",UNKNOWN:"CLOSE"};class C extends Error{constructor(O){super();R(this,"data");this.name="RgsError",this.data=O}}class L extends Error{constructor(){super(),this.name="TimeoutError"}}exports.RgsError=C;exports.RgsErrorAction=I;exports.RgsErrorCode=A;exports.TimeoutError=L;
@@ -4,7 +4,7 @@
4
4
  */
5
5
  var R = Object.defineProperty;
6
6
  var S = (_, E, O) => E in _ ? R(_, E, { enumerable: !0, configurable: !0, writable: !0, value: O }) : _[E] = O;
7
- var N = (_, E, O) => (S(_, typeof E != "symbol" ? E + "" : E, O), O);
7
+ var N = (_, E, O) => S(_, typeof E != "symbol" ? E + "" : E, O);
8
8
  const I = {
9
9
  CONNECTION_ERROR: "CONNECTION_ERROR",
10
10
  INVALID_BET_CURRENCY: "INVALID_BET_CURRENCY",
package/dist/index.cjs CHANGED
@@ -2,4 +2,4 @@
2
2
  * BSD 3-Clause License
3
3
  * Copyright (c) 2025, Kalamba Games Limited
4
4
  */
5
- "use strict";var b=(r,i,t)=>{if(!i.has(r))throw TypeError("Cannot "+t)};var m=(r,i,t)=>(b(r,i,"read from private field"),t?t.call(r):i.get(r)),e=(r,i,t)=>{if(i.has(r))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(r):i.set(r,t)},u=(r,i,t,n)=>(b(r,i,"write to private field"),n?n.call(r,t):i.set(r,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("./errors-db453887.cjs");function A(r){const i=Object.prototype.toString.call(r);return r instanceof Date||typeof r=="object"&&i==="[object Date]"?new r.constructor(+r):typeof r=="number"||i==="[object Number]"||typeof r=="string"||i==="[object String]"?new Date(r):new Date(NaN)}function U(r){const i=A(r);return i.setHours(23,59,59,999),i}function L(){return U(Date.now())}function P(r){const i=A(r);return i.setHours(0,0,0,0),i}function k(){return P(Date.now())}const G=3e4;var F,S;class ${constructor(i){e(this,F,void 0);e(this,S,G);u(this,F,i)}buildHeaders(){const i={};return m(this,F).token&&(i.Authorization=`Bearer ${m(this,F).token}`),i}async request(i,t){const n=new URL(i,m(this,F).apiUrl??window.location.origin);return n.search=new URLSearchParams({...t}).toString(),await(await fetch(n,{signal:AbortSignal.timeout(m(this,S)),headers:this.buildHeaders()})).json()}async getRounds(i){return this.request("/rounds",i)}async getRound(i,t){return this.request(`/rounds/${i}`,t)}}F=new WeakMap,S=new WeakMap;const N={limit:100,page:0};var s,l;class I{constructor({config:i}){e(this,s,void 0);e(this,l,void 0);u(this,s,i),u(this,l,new $({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=N}={}){return m(this,l).getRound(i,{gameCode:m(this,s).api.game,operatorCode:m(this,s).api.brand,username:m(this,s).api.user,...t})}async getLastRound(){return m(this,s).api.lastRoundId?this.getRound(m(this,s).api.lastRoundId):null}async getRounds({searchPeriod:i={fromDateTime:k(),toDateTime:L()},pagination:t=N}={}){const n=m(this,s).api.user.replace(/^user_/,"").replace(new RegExp(`_${m(this,s).api.integration}$`),"");return m(this,l).getRounds({gameCode:m(this,s).api.game,operatorCode:m(this,s).api.integration,username:n,fromDataTime:i.fromDateTime.toISOString(),toDateTime:i.toDateTime.toISOString(),...t})}}s=new WeakMap,l=new WeakMap;function _(r,i){return r*i/100}function O(r,i,t){if(!["string","number"].includes(typeof i))return"NaN";const{locales:n}=r;try{return new Intl.NumberFormat(n,{...t,numberingSystem:"latn",style:"decimal"}).format(+i)}catch{return`${i}`}}const w="XTS";var y=(r=>(r.Currency="Currency",r.Number="Number",r))(y||{}),f=(r=>(r.Coins="Coins",r.Money="Money",r))(f||{});const T={ARSB:{displayAs:"ARS",maximumFractionDigits:2,minimumFractionDigits:2},CHIPS:{maximumFractionDigits:0,minimumFractionDigits:0},BNB:{maximumFractionDigits:6,minimumFractionDigits:6},BUSD:{maximumFractionDigits:4,minimumFractionDigits:4},BTC:{maximumFractionDigits:8,minimumFractionDigits:2},mBTC:{maximumFractionDigits:5,minimumFractionDigits:2},uBTC:{maximumFractionDigits:2,minimumFractionDigits:2},BCH:{maximumFractionDigits:8,minimumFractionDigits:2},mBCH:{maximumFractionDigits:2,minimumFractionDigits:2},ETH:{maximumFractionDigits:8,minimumFractionDigits:2},mETH:{maximumFractionDigits:5,minimumFractionDigits:2},uETH:{maximumFractionDigits:2,minimumFractionDigits:2},SOC:{maximumFractionDigits:8,minimumFractionDigits:2},LTC:{maximumFractionDigits:8,minimumFractionDigits:2},mLTC:{maximumFractionDigits:5,minimumFractionDigits:2},uLTC:{maximumFractionDigits:2,minimumFractionDigits:2},DOG:{maximumFractionDigits:4,minimumFractionDigits:2},USDC:{maximumFractionDigits:4,minimumFractionDigits:4},USDT:{maximumFractionDigits:4,minimumFractionDigits:2},TRX:{maximumFractionDigits:2,minimumFractionDigits:2},TUSD:{maximumFractionDigits:2,minimumFractionDigits:2},DAI:{maximumFractionDigits:2,minimumFractionDigits:2},XMR:{maximumFractionDigits:4,minimumFractionDigits:4},CBET:{maximumFractionDigits:0,minimumFractionDigits:0},kCBET:{maximumFractionDigits:2,minimumFractionDigits:2},SHIB:{maximumFractionDigits:0,minimumFractionDigits:0},kSHIB:{maximumFractionDigits:4,minimumFractionDigits:2},NEO:{maximumFractionDigits:4,minimumFractionDigits:4},BSV:{maximumFractionDigits:4,minimumFractionDigits:4},EOS:{maximumFractionDigits:4,minimumFractionDigits:4},DASH:{maximumFractionDigits:4,minimumFractionDigits:4},XLM:{maximumFractionDigits:2,minimumFractionDigits:2},KRW:{maximumFractionDigits:2,minimumFractionDigits:2},kVND:{maximumFractionDigits:4,minimumFractionDigits:2},kIDR:{maximumFractionDigits:4,minimumFractionDigits:2},RSD:{maximumFractionDigits:2,minimumFractionDigits:2},STAKEGC:{displayAs:"GC",maximumFractionDigits:0,minimumFractionDigits:0},STAKESC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},"BK.":{maximumFractionDigits:2,minimumFractionDigits:2},"BT.":{maximumFractionDigits:2,minimumFractionDigits:2},"FC.":{maximumFractionDigits:2,minimumFractionDigits:2},"GC.":{maximumFractionDigits:2,minimumFractionDigits:2},"SC.":{maximumFractionDigits:2,minimumFractionDigits:2},GC:{maximumFractionDigits:2,minimumFractionDigits:2},SC:{maximumFractionDigits:2,minimumFractionDigits:2},GLD:{displayAs:"GC.",maximumFractionDigits:2,minimumFractionDigits:2},SS1:{displayAs:"SC.",maximumFractionDigits:2,minimumFractionDigits:2},SWEP:{displayAs:"SC.",maximumFractionDigits:2,minimumFractionDigits:2},GCLC:{displayAs:"GC.",maximumFractionDigits:2,minimumFractionDigits:2},SWPC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},LUKC:{displayAs:"LC",maximumFractionDigits:2,minimumFractionDigits:2},SVC:{maximumFractionDigits:2,minimumFractionDigits:2},DOT:{maximumFractionDigits:4,minimumFractionDigits:4},SOL:{maximumFractionDigits:4,minimumFractionDigits:4},XRP:{maximumFractionDigits:2,minimumFractionDigits:2},ADA:{maximumFractionDigits:2,minimumFractionDigits:2},TON:{maximumFractionDigits:4,minimumFractionDigits:4},FTN:{maximumFractionDigits:4,minimumFractionDigits:4},OMR:{maximumFractionDigits:2,minimumFractionDigits:2},JOD:{maximumFractionDigits:2,minimumFractionDigits:2},BHD:{maximumFractionDigits:2,minimumFractionDigits:2},KWD:{maximumFractionDigits:2,minimumFractionDigits:2},BNS:{maximumFractionDigits:2,minimumFractionDigits:2}};function B(r){return r in T}function K(r){return B(r)?{...T[r],currency:w}:{currency:r}}function j(r,i,t){const n=i.format(+r);return B(t)?n.replace(w,T[t].displayAs??t):n}function q(r,i,t){const{maximumFractionDigits:n,minimumFractionDigits:o}=t.resolvedOptions();return O(r,i,{maximumFractionDigits:n,minimumFractionDigits:o})}function V(r,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:o}=r;return t==="Number"||!n?`${i}`:`${i} ${o}`}function W(r,i,{as:t,from:n}={as:"Currency",from:"Money"},o){if(!["string","number"].includes(typeof i))return"NaN";const{canShowCurrency:a=!0,coinValueInCents:g,currency:x,locales:R}=r;n==="Coins"&&(i=_(+i,g));try{const H=K(x),E=new Intl.NumberFormat(R,{...H,...o,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!a?q(r,i,E):j(i,E,x)}catch{return V(r,i,{as:t})}}var c;class M{constructor({config:i}){e(this,c,void 0);u(this,c,i)}formatNumber(i,t){const n={locales:[m(this,c).ui.language]};return O(n,i,t)}formatCurrency(i,t={as:y.Currency,from:f.Money},n){const o=m(this,c).ui.feature.showCurrency,a=m(this,c).api.coinValueInCents,g=m(this,c).api.currency||w,x=[m(this,c).ui.language];return W({canShowCurrency:o,coinValueInCents:a,currency:g,locales:x},i,t,n)}formatCoins(i,t){return this.formatCurrency(i,{as:y.Number,from:f.Coins},t)}formatCoinsWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:f.Coins},t)}formatMoney(i,t){return this.formatCurrency(i,{as:y.Number,from:f.Money},t)}formatMoneyWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:f.Money},t)}}c=new WeakMap;const v=()=>{};var C,d,h,p;class X{constructor({messagePort:i}){e(this,C,void 0);e(this,d,void 0);e(this,h,void 0);e(this,p,void 0);u(this,p,i),this.on("configured",t=>{u(this,C,t),u(this,h,new M({config:t})),u(this,d,new I({config:t}))}),this.on("playResponse",t=>{this.config.api.lastRoundId=t.contract.roundId})}get config(){if(!m(this,C))throw new Error("config is not initialized, you must open game first");return m(this,C)}get history(){if(!m(this,d))throw new Error("config is not initialized, you must open game first");return m(this,d)}get i18n(){if(!m(this,h))throw new Error("i18n is not initialized, you must open game first");return m(this,h)}request(i,...[t]){return new Promise(n=>{this.on(`${i}Response`,o=>n({type:"response",response:o}),{once:!0}),this.on(`${i}Error`,o=>n({type:"error",error:o}),{once:!0}),this.send(i,t)})}on(i,t,n){const o=function a(g){g.data.message===`kalamba:wrapper:${i}`&&(v("on",g.data.message.replace(/^kalamba:/,""),g.data.payload),t(g.data.payload),n!=null&&n.once&&window.removeEventListener("message",a))};window.addEventListener("message",o)}send(i,...[t]){m(this,p).postMessage({message:`kalamba:sdk:${i}`,payload:t},"*")}configure(i){this.send("configure",i)}async openGame(){const i=new Promise(n=>this.on("configured",n,{once:!0})),t=await this.request("openGame");if(t.type==="response")return await i,t.response;throw t.error.type==="timeout"?new D.TimeoutError:new D.RgsError(t.error.data)}async play(i,t,n="SPIN"){const o={contract:i,extra:t,actionType:n},a=await this.request("play",o);if(a.type==="response")return a.response;throw a.error.type==="timeout"?new D.TimeoutError:new D.RgsError(a.error.data)}}C=new WeakMap,d=new WeakMap,h=new WeakMap,p=new WeakMap;exports.RgsError=D.RgsError;exports.RgsErrorCode=D.RgsErrorCode;exports.TimeoutError=D.TimeoutError;exports.History=I;exports.I18n=M;exports.KalambaSdk=X;
5
+ "use strict";var A=m=>{throw TypeError(m)};var N=(m,i,t)=>i.has(m)||A("Cannot "+t);var r=(m,i,t)=>(N(m,i,"read from private field"),t?t.call(m):i.get(m)),e=(m,i,t)=>i.has(m)?A("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(m):i.set(m,t),u=(m,i,t,n)=>(N(m,i,"write to private field"),n?n.call(m,t):i.set(m,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("./errors-BXO3dlhS.cjs");function I(m){const i=Object.prototype.toString.call(m);return m instanceof Date||typeof m=="object"&&i==="[object Date]"?new m.constructor(+m):typeof m=="number"||i==="[object Number]"||typeof m=="string"||i==="[object String]"?new Date(m):new Date(NaN)}function L(m){const i=I(m);return i.setHours(23,59,59,999),i}function H(){return L(Date.now())}function U(m){const i=I(m);return i.setHours(0,0,0,0),i}function k(){return U(Date.now())}const $=3e4;var F,S;class K{constructor(i){e(this,F);e(this,S,$);u(this,F,i)}buildHeaders(){const i={};return r(this,F).token&&(i.Authorization=`Bearer ${r(this,F).token}`),i}async request(i,t){const n=new URL(i,r(this,F).apiUrl??window.location.origin);return n.search=new URLSearchParams({...t}).toString(),await(await fetch(n,{signal:AbortSignal.timeout(r(this,S)),headers:this.buildHeaders()})).json()}async getRounds(i){return this.request("/rounds",i)}async getRound(i,t){return this.request(`/rounds/${i}`,t)}}F=new WeakMap,S=new WeakMap;const b={limit:100,page:0};var s,f;class O{constructor({config:i}){e(this,s);e(this,f);u(this,s,i),u(this,f,new K({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=b}={}){return r(this,f).getRound(i,{gameCode:r(this,s).api.game,operatorCode:r(this,s).api.brand,username:r(this,s).api.user,...t})}async getLastRound(){return r(this,s).api.lastRoundId?this.getRound(r(this,s).api.lastRoundId):null}async getRounds({searchPeriod:i={fromDateTime:k(),toDateTime:H()},pagination:t=b}={}){const n=r(this,s).api.user.replace(/^user_/,"").replace(new RegExp(`_${r(this,s).api.integration}$`),"");return r(this,f).getRounds({gameCode:r(this,s).api.game,operatorCode:r(this,s).api.integration,username:n,fromDataTime:i.fromDateTime.toISOString(),toDateTime:i.toDateTime.toISOString(),...t})}}s=new WeakMap,f=new WeakMap;function _(m,i){return m*i/100}function P(m,i,t){if(!["string","number"].includes(typeof i))return"NaN";const{locales:n}=m;try{return new Intl.NumberFormat(n,{...t,numberingSystem:"latn",style:"decimal"}).format(+i)}catch{return`${i}`}}const w="XTS";var y=(m=>(m.Currency="Currency",m.Number="Number",m))(y||{}),l=(m=>(m.Coins="Coins",m.Money="Money",m))(l||{});const T={ARSB:{displayAs:"ARS",maximumFractionDigits:2,minimumFractionDigits:2},CHIPS:{maximumFractionDigits:0,minimumFractionDigits:0},BNB:{maximumFractionDigits:6,minimumFractionDigits:6},BUSD:{maximumFractionDigits:4,minimumFractionDigits:4},BTC:{maximumFractionDigits:8,minimumFractionDigits:2},mBTC:{maximumFractionDigits:5,minimumFractionDigits:2},uBTC:{maximumFractionDigits:2,minimumFractionDigits:2},BCH:{maximumFractionDigits:8,minimumFractionDigits:2},mBCH:{maximumFractionDigits:2,minimumFractionDigits:2},ETH:{maximumFractionDigits:8,minimumFractionDigits:2},mETH:{maximumFractionDigits:5,minimumFractionDigits:2},uETH:{maximumFractionDigits:2,minimumFractionDigits:2},SOC:{maximumFractionDigits:8,minimumFractionDigits:2},LTC:{maximumFractionDigits:8,minimumFractionDigits:2},mLTC:{maximumFractionDigits:5,minimumFractionDigits:2},uLTC:{maximumFractionDigits:2,minimumFractionDigits:2},DOG:{maximumFractionDigits:4,minimumFractionDigits:2},USDC:{maximumFractionDigits:4,minimumFractionDigits:4},USDT:{maximumFractionDigits:4,minimumFractionDigits:2},TRX:{maximumFractionDigits:2,minimumFractionDigits:2},TUSD:{maximumFractionDigits:2,minimumFractionDigits:2},DAI:{maximumFractionDigits:2,minimumFractionDigits:2},XMR:{maximumFractionDigits:4,minimumFractionDigits:4},CBET:{maximumFractionDigits:0,minimumFractionDigits:0},kCBET:{maximumFractionDigits:2,minimumFractionDigits:2},SHIB:{maximumFractionDigits:0,minimumFractionDigits:0},kSHIB:{maximumFractionDigits:4,minimumFractionDigits:2},NEO:{maximumFractionDigits:4,minimumFractionDigits:4},BSV:{maximumFractionDigits:4,minimumFractionDigits:4},EOS:{maximumFractionDigits:4,minimumFractionDigits:4},DASH:{maximumFractionDigits:4,minimumFractionDigits:4},XLM:{maximumFractionDigits:2,minimumFractionDigits:2},KRW:{maximumFractionDigits:2,minimumFractionDigits:2},kVND:{maximumFractionDigits:4,minimumFractionDigits:2},kIDR:{maximumFractionDigits:4,minimumFractionDigits:2},RSD:{maximumFractionDigits:2,minimumFractionDigits:2},STAKEGC:{displayAs:"GC",maximumFractionDigits:0,minimumFractionDigits:0},STAKESC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},"BK.":{maximumFractionDigits:2,minimumFractionDigits:2},"BT.":{maximumFractionDigits:2,minimumFractionDigits:2},"FC.":{maximumFractionDigits:2,minimumFractionDigits:2},"GC.":{maximumFractionDigits:2,minimumFractionDigits:2},"SC.":{maximumFractionDigits:2,minimumFractionDigits:2},GC:{maximumFractionDigits:2,minimumFractionDigits:2},SC:{maximumFractionDigits:2,minimumFractionDigits:2},GLD:{displayAs:"GC.",maximumFractionDigits:2,minimumFractionDigits:2},SS1:{displayAs:"SC.",maximumFractionDigits:2,minimumFractionDigits:2},SWEP:{displayAs:"SC.",maximumFractionDigits:2,minimumFractionDigits:2},GCLC:{displayAs:"GC.",maximumFractionDigits:2,minimumFractionDigits:2},SWPC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},LUKC:{displayAs:"LC",maximumFractionDigits:2,minimumFractionDigits:2},SVC:{maximumFractionDigits:2,minimumFractionDigits:2},DOT:{maximumFractionDigits:4,minimumFractionDigits:4},SOL:{maximumFractionDigits:4,minimumFractionDigits:4},XRP:{maximumFractionDigits:2,minimumFractionDigits:2},ADA:{maximumFractionDigits:2,minimumFractionDigits:2},TON:{maximumFractionDigits:4,minimumFractionDigits:4},FTN:{maximumFractionDigits:4,minimumFractionDigits:4},OMR:{maximumFractionDigits:2,minimumFractionDigits:2},JOD:{maximumFractionDigits:2,minimumFractionDigits:2},BHD:{maximumFractionDigits:2,minimumFractionDigits:2},KWD:{maximumFractionDigits:2,minimumFractionDigits:2},BNS:{maximumFractionDigits:2,minimumFractionDigits:2},GRSC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},GRGC:{displayAs:"GC",maximumFractionDigits:2,minimumFractionDigits:2},EEGP:{displayAs:"EP",maximumFractionDigits:2,minimumFractionDigits:2},EPGP:{displayAs:"PP",maximumFractionDigits:2,minimumFractionDigits:2},MMK:{maximumFractionDigits:2,minimumFractionDigits:2},XOF:{maximumFractionDigits:2,minimumFractionDigits:2},VND:{maximumFractionDigits:2,minimumFractionDigits:2},BIF:{maximumFractionDigits:2,minimumFractionDigits:2},CLP:{maximumFractionDigits:2,minimumFractionDigits:2},GNF:{maximumFractionDigits:2,minimumFractionDigits:2},IQD:{maximumFractionDigits:2,minimumFractionDigits:2},ISK:{maximumFractionDigits:2,minimumFractionDigits:2},PYG:{maximumFractionDigits:2,minimumFractionDigits:2},XAF:{maximumFractionDigits:2,minimumFractionDigits:2},LAK:{maximumFractionDigits:2,minimumFractionDigits:2},LBP:{maximumFractionDigits:2,minimumFractionDigits:2},MGA:{maximumFractionDigits:2,minimumFractionDigits:2},SOS:{maximumFractionDigits:2,minimumFractionDigits:2},UGX:{maximumFractionDigits:2,minimumFractionDigits:2},ALL:{maximumFractionDigits:2,minimumFractionDigits:2},IRR:{maximumFractionDigits:2,minimumFractionDigits:2}};function G(m){return m in T}function X(m){return G(m)?{...T[m],currency:w}:{currency:m}}function j(m,i,t){const n=i.format(+m);return G(t)?n.replace(w,T[t].displayAs??t):n}function q(m,i,t){const{maximumFractionDigits:n,minimumFractionDigits:a}=t.resolvedOptions();return P(m,i,{maximumFractionDigits:n,minimumFractionDigits:a})}function V(m,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:a}=m;return t==="Number"||!n?`${i}`:`${i} ${a}`}function W(m,i,{as:t,from:n}={as:"Currency",from:"Money"},a){if(!["string","number"].includes(typeof i))return"NaN";const{canShowCurrency:o=!0,coinValueInCents:g,currency:h,locales:R}=m;n==="Coins"&&(i=_(+i,g));try{const B=X(h),E=new Intl.NumberFormat(R,{...B,...a,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!o?q(m,i,E):j(i,E,h)}catch{return V(m,i,{as:t})}}var c;class M{constructor({config:i}){e(this,c);u(this,c,i)}formatNumber(i,t){const n={locales:[r(this,c).ui.language]};return P(n,i,t)}formatCurrency(i,t={as:y.Currency,from:l.Money},n){const a=r(this,c).ui.feature.showCurrency,o=r(this,c).api.coinValueInCents,g=r(this,c).api.currency||w,h=[r(this,c).ui.language];return W({canShowCurrency:a,coinValueInCents:o,currency:g,locales:h},i,t,n)}formatCoins(i,t){return this.formatCurrency(i,{as:y.Number,from:l.Coins},t)}formatCoinsWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:l.Coins},t)}formatMoney(i,t){return this.formatCurrency(i,{as:y.Number,from:l.Money},t)}formatMoneyWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:l.Money},t)}}c=new WeakMap;const v=()=>{};var x,C,d,p;class z{constructor({messagePort:i}){e(this,x);e(this,C);e(this,d);e(this,p);u(this,p,i),this.on("configured",t=>{u(this,x,t),u(this,d,new M({config:t})),u(this,C,new O({config:t}))}),this.on("playResponse",t=>{this.config.api.lastRoundId=t.contract.roundId})}get config(){if(!r(this,x))throw new Error("config is not initialized, you must open game first");return r(this,x)}get history(){if(!r(this,C))throw new Error("config is not initialized, you must open game first");return r(this,C)}get i18n(){if(!r(this,d))throw new Error("i18n is not initialized, you must open game first");return r(this,d)}request(i,...[t]){return new Promise(n=>{this.on(`${i}Response`,a=>n({type:"response",response:a}),{once:!0}),this.on(`${i}Error`,a=>n({type:"error",error:a}),{once:!0}),this.send(i,t)})}on(i,t,n){const a=function o(g){g.data.message===`kalamba:wrapper:${i}`&&(v("on",g.data.message.replace(/^kalamba:/,""),g.data.payload),t(g.data.payload),n!=null&&n.once&&window.removeEventListener("message",o))};window.addEventListener("message",a)}send(i,...[t]){r(this,p).postMessage({message:`kalamba:sdk:${i}`,payload:t},"*")}configure(i){this.send("configure",i)}async openGame(){const i=new Promise(n=>this.on("configured",n,{once:!0})),t=await this.request("openGame");if(t.type==="response")return await i,t.response;throw t.error.type==="timeout"?new D.TimeoutError:new D.RgsError(t.error.data)}async play(i,t,n="SPIN"){const a={contract:i,extra:t,actionType:n},o=await this.request("play",a);if(o.type==="response")return o.response;throw o.error.type==="timeout"?new D.TimeoutError:new D.RgsError(o.error.data)}}x=new WeakMap,C=new WeakMap,d=new WeakMap,p=new WeakMap;exports.RgsError=D.RgsError;exports.RgsErrorCode=D.RgsErrorCode;exports.TimeoutError=D.TimeoutError;exports.History=O;exports.I18n=M;exports.KalambaSdk=z;
package/dist/index.d.ts CHANGED
@@ -395,7 +395,7 @@ export declare interface SdkConfig {
395
395
  homeUrl?: string;
396
396
  integration: string;
397
397
  integrationData?: unknown;
398
- jurisdiction: string;
398
+ jurisdiction: string | null;
399
399
  playMode: 'FUN' | 'REAL';
400
400
  user: string;
401
401
  sessionId: string;
@@ -415,6 +415,7 @@ export declare interface SdkConfig {
415
415
  feature: {
416
416
  allowTelemetry: boolean;
417
417
  allowFullscreen: boolean;
418
+ allowGamble: boolean;
418
419
  allowQuickStop: boolean;
419
420
  showCashier: boolean;
420
421
  showClock: boolean;
@@ -499,22 +500,14 @@ export declare type SdkOnlyMessagePayloadMap = {
499
500
  /**
500
501
  * ```typescript
501
502
  * {
502
- * en: {
503
- * my_custom_error: 'Something went wrong',
504
- * RgsError: {
505
- * OUT_OF_MONEY: 'You are out of credits',
506
- * }
507
- * },
508
- * pl: {
509
- * my_custom_error: 'Coś poszło nie tak',
510
- * RgsError: {
511
- * OUT_OF_MONEY: 'Nie masz już środków',
512
- * }
513
- * }
503
+ * my_custom_error: 'Something went wrong',
504
+ * RgsError: {
505
+ * OUT_OF_MONEY: 'You are out of credits',
506
+ * }
514
507
  * }
515
508
  * ```
516
509
  */
517
- translations: Record<string, NestedRecord<string, string>>;
510
+ translations: NestedRecord<string, string>;
518
511
  settings: Settings;
519
512
  'telemetry.click': {
520
513
  location: string;
package/dist/index.js CHANGED
@@ -2,53 +2,49 @@
2
2
  * BSD 3-Clause License
3
3
  * Copyright (c) 2025, Kalamba Games Limited
4
4
  */
5
- var N = (n, i, t) => {
6
- if (!i.has(n))
7
- throw TypeError("Cannot " + t);
5
+ var A = (m) => {
6
+ throw TypeError(m);
8
7
  };
9
- var m = (n, i, t) => (N(n, i, "read from private field"), t ? t.call(n) : i.get(n)), e = (n, i, t) => {
10
- if (i.has(n))
11
- throw TypeError("Cannot add the same private member more than once");
12
- i instanceof WeakSet ? i.add(n) : i.set(n, t);
13
- }, u = (n, i, t, r) => (N(n, i, "write to private field"), r ? r.call(n, t) : i.set(n, t), t);
14
- import { T as b, R as A } from "./errors-7cbbda8a.js";
15
- import { a as ii } from "./errors-7cbbda8a.js";
16
- function I(n) {
17
- const i = Object.prototype.toString.call(n);
18
- return n instanceof Date || typeof n == "object" && i === "[object Date]" ? new n.constructor(+n) : typeof n == "number" || i === "[object Number]" || typeof n == "string" || i === "[object String]" ? new Date(n) : /* @__PURE__ */ new Date(NaN);
8
+ var N = (m, i, t) => i.has(m) || A("Cannot " + t);
9
+ var r = (m, i, t) => (N(m, i, "read from private field"), t ? t.call(m) : i.get(m)), e = (m, i, t) => i.has(m) ? A("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(m) : i.set(m, t), u = (m, i, t, n) => (N(m, i, "write to private field"), n ? n.call(m, t) : i.set(m, t), t);
10
+ import { T as E, R as b } from "./errors-NnLrKjTz.js";
11
+ import { a as ti } from "./errors-NnLrKjTz.js";
12
+ function O(m) {
13
+ const i = Object.prototype.toString.call(m);
14
+ return m instanceof Date || typeof m == "object" && i === "[object Date]" ? new m.constructor(+m) : typeof m == "number" || i === "[object Number]" || typeof m == "string" || i === "[object String]" ? new Date(m) : /* @__PURE__ */ new Date(NaN);
19
15
  }
20
- function H(n) {
21
- const i = I(n);
16
+ function L(m) {
17
+ const i = O(m);
22
18
  return i.setHours(23, 59, 59, 999), i;
23
19
  }
24
- function U() {
25
- return H(Date.now());
20
+ function M() {
21
+ return L(Date.now());
26
22
  }
27
- function L(n) {
28
- const i = I(n);
23
+ function U(m) {
24
+ const i = O(m);
29
25
  return i.setHours(0, 0, 0, 0), i;
30
26
  }
31
- function P() {
32
- return L(Date.now());
27
+ function H() {
28
+ return U(Date.now());
33
29
  }
34
- const G = 3e4;
35
- var D, x;
36
- class k {
30
+ const k = 3e4;
31
+ var D, h;
32
+ class $ {
37
33
  constructor(i) {
38
- e(this, D, void 0);
39
- e(this, x, G);
34
+ e(this, D);
35
+ e(this, h, k);
40
36
  u(this, D, i);
41
37
  }
42
38
  buildHeaders() {
43
39
  const i = {};
44
- return m(this, D).token && (i.Authorization = `Bearer ${m(this, D).token}`), i;
40
+ return r(this, D).token && (i.Authorization = `Bearer ${r(this, D).token}`), i;
45
41
  }
46
42
  async request(i, t) {
47
- const r = new URL(i, m(this, D).apiUrl ?? window.location.origin);
48
- return r.search = new URLSearchParams({
43
+ const n = new URL(i, r(this, D).apiUrl ?? window.location.origin);
44
+ return n.search = new URLSearchParams({
49
45
  ...t
50
- }).toString(), await (await fetch(r, {
51
- signal: AbortSignal.timeout(m(this, x)),
46
+ }).toString(), await (await fetch(n, {
47
+ signal: AbortSignal.timeout(r(this, h)),
52
48
  headers: this.buildHeaders()
53
49
  })).json();
54
50
  }
@@ -59,47 +55,47 @@ class k {
59
55
  return this.request(`/rounds/${i}`, t);
60
56
  }
61
57
  }
62
- D = new WeakMap(), x = new WeakMap();
63
- const E = {
58
+ D = new WeakMap(), h = new WeakMap();
59
+ const I = {
64
60
  limit: 100,
65
61
  page: 0
66
62
  };
67
63
  var s, f;
68
- class $ {
64
+ class K {
69
65
  constructor({
70
66
  config: i
71
67
  }) {
72
- e(this, s, void 0);
73
- e(this, f, void 0);
74
- u(this, s, i), u(this, f, new k({
68
+ e(this, s);
69
+ e(this, f);
70
+ u(this, s, i), u(this, f, new $({
75
71
  apiUrl: i.api.gameHistoryUrl
76
72
  }));
77
73
  }
78
74
  async getRound(i, {
79
- pagination: t = E
75
+ pagination: t = I
80
76
  } = {}) {
81
- return m(this, f).getRound(i, {
82
- gameCode: m(this, s).api.game,
83
- operatorCode: m(this, s).api.brand,
84
- username: m(this, s).api.user,
77
+ return r(this, f).getRound(i, {
78
+ gameCode: r(this, s).api.game,
79
+ operatorCode: r(this, s).api.brand,
80
+ username: r(this, s).api.user,
85
81
  ...t
86
82
  });
87
83
  }
88
84
  async getLastRound() {
89
- return m(this, s).api.lastRoundId ? this.getRound(m(this, s).api.lastRoundId) : null;
85
+ return r(this, s).api.lastRoundId ? this.getRound(r(this, s).api.lastRoundId) : null;
90
86
  }
91
87
  async getRounds({
92
88
  searchPeriod: i = {
93
- fromDateTime: P(),
94
- toDateTime: U()
89
+ fromDateTime: H(),
90
+ toDateTime: M()
95
91
  },
96
- pagination: t = E
92
+ pagination: t = I
97
93
  } = {}) {
98
- const r = m(this, s).api.user.replace(/^user_/, "").replace(new RegExp(`_${m(this, s).api.integration}$`), "");
99
- return m(this, f).getRounds({
100
- gameCode: m(this, s).api.game,
101
- operatorCode: m(this, s).api.integration,
102
- username: r,
94
+ const n = r(this, s).api.user.replace(/^user_/, "").replace(new RegExp(`_${r(this, s).api.integration}$`), "");
95
+ return r(this, f).getRounds({
96
+ gameCode: r(this, s).api.game,
97
+ operatorCode: r(this, s).api.integration,
98
+ username: n,
103
99
  fromDataTime: i.fromDateTime.toISOString(),
104
100
  toDateTime: i.toDateTime.toISOString(),
105
101
  ...t
@@ -107,15 +103,15 @@ class $ {
107
103
  }
108
104
  }
109
105
  s = new WeakMap(), f = new WeakMap();
110
- function _(n, i) {
111
- return n * i / 100;
106
+ function _(m, i) {
107
+ return m * i / 100;
112
108
  }
113
- function O(n, i, t) {
109
+ function G(m, i, t) {
114
110
  if (!["string", "number"].includes(typeof i))
115
111
  return "NaN";
116
- const { locales: r } = n;
112
+ const { locales: n } = m;
117
113
  try {
118
- return new Intl.NumberFormat(r, {
114
+ return new Intl.NumberFormat(n, {
119
115
  ...t,
120
116
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
121
117
  // @ts-ignore
@@ -127,7 +123,7 @@ function O(n, i, t) {
127
123
  }
128
124
  }
129
125
  const S = "XTS";
130
- var F = /* @__PURE__ */ ((n) => (n.Currency = "Currency", n.Number = "Number", n))(F || {}), y = /* @__PURE__ */ ((n) => (n.Coins = "Coins", n.Money = "Money", n))(y || {});
126
+ var F = /* @__PURE__ */ ((m) => (m.Currency = "Currency", m.Number = "Number", m))(F || {}), y = /* @__PURE__ */ ((m) => (m.Coins = "Coins", m.Money = "Money", m))(y || {});
131
127
  const w = {
132
128
  /* eslint-disable sort-keys-fix/sort-keys-fix */
133
129
  // ARSB is the internal currency relevant for invoicing purposes, players should see it as ARS
@@ -240,47 +236,88 @@ const w = {
240
236
  // Kuwaiti Dinar
241
237
  KWD: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
242
238
  // MicroGame
243
- BNS: { maximumFractionDigits: 2, minimumFractionDigits: 2 }
239
+ BNS: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
240
+ // Quanta
241
+ GRSC: { displayAs: "SC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
242
+ GRGC: { displayAs: "GC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
243
+ // Softswiss
244
+ EEGP: { displayAs: "EP", maximumFractionDigits: 2, minimumFractionDigits: 2 },
245
+ EPGP: { displayAs: "PP", maximumFractionDigits: 2, minimumFractionDigits: 2 },
246
+ // https://kalamba.atlassian.net/browse/FRAM-1829
247
+ // Myanmar Kyat
248
+ MMK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
249
+ // West African CFA franc
250
+ XOF: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
251
+ // Vietnamese dong
252
+ VND: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
253
+ // Burundian franc
254
+ BIF: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
255
+ // Chilean peso
256
+ CLP: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
257
+ // Guinean franc
258
+ GNF: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
259
+ // Iraqi dinar
260
+ IQD: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
261
+ // Icelandic króna
262
+ ISK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
263
+ // Paraguayan guaraní
264
+ PYG: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
265
+ // Central African CFA franc
266
+ XAF: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
267
+ // Lao kip
268
+ LAK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
269
+ // Lebanese pound
270
+ LBP: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
271
+ // Malagasy ariary
272
+ MGA: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
273
+ // Somali shilling
274
+ SOS: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
275
+ // Ugandan shilling
276
+ UGX: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
277
+ // Albanian lek
278
+ ALL: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
279
+ // Iranian rial
280
+ IRR: { maximumFractionDigits: 2, minimumFractionDigits: 2 }
244
281
  /* eslint-enable sort-keys-fix/sort-keys-fix */
245
282
  };
246
- function B(n) {
247
- return n in w;
283
+ function P(m) {
284
+ return m in w;
248
285
  }
249
- function K(n) {
250
- return B(n) ? {
251
- ...w[n],
286
+ function X(m) {
287
+ return P(m) ? {
288
+ ...w[m],
252
289
  currency: S
253
290
  } : {
254
- currency: n
291
+ currency: m
255
292
  };
256
293
  }
257
- function j(n, i, t) {
258
- const r = i.format(+n);
259
- return B(t) ? r.replace(S, w[t].displayAs ?? t) : r;
294
+ function V(m, i, t) {
295
+ const n = i.format(+m);
296
+ return P(t) ? n.replace(S, w[t].displayAs ?? t) : n;
260
297
  }
261
- function q(n, i, t) {
262
- const { maximumFractionDigits: r, minimumFractionDigits: a } = t.resolvedOptions();
263
- return O(n, i, { maximumFractionDigits: r, minimumFractionDigits: a });
298
+ function j(m, i, t) {
299
+ const { maximumFractionDigits: n, minimumFractionDigits: a } = t.resolvedOptions();
300
+ return G(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
264
301
  }
265
- function V(n, i, { as: t } = {
302
+ function q(m, i, { as: t } = {
266
303
  as: "Currency"
267
304
  /* Currency */
268
305
  }) {
269
- const { canShowCurrency: r, currency: a } = n;
270
- return t === "Number" || !r ? `${i}` : `${i} ${a}`;
306
+ const { canShowCurrency: n, currency: a } = m;
307
+ return t === "Number" || !n ? `${i}` : `${i} ${a}`;
271
308
  }
272
- function W(n, i, { as: t, from: r } = {
309
+ function W(m, i, { as: t, from: n } = {
273
310
  as: "Currency",
274
311
  from: "Money"
275
312
  /* Money */
276
313
  }, a) {
277
314
  if (!["string", "number"].includes(typeof i))
278
315
  return "NaN";
279
- const { canShowCurrency: o = !0, coinValueInCents: g, currency: h, locales: T } = n;
280
- r === "Coins" && (i = _(+i, g));
316
+ const { canShowCurrency: o = !0, coinValueInCents: g, currency: d, locales: T } = m;
317
+ n === "Coins" && (i = _(+i, g));
281
318
  try {
282
- const M = K(h), R = new Intl.NumberFormat(T, {
283
- ...M,
319
+ const B = X(d), R = new Intl.NumberFormat(T, {
320
+ ...B,
284
321
  ...a,
285
322
  currencyDisplay: "symbol",
286
323
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -288,29 +325,29 @@ function W(n, i, { as: t, from: r } = {
288
325
  numberingSystem: "latn",
289
326
  style: "currency"
290
327
  });
291
- return t === "Number" || !o ? q(n, i, R) : j(i, R, h);
328
+ return t === "Number" || !o ? j(m, i, R) : V(i, R, d);
292
329
  } catch {
293
- return V(n, i, { as: t });
330
+ return q(m, i, { as: t });
294
331
  }
295
332
  }
296
333
  var c;
297
- class X {
334
+ class v {
298
335
  constructor({ config: i }) {
299
- e(this, c, void 0);
336
+ e(this, c);
300
337
  u(this, c, i);
301
338
  }
302
339
  formatNumber(i, t) {
303
- const r = { locales: [m(this, c).ui.language] };
304
- return O(r, i, t);
340
+ const n = { locales: [r(this, c).ui.language] };
341
+ return G(n, i, t);
305
342
  }
306
- formatCurrency(i, t = { as: F.Currency, from: y.Money }, r) {
307
- const a = m(this, c).ui.feature.showCurrency, o = m(this, c).api.coinValueInCents, g = m(this, c).api.currency || S, h = [m(this, c).ui.language];
343
+ formatCurrency(i, t = { as: F.Currency, from: y.Money }, n) {
344
+ const a = r(this, c).ui.feature.showCurrency, o = r(this, c).api.coinValueInCents, g = r(this, c).api.currency || S, d = [r(this, c).ui.language];
308
345
  return W({
309
346
  canShowCurrency: a,
310
347
  coinValueInCents: o,
311
348
  currency: g,
312
- locales: h
313
- }, i, t, r);
349
+ locales: d
350
+ }, i, t, n);
314
351
  }
315
352
  formatCoins(i, t) {
316
353
  return this.formatCurrency(i, { as: F.Number, from: y.Coins }, t);
@@ -326,52 +363,52 @@ class X {
326
363
  }
327
364
  }
328
365
  c = new WeakMap();
329
- const v = () => {
366
+ const z = () => {
330
367
  };
331
- var l, C, p, d;
332
- class Y {
368
+ var x, l, C, p;
369
+ class Q {
333
370
  constructor({ messagePort: i }) {
334
- e(this, l, void 0);
335
- e(this, C, void 0);
336
- e(this, p, void 0);
337
- e(this, d, void 0);
338
- u(this, d, i), this.on("configured", (t) => {
339
- u(this, l, t), u(this, p, new X({ config: t })), u(this, C, new $({ config: t }));
371
+ e(this, x);
372
+ e(this, l);
373
+ e(this, C);
374
+ e(this, p);
375
+ u(this, p, i), this.on("configured", (t) => {
376
+ u(this, x, t), u(this, C, new v({ config: t })), u(this, l, new K({ config: t }));
340
377
  }), this.on("playResponse", (t) => {
341
378
  this.config.api.lastRoundId = t.contract.roundId;
342
379
  });
343
380
  }
344
381
  get config() {
345
- if (!m(this, l))
382
+ if (!r(this, x))
346
383
  throw new Error("config is not initialized, you must open game first");
347
- return m(this, l);
384
+ return r(this, x);
348
385
  }
349
386
  get history() {
350
- if (!m(this, C))
387
+ if (!r(this, l))
351
388
  throw new Error("config is not initialized, you must open game first");
352
- return m(this, C);
389
+ return r(this, l);
353
390
  }
354
391
  get i18n() {
355
- if (!m(this, p))
392
+ if (!r(this, C))
356
393
  throw new Error("i18n is not initialized, you must open game first");
357
- return m(this, p);
394
+ return r(this, C);
358
395
  }
359
396
  request(i, ...[t]) {
360
- return new Promise((r) => {
361
- this.on(`${i}Response`, (a) => r({ type: "response", response: a }), {
397
+ return new Promise((n) => {
398
+ this.on(`${i}Response`, (a) => n({ type: "response", response: a }), {
362
399
  once: !0
363
- }), this.on(`${i}Error`, (a) => r({ type: "error", error: a }), { once: !0 }), this.send(i, t);
400
+ }), this.on(`${i}Error`, (a) => n({ type: "error", error: a }), { once: !0 }), this.send(i, t);
364
401
  });
365
402
  }
366
- on(i, t, r) {
403
+ on(i, t, n) {
367
404
  const a = function o(g) {
368
- g.data.message === `kalamba:wrapper:${i}` && (v("on", g.data.message.replace(/^kalamba:/, ""), g.data.payload), t(g.data.payload), r != null && r.once && window.removeEventListener("message", o));
405
+ g.data.message === `kalamba:wrapper:${i}` && (z("on", g.data.message.replace(/^kalamba:/, ""), g.data.payload), t(g.data.payload), n != null && n.once && window.removeEventListener("message", o));
369
406
  };
370
407
  window.addEventListener("message", a);
371
408
  }
372
409
  // TODO error messages
373
410
  send(i, ...[t]) {
374
- m(this, d).postMessage(
411
+ r(this, p).postMessage(
375
412
  {
376
413
  message: `kalamba:sdk:${i}`,
377
414
  payload: t
@@ -383,24 +420,24 @@ class Y {
383
420
  this.send("configure", i);
384
421
  }
385
422
  async openGame() {
386
- const i = new Promise((r) => this.on("configured", r, { once: !0 })), t = await this.request("openGame");
423
+ const i = new Promise((n) => this.on("configured", n, { once: !0 })), t = await this.request("openGame");
387
424
  if (t.type === "response")
388
425
  return await i, t.response;
389
- throw t.error.type === "timeout" ? new b() : new A(t.error.data);
426
+ throw t.error.type === "timeout" ? new E() : new b(t.error.data);
390
427
  }
391
- async play(i, t, r = "SPIN") {
392
- const a = { contract: i, extra: t, actionType: r }, o = await this.request("play", a);
428
+ async play(i, t, n = "SPIN") {
429
+ const a = { contract: i, extra: t, actionType: n }, o = await this.request("play", a);
393
430
  if (o.type === "response")
394
431
  return o.response;
395
- throw o.error.type === "timeout" ? new b() : new A(o.error.data);
432
+ throw o.error.type === "timeout" ? new E() : new b(o.error.data);
396
433
  }
397
434
  }
398
- l = new WeakMap(), C = new WeakMap(), p = new WeakMap(), d = new WeakMap();
435
+ x = new WeakMap(), l = new WeakMap(), C = new WeakMap(), p = new WeakMap();
399
436
  export {
400
- $ as History,
401
- X as I18n,
402
- Y as KalambaSdk,
403
- A as RgsError,
404
- ii as RgsErrorCode,
405
- b as TimeoutError
437
+ K as History,
438
+ v as I18n,
439
+ Q as KalambaSdk,
440
+ b as RgsError,
441
+ ti as RgsErrorCode,
442
+ E as TimeoutError
406
443
  };