@kalamba/sdk 0.13.2 → 0.19.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,13 @@
1
+ /**
2
+ * BSD 3-Clause License
3
+ * Copyright (c) 2025, Kalamba Games Limited
4
+ */
5
+ const s = {
6
+ json: JSON.parse
7
+ }, e = {
8
+ json: JSON.stringify
9
+ };
10
+ export {
11
+ s as d,
12
+ e
13
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * BSD 3-Clause License
3
+ * Copyright (c) 2025, Kalamba Games Limited
4
+ */
5
+ "use strict";const s={json:JSON.parse},e={json:JSON.stringify};exports.decoders=s;exports.encoders=e;
@@ -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 N=(m,i,t)=>{if(!i.has(m))throw TypeError("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)=>{if(i.has(m))throw TypeError("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-db453887.cjs");function b(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 H(m){const i=b(m);return i.setHours(23,59,59,999),i}function P(){return H(Date.now())}function U(m){const i=b(m);return i.setHours(0,0,0,0),i}function G(){return U(Date.now())}const k=3e4;var F,S;class ${constructor(i){e(this,F,void 0);e(this,S,k);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 A={limit:100,page:0};var o,l;class I{constructor({config:i}){e(this,o,void 0);e(this,l,void 0);u(this,o,i),u(this,l,new $({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=A}={}){return r(this,l).getRound(i,{gameCode:r(this,o).api.game,operatorCode:r(this,o).api.brand,username:r(this,o).api.user,...t})}async getLastRound(){return r(this,o).api.lastRoundId?this.getRound(r(this,o).api.lastRoundId):null}async getRounds({searchPeriod:i={fromDateTime:G(),toDateTime:P()},pagination:t=A}={}){const n=r(this,o).api.user.replace(/^user_/,"").replace(new RegExp(`_${r(this,o).api.integration}$`),"");return r(this,l).getRounds({gameCode:r(this,o).api.game,operatorCode:r(this,o).api.integration,username:n,fromDataTime:i.fromDateTime.toISOString(),toDateTime:i.toDateTime.toISOString(),...t})}}o=new WeakMap,l=new WeakMap;function K(m,i){return m*i/100}function O(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||{}),f=(m=>(m.Coins="Coins",m.Money="Money",m))(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},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 M(m){return m in T}function _(m){return M(m)?{...T[m],currency:w}:{currency:m}}function X(m,i,t){const n=i.format(+m);return M(t)?n.replace(w,T[t].displayAs??t):n}function j(m,i,t){const{maximumFractionDigits:n,minimumFractionDigits:a}=t.resolvedOptions();return O(m,i,{maximumFractionDigits:n,minimumFractionDigits:a})}function q(m,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:a}=m;return t==="Number"||!n?`${i}`:`${i} ${a}`}function V(m,i,{as:t,from:n}={as:"Currency",from:"Money"},a){if(!["string","number"].includes(typeof i))return"NaN";const{canShowCurrency:s=!0,coinValueInCents:g,currency:p,locales:R}=m;n==="Coins"&&(i=K(+i,g));try{const L=_(p),E=new Intl.NumberFormat(R,{...L,...a,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!s?j(m,i,E):X(i,E,p)}catch{return q(m,i,{as:t})}}var c;class B{constructor({config:i}){e(this,c,void 0);u(this,c,i)}formatNumber(i,t){const n={locales:[r(this,c).ui.language]};return O(n,i,t)}formatCurrency(i,t={as:y.Currency,from:f.Money},n){const a=r(this,c).ui.feature.showCurrency,s=r(this,c).api.coinValueInCents,g=r(this,c).api.currency||w,p=[r(this,c).ui.language];return V({canShowCurrency:a,coinValueInCents:s,currency:g,locales:p},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 W=()=>{};var x,C,d,h;class v{constructor({messagePort:i}){e(this,x,void 0);e(this,C,void 0);e(this,d,void 0);e(this,h,void 0);u(this,h,i),this.on("configured",t=>{u(this,x,t),u(this,d,new B({config:t})),u(this,C,new I({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 s(g){g.data.message===`kalamba:wrapper:${i}`&&(W("on",g.data.message.replace(/^kalamba:/,""),g.data.payload),t(g.data.payload),n!=null&&n.once&&window.removeEventListener("message",s))};window.addEventListener("message",a)}send(i,...[t]){r(this,h).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},s=await this.request("play",a);if(s.type==="response")return s.response;throw s.error.type==="timeout"?new D.TimeoutError:new D.RgsError(s.error.data)}}x=new WeakMap,C=new WeakMap,d=new WeakMap,h=new WeakMap;exports.RgsError=D.RgsError;exports.RgsErrorCode=D.RgsErrorCode;exports.TimeoutError=D.TimeoutError;exports.History=I;exports.I18n=B;exports.KalambaSdk=v;
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"),O=require("./encoders-DVHzIpWT.cjs"),U=3e4;var F,S;class k{constructor(i){e(this,F);e(this,S,U);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 I=Symbol.for("constructDateFrom");function $(m,i){return typeof m=="function"?m(i):m&&typeof m=="object"&&I in m?m[I](i):m instanceof Date?new m.constructor(i):new Date(i)}function P(m,i){return $(m,m)}function K(m,i){const t=P(m);return t.setHours(0,0,0,0),t}function _(m,i){const t=P(m);return t.setHours(23,59,59,999),t}function q(m){return _(Date.now())}function X(m){return K(Date.now())}const b={limit:100,page:0};var s,x;class G{constructor({config:i}){e(this,s);e(this,x);u(this,s,i),u(this,x,new k({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=b}={}){return r(this,x).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:X(),toDateTime:q()},pagination:t=b}={}){const n=r(this,s).api.user.replace(/^user_/,"").replace(new RegExp(`_${r(this,s).api.integration}$`),"");return r(this,x).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,x=new WeakMap;function V(m,i){return m*i/100}function M(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||{}),f=(m=>(m.Coins="Coins",m.Money="Money",m))(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},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 B(m){return m in T}function W(m){return B(m)?{...T[m],currency:w}:{currency:m}}function z(m,i,t){const n=i.format(+m);return B(t)?n.replace(w,T[t].displayAs??t):n}function j(m,i,t){const{maximumFractionDigits:n,minimumFractionDigits:o}=t.resolvedOptions();return M(m,i,{maximumFractionDigits:n,minimumFractionDigits:o})}function J(m,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:o}=m;return t==="Number"||!n?`${i}`:`${i} ${o}`}function v(m,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:h,locales:R}=m;n==="Coins"&&(i=V(+i,g));try{const H=W(h),E=new Intl.NumberFormat(R,{...H,...o,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!a?j(m,i,E):z(i,E,h)}catch{return J(m,i,{as:t})}}var c;class L{constructor({config:i}){e(this,c);u(this,c,i)}formatNumber(i,t){const n={locales:[r(this,c).ui.language]};return M(n,i,t)}formatCurrency(i,t={as:y.Currency,from:f.Money},n){const o=r(this,c).ui.feature.showCurrency,a=r(this,c).api.coinValueInCents,g=r(this,c).api.currency||w,h=[r(this,c).ui.language];return v({canShowCurrency:o,coinValueInCents:a,currency:g,locales:h},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 Y=()=>{};var C,l,d,p;class Q{constructor({messagePort:i}){e(this,C);e(this,l);e(this,d);e(this,p);u(this,p,i),this.on("configured",t=>{u(this,C,t),u(this,d,new L({config:t})),u(this,l,new G({config:t}))}),this.on("playResponse",t=>{this.config.api.lastRoundId=t.contract.roundId})}get config(){if(!r(this,C))throw new Error("config is not initialized, you must open game first");return r(this,C)}get history(){if(!r(this,l))throw new Error("config is not initialized, you must open game first");return r(this,l)}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`,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}`&&(Y("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]){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 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,l=new WeakMap,d=new WeakMap,p=new WeakMap;exports.RgsError=D.RgsError;exports.RgsErrorCode=D.RgsErrorCode;exports.TimeoutError=D.TimeoutError;exports.decoders=O.decoders;exports.encoders=O.encoders;exports.History=G;exports.I18n=L;exports.KalambaSdk=Q;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { CurrencyFormat } from '@kalamba/common/src/utils/format/currency';
2
2
  import { CurrencyNumber } from '@kalamba/common/src/utils/format/currency';
3
3
  import { FormatCurrencyOptions } from '@kalamba/common/src/utils/format/currency';
4
+ import { OpenGameResponse as OpenGameResponse_2 } from '../types';
5
+ import { PlayResponse as PlayResponse_2 } from '../types';
4
6
 
5
7
  declare interface AddEventListenerOptions_2 {
6
8
  once: boolean;
@@ -62,6 +64,14 @@ export { CurrencyFormat }
62
64
 
63
65
  export { CurrencyNumber }
64
66
 
67
+ export declare type Decoder = (data: any) => unknown;
68
+
69
+ export declare type Decoders = keyof typeof decoders;
70
+
71
+ export declare const decoders: {
72
+ json: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
73
+ };
74
+
65
75
  export declare type DomainAllowedPayloadMap<P extends DomainPrefix> = DomainToMessagePayloadMap[P];
66
76
 
67
77
  export declare type DomainMessage<P extends DomainPrefix> = keyof DomainAllowedPayloadMap<P>;
@@ -83,6 +93,17 @@ export declare type DomainToMessagePayloadMap = {
83
93
  telemetry: TelemetryOnlyMessagePayloadMap;
84
94
  };
85
95
 
96
+ export declare type Encoder = (data: any) => unknown;
97
+
98
+ export declare type Encoders = keyof typeof encoders;
99
+
100
+ export declare const encoders: {
101
+ json: {
102
+ (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
103
+ (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
104
+ };
105
+ };
106
+
86
107
  export { FormatCurrencyOptions }
87
108
 
88
109
  export declare type ForwardToPluginsMessage<P extends PluginDomain> = keyof ForwardToPluginsMessageMap<'sdk'>[P] | keyof ForwardToPluginsMessageMap<'rgs'>[P] | keyof ForwardToPluginsMessageMap<'casino'>[P] | keyof ForwardToPluginsMessageMap<'telemetry'>[P];
@@ -176,8 +197,8 @@ export declare class KalambaSdk {
176
197
  on<M extends DomainMessage<'wrapper'> | ForwardToSdkMessage>(message: M, listener: (payload: M extends DomainMessage<'wrapper'> ? DomainMessagePayload<'wrapper', M> : M extends ForwardToSdkMessage ? ForwardToSdkMessagePayload<M> : never) => void, options?: AddEventListenerOptions_2): void;
177
198
  send<M extends DomainMessage<'sdk'>>(message: M, ...[payload]: DomainMessagePayload<'sdk', M> extends never ? [] : [DomainMessagePayload<'sdk', M>]): void;
178
199
  configure(payload: DomainMessagePayload<'sdk', 'configure'>): void;
179
- openGame(): Promise<OpenGameResponse>;
180
- play(contract: ContractPlayPayload, extra?: unknown, actionType?: string): Promise<PlayResponse>;
200
+ openGame(): Promise<OpenGameResponse_2>;
201
+ play(contract: ContractPlayPayload, extra?: unknown, actionType?: string): Promise<PlayResponse_2>;
181
202
  }
182
203
 
183
204
  export declare type Message = keyof MessageMap;
@@ -395,7 +416,7 @@ export declare interface SdkConfig {
395
416
  homeUrl?: string;
396
417
  integration: string;
397
418
  integrationData?: unknown;
398
- jurisdiction: string;
419
+ jurisdiction: string | null;
399
420
  playMode: 'FUN' | 'REAL';
400
421
  user: string;
401
422
  sessionId: string;
@@ -500,22 +521,14 @@ export declare type SdkOnlyMessagePayloadMap = {
500
521
  /**
501
522
  * ```typescript
502
523
  * {
503
- * en: {
504
- * my_custom_error: 'Something went wrong',
505
- * RgsError: {
506
- * OUT_OF_MONEY: 'You are out of credits',
507
- * }
508
- * },
509
- * pl: {
510
- * my_custom_error: 'Coś poszło nie tak',
511
- * RgsError: {
512
- * OUT_OF_MONEY: 'Nie masz już środków',
513
- * }
514
- * }
524
+ * my_custom_error: 'Something went wrong',
525
+ * RgsError: {
526
+ * OUT_OF_MONEY: 'You are out of credits',
527
+ * }
515
528
  * }
516
529
  * ```
517
530
  */
518
- translations: Record<string, NestedRecord<string, string>>;
531
+ translations: NestedRecord<string, string>;
519
532
  settings: Settings;
520
533
  'telemetry.click': {
521
534
  location: string;
@@ -573,6 +586,8 @@ export declare type ToTelemetryPluginsForwardedMessageMap = {
573
586
  };
574
587
 
575
588
  export declare type WrapperConfig = {
589
+ dataDecoder?: Decoders;
590
+ dataEncoder?: Encoders;
576
591
  gameName: string;
577
592
  gameVersion: string;
578
593
  gameHistoryUrl?: string;
package/dist/index.js CHANGED
@@ -2,42 +2,21 @@
2
2
  * BSD 3-Clause License
3
3
  * Copyright (c) 2025, Kalamba Games Limited
4
4
  */
5
- var N = (m, i, t) => {
6
- if (!i.has(m))
7
- throw TypeError("Cannot " + t);
5
+ var A = (m) => {
6
+ throw TypeError(m);
8
7
  };
9
- var r = (m, i, t) => (N(m, i, "read from private field"), t ? t.call(m) : i.get(m)), e = (m, i, t) => {
10
- if (i.has(m))
11
- throw TypeError("Cannot add the same private member more than once");
12
- i instanceof WeakSet ? i.add(m) : i.set(m, t);
13
- }, u = (m, i, t, n) => (N(m, i, "write to private field"), n ? n.call(m, t) : i.set(m, t), t);
14
- import { T as A, R as b } from "./errors-7cbbda8a.js";
15
- import { a as ii } from "./errors-7cbbda8a.js";
16
- function I(m) {
17
- const i = Object.prototype.toString.call(m);
18
- 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
- }
20
- function M(m) {
21
- const i = I(m);
22
- return i.setHours(23, 59, 59, 999), i;
23
- }
24
- function U() {
25
- return M(Date.now());
26
- }
27
- function G(m) {
28
- const i = I(m);
29
- return i.setHours(0, 0, 0, 0), i;
30
- }
31
- function H() {
32
- return G(Date.now());
33
- }
34
- const P = 3e4;
8
+ var E = (m, i, t) => i.has(m) || A("Cannot " + t);
9
+ var r = (m, i, t) => (E(m, i, "read from private field"), t ? t.call(m) : i.get(m)), u = (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), e = (m, i, t, n) => (E(m, i, "write to private field"), n ? n.call(m, t) : i.set(m, t), t);
10
+ import { T as N, R as I } from "./errors-NnLrKjTz.js";
11
+ import { a as ni } from "./errors-NnLrKjTz.js";
12
+ import { d as ai, e as si } from "./encoders-BDr7fjKQ.js";
13
+ const M = 3e4;
35
14
  var D, h;
36
- class k {
15
+ class U {
37
16
  constructor(i) {
38
- e(this, D, void 0);
39
- e(this, h, P);
40
- u(this, D, i);
17
+ u(this, D);
18
+ u(this, h, M);
19
+ e(this, D, i);
41
20
  }
42
21
  buildHeaders() {
43
22
  const i = {};
@@ -60,24 +39,36 @@ class k {
60
39
  }
61
40
  }
62
41
  D = new WeakMap(), h = new WeakMap();
63
- const E = {
64
- limit: 100,
65
- page: 0
66
- };
42
+ const O = Symbol.for("constructDateFrom");
43
+ function H(m, i) {
44
+ return typeof m == "function" ? m(i) : m && typeof m == "object" && O in m ? m[O](i) : m instanceof Date ? new m.constructor(i) : new Date(i);
45
+ }
46
+ function G(m, i) {
47
+ return H(m, m);
48
+ }
49
+ function k(m, i) {
50
+ const t = G(m);
51
+ return t.setHours(0, 0, 0, 0), t;
52
+ }
53
+ function $(m, i) {
54
+ const t = G(m);
55
+ return t.setHours(23, 59, 59, 999), t;
56
+ }
57
+ function K(m) {
58
+ return $(Date.now());
59
+ }
60
+ function _(m) {
61
+ return k(Date.now());
62
+ }
63
+ const b = { limit: 100, page: 0 };
67
64
  var s, f;
68
- class $ {
69
- constructor({
70
- config: i
71
- }) {
72
- e(this, s, void 0);
73
- e(this, f, void 0);
74
- u(this, s, i), u(this, f, new k({
75
- apiUrl: i.api.gameHistoryUrl
76
- }));
65
+ class X {
66
+ constructor({ config: i }) {
67
+ u(this, s);
68
+ u(this, f);
69
+ e(this, s, i), e(this, f, new U({ apiUrl: i.api.gameHistoryUrl }));
77
70
  }
78
- async getRound(i, {
79
- pagination: t = E
80
- } = {}) {
71
+ async getRound(i, { pagination: t = b } = {}) {
81
72
  return r(this, f).getRound(i, {
82
73
  gameCode: r(this, s).api.game,
83
74
  operatorCode: r(this, s).api.brand,
@@ -89,11 +80,8 @@ class $ {
89
80
  return r(this, s).api.lastRoundId ? this.getRound(r(this, s).api.lastRoundId) : null;
90
81
  }
91
82
  async getRounds({
92
- searchPeriod: i = {
93
- fromDateTime: H(),
94
- toDateTime: U()
95
- },
96
- pagination: t = E
83
+ searchPeriod: i = { fromDateTime: _(), toDateTime: K() },
84
+ pagination: t = b
97
85
  } = {}) {
98
86
  const n = r(this, s).api.user.replace(/^user_/, "").replace(new RegExp(`_${r(this, s).api.integration}$`), "");
99
87
  return r(this, f).getRounds({
@@ -107,10 +95,10 @@ class $ {
107
95
  }
108
96
  }
109
97
  s = new WeakMap(), f = new WeakMap();
110
- function K(m, i) {
98
+ function V(m, i) {
111
99
  return m * i / 100;
112
100
  }
113
- function O(m, i, t) {
101
+ function P(m, i, t) {
114
102
  if (!["string", "number"].includes(typeof i))
115
103
  return "NaN";
116
104
  const { locales: n } = m;
@@ -241,6 +229,12 @@ const w = {
241
229
  KWD: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
242
230
  // MicroGame
243
231
  BNS: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
232
+ // Quanta
233
+ GRSC: { displayAs: "SC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
234
+ GRGC: { displayAs: "GC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
235
+ // Softswiss
236
+ EEGP: { displayAs: "EP", maximumFractionDigits: 2, minimumFractionDigits: 2 },
237
+ EPGP: { displayAs: "PP", maximumFractionDigits: 2, minimumFractionDigits: 2 },
244
238
  // https://kalamba.atlassian.net/browse/FRAM-1829
245
239
  // Myanmar Kyat
246
240
  MMK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
@@ -281,7 +275,7 @@ const w = {
281
275
  function B(m) {
282
276
  return m in w;
283
277
  }
284
- function _(m) {
278
+ function q(m) {
285
279
  return B(m) ? {
286
280
  ...w[m],
287
281
  currency: S
@@ -289,22 +283,22 @@ function _(m) {
289
283
  currency: m
290
284
  };
291
285
  }
292
- function X(m, i, t) {
286
+ function W(m, i, t) {
293
287
  const n = i.format(+m);
294
288
  return B(t) ? n.replace(S, w[t].displayAs ?? t) : n;
295
289
  }
296
- function V(m, i, t) {
290
+ function z(m, i, t) {
297
291
  const { maximumFractionDigits: n, minimumFractionDigits: a } = t.resolvedOptions();
298
- return O(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
292
+ return P(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
299
293
  }
300
- function j(m, i, { as: t } = {
294
+ function J(m, i, { as: t } = {
301
295
  as: "Currency"
302
296
  /* Currency */
303
297
  }) {
304
298
  const { canShowCurrency: n, currency: a } = m;
305
299
  return t === "Number" || !n ? `${i}` : `${i} ${a}`;
306
300
  }
307
- function q(m, i, { as: t, from: n } = {
301
+ function j(m, i, { as: t, from: n } = {
308
302
  as: "Currency",
309
303
  from: "Money"
310
304
  /* Money */
@@ -312,9 +306,9 @@ function q(m, i, { as: t, from: n } = {
312
306
  if (!["string", "number"].includes(typeof i))
313
307
  return "NaN";
314
308
  const { canShowCurrency: o = !0, coinValueInCents: g, currency: d, locales: T } = m;
315
- n === "Coins" && (i = K(+i, g));
309
+ n === "Coins" && (i = V(+i, g));
316
310
  try {
317
- const L = _(d), R = new Intl.NumberFormat(T, {
311
+ const L = q(d), R = new Intl.NumberFormat(T, {
318
312
  ...L,
319
313
  ...a,
320
314
  currencyDisplay: "symbol",
@@ -323,24 +317,24 @@ function q(m, i, { as: t, from: n } = {
323
317
  numberingSystem: "latn",
324
318
  style: "currency"
325
319
  });
326
- return t === "Number" || !o ? V(m, i, R) : X(i, R, d);
320
+ return t === "Number" || !o ? z(m, i, R) : W(i, R, d);
327
321
  } catch {
328
- return j(m, i, { as: t });
322
+ return J(m, i, { as: t });
329
323
  }
330
324
  }
331
325
  var c;
332
- class W {
326
+ class Y {
333
327
  constructor({ config: i }) {
334
- e(this, c, void 0);
335
- u(this, c, i);
328
+ u(this, c);
329
+ e(this, c, i);
336
330
  }
337
331
  formatNumber(i, t) {
338
332
  const n = { locales: [r(this, c).ui.language] };
339
- return O(n, i, t);
333
+ return P(n, i, t);
340
334
  }
341
335
  formatCurrency(i, t = { as: F.Currency, from: y.Money }, n) {
342
336
  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];
343
- return q({
337
+ return j({
344
338
  canShowCurrency: a,
345
339
  coinValueInCents: o,
346
340
  currency: g,
@@ -363,15 +357,15 @@ class W {
363
357
  c = new WeakMap();
364
358
  const v = () => {
365
359
  };
366
- var x, l, C, p;
367
- class Y {
360
+ var x, C, p, l;
361
+ class ii {
368
362
  constructor({ messagePort: i }) {
369
- e(this, x, void 0);
370
- e(this, l, void 0);
371
- e(this, C, void 0);
372
- e(this, p, void 0);
373
- u(this, p, i), this.on("configured", (t) => {
374
- u(this, x, t), u(this, C, new W({ config: t })), u(this, l, new $({ config: t }));
363
+ u(this, x);
364
+ u(this, C);
365
+ u(this, p);
366
+ u(this, l);
367
+ e(this, l, i), this.on("configured", (t) => {
368
+ e(this, x, t), e(this, p, new Y({ config: t })), e(this, C, new X({ config: t }));
375
369
  }), this.on("playResponse", (t) => {
376
370
  this.config.api.lastRoundId = t.contract.roundId;
377
371
  });
@@ -382,14 +376,14 @@ class Y {
382
376
  return r(this, x);
383
377
  }
384
378
  get history() {
385
- if (!r(this, l))
379
+ if (!r(this, C))
386
380
  throw new Error("config is not initialized, you must open game first");
387
- return r(this, l);
381
+ return r(this, C);
388
382
  }
389
383
  get i18n() {
390
- if (!r(this, C))
384
+ if (!r(this, p))
391
385
  throw new Error("i18n is not initialized, you must open game first");
392
- return r(this, C);
386
+ return r(this, p);
393
387
  }
394
388
  request(i, ...[t]) {
395
389
  return new Promise((n) => {
@@ -406,7 +400,7 @@ class Y {
406
400
  }
407
401
  // TODO error messages
408
402
  send(i, ...[t]) {
409
- r(this, p).postMessage(
403
+ r(this, l).postMessage(
410
404
  {
411
405
  message: `kalamba:sdk:${i}`,
412
406
  payload: t
@@ -421,21 +415,23 @@ class Y {
421
415
  const i = new Promise((n) => this.on("configured", n, { once: !0 })), t = await this.request("openGame");
422
416
  if (t.type === "response")
423
417
  return await i, t.response;
424
- throw t.error.type === "timeout" ? new A() : new b(t.error.data);
418
+ throw t.error.type === "timeout" ? new N() : new I(t.error.data);
425
419
  }
426
420
  async play(i, t, n = "SPIN") {
427
421
  const a = { contract: i, extra: t, actionType: n }, o = await this.request("play", a);
428
422
  if (o.type === "response")
429
423
  return o.response;
430
- throw o.error.type === "timeout" ? new A() : new b(o.error.data);
424
+ throw o.error.type === "timeout" ? new N() : new I(o.error.data);
431
425
  }
432
426
  }
433
- x = new WeakMap(), l = new WeakMap(), C = new WeakMap(), p = new WeakMap();
427
+ x = new WeakMap(), C = new WeakMap(), p = new WeakMap(), l = new WeakMap();
434
428
  export {
435
- $ as History,
436
- W as I18n,
437
- Y as KalambaSdk,
438
- b as RgsError,
439
- ii as RgsErrorCode,
440
- A as TimeoutError
429
+ X as History,
430
+ Y as I18n,
431
+ ii as KalambaSdk,
432
+ I as RgsError,
433
+ ni as RgsErrorCode,
434
+ N as TimeoutError,
435
+ ai as decoders,
436
+ si as encoders
441
437
  };