@kalamba/sdk 0.23.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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 E=m=>{throw TypeError(m)};var N=(m,i,t)=>i.has(m)||E("Cannot "+t);var r=(m,i,t)=>(N(m,i,"read from private field"),t?t.call(m):i.get(m)),u=(m,i,t)=>i.has(m)?E("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(m):i.set(m,t),e=(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"),H=3e4;var F,S;class k{constructor(i){u(this,F);u(this,S,H);e(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 K(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 b(m,i){return K(m,m)}function $(m,i){const t=b(m);return t.setHours(0,0,0,0),t}function X(m,i){const t=b(m);return t.setHours(23,59,59,999),t}function _(m){return X(Date.now())}function q(m){return $(Date.now())}const G={limit:100,page:0};var a,x;class P{constructor({config:i}){u(this,a);u(this,x);e(this,a,i),e(this,x,new k({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=G}={}){return r(this,x).getRound(i,{gameCode:r(this,a).api.game,operatorCode:r(this,a).api.brand,username:r(this,a).api.user,...t})}async getLastRound(){return r(this,a).api.lastRoundId?this.getRound(r(this,a).api.lastRoundId):null}async getRounds({searchPeriod:i={fromDateTime:q(),toDateTime:_()},pagination:t=G}={}){const n=r(this,a).api.user.replace(/^user_/,"").replace(new RegExp(`_${r(this,a).api.integration}$`),"");return r(this,x).getRounds({gameCode:r(this,a).api.game,operatorCode:r(this,a).api.integration,username:n,fromDataTime:i.fromDateTime.toISOString(),toDateTime:i.toDateTime.toISOString(),...t})}}a=new WeakMap,x=new WeakMap;function V(m,i){return m*i/100}function L(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 T="XTS";var y=(m=>(m.Currency="Currency",m.Number="Number",m))(y||{}),C=(m=>(m.Coins="Coins",m.Money="Money",m))(C||{});const w={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},TTSC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},TTGC:{displayAs:"GC",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},LUCK:{displayAs:"LUCK",maximumFractionDigits:2,minimumFractionDigits:2},CXCO:{displayAs:"CC",maximumFractionDigits:2,minimumFractionDigits:2},GZCO:{displayAs:"GC",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 w}function W(m){return M(m)?{...w[m],currency:T}:{currency:m}}function z(m,i,t){const n=i.format(+m);return M(t)?n.replace(T,w[t].displayAs??t):n}function j(m,i,t){const{maximumFractionDigits:n,minimumFractionDigits:s}=t.resolvedOptions();return L(m,i,{maximumFractionDigits:n,minimumFractionDigits:s})}function J(m,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:s}=m;return t==="Number"||!n?`${i}`:`${i} ${s}`}function v(m,i,{as:t,from:n}={as:"Currency",from:"Money"},s){if(!["string","number"].includes(typeof i))return"NaN";const{canShowCurrency:o=!0,coinValueInCents:g,currency:h,locales:A}=m;n==="Coins"&&(i=V(+i,g));try{const U=W(h),R=new Intl.NumberFormat(A,{...U,...s,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!o?j(m,i,R):z(i,R,h)}catch{return J(m,i,{as:t})}}var c;class B{constructor({config:i}){u(this,c);e(this,c,i)}formatNumber(i,t){const n={locales:[r(this,c).ui.language]};return L(n,i,t)}formatCurrency(i,t={as:y.Currency,from:C.Money},n){const s=r(this,c).ui.feature.showCurrency,o=r(this,c).api.coinValueInCents,g=r(this,c).api.currency||T,h=[r(this,c).ui.language];return v({canShowCurrency:s,coinValueInCents:o,currency:g,locales:h},i,t,n)}formatCoins(i,t){return this.formatCurrency(i,{as:y.Number,from:C.Coins},t)}formatCoinsWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:C.Coins},t)}formatMoney(i,t){return this.formatCurrency(i,{as:y.Number,from:C.Money},t)}formatMoneyWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:C.Money},t)}}c=new WeakMap;const Y=()=>{};var f,l,d,p;class Q{constructor({messagePort:i}){u(this,f);u(this,l);u(this,d);u(this,p);e(this,p,i),this.on("configured",t=>{e(this,f,t),e(this,d,new B({config:t})),e(this,l,new P({config:t}))}),this.on("playResponse",t=>{this.config.api.lastRoundId=t.contract.roundId})}get config(){if(!r(this,f))throw new Error("config is not initialized, you must open game first");return r(this,f)}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`,s=>n({type:"response",response:s}),{once:!0}),this.on(`${i}Error`,s=>n({type:"error",error:s}),{once:!0}),this.send(i,t)})}on(i,t,n){const s=function o(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",o))};window.addEventListener("message",s)}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 s={contract:i,extra:t,actionType:n},o=await this.request("play",s);if(o.type==="response")return o.response;throw o.error.type==="timeout"?new D.TimeoutError:new D.RgsError(o.error.data)}}f=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=P;exports.I18n=B;exports.KalambaSdk=Q;
5
+ "use strict";var E=m=>{throw TypeError(m)};var G=(m,i,t)=>i.has(m)||E("Cannot "+t);var r=(m,i,t)=>(G(m,i,"read from private field"),t?t.call(m):i.get(m)),u=(m,i,t)=>i.has(m)?E("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(m):i.set(m,t),e=(m,i,t,n)=>(G(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"),H=3e4;var F,S;class k{constructor(i){u(this,F);u(this,S,H);e(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 N=Symbol.for("constructDateFrom");function K(m,i){return typeof m=="function"?m(i):m&&typeof m=="object"&&N in m?m[N](i):m instanceof Date?new m.constructor(i):new Date(i)}function b(m,i){return K(m,m)}function $(m,i){const t=b(m);return t.setHours(0,0,0,0),t}function X(m,i){const t=b(m);return t.setHours(23,59,59,999),t}function _(m){return X(Date.now())}function q(m){return $(Date.now())}const I={limit:100,page:0};var a,x;class M{constructor({config:i}){u(this,a);u(this,x);e(this,a,i),e(this,x,new k({apiUrl:i.api.gameHistoryUrl}))}async getRound(i,{pagination:t=I}={}){return r(this,x).getRound(i,{gameCode:r(this,a).api.game,operatorCode:r(this,a).api.brand,username:r(this,a).api.user,...t})}async getLastRound(){return r(this,a).api.lastRoundId?this.getRound(r(this,a).api.lastRoundId):null}async getRounds({searchPeriod:i={fromDateTime:q(),toDateTime:_()},pagination:t=I}={}){const n=r(this,a).api.user.replace(/^user_/,"").replace(new RegExp(`_${r(this,a).api.integration}$`),"");return r(this,x).getRounds({gameCode:r(this,a).api.game,operatorCode:r(this,a).api.integration,username:n,fromDataTime:i.fromDateTime.toISOString(),toDateTime:i.toDateTime.toISOString(),...t})}}a=new WeakMap,x=new WeakMap;function W(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 T="XTS";var y=(m=>(m.Currency="Currency",m.Number="Number",m))(y||{}),C=(m=>(m.Coins="Coins",m.Money="Money",m))(C||{});const w={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},TTSC:{displayAs:"SC",maximumFractionDigits:2,minimumFractionDigits:2},TTGC:{displayAs:"GC",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},LUCK:{displayAs:"LUCK",maximumFractionDigits:2,minimumFractionDigits:2},CXCO:{displayAs:"CC",maximumFractionDigits:2,minimumFractionDigits:2},GZCO:{displayAs:"GC",maximumFractionDigits:2,minimumFractionDigits:2},FC:{displayAs:"",maximumFractionDigits:2,minimumFractionDigits:2},RC:{maximumFractionDigits:2,minimumFractionDigits:2},MWSC:{displayAs:"MC",maximumFractionDigits:2,minimumFractionDigits:2},MWGC:{displayAs:"GC",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 L(m){return m in w}function V(m){return L(m)?{...w[m],currency:T}:{currency:m}}function z(m,i,t){const n=i.format(+m);return L(t)?n.replace(T,w[t].displayAs??t):n}function j(m,i,t){const{maximumFractionDigits:n,minimumFractionDigits:s}=t.resolvedOptions();return P(m,i,{maximumFractionDigits:n,minimumFractionDigits:s})}function J(m,i,{as:t}={as:"Currency"}){const{canShowCurrency:n,currency:s}=m;return t==="Number"||!n?`${i}`:`${i} ${s}`}function v(m,i,{as:t,from:n}={as:"Currency",from:"Money"},s){if(!["string","number"].includes(typeof i))return"NaN";const{canShowCurrency:o=!0,coinValueInCents:g,currency:h,locales:A}=m;n==="Coins"&&(i=W(+i,g));try{const U=V(h),R=new Intl.NumberFormat(A,{...U,...s,currencyDisplay:"symbol",numberingSystem:"latn",style:"currency"});return t==="Number"||!o?j(m,i,R):z(i,R,h)}catch{return J(m,i,{as:t})}}var c;class B{constructor({config:i}){u(this,c);e(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:C.Money},n){const s=r(this,c).ui.feature.showCurrency,o=r(this,c).api.coinValueInCents,g=r(this,c).api.currency||T,h=[r(this,c).ui.language];return v({canShowCurrency:s,coinValueInCents:o,currency:g,locales:h},i,t,n)}formatCoins(i,t){return this.formatCurrency(i,{as:y.Number,from:C.Coins},t)}formatCoinsWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:C.Coins},t)}formatMoney(i,t){return this.formatCurrency(i,{as:y.Number,from:C.Money},t)}formatMoneyWithCurrency(i,t){return this.formatCurrency(i,{as:y.Currency,from:C.Money},t)}}c=new WeakMap;const Y=()=>{};var l,d,f,p;class Q{constructor({messagePort:i}){u(this,l);u(this,d);u(this,f);u(this,p);e(this,p,i),this.on("configured",t=>{e(this,l,t),e(this,f,new B({config:t})),e(this,d,new M({config:t}))}),this.on("playResponse",t=>{this.config.api.lastRoundId=t.contract.roundId})}get config(){if(!r(this,l))throw new Error("config is not initialized, you must open game first");return r(this,l)}get history(){if(!r(this,d))throw new Error("config is not initialized, you must open game first");return r(this,d)}get i18n(){if(!r(this,f))throw new Error("i18n is not initialized, you must open game first");return r(this,f)}request(i,...[t]){return new Promise(n=>{this.on(`${i}Response`,s=>n({type:"response",response:s}),{once:!0}),this.on(`${i}Error`,s=>n({type:"error",error:s}),{once:!0}),this.send(i,t)})}on(i,t,n){const s=function o(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",o))};window.addEventListener("message",s)}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 s={contract:i,extra:t,actionType:n},o=await this.request("play",s);if(o.type==="response")return o.response;throw o.error.type==="timeout"?new D.TimeoutError:new D.RgsError(o.error.data)}}l=new WeakMap,d=new WeakMap,f=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=M;exports.I18n=B;exports.KalambaSdk=Q;
package/dist/index.d.ts CHANGED
@@ -144,11 +144,20 @@ export declare type FreeRoundsAction = {
144
144
  id: string;
145
145
  };
146
146
 
147
+ export declare type FreeRoundsRequest = {
148
+ id: string;
149
+ action: 'ACCEPT' | 'DECLINE' | 'SKIP';
150
+ };
151
+
147
152
  export declare type FreeRoundsResponse = {
148
153
  action: 'ACCEPT' | 'DECLINE' | 'SKIP';
149
154
  id: string;
150
155
  };
151
156
 
157
+ export declare type GetBalanceResponse = {
158
+ balance: number;
159
+ };
160
+
152
161
  export declare interface GetRoundOptions {
153
162
  pagination?: Pagination;
154
163
  }
@@ -272,6 +281,10 @@ export declare type PlayRequest = {
272
281
  actionType: string;
273
282
  };
274
283
 
284
+ export declare type PlayRequestEnhanced = PlayRequest & {
285
+ payloadToInject?: Record<string, unknown>;
286
+ };
287
+
275
288
  export declare type PlayResponse = {
276
289
  contract: {
277
290
  bet: {
@@ -475,6 +488,7 @@ export declare interface SdkConfig {
475
488
  realityCheck: RealityCheckConfig;
476
489
  skipInsufficientFundsCheck: boolean;
477
490
  skipSplash: boolean;
491
+ cheatPanel: boolean;
478
492
  };
479
493
  }
480
494
 
@@ -596,6 +610,7 @@ export declare type WrapperConfig = {
596
610
  gameVersion: string;
597
611
  gameHistoryUrl?: string;
598
612
  showFreeRounds: boolean;
613
+ showPromoPanel: boolean;
599
614
  showRealityCheck: boolean;
600
615
  showErrors: boolean;
601
616
  showBars: boolean;
@@ -614,9 +629,7 @@ export declare type WrapperOnlyMessagePayloadMap = {
614
629
  suspend: never;
615
630
  unfreeze: never;
616
631
  legalBets: Record<number, number[]>;
617
- play: PlayRequest & {
618
- payloadToInject?: Record<string, unknown>;
619
- };
632
+ play: PlayRequestEnhanced;
620
633
  freeRounds: FreeRoundsAction;
621
634
  freeRoundsOffer: FreeRound;
622
635
  freeRoundsInfo: FreeRound;
package/dist/index.js CHANGED
@@ -6,17 +6,17 @@ var R = (m) => {
6
6
  throw TypeError(m);
7
7
  };
8
8
  var E = (m, i, t) => i.has(m) || R("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) ? R("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 G } from "./errors-NnLrKjTz.js";
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) ? R("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(m) : i.set(m, t), c = (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 G, R as N } from "./errors-NnLrKjTz.js";
11
11
  import { a as ni } from "./errors-NnLrKjTz.js";
12
12
  import { d as ai, e as si } from "./encoders-BDr7fjKQ.js";
13
- const M = 3e4;
13
+ const B = 3e4;
14
14
  var D, h;
15
15
  class U {
16
16
  constructor(i) {
17
17
  u(this, D);
18
- u(this, h, M);
19
- e(this, D, i);
18
+ u(this, h, B);
19
+ c(this, D, i);
20
20
  }
21
21
  buildHeaders() {
22
22
  const i = {};
@@ -43,15 +43,15 @@ const I = Symbol.for("constructDateFrom");
43
43
  function H(m, i) {
44
44
  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);
45
45
  }
46
- function b(m, i) {
46
+ function M(m, i) {
47
47
  return H(m, m);
48
48
  }
49
49
  function k(m, i) {
50
- const t = b(m);
50
+ const t = M(m);
51
51
  return t.setHours(0, 0, 0, 0), t;
52
52
  }
53
53
  function K(m, i) {
54
- const t = b(m);
54
+ const t = M(m);
55
55
  return t.setHours(23, 59, 59, 999), t;
56
56
  }
57
57
  function $(m) {
@@ -66,7 +66,7 @@ class _ {
66
66
  constructor({ config: i }) {
67
67
  u(this, s);
68
68
  u(this, C);
69
- e(this, s, i), e(this, C, new U({ apiUrl: i.api.gameHistoryUrl }));
69
+ c(this, s, i), c(this, C, new U({ apiUrl: i.api.gameHistoryUrl }));
70
70
  }
71
71
  async getRound(i, { pagination: t = O } = {}) {
72
72
  return r(this, C).getRound(i, {
@@ -95,10 +95,10 @@ class _ {
95
95
  }
96
96
  }
97
97
  s = new WeakMap(), C = new WeakMap();
98
- function V(m, i) {
98
+ function W(m, i) {
99
99
  return m * i / 100;
100
100
  }
101
- function L(m, i, t) {
101
+ function b(m, i, t) {
102
102
  if (!["string", "number"].includes(typeof i))
103
103
  return "NaN";
104
104
  const { locales: n } = m;
@@ -240,6 +240,11 @@ const w = {
240
240
  LUCK: { displayAs: "LUCK", maximumFractionDigits: 2, minimumFractionDigits: 2 },
241
241
  CXCO: { displayAs: "CC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
242
242
  GZCO: { displayAs: "GC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
243
+ // gametech
244
+ FC: { displayAs: "", maximumFractionDigits: 2, minimumFractionDigits: 2 },
245
+ RC: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
246
+ MWSC: { displayAs: "MC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
247
+ MWGC: { displayAs: "GC", maximumFractionDigits: 2, minimumFractionDigits: 2 },
243
248
  // https://kalamba.atlassian.net/browse/FRAM-1829
244
249
  // Myanmar Kyat
245
250
  MMK: { maximumFractionDigits: 2, minimumFractionDigits: 2 },
@@ -277,24 +282,24 @@ const w = {
277
282
  IRR: { maximumFractionDigits: 2, minimumFractionDigits: 2 }
278
283
  /* eslint-enable sort-keys-fix/sort-keys-fix */
279
284
  };
280
- function P(m) {
285
+ function L(m) {
281
286
  return m in w;
282
287
  }
283
- function q(m) {
284
- return P(m) ? {
288
+ function V(m) {
289
+ return L(m) ? {
285
290
  ...w[m],
286
291
  currency: S
287
292
  } : {
288
293
  currency: m
289
294
  };
290
295
  }
291
- function W(m, i, t) {
296
+ function q(m, i, t) {
292
297
  const n = i.format(+m);
293
- return P(t) ? n.replace(S, w[t].displayAs ?? t) : n;
298
+ return L(t) ? n.replace(S, w[t].displayAs ?? t) : n;
294
299
  }
295
300
  function z(m, i, t) {
296
301
  const { maximumFractionDigits: n, minimumFractionDigits: a } = t.resolvedOptions();
297
- return L(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
302
+ return b(m, i, { maximumFractionDigits: n, minimumFractionDigits: a });
298
303
  }
299
304
  function J(m, i, { as: t } = {
300
305
  as: "Currency"
@@ -310,11 +315,11 @@ function j(m, i, { as: t, from: n } = {
310
315
  }, a) {
311
316
  if (!["string", "number"].includes(typeof i))
312
317
  return "NaN";
313
- const { canShowCurrency: o = !0, coinValueInCents: g, currency: d, locales: T } = m;
314
- n === "Coins" && (i = V(+i, g));
318
+ const { canShowCurrency: o = !0, coinValueInCents: g, currency: d, locales: A } = m;
319
+ n === "Coins" && (i = W(+i, g));
315
320
  try {
316
- const B = q(d), A = new Intl.NumberFormat(T, {
317
- ...B,
321
+ const P = V(d), T = new Intl.NumberFormat(A, {
322
+ ...P,
318
323
  ...a,
319
324
  currencyDisplay: "symbol",
320
325
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -322,23 +327,23 @@ function j(m, i, { as: t, from: n } = {
322
327
  numberingSystem: "latn",
323
328
  style: "currency"
324
329
  });
325
- return t === "Number" || !o ? z(m, i, A) : W(i, A, d);
330
+ return t === "Number" || !o ? z(m, i, T) : q(i, T, d);
326
331
  } catch {
327
332
  return J(m, i, { as: t });
328
333
  }
329
334
  }
330
- var c;
335
+ var e;
331
336
  class Y {
332
337
  constructor({ config: i }) {
333
- u(this, c);
334
- e(this, c, i);
338
+ u(this, e);
339
+ c(this, e, i);
335
340
  }
336
341
  formatNumber(i, t) {
337
- const n = { locales: [r(this, c).ui.language] };
338
- return L(n, i, t);
342
+ const n = { locales: [r(this, e).ui.language] };
343
+ return b(n, i, t);
339
344
  }
340
345
  formatCurrency(i, t = { as: F.Currency, from: y.Money }, n) {
341
- 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];
346
+ const a = r(this, e).ui.feature.showCurrency, o = r(this, e).api.coinValueInCents, g = r(this, e).api.currency || S, d = [r(this, e).ui.language];
342
347
  return j({
343
348
  canShowCurrency: a,
344
349
  coinValueInCents: o,
@@ -359,7 +364,7 @@ class Y {
359
364
  return this.formatCurrency(i, { as: F.Currency, from: y.Money }, t);
360
365
  }
361
366
  }
362
- c = new WeakMap();
367
+ e = new WeakMap();
363
368
  const v = () => {
364
369
  };
365
370
  var x, f, p, l;
@@ -369,8 +374,8 @@ class ii {
369
374
  u(this, f);
370
375
  u(this, p);
371
376
  u(this, l);
372
- e(this, l, i), this.on("configured", (t) => {
373
- e(this, x, t), e(this, p, new Y({ config: t })), e(this, f, new _({ config: t }));
377
+ c(this, l, i), this.on("configured", (t) => {
378
+ c(this, x, t), c(this, p, new Y({ config: t })), c(this, f, new _({ config: t }));
374
379
  }), this.on("playResponse", (t) => {
375
380
  this.config.api.lastRoundId = t.contract.roundId;
376
381
  });
@@ -420,13 +425,13 @@ class ii {
420
425
  const i = new Promise((n) => this.on("configured", n, { once: !0 })), t = await this.request("openGame");
421
426
  if (t.type === "response")
422
427
  return await i, t.response;
423
- throw t.error.type === "timeout" ? new N() : new G(t.error.data);
428
+ throw t.error.type === "timeout" ? new G() : new N(t.error.data);
424
429
  }
425
430
  async play(i, t, n = "SPIN") {
426
431
  const a = { contract: i, extra: t, actionType: n }, o = await this.request("play", a);
427
432
  if (o.type === "response")
428
433
  return o.response;
429
- throw o.error.type === "timeout" ? new N() : new G(o.error.data);
434
+ throw o.error.type === "timeout" ? new G() : new N(o.error.data);
430
435
  }
431
436
  }
432
437
  x = new WeakMap(), f = new WeakMap(), p = new WeakMap(), l = new WeakMap();
@@ -434,9 +439,9 @@ export {
434
439
  _ as History,
435
440
  Y as I18n,
436
441
  ii as KalambaSdk,
437
- G as RgsError,
442
+ N as RgsError,
438
443
  ni as RgsErrorCode,
439
- N as TimeoutError,
444
+ G as TimeoutError,
440
445
  ai as decoders,
441
446
  si as encoders
442
447
  };