@kalamba/sdk 0.13.2 → 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 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");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;
@@ -500,22 +500,14 @@ export declare type SdkOnlyMessagePayloadMap = {
500
500
  /**
501
501
  * ```typescript
502
502
  * {
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
- * }
503
+ * my_custom_error: 'Something went wrong',
504
+ * RgsError: {
505
+ * OUT_OF_MONEY: 'You are out of credits',
506
+ * }
515
507
  * }
516
508
  * ```
517
509
  */
518
- translations: Record<string, NestedRecord<string, string>>;
510
+ translations: NestedRecord<string, string>;
519
511
  settings: Settings;
520
512
  'telemetry.click': {
521
513
  location: string;
package/dist/index.js CHANGED
@@ -2,41 +2,37 @@
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) {
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) {
17
13
  const i = Object.prototype.toString.call(m);
18
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 M(m) {
21
- const i = I(m);
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 M(Date.now());
20
+ function M() {
21
+ return L(Date.now());
26
22
  }
27
- function G(m) {
28
- const i = I(m);
23
+ function U(m) {
24
+ const i = O(m);
29
25
  return i.setHours(0, 0, 0, 0), i;
30
26
  }
31
27
  function H() {
32
- return G(Date.now());
28
+ return U(Date.now());
33
29
  }
34
- const P = 3e4;
30
+ const k = 3e4;
35
31
  var D, h;
36
- class k {
32
+ class $ {
37
33
  constructor(i) {
38
- e(this, D, void 0);
39
- e(this, h, P);
34
+ e(this, D);
35
+ e(this, h, k);
40
36
  u(this, D, i);
41
37
  }
42
38
  buildHeaders() {
@@ -60,23 +56,23 @@ class k {
60
56
  }
61
57
  }
62
58
  D = new WeakMap(), h = new WeakMap();
63
- const E = {
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
77
  return r(this, f).getRound(i, {
82
78
  gameCode: r(this, s).api.game,
@@ -91,9 +87,9 @@ class $ {
91
87
  async getRounds({
92
88
  searchPeriod: i = {
93
89
  fromDateTime: H(),
94
- toDateTime: U()
90
+ toDateTime: M()
95
91
  },
96
- pagination: t = E
92
+ pagination: t = I
97
93
  } = {}) {
98
94
  const n = r(this, s).api.user.replace(/^user_/, "").replace(new RegExp(`_${r(this, s).api.integration}$`), "");
99
95
  return r(this, f).getRounds({
@@ -107,10 +103,10 @@ class $ {
107
103
  }
108
104
  }
109
105
  s = new WeakMap(), f = new WeakMap();
110
- function K(m, i) {
106
+ function _(m, i) {
111
107
  return m * i / 100;
112
108
  }
113
- function O(m, i, t) {
109
+ function G(m, i, t) {
114
110
  if (!["string", "number"].includes(typeof i))
115
111
  return "NaN";
116
112
  const { locales: n } = m;
@@ -241,6 +237,12 @@ const w = {
241
237
  KWD: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
242
238
  // MicroGame
243
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 },
244
246
  // https://kalamba.atlassian.net/browse/FRAM-1829
245
247
  // Myanmar Kyat
246
248
  MMK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
@@ -278,33 +280,33 @@ const w = {
278
280
  IRR: { maximumFractionDigits: 2, minimumFractionDigits: 2 }
279
281
  /* eslint-enable sort-keys-fix/sort-keys-fix */
280
282
  };
281
- function B(m) {
283
+ function P(m) {
282
284
  return m in w;
283
285
  }
284
- function _(m) {
285
- return B(m) ? {
286
+ function X(m) {
287
+ return P(m) ? {
286
288
  ...w[m],
287
289
  currency: S
288
290
  } : {
289
291
  currency: m
290
292
  };
291
293
  }
292
- function X(m, i, t) {
294
+ function V(m, i, t) {
293
295
  const n = i.format(+m);
294
- return B(t) ? n.replace(S, w[t].displayAs ?? t) : n;
296
+ return P(t) ? n.replace(S, w[t].displayAs ?? t) : n;
295
297
  }
296
- function V(m, i, t) {
298
+ function j(m, i, t) {
297
299
  const { maximumFractionDigits: n, minimumFractionDigits: a } = t.resolvedOptions();
298
- return O(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
300
+ return G(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
299
301
  }
300
- function j(m, i, { as: t } = {
302
+ function q(m, i, { as: t } = {
301
303
  as: "Currency"
302
304
  /* Currency */
303
305
  }) {
304
306
  const { canShowCurrency: n, currency: a } = m;
305
307
  return t === "Number" || !n ? `${i}` : `${i} ${a}`;
306
308
  }
307
- function q(m, i, { as: t, from: n } = {
309
+ function W(m, i, { as: t, from: n } = {
308
310
  as: "Currency",
309
311
  from: "Money"
310
312
  /* Money */
@@ -312,10 +314,10 @@ function q(m, i, { as: t, from: n } = {
312
314
  if (!["string", "number"].includes(typeof i))
313
315
  return "NaN";
314
316
  const { canShowCurrency: o = !0, coinValueInCents: g, currency: d, locales: T } = m;
315
- n === "Coins" && (i = K(+i, g));
317
+ n === "Coins" && (i = _(+i, g));
316
318
  try {
317
- const L = _(d), R = new Intl.NumberFormat(T, {
318
- ...L,
319
+ const B = X(d), R = new Intl.NumberFormat(T, {
320
+ ...B,
319
321
  ...a,
320
322
  currencyDisplay: "symbol",
321
323
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -323,24 +325,24 @@ function q(m, i, { as: t, from: n } = {
323
325
  numberingSystem: "latn",
324
326
  style: "currency"
325
327
  });
326
- return t === "Number" || !o ? V(m, i, R) : X(i, R, d);
328
+ return t === "Number" || !o ? j(m, i, R) : V(i, R, d);
327
329
  } catch {
328
- return j(m, i, { as: t });
330
+ return q(m, i, { as: t });
329
331
  }
330
332
  }
331
333
  var c;
332
- class W {
334
+ class v {
333
335
  constructor({ config: i }) {
334
- e(this, c, void 0);
336
+ e(this, c);
335
337
  u(this, c, i);
336
338
  }
337
339
  formatNumber(i, t) {
338
340
  const n = { locales: [r(this, c).ui.language] };
339
- return O(n, i, t);
341
+ return G(n, i, t);
340
342
  }
341
343
  formatCurrency(i, t = { as: F.Currency, from: y.Money }, n) {
342
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];
343
- return q({
345
+ return W({
344
346
  canShowCurrency: a,
345
347
  coinValueInCents: o,
346
348
  currency: g,
@@ -361,17 +363,17 @@ class W {
361
363
  }
362
364
  }
363
365
  c = new WeakMap();
364
- const v = () => {
366
+ const z = () => {
365
367
  };
366
368
  var x, l, C, p;
367
- class Y {
369
+ class Q {
368
370
  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);
371
+ e(this, x);
372
+ e(this, l);
373
+ e(this, C);
374
+ e(this, p);
373
375
  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 }));
376
+ u(this, x, t), u(this, C, new v({ config: t })), u(this, l, new K({ config: t }));
375
377
  }), this.on("playResponse", (t) => {
376
378
  this.config.api.lastRoundId = t.contract.roundId;
377
379
  });
@@ -400,7 +402,7 @@ class Y {
400
402
  }
401
403
  on(i, t, n) {
402
404
  const a = function o(g) {
403
- 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));
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));
404
406
  };
405
407
  window.addEventListener("message", a);
406
408
  }
@@ -421,21 +423,21 @@ class Y {
421
423
  const i = new Promise((n) => this.on("configured", n, { once: !0 })), t = await this.request("openGame");
422
424
  if (t.type === "response")
423
425
  return await i, t.response;
424
- throw t.error.type === "timeout" ? new A() : new b(t.error.data);
426
+ throw t.error.type === "timeout" ? new E() : new b(t.error.data);
425
427
  }
426
428
  async play(i, t, n = "SPIN") {
427
429
  const a = { contract: i, extra: t, actionType: n }, o = await this.request("play", a);
428
430
  if (o.type === "response")
429
431
  return o.response;
430
- throw o.error.type === "timeout" ? new A() : new b(o.error.data);
432
+ throw o.error.type === "timeout" ? new E() : new b(o.error.data);
431
433
  }
432
434
  }
433
435
  x = new WeakMap(), l = new WeakMap(), C = new WeakMap(), p = new WeakMap();
434
436
  export {
435
- $ as History,
436
- W as I18n,
437
- Y as KalambaSdk,
437
+ K as History,
438
+ v as I18n,
439
+ Q as KalambaSdk,
438
440
  b as RgsError,
439
- ii as RgsErrorCode,
440
- A as TimeoutError
441
+ ti as RgsErrorCode,
442
+ E as TimeoutError
441
443
  };