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