@smartico/public-api 0.0.111 → 0.0.113
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/Leaderboard/LeaderBoards.d.ts +3 -0
- package/dist/MiniGames/SAWPrizeUI.d.ts +1 -0
- package/dist/MiniGames/SAWWinSoundType.d.ts +2 -1
- package/dist/SmarticoAPI.d.ts +2 -1
- package/dist/WSAPI/WSAPI.d.ts +6 -1
- package/dist/WSAPI/WSAPITypes.d.ts +39 -0
- package/dist/index.js +194 -92
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +92 -21
- package/dist/index.modern.mjs.map +1 -1
- package/docs/README.md +3 -0
- package/docs/classes/WSAPI.md +25 -6
- package/docs/interfaces/LeaderBoardDetailsT.md +65 -0
- package/docs/interfaces/LeaderBoardUserT.md +41 -0
- package/docs/interfaces/LeaderBoardsRewardsT.md +13 -0
- package/docs/interfaces/TAchCategory.md +1 -1
- package/docs/interfaces/TMissionOrBadge.md +8 -0
- package/docs/interfaces/TStoreItem.md +8 -0
- package/package.json +1 -1
- package/src/Leaderboard/LeaderBoards.ts +51 -0
- package/src/MiniGames/SAWPrizeUI.ts +1 -0
- package/src/MiniGames/SAWWinSoundType.ts +2 -1
- package/src/Missions/UserAchievement.ts +5 -3
- package/src/OCache.ts +10 -3
- package/src/SmarticoAPI.ts +18 -7
- package/src/Store/StoreItem.ts +1 -0
- package/src/WSAPI/WSAPI.ts +20 -6
- package/src/WSAPI/WSAPITypes.ts +45 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.mjs","sources":["../src/Base/ClassId.ts","../src/IntUtils.ts","../src/MiniGames/SAWBuyInType.ts","../src/MiniGames/SAWUtils.ts","../src/MiniGames/SAWAcknowledgeType.ts","../src/MiniGames/SAWAskForUsername.ts","../src/MiniGames/SAWGameType.ts","../src/MiniGames/SAWPrizeType.ts","../src/MiniGames/SAWGetTemplatesResponse.ts","../src/MiniGames/SAWSpinErrorCode.ts","../src/MiniGames/SAWWinSoundType.ts","../src/NodeCache.ts","../src/OCache.ts","../src/Core/ActivityTypeLimited.ts","../src/Core/CoreUtils.ts","../src/Core/PublicLabelSettings.ts","../src/Core/TranslationArea.ts","../src/Inbox/GetInboxMessagesResponse.ts","../src/Inbox/InboxMessage.ts","../src/Inbox/InboxMessageType.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Level/GetLevelMapResponse.ts","../src/WSAPI/WSAPI.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts","../src/Leaderboard/LeaderBoardPeriodType.ts"],"sourcesContent":["export enum ClassId {\n PING = 1,\n PONG = 2,\n\n\n INIT = 3,\n INIT_RESPONSE = 4,\n IDENTIFY = 5,\n IDENTIFY_RESPONSE = 6,\n LOGIN = 7,\n LOGOUT = 8,\n EVENT = 9,\n EVENT_RESPONSE = 10,\n\n LOGIN_RESPONSE = 11,\n LOGOUT_RESPONSE = 12,\n\n GET_TRANSLATIONS_REQUEST = 13,\n GET_TRANSLATIONS_RESPONSE = 14,\n\n CLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n CLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n CLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n CLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n CLIENT_EXECUTE_JS_EVENT = 107,\n CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n CLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n CLIENT_TRACK_ACTIVITY_REQUEST = 155,\n CLIENT_SET_AVATAR_REQUEST = 157,\n CLIENT_SET_AVATAR_RESPONSE = 158,\n\n CLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n CLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n // 500-1000 - Achievements\n GET_LEVEL_MAP_REQUEST = 500,\n GET_LEVEL_MAP_RESPONSE = 501,\n GET_ACHIEVEMENT_MAP_REQUEST = 502,\n GET_ACHIEVEMENT_MAP_RESPONSE = 503,\n RELOAD_ACHIEVEMENTS_EVENT = 504,\n GET_LEADERS_BOARD_REQUEST = 505,\n GET_LEADERS_BOARD_RESPONSE = 506,\n GET_ACTIVITY_LOG_REQUEST = 507,\n GET_ACTIVITY_LOG_RESPONSE = 508,\n GET_SHOP_ITEMS_REQUEST = 509,\n GET_SHOP_ITEMS_RESPONSE = 510,\n BUY_SHOP_ITEM_REQUEST = 511,\n BUY_SHOP_ITEM_RESPONSE = 512,\n GET_INBOX_MESSAGES_REQUEST = 513,\n GET_INBOX_MESSAGES_RESPONSE = 514,\n GET_SHOP_CATEGORIES_REQUEST = 515,\n GET_SHOP_CATEGORIES_RESPONSE = 516,\n GET_TOURNAMENT_LOBBY_REQUEST = 517,\n GET_TOURNAMENT_LOBBY_RESPONSE = 518,\n GET_TOURNAMENT_INFO_REQUEST = 519,\n GET_TOURNAMENT_INFO_RESPONSE = 520,\n TOURNAMENT_REGISTER_REQUEST = 521,\n TOURNAMENT_REGISTER_RESPONSE = 522,\n GET_CUSTOM_SECTIONS_REQUEST = 523,\n GET_CUSTOM_SECTIONS_RESPONSE = 524,\n MISSION_OPTIN_REQUEST = 525,\n MISSION_OPTIN_RESPONSE = 526,\n\n GET_ACHIEVEMENT_USER_REQUEST = 527,\n GET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n MARK_INBOX_READ_REQUEST = 529,\n MARK_INBOX_READ_RESPONSE = 530,\n MARK_INBOX_STARRED_REQUEST = 531,\n MARK_INBOX_STARRED_RESPONSE = 532,\n MARK_INBOX_DELETED_REQUEST = 535,\n MARK_INBOX_DELETED_RESPONSE = 536,\n\n GET_ACH_CATEGORIES_REQUEST = 537,\n GET_ACH_CATEGORIES_RESPONSE = 538,\n\n GET_BONUSES_REQUEST = 600,\n GET_BONUSES_RESPONSE = 601,\n CLAIM_BONUS_REQUEST = 602,\n CLAIM_BONUS_RESPONSE = 603,\n\n SAW_GET_SPINS_REQUEST = 700,\n SAW_GET_SPINS_RESPONSE = 701,\n SAW_DO_SPIN_REQUEST = 702,\n SAW_DO_SPIN_RESPONSE = 703,\n SAW_AKNOWLEDGE_REQUEST = 704,\n SAW_AKNOWLEDGE_RESPONSE = 705,\n SAW_SPINS_COUNT_PUSH = 706,\n SAW_SHOW_SPIN_PUSH = 707,\n\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n CLIENT_DEBUG_REQUEST = 77777,\n\n \n\n UNSUPPORTED_COMMAND = 99999,\n}","\n\n\nclass IntUtils {\n\n public static uuid(): string {\n let a: any;\n let b: any;\n for (b = a = \"\"; a++ < 36; b += a * 51 & 52 ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16) : \"-\") {}\n return b;\n } \n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n } \n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n } \n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (IntUtils.isNotNull(value)) {\n return value.replace(new RegExp(IntUtils.escapeRegExp(regex), \"g\"), replacement?.toString());\n }\n return value;\n } \n\n public static escapeRegExp(v: string): string {\n if (IntUtils.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static JsonOrText = (str: string): any => {\n if (str && str.includes && (str.includes('{') || str.includes('['))) {\n try {\n return JSON.parse(str)\n } catch (e) {\n return str;\n }\n }\n return str;\n }\n \n // public static wsTimeToEpoch = (time: string): number => {\n // if (time) {\n // return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n // } else {\n // return null\n // }\n // } \n\n}\n\n\n\nexport { IntUtils }","/** @hidden */\nexport enum SAWBuyInType {\n Free = 1,\n Points = 2,\n Spins = 3\n}\n\nexport enum SAWBuyInTypeName {\n Free = 'free',\n Points = 'points',\n Spins = 'spins',\n Unknown = 'unknown'\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n return {\n [SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n [SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n [SAWBuyInType.Spins]: SAWBuyInTypeName.Spins\n }[type] || SAWBuyInTypeName.Unknown;\n}","import { SAWBuyInType } from \"./SAWBuyInType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\n\nclass SAWUtils {\n\n public static canPlay = (t: SAWTemplate, pointsBalance: number): boolean => {\n if (t === null || t === undefined) {\n return false;\n }\n \n switch (t.saw_buyin_type_id) {\n case SAWBuyInType.Free: {\n return true;\n }\n case SAWBuyInType.Spins: {\n return t.spin_count !== null && t.spin_count > 0\n }\n case SAWBuyInType.Points: {\n return t.buyin_cost_points <= pointsBalance;\n }\n default: {\n console.error(\"MiniGamesUtils.canPlay: Unknwon SAW buyin type \" + t.saw_buyin_type_id);\n return false;\n }\n }\n }\n \n}\n\nexport { SAWUtils }","export enum SAWAcknowledgeType {\n\n Silent = 1,\n QuickMessage = 2,\n FullMessage = 3\n}\n","\nexport enum SAWAskForUsername {\n NOASK = \"no-ask\",\n ONSUMBIT = \"on-submit\"\n}","/** @hidden */\n\nexport enum SAWGameType {\n SpinAWheel = 1,\n ScratchCard = 2,\n MatchX = 3,\n GiftBox = 4\n}\n\nexport enum SAWGameTypeName {\n SpinAWheel = \"wheel\",\n ScratchCard = \"scratch\",\n MatchX = \"matchx\",\n GiftBox = \"giftbox\",\n Unknown = \"unknown\"\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n return {\n [SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n [SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n [SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n [SAWGameType.GiftBox]: SAWGameTypeName.GiftBox\n }[type] || SAWGameTypeName.Unknown;\n}\n","/** @hidden */\nexport enum SAWPrizeType {\n\n NO_PRIZE = 1,\n POINTS = 2,\n BONUS = 3,\n MANUAL = 4,\n SPIN = 5,\n JACKPOT = 6\n}\n\nexport enum MiniGamePrizeTypeName {\n NO_PRIZE = 'no-prize',\n POINTS = 'points',\n BONUS = 'bonus',\n MANUAL = 'manual',\n SPIN = 'spin',\n JACKPOT = 'jackpot',\n UNKNOWN = \"unknown\"\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n return {\n [SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n [SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n [SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n [SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n [SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n [SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT, \n }[type] || MiniGamePrizeTypeName.UNKNOWN;\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { TMiniGamePrize, TMiniGameTemplate } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"./../Base/ProtocolResponse\";\nimport { SAWBuyInTypeNamed } from \"./SAWBuyInType\";\nimport { SAWGameTypeNamed } from \"./SAWGameType\";\nimport { MiniGamePrizeTypeName, MiniGamePrizeTypeNamed } from \"./SAWPrizeType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\nimport { SAWUtils } from \"./SAWUtils\";\n\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\n templates: SAWTemplate[];\n}\n\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => { \n \n \n return items.map( r => {\n\n const x: TMiniGameTemplate = {\n \n id: r.saw_template_id,\n name: r.saw_template_ui_definition.name,\n description: r.saw_template_ui_definition.description,\n thumbnail: \n r.saw_skin_ui_definition?.skin_folder\n ? r.saw_skin_ui_definition?.skin_folder + '/ico.png'\n : `https://libs.smartico.ai/gf/images/saw/${r.saw_skin_key}/ico.png`\n ,\n over_limit_message: r.saw_template_ui_definition.over_limit_message,\n no_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n jackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n saw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n saw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n buyin_cost_points: r.buyin_cost_points,\n jackpot_add_on_attempt: r.jackpot_add_on_attempt,\n jackpot_current: r.jackpot_current,\n spin_count: r.spin_count,\n promo_image: r.saw_template_ui_definition.promo_image,\n promo_text: r.saw_template_ui_definition.promo_text,\n custom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n\n next_available_spin_ts: r.next_available_spin_ts,\n\n prizes: r.prizes.map( p => {\n const y: TMiniGamePrize = {\n id: p.saw_prize_id,\n name: p.saw_prize_ui_definition.name,\n prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n prize_value: p.prize_value,\n font_size: p.saw_prize_ui_definition.font_size,\n icon: p.saw_prize_ui_definition.icon,\n position: p.saw_prize_ui_definition.position,\n aknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n acknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n acknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n }\n return y;\n })\n };\n return x;\n });\n}\n\n","\n/*\n* Possible error codes for the mini-games attempts\n*/\nexport enum SAWSpinErrorCode {\n /** No error */\n SAW_OK = 0,\n /** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n SAW_NO_SPINS = 40001,\n /** The are no prizes left to play the game */\n SAW_PRIZE_POOL_EMPTY = 40002,\n /** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n SAW_NOT_ENOUGH_POINTS = 40003,\n /** User reached max number of game attempts defined in the BackOffice */\n SAW_FAILED_MAX_SPINS_REACHED = 40004,\n /** Special code for the 'visitor' mode */\n SAW_VISITOR_STOP_SPIN_REQUEST = -40001 \n}","export enum SAWWinSoundType {\n\n Disappointing = 1,\n Positive = 2,\n HighlyPositive = 3,\n NoSound = 4\n}\n\nexport const SAWWinSoundFiles = {\n [SAWWinSoundType.NoSound]: null,\n [SAWWinSoundType.Disappointing]: \"saw-disappointed.m4a\",\n [SAWWinSoundType.Positive]: \"saw-positive.m4a\",\n [SAWWinSoundType.HighlyPositive]: \"saw-highly-positive.m4a\",\n}","\nclass NodeCache {\n\n private static ttlChecker: NodeJS.Timeout;\n\n private static cache: { [key: string] : any } = {};\n\n constructor() {\n if (NodeCache.ttlChecker === undefined) {\n NodeCache.ttlChecker = setInterval(() => {\n const now = new Date().getTime();\n for (const key in NodeCache.cache) {\n if (NodeCache.cache.hasOwnProperty(key)) {\n const o = NodeCache.cache[key];\n if (o.ttl < now) {\n delete NodeCache.cache[key];\n }\n }\n }\n }, 1000);\n }\n }\n\n public get(key: string): any {\n const o = NodeCache.cache[key];\n if (o !== undefined && o.ttl > new Date().getTime()) {\n return o.value;\n }\n }\n\n public set(key: string, value: any, ttlSeconds: number = 60) {\n NodeCache.cache[key] = {\n value,\n ttl: new Date().getTime() + ttlSeconds * 1000\n }\n }\n\n public flushAll() {\n NodeCache.cache = {};\n }\n\n}\n\n\nexport { NodeCache }","import { NodeCache } from \"./NodeCache\";\n\n\nexport enum ECacheContext {\n Translations,\n LabelInfo,\n WSAPI,\n}\n\nconst WITH_REF_CACHE = [\n ECacheContext.Translations\n];\n\nexport class OCache {\n\n private static cache: { [key: string]: NodeCache } = {};\n\n private static init(cacheContext: ECacheContext) {\n if (this.cache[cacheContext] === undefined) {\n this.cache[cacheContext] = new NodeCache();\n }\n }\n\n public static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n return this.cache[cacheContext].get(key);\n }\n\n public static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n this.cache[cacheContext].set(key, o, ttlSeconds);\n }\n\n public static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n if (ttlSeconds <= 0) {\n return await f();\n } else {\n let o: T = OCache.get(oKey, cacheContext);\n\n if (o === undefined) {\n o = await f();\n OCache.set(oKey, o, cacheContext, ttlSeconds);\n }\n \n return o;\n }\n }\n\n public static async clear(cacheContext: ECacheContext) {\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].flushAll();\n }\n }\n}\n","export enum ActivityTypeLimited {\n\n DoNothing = 8,\n Points = 12,\n GiveMission = 14,\n StartAnotherCampaign = 15,\n MiniGameAttempt = 16,\n DeductPoints = 21,\n ResetPoints = 22,\n Popup = 30,\n Inbox = 31,\n Slack = 70,\n Email_To_Customer_Support = 80,\n Email_To_Risk_Operator = 90,\n Bonus = 100,\n WebHook = 200,\n TagCustomer = 504,\n UnTagCustomer = 505,\n}","\nclass CoreUtils {\n\n public static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n if (avatarDomain && avatar_id !== null && avatar_id !== undefined && !(avatar_id.startsWith && avatar_id.startsWith('http'))) {\n if (avatarDomain.endsWith('/')) {\n return avatarDomain.slice(0, -1) + '/avatar/' + avatar_id\n } else {\n return avatarDomain + '/avatar/' + avatar_id\n }\n } else {\n return avatar_id\n }\n }\n}\n\nexport { CoreUtils }","\nexport enum PublicLabelSettings {\n FCM_SENDER_ID = \"FCM_SENDER_ID\",\n PUBLIC_API_URL = \"PUBLIC_API_URL\",\n FCM_SW_URL = \"FCM_SW_URL\",\n RECORDING_ENABLED_FOR_ALL_USERS = \"RECORDING_ENABLED_FOR_ALL_USERS\",\n JS_INJECTION = \"JS_INJECTION\",\n GAMIFICATION_UI_MAIN = \"GAMIFICATION_UI_MAIN\",\n GAMIFICATION_UI_WIDGET = \"GAMIFICATION_UI_WIDGET\",\n GAMIFICATION_UI_MINI_GAME = \"GAMIFICATION_UI_MINI_GAME\",\n GAMIFICATION_UI_SETTINGS = \"GAMIFICATION_UI_SETTINGS\",\n GAMIFICATION_UI_MAIN_TEST = \"GAMIFICATION_UI_MAIN_TEST\",\n GAMIFICATION_UI_WIDGET_TEST = \"GAMIFICATION_UI_WIDGET_TEST\",\n GAMIFICATION_UI_SETTINGS_TEST = \"GAMIFICATION_UI_SETTINGS_TEST\",\n FRONT_END_ALLOWED_LANGUAGES = \"FRONT_END_ALLOWED_LANGUAGES\",\n FRONT_END_ALLOW_DOMAINS = \"FRONT_END_ALLOW_DOMAINS\",\n DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = \"DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS\",\n SHADOW_LABEL_PUBLIC_KEY = \"SHADOW_LABEL_PUBLIC_KEY\",\n DYNAMIC_IMAGE_DOMAIN = \"DYNAMIC_IMAGE_DOMAIN\",\n \n GAMIFICATION_UI_LEVEL_ENABLED = \"GAMIFICATION_UI_LEVEL_ENABLED\",\n GAMIFICATION_UI_LEVEL_IMAGE_MOB = \"GAMIFICATION_UI_LEVEL_IMAGE_MOB\",\n GAMIFICATION_UI_LEVEL_IMAGE_DESK = \"GAMIFICATION_UI_LEVEL_IMAGE_DESK\",\n \n GAMIFICATION_LEVELS_LOGIC2 = \"GAMIFICATION_LEVELS_LOGIC2\",\n GAMIFICATION_LEVELS_LOGIC3 = \"GAMIFICATION_LEVELS_LOGIC2\",\n \n AVATAR_CUSTOM_IMAGE_MAX_ID = \"AVATAR_CUSTOM_IMAGE_MAX_ID\",\n AVATAR_CUSTOM_IMAGE_FOLDER = \"AVATAR_CUSTOM_IMAGE_FOLDER\",\n \n GAMIFICATION_SHOW_POWERED_BY = \"GAMIFICATION_SHOW_POWERED_BY\",\n _system_leader_board_mask_username = \"_system_leader_board_mask_username\",\n\n INBOX_PUBLIC_CDN = \"INBOX_PUBLIC_CDN\",\n}\n","enum TranslationArea {\n\n Casino = 1,\n Gamification = 2,\n Trading = 3,\n Archived = 4,\n Affiliation = 5,\n RetentionGames = 6,\n AffIliateAdminNew = 7\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from \"src/WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { InboxMessage } from \"./InboxMessage\";\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\n log: InboxMessage[];\n}\n\nexport const InboxMessagesTransform = ((items: InboxMessage[]): TInboxMessage[] => {\n\n return items.map(item => {\n const x: TInboxMessage = {\n sent_date: item.createDate,\n message_guid: item.engagement_uid,\n read: item.is_read,\n favorite: item.is_starred,\n }\n return x;\n });\n})\n","import { TInboxMessageBody } from \"src/WSAPI/WSAPITypes\";\nimport { InboxMessageType } from \"./InboxMessageType\";\n\nexport interface InboxMessageBody {\n action: string;\n body: string;\n type: InboxMessageType;\n image: string;\n title: string;\n html_body: string; \n additional_buttons?: { inbox_cta_text: string, action: string }[];\n}\n\nexport interface InboxMessage {\n\n createDate: string;\n body: InboxMessageBody;\n engagement_uid: string;\n is_read: boolean;\n is_starred: boolean;\n is_deleted: boolean;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n \n const x: TInboxMessageBody = {\n action: item.action,\n icon: item.image,\n title: item.title,\n preview_body: item.body,\n }\n\n if (item.action === 'dp:inbox') {\n if (item.additional_buttons && item.additional_buttons.length) {\n x.buttons = item.additional_buttons.map(b => ({\n action: b.action,\n text: b.inbox_cta_text\n }))\n }\n\n x.html_body = item?.html_body || null;\n }\n\n return x;\n}\n","export enum InboxMessageType {\n Custom = 0,\n MissionCompleted = 1,\n MissionUnlocked = 2,\n LeaderboardWon = 3,\n LevelChanged = 4,\n BonusGiven = 5,\n PointsAdded = 6,\n PointsUsed = 7,\n PersonalMessage = 8\n}\n\n// keep in sync with BO enum\n","export enum BuyStoreItemErrorCode {\n FAILED_TO_BUY_SHOP_ITEM = 121,\n SHOP_NO_BALANCE = 11000,\n SHOP_WRONG_LABEL = 11001,\n SHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. Shoudnt happen\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n SHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n SHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n SHOP_FAILED_POOL_EMPTY = 11009,\n}","import { TStoreCategory } from \"../WSAPI/WSAPITypes\";\nimport { StoreCategoryPublicMeta } from \"./StoreCategoryPublicMeta\";\n\nexport interface StoreCategory {\n\n id?: number;\n publicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => { \n return items.map( r => {\n const x: TStoreCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","export enum StoreItemType {\n Bonus = 1,\n Manual = 2\n}\n\n","import { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItemPublicMeta } from \"./StoreItemPublicMeta\";\nimport { StoreItemType } from \"./StoreItemType\";\n\nexport interface StoreItem {\n id: number;\n itemTypeId: StoreItemType;\n itemPublicMeta: StoreItemPublicMeta;\n categoryIds?: number[];\n canBuy?: boolean;\n shopPool: number;\n}\n\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.custom_label_tag || r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority,\n related_item_ids: r.itemPublicMeta.related_items,\n\n type: {\n [StoreItemType.Bonus]: 'bonus',\n [StoreItemType.Manual]: 'manual'\n }[r.itemTypeId] as 'bonus' | 'manual',\n\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n }\n return x;\n });\n\n}","export enum AchievementStatus {\n\n Draft = 1,\n AvailableUnlocked = 2,\n AvailableLocked = 3,\n Archived = 4,\n FeaturedManually = 5,\n FeaturedAI = 6\n}\n","export enum AchievementTaskType {\n CompleteAchievement = 1,\n UnlockAchievement = 2\n}\n","export enum AchievementType {\n\n Mission = 1,\n Badge = 2\n}\n","\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\nimport { IntUtils } from \"../IntUtils\";\nimport { TMissionOrBadge } from \"../WSAPI/WSAPITypes\";\nimport { AchCategory } from \"./AchievementCategory\";\nimport { AchievementPublicMeta } from \"./AchievementPublicMeta\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { AchievementTaskType } from \"./AchievementTaskType\";\nimport { AchievementType } from \"./AchievementType\";\nimport { ScheduledMissionType } from \"./ScheduledMissionType\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport interface UserAchievement {\n\n ach_id?: number;\n ach_type_id?: AchievementType;\n ach_public_meta?: AchievementPublicMeta;\n isCompleted?: boolean;\n isLocked?: boolean;\n requiresOptin?: boolean;\n isOptedIn?: boolean;\n start_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n start_date_ts?: number; \n time_limit_ms?: number;\n progress?: number;\n complete_date?: string;\n unlock_date?: string;\n milliseconds_till_available?: number;\n completed_tasks?: number;\n achievementTasks?: UserAchievementTask[];\n ach_status_id?: AchievementStatus;\n scheduledMissionType?: ScheduledMissionType;\n related_games?: AchRelatedGame[];\n active_from_ts?: number; // indicates when 'scheduled' mission is active from,\n ach_categories?: number[];\n}\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n\n return items.filter( r => r.ach_id >= 1).map( r => (\n {\n id: r.ach_id,\n name: r.ach_public_meta.name,\n description: r.ach_public_meta.description,\n unlock_mission_description: r.ach_public_meta.unlock_mission_description,\n image: r.ach_public_meta.image_url,\n is_completed: r.isCompleted,\n is_locked: r.isLocked,\n is_requires_optin: r.requiresOptin,\n is_opted_in: r.isOptedIn,\n time_limit_ms: r.time_limit_ms,\n dt_start: r.start_date_ts,\n reward: r.ach_public_meta.reward,\n progress: r.progress,\n type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n cta_action: r.ach_public_meta.cta_action,\n cta_text: r.ach_public_meta.cta_text,\n custom_section_id: r.ach_public_meta.custom_section_id,\n only_in_custom_section: r.ach_public_meta.only_in_custom_section,\n custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n tasks: (r.achievementTasks || [])\n .filter( t => t.task_type_id === AchievementTaskType.CompleteAchievement)\n .map( t => ({\n id: t.task_id,\n name: t.task_public_meta?.name,\n points_reward: t.points_reward,\n is_completed: t.isCompleted,\n progress: t.userProgress,\n })),\n related_games: (r.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n category_ids: r.ach_categories ?? [],\n }\n ));\n} \n\n","export enum ScheduledMissionType {\n\n Future = 1,\n Past = 2,\n Present = 3,\n}","import { TAchCategory } from \"../WSAPI/WSAPITypes\";\nimport { AchCategoryPublicMeta } from \"./AchCategoryPublicMeta\";\n\nexport interface AchCategory {\n\n id?: number;\n publicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => { \n return items.map( r => {\n const x: TAchCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","/** @hidden */\nexport enum TournamentRegistrationType {\n\n AUTO = 1,\n OPT_IN = 2,\n BUY_IN_POINTS = 3,\n MANUAL_APPROVAL = 4,\n REQUIRES_QUALIFICATION = 5\n // BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName = 'AUTO' | 'OPT_IN' | 'BUY_IN_POINTS' | 'MANUAL_APPROVAL' | 'REQUIRES_QUALIFICATION' | 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n return ({\n [TournamentRegistrationType.AUTO]: 'AUTO',\n [TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n [TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n [TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n [TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n }[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n}","/** @hidden */\nexport enum TournamentRegistrationStatus {\n\n NOT_REGISTERED = 0,\n REGISTERED = 1,\n FINISHED = 2,\n PENDING = 3,\n CANCELLED = 4,\n REGISTERED_PENDING_QUALIFICATION = 5,\n QUALIFIED_PENDING_REGISTRATION = 6\n}\n\nexport enum TournamentRegistrationStatusName {\n NOT_REGISTERED = 'NOT_REGISTERED',\n REGISTERED = 'REGISTERED',\n FINISHED = 'FINISHED',\n PENDING = 'PENDING',\n CANCELLED = 'CANCELLED',\n REGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n QUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n UNKNOWN = \"UNKNOWN\"\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n return ({\n [TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n [TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n [TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n [TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n [TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]: TournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n [TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n [TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]: TournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION\n }[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n} \n\n","import {TournamentRegistrationType, TournamentRegistrationTypeGetName} from \"./TournamentRegistrationType\";\nimport {TournamentInstanceStatus} from \"./TournamentInstanceStatus\";\nimport { TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed } from \"./TournamentRegistrationStatus\";\nimport { TournamentType } from \"./TournamentType\";\nimport { TournamentPublicMeta } from \"./TournamentPublicMeta\";\nimport { TTournament } from \"../WSAPI/WSAPITypes\";\nimport { TournamentPlayer, TournamentPrize, TournamentUtils } from \".\";\nimport { IntUtils } from \"../IntUtils\";\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\n\nexport interface Tournament {\n\n /** ID of tournament template */\n tournamentId?: number;\n /** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n tournamentInstanceId?: number;\n /** Type of the tournament. For now only SCHEDULED is support */\n tournamentType?: TournamentType;\n /** Meta information about tournament that should be used to build UI */\n publicMeta?: TournamentPublicMeta;\n /** Cost of registration in the tournament in gamification points */\n buyInAmount?: number;\n /** Not in use */\n prizePool?: number;\n /** The time when tournament is going to start */\n startTime?: string;\n /** The time when tournament is going to finish */\n endTime?: string;\n /** The time when tournament is going to start, epoch */\n startTimeTs?: number;\n /** The time when tournament is going to finish, epoch */\n endTimeTs?: number; \n /** Number of users registered in the tournament */\n registrationCount?: number;\n /** Not in use */\n totalCount?: number;\n /** Type of registration in the tournament */\n registrationType?: TournamentRegistrationType;\n /** Status of registration in the tournament for current user */\n tournamentRegistrationStatus?: TournamentRegistrationStatus;\n /** Status of tournament instance */\n tournamentInstanceStatus?: TournamentInstanceStatus;\n /** flag indicating if current user is registered in the tournament */\n isUserRegistered?: boolean;\n /** Indicator if tournament allows later registration, when tournament is already started */\n allowLateRegistration?: boolean;\n /** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n playersMinCount?: number;\n /** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n playersMaxCount?: number;\n /** Tournament duration in millisecnnds */\n durationMs?: number;\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n /** Information about current user */\n tournamentPlayer?: TournamentPlayer\n\n /** List of casino games (or other types of entities) related to the tournament */\n related_games?: AchRelatedGame[];\n}\n\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => { \n\n return items.filter(r => r.tournamentId >= 1).map(r => {\n const x: TTournament = {\n instance_id: r.tournamentInstanceId,\n tournament_id: r.tournamentId,\n name: r.publicMeta.name,\n description: r.publicMeta.description,\n segment_dont_match_message: r.publicMeta.segment_dont_match_message,\n image1: r.publicMeta.image_url,\n image2: r.publicMeta.image_url2,\n prize_pool_short: r.publicMeta.prize_pool_short,\n custom_price_text: r.publicMeta.custom_price_text,\n custom_section_id: r.publicMeta.custom_section_id,\n custom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n is_featured: r.publicMeta.featured,\n ribbon: r.publicMeta.label_tag,\n priority: r.publicMeta.position,\n \n\n start_time: r.startTimeTs,\n end_time: r.endTimeTs,\n registration_count: r.registrationCount,\n is_user_registered: r.isUserRegistered,\n players_min_count: r.playersMinCount,\n players_max_count: r.playersMaxCount,\n registration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n registration_type: TournamentRegistrationTypeGetName(r.registrationType),\n registration_cost_points: r.buyInAmount,\n duration_ms: r.durationMs,\n\n is_active: TournamentUtils.isActive(r),\n is_can_register: TournamentUtils.isCanRegister(r),\n is_cancelled: TournamentUtils.isCancelled(r),\n is_finished: TournamentUtils.isFinished(r),\n is_in_progress: TournamentUtils.isInProgress(r),\n is_upcoming: TournamentUtils.isUpcoming(r),\n\n }\n\n if (r.prizeStructure) {\n x.prizes = r.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (r.tournamentPlayer) {\n x.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true)\n }\n\n return x;\n });\n\n\n}\n\n","export enum TournamentInstanceStatus {\n\n PUBLISHED = 1,\n REGISTER = 2,\n STARTED = 3,\n FINISHED = 4,\n CANCELLED = 5,\n FAILED = 6,\n FINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n return {\n [TournamentInstanceStatus.PUBLISHED]: \"PUBLISHED\",\n [TournamentInstanceStatus.REGISTER]: \"REGISTER\",\n [TournamentInstanceStatus.STARTED]: \"STARTED\",\n [TournamentInstanceStatus.FINISHED]: \"FINISHED\",\n [TournamentInstanceStatus.CANCELLED]: \"CANCELLED\",\n [TournamentInstanceStatus.FAILED]: \"FAILED\",\n [TournamentInstanceStatus.FINALIZING]: \"FINALIZING\",\n }[s];\n};","import { ActivityTypeLimited } from \"src/Core\";\nimport { Tournament } from \"./Tournament\";\nimport { TournamentInstanceStatus } from \"./TournamentInstanceStatus\";\nimport { TournamentPlayer } from \"./TournamentPlayer\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TournamentRegistrationStatus } from \"./TournamentRegistrationStatus\";\nimport { TournamentRegistrationType } from \"./TournamentRegistrationType\";\n\nconst tournamentPrizeTypeToPrizeName = (type: ActivityTypeLimited) => {\n return {\n [ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n [ActivityTypeLimited.Points]: 'POINTS_ADD',\n [ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n [ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n [ActivityTypeLimited.MiniGameAttempt]: \"MINI_GAME_ATTEMPT\",\n [ActivityTypeLimited.Bonus]: 'BONUS',\n }[type]\n}\n\nexport class TournamentUtils {\n\n public static isCanRegister = (tournament: Tournament): boolean => {\n if (tournament) {\n if (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n return true;\n }\n return !tournament.isUserRegistered &&\n (tournament.playersMaxCount !== tournament.registrationCount || tournament.playersMaxCount === null || tournament.playersMaxCount === 0) &&\n tournament.registrationType !== TournamentRegistrationType.AUTO &&\n (\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n (tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration)\n );\n }\n return false;\n }\n\n\n public static isInProgress = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n }\n return false;\n }\n\n public static isActive = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n }\n return false;\n }\n\n public static isFinished = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING;\n }\n return false;\n }\n\n public static isCancelled = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n }\n return false;\n }\n\n public static isUpcoming = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED || tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER;\n }\n return false;\n }\n\n public static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n if (player) {\n const playerTransformed = {\n public_username: player.userAltName,\n avatar_url: player.avatar_url,\n position: player.position,\n scores: player.scores,\n is_me: player.isMe,\n }\n \n if (isMe) {\n delete playerTransformed.is_me;\n }\n\n return playerTransformed;\n }\n\n return null;\n }\n\n public static getPrizeTransformed = (prize: TournamentPrize) => {\n if (prize) {\n return ({...prize, type: tournamentPrizeTypeToPrizeName(prize.type)})\n }\n\n return null;\n }\n\n}\n","import {Tournament, TournamentItemsTransform} from \"./Tournament\";\nimport {TournamentPlayer} from \"./TournamentPlayer\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TTournamentDetailed } from \"../WSAPI/WSAPITypes\";\nimport { ActivityTypeLimited } from \"src/Core\";\nimport { TournamentUtils } from \"./TournamentUtils\";\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\n /** tournament info */\n tournamentInfo: {\n /** id of label, not in use */\n labelId: number;\n tournamentLobbyInfo: Tournament;\n /** list of registered users */\n players: TournamentPlayer[];\n },\n /** information about current user position */\n userPosition: TournamentPlayer,\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n const response: TTournamentDetailed = {\n ...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n related_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n players: t.tournamentInfo.players.map( p => TournamentUtils.getPlayerTransformed(p)),\n };\n\n if (t.prizeStructure) {\n response.prizes = t.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (t.userPosition) {\n response.me = TournamentUtils.getPlayerTransformed(t.userPosition, true)\n }\n\n return response;\n}\n\n\n","export enum TournamentRegistrationError {\n NO_ERROR = 0,\n TOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n TOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n TOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n TOURNAMENT_ALREADY_REGISTERED = 30004,\n TOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n TOURNAMENT_USER_NOT_REGISTERED = 30006,\n TOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n TOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\n SCHEDULED = 1,\n SNG = 2,\n TEST = 3,\n}\n","import { IntUtils } from \"src/IntUtils\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TLevel } from \"../WSAPI/WSAPITypes\";\nimport { Level } from \"./Level\";\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\n levels: Level[];\n}\n\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n \n return levels?.levels.map((l => ({\n id: l.level_id,\n name: l.level_public_meta.name,\n description: l.level_public_meta.description,\n image: l.level_public_meta.image_url,\n required_points: l.required_points,\n visibility_points: parseInt(l.level_public_meta.visibility_points as any),\n required_level_counter_1: l.required_level_counter_1,\n required_level_counter_2: l.required_level_counter_2,\n custom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n })));\n}","import { ClassId } from \"../Base/ClassId\";\nimport { CoreUtils } from \"../Core\";\nimport { MiniGamePrizeTypeName, SAWDoSpinResponse, SAWSpinErrorCode, SAWSpinsCountPush } from \"../MiniGames\";\nimport { ECacheContext, OCache } from \"../OCache\";\nimport { SmarticoAPI } from \"../SmarticoAPI\";\nimport { InboxMarkMessageAction, TAchCategory, TBuyStoreItemResult, TGetTranslations, TInboxMessage, TInboxMessageBody, TLevel, TMiniGamePlayResult, TMiniGameTemplate, TMissionOptInResult, TMissionOrBadge, TStoreCategory, TStoreItem, TTournament, TTournamentDetailed, TTournamentRegistrationResult, TUserProfile } from \"./WSAPITypes\";\n \n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n /** @hidden */\nenum onUpdateContextKey {\n Saw = 'saw',\n Missions = 'missions',\n TournamentList = 'tournamentList',\n InboxMessages = 'inboxMessages',\n}\n\n\n/** @group General API */\nexport class WSAPI {\n\n private onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n\n /** @private */\n constructor(private api: SmarticoAPI) {\n const on = this.api.tracker.on;\n on(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n on(ClassId.SAW_SHOW_SPIN_PUSH, () => this.updateOnAddSpin());\n on(ClassId.SAW_DO_SPIN_RESPONSE, (data: SAWDoSpinResponse) => on(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => this.updateOnPrizeWin(data)));\n on(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissionsOnOptIn());\n on(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournamentsOnRegistration());\n on(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n on(ClassId.LOGOUT_RESPONSE, () => OCache.clear(ECacheContext.WSAPI));\n on(ClassId.IDENTIFY_RESPONSE, () => OCache.clear(ECacheContext.WSAPI));\n }\n\n /** Returns information about current user */\n public getUserProfile(): TUserProfile {\n if (this.api.tracker) {\n const o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n return o;\n } else {\n throw new Error('Tracker is not initialized, cannot getUserProfile');\n }\n }\n\n /** Returns all the levels available the current user */\n public async getLevels(): Promise<TLevel[]> {\n return this.api.levelsGetT(null);\n }\n\n /** Returns all the missions available the current user.\n * The returned missions is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it. */\n /**\n * @param params\n */\n public async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Missions, ECacheContext.WSAPI, () => this.api.missionsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the badges available the current user */\n public async getBadges(): Promise<TMissionOrBadge[]> {\n return this.api.badgetsGetItemsT(null);\n }\n\n /** Returns all the store items available the current user */\n public async getStoreItems(): Promise<TStoreItem[]> {\n return this.api.storeGetItemsT(null);\n }\n\n /** Buy the specific shop item by item_id. Returns the err_code.*/\n public async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n const r = await this.api.buyStoreItem(null, item_id);\n\n const o: TBuyStoreItemResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns store categories */\n public async getStoreCategories(): Promise<TStoreCategory[]> {\n return this.api.storeGetCategoriesT(null);\n }\n\n /** Returns ach categories */\n public async getAchCategories(): Promise<TAchCategory[]> {\n return this.api.achGetCategoriesT(null);\n }\n\n /** Returns the list of mini-games available for user \n * The returned list of mini-games is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMiniGames with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on available spin count change, if mini-game has increasing jackpot per spin or wined prize is spin/jackpot and if max count of the available user spin equal one, also if the spins were issued to the user manually in the BO. Updated templates will be passed to onUpdate callback. */\n /**\n /**\n * @param params\n */\n public async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<TMiniGameTemplate[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n }\n\n /** Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code */\n public async playMiniGame(template_id: number): Promise<TMiniGamePlayResult> {\n const r = await this.api.sawSpinRequest(null, template_id);\n this.api.doAcknowledgeRequest(null, r.request_id)\n\n const o: TMiniGamePlayResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n prize_id: r.saw_prize_id,\n }\n\n return o;\n }\n\n /** Requests an opt-in for the specified mission_id. Returns the err_code. */\n public async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult>{\n const r = await this.api.missionOptIn(null, mission_id);\n\n const o: TMissionOptInResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns all the active instances of tournaments \n * The returned list is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getTournamentsList with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.*/\n /**\n * @param params\n */\n public async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.TournamentList, ECacheContext.WSAPI, () => this.api.tournamentsGetLobbyT(null), CACHE_DATA_SEC);\n }\n\n /** Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players */\n public async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n return this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n }\n\n /** Requests registration for the specified tournament instance. Returns the err_code. */\n public async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult>{\n const r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n const o: TTournamentRegistrationResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched. \n * The maximum number of messages per request is limited to 20. An indicator \"onlyFavorite\" can be passed to get only messages marked as favorites. \n * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n * This functions return list of messages without the body of the message. \n * To get the body of the message you need to call getInboxMessageBody function and pass the message guid contained in each message of this request.\n * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n * The \"onUpdate\" callback will be triggered when the user receives a new message. It will provide an updated list of messages, ranging from 0 to 20, to the onUpdate callback function. */\n /**\n * @param params\n */\n public async getInboxMessages({ from, to, onlyFavorite, onUpdate }: { from?: number, to?: number, onlyFavorite?: boolean, onUpdate?: (data: TInboxMessage[]) => void } = {}): Promise<TInboxMessage[]> { \n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n }\n\n return await this.api.getInboxMessagesT(null, from, to, onlyFavorite);\n }\n\n /** Returns the message body of the specified message guid. */\n public async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n return await this.api.getInboxMessageBodyT(messageGuid);\n }\n\n /** Requests to mark inbox message with specified guid as read */\n public async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.markInboxMessageRead(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to mark all inbox messages as read */\n public async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n const r = await this.api.markAllInboxMessageRead(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove. */\n public async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n const r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to delete inbox message */\n public async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteInboxMessage(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to delete all inbox messages */\n public async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteAllInboxMessages(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests translations for the given language. Returns the object including translation key/translation value pairs. All possible translation keys defined in the back office. */\n public async getTranslations(lang_code: string): Promise<TGetTranslations> {\n const r = await this.api.getTranslationsT(null, lang_code, []);\n\n return {\n translations: r.translations\n }\n }\n\n private async updateOnSpin(data: SAWSpinsCountPush) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const index = templates.findIndex(t => t.id === data.saw_template_id);\n templates[index].spin_count = data.spin_count;\n this.updateEntity(onUpdateContextKey.Saw, templates)\n }\n\n private async updateOnAddSpin() {\n const payload = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, payload)\n }\n\n private async updateOnPrizeWin(data: SAWDoSpinResponse) {\n if (data.errCode === SAWSpinErrorCode.SAW_OK) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const template: TMiniGameTemplate = templates.find(t => t.prizes.find(p => p.id === data.saw_prize_id));\n const prizeType = template.prizes.find(p => p.id === data.saw_prize_id)?.prize_type;\n\n if (\n template.jackpot_add_on_attempt ||\n template.spin_count === 1 ||\n prizeType === MiniGamePrizeTypeName.JACKPOT ||\n prizeType === MiniGamePrizeTypeName.SPIN\n ) {\n const updatedTemplates = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, updatedTemplates)\n }\n }\n }\n\n private async updateMissionsOnOptIn() {\n const payload = await this.api.missionsGetItemsT(null);\n this.updateEntity(onUpdateContextKey.Missions, payload)\n }\n\n private async updateTournamentsOnRegistration() {\n const payload = await this.api.tournamentsGetLobbyT(null);\n this.updateEntity(onUpdateContextKey.TournamentList, payload)\n }\n\n private async updateInboxMessages() {\n const payload = await this.api.getInboxMessagesT(null);\n this.updateEntity(onUpdateContextKey.InboxMessages, payload)\n }\n\n private async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n OCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n const onUpdate = this.onUpdateCallback.get(contextKey);\n if (onUpdate) {\n onUpdate(payload);\n }\n }\n}","import { ClassId } from \"./Base/ClassId\";\nimport { ProtocolRequest } from './Base/ProtocolRequest';\nimport { ProtocolResponse } from './Base/ProtocolResponse';\nimport { SAWGetTemplatesResponse } from './MiniGames/SAWGetTemplatesResponse';\nimport { SAWGetTemplatesRequest } from './MiniGames/SAWGetTemplatesRequest';\nimport { IntUtils } from './IntUtils';\nimport { ILogger } from './ILogger';\nimport { SAWDoAknowledgeRequest, SAWDoAknowledgeResponse, SAWDoSpinRequest, SAWDoSpinResponse, SAWSpinErrorCode, SAWTemplatesTransform } from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport { CoreUtils, GetTranslationsRequest, GetTranslationsResponse, PublicLabelSettings, ResponseIdentify, TranslationArea } from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport { GetInboxMessagesRequest, GetInboxMessagesResponse, InboxMessageBody, InboxMessageBodyTransform, InboxMessagesTransform, MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse, MarkInboxMessageReadRequest, MarkInboxMessageReadResponse, MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse } from './Inbox';\nimport { BuyStoreItemRequest, BuyStoreItemResponse, GetCategoriesStoreResponse, GetStoreItemsResponse, StoreCategoryTransform, StoreItemTransform } from './Store';\nimport { AchCategoryTransform, AchievementOptinRequest, AchievementOptinResponse, AchievementType, GetAchCategoriesResponse, GetAchievementMapRequest, GetAchievementMapResponse, UserAchievementTransform } from './Missions';\nimport { GetTournamentInfoRequest, GetTournamentInfoResponse, GetTournamentsRequest, GetTournamentsResponse, TournamentItemsTransform, TournamentRegisterRequest, TournamentRegisterResponse, tournamentInfoItemTransform } from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from \"./Leaderboard\";\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from \"./Level\";\nimport { WSAPI } from \"./WSAPI/WSAPI\";\nimport { TInboxMessage, TInboxMessageBody, TLevel, TMiniGameTemplate, TMissionOrBadge, TStoreCategory, TAchCategory, TStoreItem, TTournament, TTournamentDetailed } from \"./WSAPI/WSAPITypes\";\n\nconst PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';\nconst C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';\nconst AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';\nconst DEFAULT_LANG_EN = \"EN\";\n\ninterface Tracker {\n label_api_key: string;\n userPublicProps: any;\n on: (callBackKey: ClassId, func: (data: any) => void) => void;\n getLabelSetting: (key: PublicLabelSettings) => any;\n}\ninterface IOptions {\n logger?: ILogger;\n logCIDs?: ClassId[];\n logHTTPTiming?: boolean;\n tracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\n\nclass SmarticoAPI {\n\n private publicUrl: string;\n private wsUrl: string;\n private inboxCdnUrl: string;\n private partnerUrl: string;\n public avatarDomain: string;\n\n private logger: ILogger;\n private logCIDs: ClassId[];\n private logHTTPTiming: boolean;\n public tracker?: Tracker;\n\n public constructor(private label_api_key: string, private brand_api_key: string, private messageSender: MessageSender, options: IOptions = {}) {\n\n this.logger = options.logger || (console as any);\n\n if (this.logger.always === undefined) {\n this.logger.always = this.logger.info;\n }\n\n this.logCIDs = options.logCIDs || [];\n this.logHTTPTiming = options.logHTTPTiming || false;\n this.tracker = options.tracker;\n\n this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\n }\n\n public static getEnvDnsSuffix(label_api_key: string): string {\n\n let ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n \n if (ENV_ID === '1' || ENV_ID === '2') {\n ENV_ID = ''\n }\n return ENV_ID;\n }\n\n public static getEnvId(label_api_key: string): number {\n\n return label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n \n }\n\n public static getCleanLabelApiKey(label_api_key: string): string {\n return label_api_key.substring(0, 36);\n }\n\n public static getPublicUrl(label_api_key: string): string {\n return PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n }\n\n public static getPublicWsUrl(label_api_key: string): string {\n return C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n public static getAvatarUrl(label_api_key: string): string {\n return AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n private async send<T>(message: any, expectCID?: ClassId): Promise<T> {\n\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('REQ', message)\n }\n\n\n let result: any;\n \n try {\n const timeStart = new Date().getTime();\n result = await this.messageSender(message, this.publicUrl, expectCID);\n const timeEnd = new Date().getTime();\n\n if (this.logHTTPTiming) {\n this.logger.always('HTTP time, ms:' + (timeEnd - timeStart))\n }\n\n } catch (e) {\n this.logger.error(`Failed to make request to smartico channel. ${e.message}`, { url: this.publicUrl, request: message, error: e.message });\n throw(new Error(`Failed to make request to smartico channel. ${e.message}`));\n }\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('RES', result)\n }\n\n if (expectCID) {\n if (Array.isArray(result)) { \n for (const str of result as string[]) {\n const obj: ProtocolResponse = JSON.parse(str);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n }\n if (obj.cid === expectCID) {\n return obj as any;\n }\n }\n this.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, { request: message, response: result });\n } else {\n return result;\n } \n } else {\n if (Array.isArray(result)) { \n if (result.length === 1) {\n const obj = JSON.parse(result[0]);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n } \n return obj;\n } else {\n this.logger.error('Expected one response, but got array', { request: message, response: result });\n }\n }\n return result;\n }\n }\n\n private buildMessage<TRequest,TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\n const message: ProtocolRequest = {\n api_key: this.label_api_key,\n brand_key: this.brand_api_key,\n ext_user_id: user_ext_id,\n cid,\n uuid: IntUtils.uuid(),\n ts: new Date().getTime(),\n ...payload\n };\n\n if (message.ext_user_id === undefined || message.ext_user_id === null) {\n delete message.ext_user_id;\n }\n\n if (message.brand_key === undefined || message.brand_key === null) {\n delete message.brand_key;\n } \n\n return message as any\n }\n\n public async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n const eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n eventType,\n payload\n });\n\n const eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n return eventResponse;\n }\n\n public async coreGetTranslations(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n\n if (lang_code === undefined || lang_code === null || lang_code.trim && lang_code.trim() === '') {\n lang_code = DEFAULT_LANG_EN;\n } \n\n const response = await OCache.use<GetTranslationsResponse>(`${lang_code}-${this.label_api_key}-${this.brand_api_key}`, ECacheContext.Translations, async () => {\n\n const tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code: DEFAULT_LANG_EN,\n hash_code: 0,\n areas\n });\n\n const trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n if (lang_code !== DEFAULT_LANG_EN) {\n const trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code,\n hash_code: 0,\n areas\n }); \n\n const trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n \n Object.keys(trUser?.translations ?? {}).forEach( k => {\n trBase.translations[k] = trUser.translations[k];\n })\n }\n\n return trBase;\n\n }, cacheSec );\n\n return response;\n } \n\n public async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n \n return OCache.use<GetLabelInfoResponse>(`${this.label_api_key} - ${this.brand_api_key}`, ECacheContext.LabelInfo, async () => {\n\n const message = this.buildMessage<GetLabelInfoResponse, GetLabelInfoRequest>(user_ext_id, ClassId.INIT);\n\n return this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE)\n \n }, cacheSec);\n \n } \n\n public async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\n const message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n request_id: IntUtils.uuid() // AA: do we need request_id?\n });\n\n const r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n r.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n return r;\n } \n\n public async coreChangeUsername(user_ext_id: string, public_username_custom: string): Promise<{ public_username_custom: string }> {\n \n const message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n public_username_custom\n });\n \n return await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n }\n\n public async sawGetTemplates(user_ext_id: string, lang?: string, is_visitor_mode: boolean = false): Promise<SAWGetTemplatesResponse> {\n\n const message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(user_ext_id, ClassId.SAW_GET_SPINS_REQUEST, lang ? { force_language: lang, is_visitor_mode } : { is_visitor_mode });\n\n const response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE);\n\n if (response && response.templates) {\n response.templates.forEach(t => {\n \n if (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n t.saw_template_ui_definition.name = IntUtils.replaceAll(t.saw_template_ui_definition.name, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.description = IntUtils.replaceAll(t.saw_template_ui_definition.description, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.promo_text = IntUtils.replaceAll(t.saw_template_ui_definition.promo_text, '{{jackpot}}', jackpotValue);\n t.prizes.forEach(p => {\n p.saw_prize_ui_definition.name = IntUtils.replaceAll(p.saw_prize_ui_definition.name, '{{jackpot}}', jackpotValue);\n p.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(p.saw_prize_ui_definition.aknowledge_message, '{{jackpot}}', jackpotValue);\n })\n }\n });\n }\n\n return response;\n }\n\n public async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n return SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n }\n\n public async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse>{\n const message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(user_ext_id, ClassId.SAW_AKNOWLEDGE_REQUEST, {\n request_id\n });\n\n return await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n }\n\n public async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n if (!saw_template_id) {\n throw new Error('Missing template id');\n }\n\n const request_id = IntUtils.uuid();\n\n const message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n saw_template_id,\n request_id\n });\n\n const spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n // to simulate fail\n // response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n const status: string = {\n [SAWSpinErrorCode.SAW_OK]: 'OK',\n [SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n [SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n [SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n [SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n }[spinAttemptResponse.errCode] || 'OTHER';\n\n await this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n saw_template_id,\n status,\n round_id,\n });\n\n return {...spinAttemptResponse, request_id };\n }\n\n public async missionOptIn(user_ext_id: string, mission_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n const message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(user_ext_id, ClassId.MISSION_OPTIN_REQUEST, {\n achievementId: mission_id\n });\n\n const res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n return res;\n }\n\n public async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(user_ext_id, ClassId.TOURNAMENT_REGISTER_REQUEST, {\n tournamentInstanceId\n });\n\n const res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n return res;\n }\n\n public async buyStoreItem(user_ext_id: string, itemId: number) {\n if (!itemId) {\n throw new Error('Missing store item id');\n }\n const message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n itemId\n });\n\n const res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n return res;\n }\n\n public async inboxGetMessages(user_ext_id: string, limit: number = 10, offset: number = 0): Promise<GetInboxMessagesResponse> {\n\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\n }\n\n public async storeGetItems(user_ext_id: string): Promise<GetStoreItemsResponse> {\n\n const message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n return await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE);\n }\n\n public async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n return StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n }\n\n public async storeGetCategories(user_ext_id: string): Promise<GetCategoriesStoreResponse> {\n\n const message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n return await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE);\n }\n\n public async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n return StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n } \n\n public async missionsGetItems(user_ext_id: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);\n if (response.achievements) { \n response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Mission);\n }\n return response;\n }\n\n public async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n }\n\n public async achGetCategories(user_ext_id: string): Promise<GetAchCategoriesResponse> {\n\n const message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n return await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE);\n }\n\n public async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n return AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n } \n\n public async badgetsGetItems(user_ext_id: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);\n if (response.achievements) { \n response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Badge);\n }\n return response;\n } \n\n public async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n } \n\n\n public async tournamentsGetLobby(user_ext_id: string): Promise<GetTournamentsResponse> {\n\n const message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);\n return await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);\n\n }\n\n public async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n return TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n }\n\n public async tournamentsGetInfo(user_ext_id: string, tournamentInstanceId: number): Promise<GetTournamentInfoResponse> {\n\n const message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, \n {\n tournamentInstanceId\n }\n );\n const response = await this.send<GetTournamentInfoResponse>(message, ClassId.GET_TOURNAMENT_INFO_RESPONSE);\n \n if (response.userPosition?.avatar_id) {\n response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.tournamentInfo.players?.length) {\n response.tournamentInfo.players.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n }\n\n return response;\n\n }\n\n public async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n return tournamentInfoItemTransform(response);\n } \n\n public async leaderboardGet(user_ext_id: string, period_type_id?: LeaderBoardPeriodType, prevPeriod: boolean = false): Promise<LeaderBoardDetails> {\n\n const message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(user_ext_id, ClassId.GET_LEADERS_BOARD_REQUEST, \n {\n period_type_id,\n snapshot_offset: prevPeriod ? 1 : 0,\n include_users: true\n }\n );\n\n const response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE);\n\n const boardKey = Object.keys(response.map).find( k => period_type_id === undefined || k === period_type_id?.toString());\n\n if (boardKey === undefined) {\n return undefined;\n }\n\n if (response.map[boardKey]?.userPosition?.avatar_id) {\n response.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(response.map[boardKey].userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.map[boardKey]?.positions?.length) {\n response.map[boardKey].positions.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n \n }\n \n return response.map[boardKey];\n\n }\n\n public async levelsGet(user_ext_id: string): Promise<GetLevelMapResponse> {\n const message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n return await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE);\n }\n\n public async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n }\n\n public async getTranslationsT(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n return await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n }\n\n public async getInboxMessages(user_ext_id: string, limit: number = 20, offset: number = 0, starred_only: boolean): Promise<GetInboxMessagesResponse> {\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset,\n starred_only\n });\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n }\n\n public async getInboxMessagesT(user_ext_id: string, from: number = 0, to: number = 20, favoriteOnly: boolean = false): Promise<TInboxMessage[]> {\n const limit = (to - from) > 20 ? 20 : to - from;\n const offset = from;\n\n return InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly)).log);\n }\n\n public async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\n const getMessageBody = async (messageGuid: string): Promise<InboxMessageBody>=> {\n const inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n try {\n const url = `${inboxCdnUrl}${messageGuid}.json`;\n \n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n }\n });\n const data = await response.json();\n return data || {};\n } catch (error) {\n this.logger.error('Error fetching inbox message body:', error);\n return null;\n }\n };\n\n return await getMessageBody(messageGuid)\n }\n\n public async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n const message = await this.getInboxMessageBody(messageGuid);\n return InboxMessageBodyTransform(message);\n }\n\n public async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n engagement_uid: messageGuid\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n all_read: true\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markUnmarkInboxMessageAsFavorite(user_ext_id: string, messageGuid: string, mark: boolean): Promise<MarkInboxMessageStarredResponse> {\n const message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(user_ext_id, ClassId.MARK_INBOX_STARRED_REQUEST, {\n engagement_uid: messageGuid,\n is_starred: mark\n });\n\n return await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n }\n\n public async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n engagement_uid: messageGuid,\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n public async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n all_deleted: true\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n \n public getWSCalls(): WSAPI {\n return new WSAPI(this);\n }\n\n}\n\nexport { SmarticoAPI, MessageSender }","import { TSMap } from \"typescript-map\";\n\nclass CookieStore {\n private static cookieStore = new TSMap<string, string[]>()\n\n public static get(key: string): string[] | undefined {\n \n return CookieStore.cookieStore.get(key);\n }\n\n public static set(key: string, value: string[]) {\n const v = value.map(v => v.split(';')[0]);\n CookieStore.cookieStore.set(key, v);\n }\n}\n\nexport { CookieStore }","export enum LeaderBoardPeriodType {\n DAILY = 1,\n WEEKLY = 2,\n MONTHLY = 3\n}\n"],"names":["ClassId","IntUtils","uuid","a","b","Math","random","toString","isNotNull","val","isNotEmpty","length","replaceAll","value","regex","replacement","replace","RegExp","escapeRegExp","v","JsonOrText","str","includes","JSON","parse","e","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Unknown","SAWUtils","canPlay","t","pointsBalance","undefined","saw_buyin_type_id","spin_count","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","UNKNOWN","SAWTemplatesTransform","items","map","r","x","id","saw_template_id","name","saw_template_ui_definition","description","thumbnail","saw_skin_ui_definition","skin_folder","saw_skin_key","over_limit_message","no_attempts_message","jackpot_symbol","saw_game_type","saw_game_type_id","saw_buyin_type","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","next_available_spin_ts","prizes","p","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","icon","position","aknowledge_message","acknowledge_dp","acknowledge_action_title","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","NodeCache","constructor","ttlChecker","setInterval","now","Date","getTime","key","cache","hasOwnProperty","o","ttl","get","set","ttlSeconds","flushAll","ECacheContext","OCache","init","cacheContext","oKey","stringify","use","f","clear","ActivityTypeLimited","CoreUtils","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","BuyStoreItemErrorCode","StoreCategoryTransform","publicMeta","order","StoreItemType","StoreItemTransform","filter","itemPublicMeta","price","image_url","ribbon","custom_label_tag","label_tag","limit_message","priority","related_item_ids","related_items","Bonus","Manual","itemTypeId","can_buy","canBuy","category_ids","categoryIds","pool","shopPool","AchievementStatus","AchievementTaskType","AchievementType","UserAchievementTransform","ach_id","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","isLocked","is_requires_optin","requiresOptin","is_opted_in","isOptedIn","time_limit_ms","dt_start","start_date_ts","reward","progress","ach_type_id","Mission","cta_action","cta_text","custom_section_id","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","task_id","task_public_meta","points_reward","userProgress","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","ach_categories","ScheduledMissionType","AchCategoryTransform","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","registrationCount","is_user_registered","isUserRegistered","players_min_count","playersMinCount","players_max_count","playersMaxCount","registration_status","tournamentRegistrationStatus","registration_type","registrationType","registration_cost_points","buyInAmount","duration_ms","durationMs","is_active","TournamentUtils","isActive","is_can_register","isCanRegister","is_cancelled","isCancelled","is_finished","isFinished","is_in_progress","isInProgress","is_upcoming","isUpcoming","prizeStructure","getPrizeTransformed","tournamentPlayer","me","getPlayerTransformed","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","tournament","tournamentInstanceStatus","allowLateRegistration","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","prize","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","GetLevelMapResponseTransform","levels","l","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","CACHE_DATA_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","on","tracker","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","updateOnAddSpin","SAW_DO_SPIN_RESPONSE","SAW_AKNOWLEDGE_RESPONSE","updateOnPrizeWin","MISSION_OPTIN_RESPONSE","updateMissionsOnOptIn","TOURNAMENT_REGISTER_RESPONSE","updateTournamentsOnRegistration","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","getUserProfile","Object","assign","userPublicProps","Error","getLevels","levelsGetT","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","badgetsGetItemsT","getStoreItems","storeGetItemsT","buyStoreItem","item_id","err_code","errCode","err_message","errMsg","getStoreCategories","storeGetCategoriesT","getAchCategories","achGetCategoriesT","getMiniGames","Saw","sawGetTemplatesT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","prize_id","requestMissionOptIn","mission_id","missionOptIn","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getInboxMessages","from","to","onlyFavorite","InboxMessages","getInboxMessagesT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","payload","SAW_OK","template","find","prizeType","updatedTemplates","contextKey","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","info","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","getEnvId","send","message","expectCID","cid","result","timeStart","timeEnd","url","request","Array","isArray","obj","buildMessage","user_ext_id","api_key","brand_key","ext_user_id","ts","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","trUserRQ","trUser","keys","forEach","k","coreIdentifyLabel","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","sawGetTemplates","lang","is_visitor_mode","SAW_GET_SPINS_REQUEST","force_language","SAW_GET_SPINS_RESPONSE","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","MISSION_OPTIN_REQUEST","achievementId","res","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","BUY_SHOP_ITEM_RESPONSE","inboxGetMessages","limit","offset","GET_INBOX_MESSAGES_REQUEST","GET_INBOX_MESSAGES_RESPONSE","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","achievements","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","period_type_id","prevPeriod","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","positions","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","starred_only","favoriteOnly","log","getMessageBody","getLabelSetting","INBOX_PUBLIC_CDN","fetch","method","headers","json","MARK_INBOX_READ_REQUEST","MARK_INBOX_READ_RESPONSE","all_read","MARK_INBOX_STARRED_REQUEST","MARK_INBOX_STARRED_RESPONSE","MARK_INBOX_DELETED_REQUEST","MARK_INBOX_DELETED_RESPONSE","all_deleted","getWSCalls","CookieStore","cookieStore","split","TSMap","LeaderBoardPeriodType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.mjs","sources":["../src/Base/ClassId.ts","../src/IntUtils.ts","../src/MiniGames/SAWBuyInType.ts","../src/MiniGames/SAWUtils.ts","../src/MiniGames/SAWAcknowledgeType.ts","../src/MiniGames/SAWAskForUsername.ts","../src/MiniGames/SAWGameType.ts","../src/MiniGames/SAWPrizeType.ts","../src/MiniGames/SAWGetTemplatesResponse.ts","../src/MiniGames/SAWSpinErrorCode.ts","../src/MiniGames/SAWWinSoundType.ts","../src/NodeCache.ts","../src/OCache.ts","../src/Core/ActivityTypeLimited.ts","../src/Core/CoreUtils.ts","../src/Core/PublicLabelSettings.ts","../src/Core/TranslationArea.ts","../src/Inbox/GetInboxMessagesResponse.ts","../src/Inbox/InboxMessage.ts","../src/Inbox/InboxMessageType.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Leaderboard/LeaderBoardPeriodType.ts","../src/Level/GetLevelMapResponse.ts","../src/WSAPI/WSAPI.ts","../src/Leaderboard/LeaderBoards.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts"],"sourcesContent":["export enum ClassId {\n PING = 1,\n PONG = 2,\n\n\n INIT = 3,\n INIT_RESPONSE = 4,\n IDENTIFY = 5,\n IDENTIFY_RESPONSE = 6,\n LOGIN = 7,\n LOGOUT = 8,\n EVENT = 9,\n EVENT_RESPONSE = 10,\n\n LOGIN_RESPONSE = 11,\n LOGOUT_RESPONSE = 12,\n\n GET_TRANSLATIONS_REQUEST = 13,\n GET_TRANSLATIONS_RESPONSE = 14,\n\n CLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n CLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n CLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n CLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n CLIENT_EXECUTE_JS_EVENT = 107,\n CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n CLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n CLIENT_TRACK_ACTIVITY_REQUEST = 155,\n CLIENT_SET_AVATAR_REQUEST = 157,\n CLIENT_SET_AVATAR_RESPONSE = 158,\n\n CLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n CLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n // 500-1000 - Achievements\n GET_LEVEL_MAP_REQUEST = 500,\n GET_LEVEL_MAP_RESPONSE = 501,\n GET_ACHIEVEMENT_MAP_REQUEST = 502,\n GET_ACHIEVEMENT_MAP_RESPONSE = 503,\n RELOAD_ACHIEVEMENTS_EVENT = 504,\n GET_LEADERS_BOARD_REQUEST = 505,\n GET_LEADERS_BOARD_RESPONSE = 506,\n GET_ACTIVITY_LOG_REQUEST = 507,\n GET_ACTIVITY_LOG_RESPONSE = 508,\n GET_SHOP_ITEMS_REQUEST = 509,\n GET_SHOP_ITEMS_RESPONSE = 510,\n BUY_SHOP_ITEM_REQUEST = 511,\n BUY_SHOP_ITEM_RESPONSE = 512,\n GET_INBOX_MESSAGES_REQUEST = 513,\n GET_INBOX_MESSAGES_RESPONSE = 514,\n GET_SHOP_CATEGORIES_REQUEST = 515,\n GET_SHOP_CATEGORIES_RESPONSE = 516,\n GET_TOURNAMENT_LOBBY_REQUEST = 517,\n GET_TOURNAMENT_LOBBY_RESPONSE = 518,\n GET_TOURNAMENT_INFO_REQUEST = 519,\n GET_TOURNAMENT_INFO_RESPONSE = 520,\n TOURNAMENT_REGISTER_REQUEST = 521,\n TOURNAMENT_REGISTER_RESPONSE = 522,\n GET_CUSTOM_SECTIONS_REQUEST = 523,\n GET_CUSTOM_SECTIONS_RESPONSE = 524,\n MISSION_OPTIN_REQUEST = 525,\n MISSION_OPTIN_RESPONSE = 526,\n\n GET_ACHIEVEMENT_USER_REQUEST = 527,\n GET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n MARK_INBOX_READ_REQUEST = 529,\n MARK_INBOX_READ_RESPONSE = 530,\n MARK_INBOX_STARRED_REQUEST = 531,\n MARK_INBOX_STARRED_RESPONSE = 532,\n MARK_INBOX_DELETED_REQUEST = 535,\n MARK_INBOX_DELETED_RESPONSE = 536,\n\n GET_ACH_CATEGORIES_REQUEST = 537,\n GET_ACH_CATEGORIES_RESPONSE = 538,\n\n GET_BONUSES_REQUEST = 600,\n GET_BONUSES_RESPONSE = 601,\n CLAIM_BONUS_REQUEST = 602,\n CLAIM_BONUS_RESPONSE = 603,\n\n SAW_GET_SPINS_REQUEST = 700,\n SAW_GET_SPINS_RESPONSE = 701,\n SAW_DO_SPIN_REQUEST = 702,\n SAW_DO_SPIN_RESPONSE = 703,\n SAW_AKNOWLEDGE_REQUEST = 704,\n SAW_AKNOWLEDGE_RESPONSE = 705,\n SAW_SPINS_COUNT_PUSH = 706,\n SAW_SHOW_SPIN_PUSH = 707,\n\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n REGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n CLIENT_DEBUG_REQUEST = 77777,\n\n \n\n UNSUPPORTED_COMMAND = 99999,\n}","\n\n\nclass IntUtils {\n\n public static uuid(): string {\n let a: any;\n let b: any;\n for (b = a = \"\"; a++ < 36; b += a * 51 & 52 ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16) : \"-\") {}\n return b;\n } \n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n } \n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n } \n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (IntUtils.isNotNull(value)) {\n return value.replace(new RegExp(IntUtils.escapeRegExp(regex), \"g\"), replacement?.toString());\n }\n return value;\n } \n\n public static escapeRegExp(v: string): string {\n if (IntUtils.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static JsonOrText = (str: string): any => {\n if (str && str.includes && (str.includes('{') || str.includes('['))) {\n try {\n return JSON.parse(str)\n } catch (e) {\n return str;\n }\n }\n return str;\n }\n \n // public static wsTimeToEpoch = (time: string): number => {\n // if (time) {\n // return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n // } else {\n // return null\n // }\n // } \n\n}\n\n\n\nexport { IntUtils }","/** @hidden */\nexport enum SAWBuyInType {\n Free = 1,\n Points = 2,\n Spins = 3\n}\n\nexport enum SAWBuyInTypeName {\n Free = 'free',\n Points = 'points',\n Spins = 'spins',\n Unknown = 'unknown'\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n return {\n [SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n [SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n [SAWBuyInType.Spins]: SAWBuyInTypeName.Spins\n }[type] || SAWBuyInTypeName.Unknown;\n}","import { SAWBuyInType } from \"./SAWBuyInType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\n\nclass SAWUtils {\n\n public static canPlay = (t: SAWTemplate, pointsBalance: number): boolean => {\n if (t === null || t === undefined) {\n return false;\n }\n \n switch (t.saw_buyin_type_id) {\n case SAWBuyInType.Free: {\n return true;\n }\n case SAWBuyInType.Spins: {\n return t.spin_count !== null && t.spin_count > 0\n }\n case SAWBuyInType.Points: {\n return t.buyin_cost_points <= pointsBalance;\n }\n default: {\n console.error(\"MiniGamesUtils.canPlay: Unknwon SAW buyin type \" + t.saw_buyin_type_id);\n return false;\n }\n }\n }\n \n}\n\nexport { SAWUtils }","export enum SAWAcknowledgeType {\n\n Silent = 1,\n QuickMessage = 2,\n FullMessage = 3\n}\n","\nexport enum SAWAskForUsername {\n NOASK = \"no-ask\",\n ONSUMBIT = \"on-submit\"\n}","/** @hidden */\n\nexport enum SAWGameType {\n SpinAWheel = 1,\n ScratchCard = 2,\n MatchX = 3,\n GiftBox = 4\n}\n\nexport enum SAWGameTypeName {\n SpinAWheel = \"wheel\",\n ScratchCard = \"scratch\",\n MatchX = \"matchx\",\n GiftBox = \"giftbox\",\n Unknown = \"unknown\"\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n return {\n [SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n [SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n [SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n [SAWGameType.GiftBox]: SAWGameTypeName.GiftBox\n }[type] || SAWGameTypeName.Unknown;\n}\n","/** @hidden */\nexport enum SAWPrizeType {\n\n NO_PRIZE = 1,\n POINTS = 2,\n BONUS = 3,\n MANUAL = 4,\n SPIN = 5,\n JACKPOT = 6\n}\n\nexport enum MiniGamePrizeTypeName {\n NO_PRIZE = 'no-prize',\n POINTS = 'points',\n BONUS = 'bonus',\n MANUAL = 'manual',\n SPIN = 'spin',\n JACKPOT = 'jackpot',\n UNKNOWN = \"unknown\"\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n return {\n [SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n [SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n [SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n [SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n [SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n [SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT, \n }[type] || MiniGamePrizeTypeName.UNKNOWN;\n}\n","import { IntUtils } from \"../IntUtils\";\nimport { TMiniGamePrize, TMiniGameTemplate } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"./../Base/ProtocolResponse\";\nimport { SAWBuyInTypeNamed } from \"./SAWBuyInType\";\nimport { SAWGameTypeNamed } from \"./SAWGameType\";\nimport { MiniGamePrizeTypeName, MiniGamePrizeTypeNamed } from \"./SAWPrizeType\";\nimport { SAWTemplate } from \"./SAWTemplate\";\nimport { SAWUtils } from \"./SAWUtils\";\n\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\n templates: SAWTemplate[];\n}\n\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => { \n \n \n return items.map( r => {\n\n const x: TMiniGameTemplate = {\n \n id: r.saw_template_id,\n name: r.saw_template_ui_definition.name,\n description: r.saw_template_ui_definition.description,\n thumbnail: \n r.saw_skin_ui_definition?.skin_folder\n ? r.saw_skin_ui_definition?.skin_folder + '/ico.png'\n : `https://libs.smartico.ai/gf/images/saw/${r.saw_skin_key}/ico.png`\n ,\n over_limit_message: r.saw_template_ui_definition.over_limit_message,\n no_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n jackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n saw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n saw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n buyin_cost_points: r.buyin_cost_points,\n jackpot_add_on_attempt: r.jackpot_add_on_attempt,\n jackpot_current: r.jackpot_current,\n spin_count: r.spin_count,\n promo_image: r.saw_template_ui_definition.promo_image,\n promo_text: r.saw_template_ui_definition.promo_text,\n custom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n\n next_available_spin_ts: r.next_available_spin_ts,\n\n prizes: r.prizes.map( p => {\n const y: TMiniGamePrize = {\n id: p.saw_prize_id,\n name: p.saw_prize_ui_definition.name,\n prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n prize_value: p.prize_value,\n font_size: p.saw_prize_ui_definition.font_size,\n icon: p.saw_prize_ui_definition.icon,\n position: p.saw_prize_ui_definition.position,\n aknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n acknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n acknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n }\n return y;\n })\n };\n return x;\n });\n}\n\n","\n/*\n* Possible error codes for the mini-games attempts\n*/\nexport enum SAWSpinErrorCode {\n /** No error */\n SAW_OK = 0,\n /** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n SAW_NO_SPINS = 40001,\n /** The are no prizes left to play the game */\n SAW_PRIZE_POOL_EMPTY = 40002,\n /** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n SAW_NOT_ENOUGH_POINTS = 40003,\n /** User reached max number of game attempts defined in the BackOffice */\n SAW_FAILED_MAX_SPINS_REACHED = 40004,\n /** Special code for the 'visitor' mode */\n SAW_VISITOR_STOP_SPIN_REQUEST = -40001 \n}","export enum SAWWinSoundType {\n\n Disappointing = 1,\n Positive = 2,\n HighlyPositive = 3,\n NoSound = 4,\n Custom = 5,\n}\n\nexport const SAWWinSoundFiles = {\n [SAWWinSoundType.NoSound]: null,\n [SAWWinSoundType.Disappointing]: \"saw-disappointed.m4a\",\n [SAWWinSoundType.Positive]: \"saw-positive.m4a\",\n [SAWWinSoundType.HighlyPositive]: \"saw-highly-positive.m4a\",\n}","\nclass NodeCache {\n\n private static ttlChecker: NodeJS.Timeout;\n\n private static cache: { [key: string] : any } = {};\n\n constructor() {\n if (NodeCache.ttlChecker === undefined) {\n NodeCache.ttlChecker = setInterval(() => {\n const now = new Date().getTime();\n for (const key in NodeCache.cache) {\n if (NodeCache.cache.hasOwnProperty(key)) {\n const o = NodeCache.cache[key];\n if (o.ttl < now) {\n delete NodeCache.cache[key];\n }\n }\n }\n }, 1000);\n }\n }\n\n public get(key: string): any {\n const o = NodeCache.cache[key];\n if (o !== undefined && o.ttl > new Date().getTime()) {\n return o.value;\n }\n }\n\n public set(key: string, value: any, ttlSeconds: number = 60) {\n NodeCache.cache[key] = {\n value,\n ttl: new Date().getTime() + ttlSeconds * 1000\n }\n }\n\n public flushAll() {\n NodeCache.cache = {};\n }\n\n}\n\n\nexport { NodeCache }","import { NodeCache } from \"./NodeCache\";\n\nexport enum ECacheContext {\n Translations,\n LabelInfo,\n WSAPI,\n}\n\nconst WITH_REF_CACHE = [\n ECacheContext.Translations\n];\n\nexport class OCache {\n\n private static cache: { [key: string]: NodeCache } = {};\n\n private static init(cacheContext: ECacheContext) {\n if (this.cache[cacheContext] === undefined) {\n this.cache[cacheContext] = new NodeCache();\n }\n }\n\n public static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n return deepClone(this.cache[cacheContext].get(key));\n }\n\n public static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\n const key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n this.init(cacheContext);\n\n this.cache[cacheContext].set(key, deepClone(o), ttlSeconds);\n }\n\n public static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n if (ttlSeconds <= 0) {\n return await f();\n } else {\n let o: T = OCache.get(oKey, cacheContext);\n\n if (o === undefined) {\n o = await f();\n OCache.set(oKey, o, cacheContext, ttlSeconds);\n }\n \n return o;\n }\n }\n\n public static async clear(cacheContext: ECacheContext) {\n if (this.cache[cacheContext]) {\n this.cache[cacheContext].flushAll();\n }\n }\n}\n\nconst deepClone = (o: any) => {\n if (o) {\n return JSON.parse(JSON.stringify(o));\n }\n\n return o;\n}\n","export enum ActivityTypeLimited {\n\n DoNothing = 8,\n Points = 12,\n GiveMission = 14,\n StartAnotherCampaign = 15,\n MiniGameAttempt = 16,\n DeductPoints = 21,\n ResetPoints = 22,\n Popup = 30,\n Inbox = 31,\n Slack = 70,\n Email_To_Customer_Support = 80,\n Email_To_Risk_Operator = 90,\n Bonus = 100,\n WebHook = 200,\n TagCustomer = 504,\n UnTagCustomer = 505,\n}","\nclass CoreUtils {\n\n public static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n if (avatarDomain && avatar_id !== null && avatar_id !== undefined && !(avatar_id.startsWith && avatar_id.startsWith('http'))) {\n if (avatarDomain.endsWith('/')) {\n return avatarDomain.slice(0, -1) + '/avatar/' + avatar_id\n } else {\n return avatarDomain + '/avatar/' + avatar_id\n }\n } else {\n return avatar_id\n }\n }\n}\n\nexport { CoreUtils }","\nexport enum PublicLabelSettings {\n FCM_SENDER_ID = \"FCM_SENDER_ID\",\n PUBLIC_API_URL = \"PUBLIC_API_URL\",\n FCM_SW_URL = \"FCM_SW_URL\",\n RECORDING_ENABLED_FOR_ALL_USERS = \"RECORDING_ENABLED_FOR_ALL_USERS\",\n JS_INJECTION = \"JS_INJECTION\",\n GAMIFICATION_UI_MAIN = \"GAMIFICATION_UI_MAIN\",\n GAMIFICATION_UI_WIDGET = \"GAMIFICATION_UI_WIDGET\",\n GAMIFICATION_UI_MINI_GAME = \"GAMIFICATION_UI_MINI_GAME\",\n GAMIFICATION_UI_SETTINGS = \"GAMIFICATION_UI_SETTINGS\",\n GAMIFICATION_UI_MAIN_TEST = \"GAMIFICATION_UI_MAIN_TEST\",\n GAMIFICATION_UI_WIDGET_TEST = \"GAMIFICATION_UI_WIDGET_TEST\",\n GAMIFICATION_UI_SETTINGS_TEST = \"GAMIFICATION_UI_SETTINGS_TEST\",\n FRONT_END_ALLOWED_LANGUAGES = \"FRONT_END_ALLOWED_LANGUAGES\",\n FRONT_END_ALLOW_DOMAINS = \"FRONT_END_ALLOW_DOMAINS\",\n DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = \"DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS\",\n SHADOW_LABEL_PUBLIC_KEY = \"SHADOW_LABEL_PUBLIC_KEY\",\n DYNAMIC_IMAGE_DOMAIN = \"DYNAMIC_IMAGE_DOMAIN\",\n \n GAMIFICATION_UI_LEVEL_ENABLED = \"GAMIFICATION_UI_LEVEL_ENABLED\",\n GAMIFICATION_UI_LEVEL_IMAGE_MOB = \"GAMIFICATION_UI_LEVEL_IMAGE_MOB\",\n GAMIFICATION_UI_LEVEL_IMAGE_DESK = \"GAMIFICATION_UI_LEVEL_IMAGE_DESK\",\n \n GAMIFICATION_LEVELS_LOGIC2 = \"GAMIFICATION_LEVELS_LOGIC2\",\n GAMIFICATION_LEVELS_LOGIC3 = \"GAMIFICATION_LEVELS_LOGIC2\",\n \n AVATAR_CUSTOM_IMAGE_MAX_ID = \"AVATAR_CUSTOM_IMAGE_MAX_ID\",\n AVATAR_CUSTOM_IMAGE_FOLDER = \"AVATAR_CUSTOM_IMAGE_FOLDER\",\n \n GAMIFICATION_SHOW_POWERED_BY = \"GAMIFICATION_SHOW_POWERED_BY\",\n _system_leader_board_mask_username = \"_system_leader_board_mask_username\",\n\n INBOX_PUBLIC_CDN = \"INBOX_PUBLIC_CDN\",\n}\n","enum TranslationArea {\n\n Casino = 1,\n Gamification = 2,\n Trading = 3,\n Archived = 4,\n Affiliation = 5,\n RetentionGames = 6,\n AffIliateAdminNew = 7\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from \"src/WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { InboxMessage } from \"./InboxMessage\";\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\n log: InboxMessage[];\n}\n\nexport const InboxMessagesTransform = ((items: InboxMessage[]): TInboxMessage[] => {\n\n return items.map(item => {\n const x: TInboxMessage = {\n sent_date: item.createDate,\n message_guid: item.engagement_uid,\n read: item.is_read,\n favorite: item.is_starred,\n }\n return x;\n });\n})\n","import { TInboxMessageBody } from \"src/WSAPI/WSAPITypes\";\nimport { InboxMessageType } from \"./InboxMessageType\";\n\nexport interface InboxMessageBody {\n action: string;\n body: string;\n type: InboxMessageType;\n image: string;\n title: string;\n html_body: string; \n additional_buttons?: { inbox_cta_text: string, action: string }[];\n}\n\nexport interface InboxMessage {\n\n createDate: string;\n body: InboxMessageBody;\n engagement_uid: string;\n is_read: boolean;\n is_starred: boolean;\n is_deleted: boolean;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n \n const x: TInboxMessageBody = {\n action: item.action,\n icon: item.image,\n title: item.title,\n preview_body: item.body,\n }\n\n if (item.action === 'dp:inbox') {\n if (item.additional_buttons && item.additional_buttons.length) {\n x.buttons = item.additional_buttons.map(b => ({\n action: b.action,\n text: b.inbox_cta_text\n }))\n }\n\n x.html_body = item?.html_body || null;\n }\n\n return x;\n}\n","export enum InboxMessageType {\n Custom = 0,\n MissionCompleted = 1,\n MissionUnlocked = 2,\n LeaderboardWon = 3,\n LevelChanged = 4,\n BonusGiven = 5,\n PointsAdded = 6,\n PointsUsed = 7,\n PersonalMessage = 8\n}\n\n// keep in sync with BO enum\n","export enum BuyStoreItemErrorCode {\n FAILED_TO_BUY_SHOP_ITEM = 121,\n SHOP_NO_BALANCE = 11000,\n SHOP_WRONG_LABEL = 11001,\n SHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. Shoudnt happen\n SHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n SHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n SHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n SHOP_FAILED_POOL_EMPTY = 11009,\n}","import { TStoreCategory } from \"../WSAPI/WSAPITypes\";\nimport { StoreCategoryPublicMeta } from \"./StoreCategoryPublicMeta\";\n\nexport interface StoreCategory {\n\n id?: number;\n publicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => { \n return items.map( r => {\n const x: TStoreCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","export enum StoreItemType {\n Bonus = 1,\n Manual = 2\n}\n\n","import { TStoreItem } from \"../WSAPI/WSAPITypes\";\nimport { StoreItemPublicMeta } from \"./StoreItemPublicMeta\";\nimport { StoreItemType } from \"./StoreItemType\";\n\nexport interface StoreItem {\n id: number;\n itemTypeId: StoreItemType;\n itemPublicMeta: StoreItemPublicMeta;\n categoryIds?: number[];\n canBuy?: boolean;\n shopPool: number;\n}\n\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => { \n return items.filter( r => r.id >= 1).map( r => {\n const x: TStoreItem = \n {\n id: r.id,\n name: r.itemPublicMeta.name,\n price: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n image: r.itemPublicMeta.image_url,\n description: r.itemPublicMeta.description,\n ribbon: r.itemPublicMeta.custom_label_tag || r.itemPublicMeta.label_tag,\n limit_message: r.itemPublicMeta.limit_message,\n priority: r.itemPublicMeta.priority,\n related_item_ids: r.itemPublicMeta.related_items,\n hint_text: r.itemPublicMeta.hint_text,\n\n type: {\n [StoreItemType.Bonus]: 'bonus',\n [StoreItemType.Manual]: 'manual'\n }[r.itemTypeId] as 'bonus' | 'manual',\n\n can_buy: r.canBuy,\n category_ids: r.categoryIds ?? [],\n pool: r.shopPool,\n }\n return x;\n });\n\n}","export enum AchievementStatus {\n\n Draft = 1,\n AvailableUnlocked = 2,\n AvailableLocked = 3,\n Archived = 4,\n FeaturedManually = 5,\n FeaturedAI = 6\n}\n","export enum AchievementTaskType {\n CompleteAchievement = 1,\n UnlockAchievement = 2\n}\n","export enum AchievementType {\n\n Mission = 1,\n Badge = 2\n}\n","\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\nimport { IntUtils } from \"../IntUtils\";\nimport { TMissionOrBadge } from \"../WSAPI/WSAPITypes\";\nimport { AchCategory } from \"./AchievementCategory\";\nimport { AchievementPublicMeta } from \"./AchievementPublicMeta\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { AchievementTaskType } from \"./AchievementTaskType\";\nimport { AchievementType } from \"./AchievementType\";\nimport { ScheduledMissionType } from \"./ScheduledMissionType\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport interface UserAchievement {\n\n ach_id?: number;\n ach_type_id?: AchievementType;\n ach_public_meta?: AchievementPublicMeta;\n isCompleted?: boolean;\n isLocked?: boolean;\n requiresOptin?: boolean;\n isOptedIn?: boolean;\n start_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n start_date_ts?: number; \n time_limit_ms?: number;\n progress?: number;\n complete_date?: string;\n unlock_date?: string;\n milliseconds_till_available?: number;\n completed_tasks?: number;\n achievementTasks?: UserAchievementTask[];\n ach_status_id?: AchievementStatus;\n scheduledMissionType?: ScheduledMissionType;\n related_games?: AchRelatedGame[];\n active_from_ts?: number; // indicates when 'scheduled' mission is active from,\n ach_categories?: number[];\n}\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n\n return items.filter( r => r.ach_id >= 1).map( r => {\n const x: TMissionOrBadge = {\n id: r.ach_id,\n name: r.ach_public_meta.name,\n description: r.ach_public_meta.description,\n hint_text: r.ach_public_meta.hint_text,\n unlock_mission_description: r.ach_public_meta.unlock_mission_description,\n image: r.ach_public_meta.image_url,\n is_completed: r.isCompleted,\n is_locked: r.isLocked,\n is_requires_optin: r.requiresOptin,\n is_opted_in: r.isOptedIn,\n time_limit_ms: r.time_limit_ms,\n dt_start: r.start_date_ts,\n reward: r.ach_public_meta.reward,\n progress: r.progress,\n type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n cta_action: r.ach_public_meta.cta_action,\n cta_text: r.ach_public_meta.cta_text,\n custom_section_id: r.ach_public_meta.custom_section_id,\n only_in_custom_section: r.ach_public_meta.only_in_custom_section,\n custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n tasks: (r.achievementTasks || [])\n .filter( t => t.task_type_id === AchievementTaskType.CompleteAchievement)\n .map( t => ({\n id: t.task_id,\n name: t.task_public_meta?.name,\n points_reward: t.points_reward,\n is_completed: t.isCompleted,\n progress: t.userProgress,\n })),\n related_games: (r.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n category_ids: r.ach_categories ?? [],\n }\n return x;\n});\n} \n\n","export enum ScheduledMissionType {\n\n Future = 1,\n Past = 2,\n Present = 3,\n}","import { TAchCategory } from \"../WSAPI/WSAPITypes\";\nimport { AchCategoryPublicMeta } from \"./AchCategoryPublicMeta\";\n\nexport interface AchCategory {\n\n id?: number;\n publicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => { \n return items.map( r => {\n const x: TAchCategory = {\n id: r.id,\n name: r.publicMeta?.name,\n order: r.publicMeta?.order\n }\n return x;\n })\n}","/** @hidden */\nexport enum TournamentRegistrationType {\n\n AUTO = 1,\n OPT_IN = 2,\n BUY_IN_POINTS = 3,\n MANUAL_APPROVAL = 4,\n REQUIRES_QUALIFICATION = 5\n // BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName = 'AUTO' | 'OPT_IN' | 'BUY_IN_POINTS' | 'MANUAL_APPROVAL' | 'REQUIRES_QUALIFICATION' | 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n return ({\n [TournamentRegistrationType.AUTO]: 'AUTO',\n [TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n [TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n [TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n [TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n }[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n}","/** @hidden */\nexport enum TournamentRegistrationStatus {\n\n NOT_REGISTERED = 0,\n REGISTERED = 1,\n FINISHED = 2,\n PENDING = 3,\n CANCELLED = 4,\n REGISTERED_PENDING_QUALIFICATION = 5,\n QUALIFIED_PENDING_REGISTRATION = 6\n}\n\nexport enum TournamentRegistrationStatusName {\n NOT_REGISTERED = 'NOT_REGISTERED',\n REGISTERED = 'REGISTERED',\n FINISHED = 'FINISHED',\n PENDING = 'PENDING',\n CANCELLED = 'CANCELLED',\n REGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n QUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n UNKNOWN = \"UNKNOWN\"\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n return ({\n [TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n [TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n [TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n [TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n [TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]: TournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n [TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n [TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]: TournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION\n }[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n} \n\n","import {TournamentRegistrationType, TournamentRegistrationTypeGetName} from \"./TournamentRegistrationType\";\nimport {TournamentInstanceStatus} from \"./TournamentInstanceStatus\";\nimport { TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed } from \"./TournamentRegistrationStatus\";\nimport { TournamentType } from \"./TournamentType\";\nimport { TournamentPublicMeta } from \"./TournamentPublicMeta\";\nimport { TTournament } from \"../WSAPI/WSAPITypes\";\nimport { TournamentPlayer, TournamentPrize, TournamentUtils } from \".\";\nimport { IntUtils } from \"../IntUtils\";\nimport { AchRelatedGame } from \"../Base/AchRelatedGame\";\n\nexport interface Tournament {\n\n /** ID of tournament template */\n tournamentId?: number;\n /** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n tournamentInstanceId?: number;\n /** Type of the tournament. For now only SCHEDULED is support */\n tournamentType?: TournamentType;\n /** Meta information about tournament that should be used to build UI */\n publicMeta?: TournamentPublicMeta;\n /** Cost of registration in the tournament in gamification points */\n buyInAmount?: number;\n /** Not in use */\n prizePool?: number;\n /** The time when tournament is going to start */\n startTime?: string;\n /** The time when tournament is going to finish */\n endTime?: string;\n /** The time when tournament is going to start, epoch */\n startTimeTs?: number;\n /** The time when tournament is going to finish, epoch */\n endTimeTs?: number; \n /** Number of users registered in the tournament */\n registrationCount?: number;\n /** Not in use */\n totalCount?: number;\n /** Type of registration in the tournament */\n registrationType?: TournamentRegistrationType;\n /** Status of registration in the tournament for current user */\n tournamentRegistrationStatus?: TournamentRegistrationStatus;\n /** Status of tournament instance */\n tournamentInstanceStatus?: TournamentInstanceStatus;\n /** flag indicating if current user is registered in the tournament */\n isUserRegistered?: boolean;\n /** Indicator if tournament allows later registration, when tournament is already started */\n allowLateRegistration?: boolean;\n /** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n playersMinCount?: number;\n /** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n playersMaxCount?: number;\n /** Tournament duration in millisecnnds */\n durationMs?: number;\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n /** Information about current user */\n tournamentPlayer?: TournamentPlayer\n\n /** List of casino games (or other types of entities) related to the tournament */\n related_games?: AchRelatedGame[];\n}\n\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => { \n\n return items.filter(r => r.tournamentId >= 1).map(r => {\n const x: TTournament = {\n instance_id: r.tournamentInstanceId,\n tournament_id: r.tournamentId,\n name: r.publicMeta.name,\n description: r.publicMeta.description,\n segment_dont_match_message: r.publicMeta.segment_dont_match_message,\n image1: r.publicMeta.image_url,\n image2: r.publicMeta.image_url2,\n prize_pool_short: r.publicMeta.prize_pool_short,\n custom_price_text: r.publicMeta.custom_price_text,\n custom_section_id: r.publicMeta.custom_section_id,\n custom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n is_featured: r.publicMeta.featured,\n ribbon: r.publicMeta.label_tag,\n priority: r.publicMeta.position,\n \n\n start_time: r.startTimeTs,\n end_time: r.endTimeTs,\n registration_count: r.registrationCount,\n is_user_registered: r.isUserRegistered,\n players_min_count: r.playersMinCount,\n players_max_count: r.playersMaxCount,\n registration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n registration_type: TournamentRegistrationTypeGetName(r.registrationType),\n registration_cost_points: r.buyInAmount,\n duration_ms: r.durationMs,\n\n is_active: TournamentUtils.isActive(r),\n is_can_register: TournamentUtils.isCanRegister(r),\n is_cancelled: TournamentUtils.isCancelled(r),\n is_finished: TournamentUtils.isFinished(r),\n is_in_progress: TournamentUtils.isInProgress(r),\n is_upcoming: TournamentUtils.isUpcoming(r),\n\n }\n\n if (r.prizeStructure) {\n x.prizes = r.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (r.tournamentPlayer) {\n x.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true)\n }\n\n return x;\n });\n\n\n}\n\n","export enum TournamentInstanceStatus {\n\n PUBLISHED = 1,\n REGISTER = 2,\n STARTED = 3,\n FINISHED = 4,\n CANCELLED = 5,\n FAILED = 6,\n FINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n return {\n [TournamentInstanceStatus.PUBLISHED]: \"PUBLISHED\",\n [TournamentInstanceStatus.REGISTER]: \"REGISTER\",\n [TournamentInstanceStatus.STARTED]: \"STARTED\",\n [TournamentInstanceStatus.FINISHED]: \"FINISHED\",\n [TournamentInstanceStatus.CANCELLED]: \"CANCELLED\",\n [TournamentInstanceStatus.FAILED]: \"FAILED\",\n [TournamentInstanceStatus.FINALIZING]: \"FINALIZING\",\n }[s];\n};","import { ActivityTypeLimited } from \"src/Core\";\nimport { Tournament } from \"./Tournament\";\nimport { TournamentInstanceStatus } from \"./TournamentInstanceStatus\";\nimport { TournamentPlayer } from \"./TournamentPlayer\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TournamentRegistrationStatus } from \"./TournamentRegistrationStatus\";\nimport { TournamentRegistrationType } from \"./TournamentRegistrationType\";\n\nconst tournamentPrizeTypeToPrizeName = (type: ActivityTypeLimited) => {\n return {\n [ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n [ActivityTypeLimited.Points]: 'POINTS_ADD',\n [ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n [ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n [ActivityTypeLimited.MiniGameAttempt]: \"MINI_GAME_ATTEMPT\",\n [ActivityTypeLimited.Bonus]: 'BONUS',\n }[type]\n}\n\nexport class TournamentUtils {\n\n public static isCanRegister = (tournament: Tournament): boolean => {\n if (tournament) {\n if (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n return true;\n }\n return !tournament.isUserRegistered &&\n (tournament.playersMaxCount !== tournament.registrationCount || tournament.playersMaxCount === null || tournament.playersMaxCount === 0) &&\n tournament.registrationType !== TournamentRegistrationType.AUTO &&\n (\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n (tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration)\n );\n }\n return false;\n }\n\n\n public static isInProgress = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n }\n return false;\n }\n\n public static isActive = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n }\n return false;\n }\n\n public static isFinished = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED\n || tournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING;\n }\n return false;\n }\n\n public static isCancelled = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n }\n return false;\n }\n\n public static isUpcoming = (tournament: Tournament): boolean => {\n if (tournament) {\n return tournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED || tournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER;\n }\n return false;\n }\n\n public static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n if (player) {\n const playerTransformed = {\n public_username: player.userAltName,\n avatar_url: player.avatar_url,\n position: player.position,\n scores: player.scores,\n is_me: player.isMe,\n }\n \n if (isMe) {\n delete playerTransformed.is_me;\n }\n\n return playerTransformed;\n }\n\n return null;\n }\n\n public static getPrizeTransformed = (prize: TournamentPrize) => {\n if (prize) {\n return ({...prize, type: tournamentPrizeTypeToPrizeName(prize.type)})\n }\n\n return null;\n }\n\n}\n","import {Tournament, TournamentItemsTransform} from \"./Tournament\";\nimport {TournamentPlayer} from \"./TournamentPlayer\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TournamentPrize } from \"./TournamentPrize\";\nimport { TTournamentDetailed } from \"../WSAPI/WSAPITypes\";\nimport { ActivityTypeLimited } from \"src/Core\";\nimport { TournamentUtils } from \"./TournamentUtils\";\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\n /** tournament info */\n tournamentInfo: {\n /** id of label, not in use */\n labelId: number;\n tournamentLobbyInfo: Tournament;\n /** list of registered users */\n players: TournamentPlayer[];\n },\n /** information about current user position */\n userPosition: TournamentPlayer,\n /** prizes structure */\n prizeStructure?: {\n prizes: TournamentPrize[],\n }\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n const response: TTournamentDetailed = {\n ...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n related_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map(g => ({\n ext_game_id: g.ext_game_id,\n game_public_meta: {\n name: g.game_public_meta.name,\n link: g.game_public_meta.link,\n image: g.game_public_meta.image,\n enabled: g.game_public_meta.enabled,\n game_categories: g.game_public_meta.game_categories,\n game_provider: g.game_public_meta.game_provider,\n },\n })),\n players: t.tournamentInfo.players.map( p => TournamentUtils.getPlayerTransformed(p)),\n };\n\n if (t.prizeStructure) {\n response.prizes = t.prizeStructure.prizes.map(p => TournamentUtils.getPrizeTransformed(p));\n }\n\n if (t.userPosition) {\n response.me = TournamentUtils.getPlayerTransformed(t.userPosition, true)\n }\n\n return response;\n}\n\n\n","export enum TournamentRegistrationError {\n NO_ERROR = 0,\n TOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n TOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n TOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n TOURNAMENT_ALREADY_REGISTERED = 30004,\n TOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n TOURNAMENT_USER_NOT_REGISTERED = 30006,\n TOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n TOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\n SCHEDULED = 1,\n SNG = 2,\n TEST = 3,\n}\n","export enum LeaderBoardPeriodType {\n DAILY = 1,\n WEEKLY = 2,\n MONTHLY = 3\n}\n","import { IntUtils } from \"src/IntUtils\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { TLevel } from \"../WSAPI/WSAPITypes\";\nimport { Level } from \"./Level\";\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\n levels: Level[];\n}\n\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n \n return levels?.levels.map((l => ({\n id: l.level_id,\n name: l.level_public_meta.name,\n description: l.level_public_meta.description,\n image: l.level_public_meta.image_url,\n required_points: l.required_points,\n visibility_points: parseInt(l.level_public_meta.visibility_points as any),\n required_level_counter_1: l.required_level_counter_1,\n required_level_counter_2: l.required_level_counter_2,\n custom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n })));\n}","import { ClassId } from \"../Base/ClassId\";\nimport { CoreUtils } from \"../Core\";\nimport { MiniGamePrizeTypeName, SAWDoSpinResponse, SAWSpinErrorCode, SAWSpinsCountPush } from \"../MiniGames\";\nimport { ECacheContext, OCache } from \"../OCache\";\nimport { SmarticoAPI } from \"../SmarticoAPI\";\nimport { InboxMarkMessageAction, LeaderBoardDetailsT, TAchCategory, TBuyStoreItemResult, TGetTranslations, TInboxMessage, TInboxMessageBody, TLevel, TMiniGamePlayResult, TMiniGameTemplate, TMissionOptInResult, TMissionOrBadge, TStoreCategory, TStoreItem, TTournament, TTournamentDetailed, TTournamentRegistrationResult, TUserProfile } from \"./WSAPITypes\";\nimport { LeaderBoardPeriodType } from \"src/Leaderboard\";\n \n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n /** @hidden */\nenum onUpdateContextKey {\n Saw = 'saw',\n Missions = 'missions',\n TournamentList = 'tournamentList',\n InboxMessages = 'inboxMessages',\n Badges = 'badges',\n Levels = 'levels',\n StoreItems = 'storeItems',\n StoreCategories = 'storeCategories',\n AchCategories = 'achCategories',\n LeaderBoards = 'leaderBoards',\n}\n\n\n/** @group General API */\nexport class WSAPI {\n\n private onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n\n /** @private */\n constructor(private api: SmarticoAPI) {\n const on = this.api.tracker.on;\n on(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n on(ClassId.SAW_SHOW_SPIN_PUSH, () => this.updateOnAddSpin());\n on(ClassId.SAW_DO_SPIN_RESPONSE, (data: SAWDoSpinResponse) => on(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => this.updateOnPrizeWin(data)));\n on(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissionsOnOptIn());\n on(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournamentsOnRegistration());\n on(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n on(ClassId.LOGOUT_RESPONSE, () => OCache.clear(ECacheContext.WSAPI));\n on(ClassId.IDENTIFY_RESPONSE, () => OCache.clear(ECacheContext.WSAPI));\n }\n\n /** Returns information about current user */\n public getUserProfile(): TUserProfile {\n if (this.api.tracker) {\n const o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n return o;\n } else {\n throw new Error('Tracker is not initialized, cannot getUserProfile');\n }\n }\n\n /** Returns all the levels available the current user */\n public async getLevels(): Promise<TLevel[]> {\n return OCache.use(onUpdateContextKey.Levels, ECacheContext.WSAPI, () => this.api.levelsGetT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the missions available the current user.\n * The returned missions is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it. */\n /**\n * @param params\n */\n public async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Missions, ECacheContext.WSAPI, () => this.api.missionsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the badges available the current user */\n public async getBadges(): Promise<TMissionOrBadge[]> {\n return OCache.use(onUpdateContextKey.Badges, ECacheContext.WSAPI, () => this.api.badgetsGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Returns all the store items available the current user */\n public async getStoreItems(): Promise<TStoreItem[]> {\n return OCache.use(onUpdateContextKey.StoreItems, ECacheContext.WSAPI, () => this.api.storeGetItemsT(null), CACHE_DATA_SEC);\n }\n\n /** Buy the specific shop item by item_id. Returns the err_code.*/\n public async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n const r = await this.api.buyStoreItem(null, item_id);\n\n const o: TBuyStoreItemResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns store categories */\n public async getStoreCategories(): Promise<TStoreCategory[]> {\n return OCache.use(onUpdateContextKey.StoreCategories, ECacheContext.WSAPI, () => this.api.storeGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /** Returns ach categories */\n public async getAchCategories(): Promise<TAchCategory[]> {\n return OCache.use(onUpdateContextKey.AchCategories, ECacheContext.WSAPI, () => this.api.achGetCategoriesT(null), CACHE_DATA_SEC);\n }\n\n /** Returns the list of mini-games available for user \n * The returned list of mini-games is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getMiniGames with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called on available spin count change, if mini-game has increasing jackpot per spin or wined prize is spin/jackpot and if max count of the available user spin equal one, also if the spins were issued to the user manually in the BO. Updated templates will be passed to onUpdate callback. */\n /**\n /**\n * @param params\n */\n public async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<TMiniGameTemplate[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n }\n\n /** Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code */\n public async playMiniGame(template_id: number): Promise<TMiniGamePlayResult> {\n const r = await this.api.sawSpinRequest(null, template_id);\n this.api.doAcknowledgeRequest(null, r.request_id)\n\n const o: TMiniGamePlayResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n prize_id: r.saw_prize_id,\n }\n\n return o;\n }\n\n /** Requests an opt-in for the specified mission_id. Returns the err_code. */\n public async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult>{\n const r = await this.api.missionOptIn(null, mission_id);\n\n const o: TMissionOptInResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns all the active instances of tournaments \n * The returned list is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getTournamentsList with a new onUpdate callback, the old one will be overwritten by the new one. \n * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.*/\n /**\n * @param params\n */\n public async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n }\n\n return OCache.use(onUpdateContextKey.TournamentList, ECacheContext.WSAPI, () => this.api.tournamentsGetLobbyT(null), CACHE_DATA_SEC);\n }\n\n /** Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players */\n public async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n return this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n }\n\n /** Requests registration for the specified tournament instance. Returns the err_code. */\n public async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult>{\n const r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n const o: TTournamentRegistrationResult = {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n\n return o;\n }\n\n /** Returns the leaderboard for the current type (default is Daily). If getPreviousPeriod is passed as true, a leaderboard for the previous period for the current type will be returned.\n For example, if the type is Weekly and getPreviousPeriod is true, a leaderboard for the previous week will be returned.\n */\n public async getLeaderBoard(periodType: LeaderBoardPeriodType, getPreviousPeriod?: boolean): Promise<LeaderBoardDetailsT> {\n return OCache.use(onUpdateContextKey.LeaderBoards, ECacheContext.WSAPI, () => this.api.leaderboardsGetT(null, periodType, getPreviousPeriod), CACHE_DATA_SEC);\n }\n\n /** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched. \n * The maximum number of messages per request is limited to 20. An indicator \"onlyFavorite\" can be passed to get only messages marked as favorites. \n * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n * This functions return list of messages without the body of the message. \n * To get the body of the message you need to call getInboxMessageBody function and pass the message guid contained in each message of this request.\n * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n * The \"onUpdate\" callback will be triggered when the user receives a new message. It will provide an updated list of messages, ranging from 0 to 20, to the onUpdate callback function. */\n /**\n * @param params\n */\n public async getInboxMessages({ from, to, onlyFavorite, onUpdate }: { from?: number, to?: number, onlyFavorite?: boolean, onUpdate?: (data: TInboxMessage[]) => void } = {}): Promise<TInboxMessage[]> { \n if (onUpdate) {\n this.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n }\n\n return await this.api.getInboxMessagesT(null, from, to, onlyFavorite);\n }\n\n /** Returns the message body of the specified message guid. */\n public async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n return await this.api.getInboxMessageBodyT(messageGuid);\n }\n\n /** Requests to mark inbox message with specified guid as read */\n public async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.markInboxMessageRead(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to mark all inbox messages as read */\n public async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n const r = await this.api.markAllInboxMessageRead(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove. */\n public async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n const r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to delete inbox message */\n public async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteInboxMessage(null, messageGuid);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests to delete all inbox messages */\n public async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n const r = await this.api.deleteAllInboxMessages(null);\n\n return {\n err_code: r.errCode,\n err_message: r.errMsg,\n }\n }\n\n /** Requests translations for the given language. Returns the object including translation key/translation value pairs. All possible translation keys defined in the back office. */\n public async getTranslations(lang_code: string): Promise<TGetTranslations> {\n const r = await this.api.getTranslationsT(null, lang_code, []);\n\n return {\n translations: r.translations\n }\n }\n\n private async updateOnSpin(data: SAWSpinsCountPush) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const index = templates.findIndex(t => t.id === data.saw_template_id);\n templates[index].spin_count = data.spin_count;\n this.updateEntity(onUpdateContextKey.Saw, templates)\n }\n\n private async updateOnAddSpin() {\n const payload = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, payload)\n }\n\n private async updateOnPrizeWin(data: SAWDoSpinResponse) {\n if (data.errCode === SAWSpinErrorCode.SAW_OK) {\n const templates: TMiniGameTemplate[] = await OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n const template: TMiniGameTemplate = templates.find(t => t.prizes.find(p => p.id === data.saw_prize_id));\n const prizeType = template.prizes.find(p => p.id === data.saw_prize_id)?.prize_type;\n\n if (\n template.jackpot_add_on_attempt ||\n template.spin_count === 1 ||\n prizeType === MiniGamePrizeTypeName.JACKPOT ||\n prizeType === MiniGamePrizeTypeName.SPIN\n ) {\n const updatedTemplates = await this.api.sawGetTemplatesT(null);\n this.updateEntity(onUpdateContextKey.Saw, updatedTemplates)\n }\n }\n }\n\n private async updateMissionsOnOptIn() {\n const payload = await this.api.missionsGetItemsT(null);\n this.updateEntity(onUpdateContextKey.Missions, payload)\n }\n\n private async updateTournamentsOnRegistration() {\n const payload = await this.api.tournamentsGetLobbyT(null);\n this.updateEntity(onUpdateContextKey.TournamentList, payload)\n }\n\n private async updateInboxMessages() {\n const payload = await this.api.getInboxMessagesT(null);\n this.updateEntity(onUpdateContextKey.InboxMessages, payload)\n }\n\n private async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n OCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n const onUpdate = this.onUpdateCallback.get(contextKey);\n if (onUpdate) {\n onUpdate(payload);\n }\n }\n}","import { LeaderBoardDetailsT, LeaderBoardUserT, LeaderBoardsRewardsT } from \"src/WSAPI/WSAPITypes\";\nimport { LeaderBoardDetails } from \"./LeaderBoardDetails\";\nimport { LeaderBoardPeriodType } from \"./LeaderBoardPeriodType\";\nimport { LeaderBoardPosition } from \"./LeaderBoardPosition\";\n\nconst pointsRewardTransform = (reward_points: number[]): LeaderBoardsRewardsT[] => {\n if (reward_points && reward_points.length) {\n return reward_points.map((r, i) => ({ place: i + 1, points: r }));\n }\n\n return null;\n}\n\nconst getLeaderBoardPlayerTransformed = (user: LeaderBoardPosition, isMe?: boolean): LeaderBoardUserT => {\n if (user) {\n const x: LeaderBoardUserT= {\n public_username: user?.public_username || user.user_alt_name,\n avatar_url: user.avatar_url,\n position: user.position_in_board,\n points: user.points_accumulated,\n is_me: user.is_me,\n }\n \n if (isMe) {\n delete x.is_me;\n }\n\n return x;\n }\n\n return null;\n}\n\nexport const getLeaderBoardTransform = (board: LeaderBoardDetails): LeaderBoardDetailsT => {\n if (board) {\n const x: LeaderBoardDetailsT = {\n board_id: board.board_id,\n name: board.board_public_meta.name,\n description: board.board_public_meta.description,\n rules: board.board_public_meta.rules,\n period_type_id: board.period_type_id,\n rewards: pointsRewardTransform(board.reward_points),\n users: board.positions.map(p => getLeaderBoardPlayerTransformed(p)),\n me: getLeaderBoardPlayerTransformed(board.userPosition, true),\n }\n\n return x;\n }\n\n return null;\n}","import { ClassId } from \"./Base/ClassId\";\nimport { ProtocolRequest } from './Base/ProtocolRequest';\nimport { ProtocolResponse } from './Base/ProtocolResponse';\nimport { SAWGetTemplatesResponse } from './MiniGames/SAWGetTemplatesResponse';\nimport { SAWGetTemplatesRequest } from './MiniGames/SAWGetTemplatesRequest';\nimport { IntUtils } from './IntUtils';\nimport { ILogger } from './ILogger';\nimport { SAWDoAknowledgeRequest, SAWDoAknowledgeResponse, SAWDoSpinRequest, SAWDoSpinResponse, SAWSpinErrorCode, SAWTemplatesTransform } from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport { CoreUtils, GetTranslationsRequest, GetTranslationsResponse, PublicLabelSettings, ResponseIdentify, TranslationArea } from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport { GetInboxMessagesRequest, GetInboxMessagesResponse, InboxMessageBody, InboxMessageBodyTransform, InboxMessagesTransform, MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse, MarkInboxMessageReadRequest, MarkInboxMessageReadResponse, MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse } from './Inbox';\nimport { BuyStoreItemRequest, BuyStoreItemResponse, GetCategoriesStoreResponse, GetStoreItemsResponse, StoreCategoryTransform, StoreItemTransform } from './Store';\nimport { AchCategoryTransform, AchievementOptinRequest, AchievementOptinResponse, AchievementType, GetAchCategoriesResponse, GetAchievementMapRequest, GetAchievementMapResponse, UserAchievementTransform } from './Missions';\nimport { GetTournamentInfoRequest, GetTournamentInfoResponse, GetTournamentsRequest, GetTournamentsResponse, TournamentItemsTransform, TournamentRegisterRequest, TournamentRegisterResponse, tournamentInfoItemTransform } from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from \"./Leaderboard\";\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from \"./Level\";\nimport { WSAPI } from \"./WSAPI/WSAPI\";\nimport { TInboxMessage, TInboxMessageBody, TLevel, TMiniGameTemplate, TMissionOrBadge, TStoreCategory, TAchCategory, TStoreItem, TTournament, TTournamentDetailed, LeaderBoardDetailsT } from \"./WSAPI/WSAPITypes\";\nimport { getLeaderBoardTransform } from \"./Leaderboard/LeaderBoards\";\n\nconst PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';\nconst C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';\nconst AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';\nconst DEFAULT_LANG_EN = \"EN\";\n\ninterface Tracker {\n label_api_key: string;\n userPublicProps: any;\n on: (callBackKey: ClassId, func: (data: any) => void) => void;\n getLabelSetting: (key: PublicLabelSettings) => any;\n}\ninterface IOptions {\n logger?: ILogger;\n logCIDs?: ClassId[];\n logHTTPTiming?: boolean;\n tracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\n\nclass SmarticoAPI {\n\n private publicUrl: string;\n private wsUrl: string;\n private inboxCdnUrl: string;\n private partnerUrl: string;\n public avatarDomain: string;\n\n private logger: ILogger;\n private logCIDs: ClassId[];\n private logHTTPTiming: boolean;\n public tracker?: Tracker;\n\n public constructor(private label_api_key: string, private brand_api_key: string, private messageSender: MessageSender, options: IOptions = {}) {\n\n this.logger = options.logger || (console as any);\n\n if (this.logger.always === undefined) {\n this.logger.always = this.logger.info;\n }\n\n this.logCIDs = options.logCIDs || [];\n this.logHTTPTiming = options.logHTTPTiming || false;\n this.tracker = options.tracker;\n\n this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\n }\n\n public static getEnvDnsSuffix(label_api_key: string): string {\n\n let ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n \n if (ENV_ID === '1' || ENV_ID === '2') {\n ENV_ID = ''\n }\n return ENV_ID;\n }\n\n public static getEnvId(label_api_key: string): number {\n\n return label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n \n }\n\n public static getCleanLabelApiKey(label_api_key: string): string {\n return label_api_key.substring(0, 36);\n }\n\n public static getPublicUrl(label_api_key: string): string {\n return PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n }\n\n public static getPublicWsUrl(label_api_key: string): string {\n return C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n public static getAvatarUrl(label_api_key: string): string {\n return AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key)); \n } \n\n private async send<T>(message: any, expectCID?: ClassId): Promise<T> {\n\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('REQ', message)\n }\n\n\n let result: any;\n \n try {\n const timeStart = new Date().getTime();\n result = await this.messageSender(message, this.publicUrl, expectCID);\n const timeEnd = new Date().getTime();\n\n if (this.logHTTPTiming) {\n this.logger.always('HTTP time, ms:' + (timeEnd - timeStart))\n }\n\n } catch (e) {\n this.logger.error(`Failed to make request to smartico channel. ${e.message}`, { url: this.publicUrl, request: message, error: e.message });\n throw(new Error(`Failed to make request to smartico channel. ${e.message}`));\n }\n\n if (this.logCIDs.includes(message.cid)) {\n this.logger.info('RES', result)\n }\n\n if (expectCID) {\n if (Array.isArray(result)) { \n for (const str of result as string[]) {\n const obj: ProtocolResponse = JSON.parse(str);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n }\n if (obj.cid === expectCID) {\n return obj as any;\n }\n }\n this.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, { request: message, response: result });\n } else {\n return result;\n } \n } else {\n if (Array.isArray(result)) { \n if (result.length === 1) {\n const obj = JSON.parse(result[0]);\n if (this.logCIDs.includes(obj.cid)) {\n this.logger.info('RES', result)\n } \n return obj;\n } else {\n this.logger.error('Expected one response, but got array', { request: message, response: result });\n }\n }\n return result;\n }\n }\n\n private buildMessage<TRequest,TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\n const message: ProtocolRequest = {\n api_key: this.label_api_key,\n brand_key: this.brand_api_key,\n ext_user_id: user_ext_id,\n cid,\n uuid: IntUtils.uuid(),\n ts: new Date().getTime(),\n ...payload\n };\n\n if (message.ext_user_id === undefined || message.ext_user_id === null) {\n delete message.ext_user_id;\n }\n\n if (message.brand_key === undefined || message.brand_key === null) {\n delete message.brand_key;\n } \n\n return message as any\n }\n\n public async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n const eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n eventType,\n payload\n });\n\n const eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n return eventResponse;\n }\n\n public async coreGetTranslations(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n\n if (lang_code === undefined || lang_code === null || lang_code.trim && lang_code.trim() === '') {\n lang_code = DEFAULT_LANG_EN;\n } \n\n const response = await OCache.use<GetTranslationsResponse>(`${lang_code}-${this.label_api_key}-${this.brand_api_key}`, ECacheContext.Translations, async () => {\n\n const tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code: DEFAULT_LANG_EN,\n hash_code: 0,\n areas\n });\n\n const trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n if (lang_code !== DEFAULT_LANG_EN) {\n const trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {\n lang_code,\n hash_code: 0,\n areas\n }); \n\n const trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n \n Object.keys(trUser?.translations ?? {}).forEach( k => {\n trBase.translations[k] = trUser.translations[k];\n })\n }\n\n return trBase;\n\n }, cacheSec );\n\n return response;\n } \n\n public async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n \n return OCache.use<GetLabelInfoResponse>(`${this.label_api_key} - ${this.brand_api_key}`, ECacheContext.LabelInfo, async () => {\n\n const message = this.buildMessage<GetLabelInfoResponse, GetLabelInfoRequest>(user_ext_id, ClassId.INIT);\n\n return this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE)\n \n }, cacheSec);\n \n } \n\n public async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\n const message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n request_id: IntUtils.uuid() // AA: do we need request_id?\n });\n\n const r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n r.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n return r;\n } \n\n public async coreChangeUsername(user_ext_id: string, public_username_custom: string): Promise<{ public_username_custom: string }> {\n \n const message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n public_username_custom\n });\n \n return await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n }\n\n public async sawGetTemplates(user_ext_id: string, lang?: string, is_visitor_mode: boolean = false): Promise<SAWGetTemplatesResponse> {\n\n const message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(user_ext_id, ClassId.SAW_GET_SPINS_REQUEST, lang ? { force_language: lang, is_visitor_mode } : { is_visitor_mode });\n\n const response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE);\n\n if (response && response.templates) {\n response.templates.forEach(t => {\n \n if (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n t.saw_template_ui_definition.name = IntUtils.replaceAll(t.saw_template_ui_definition.name, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.description = IntUtils.replaceAll(t.saw_template_ui_definition.description, '{{jackpot}}', jackpotValue);\n t.saw_template_ui_definition.promo_text = IntUtils.replaceAll(t.saw_template_ui_definition.promo_text, '{{jackpot}}', jackpotValue);\n t.prizes.forEach(p => {\n p.saw_prize_ui_definition.name = IntUtils.replaceAll(p.saw_prize_ui_definition.name, '{{jackpot}}', jackpotValue);\n p.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(p.saw_prize_ui_definition.aknowledge_message, '{{jackpot}}', jackpotValue);\n })\n }\n });\n }\n\n return response;\n }\n\n public async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n return SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n }\n\n public async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse>{\n const message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(user_ext_id, ClassId.SAW_AKNOWLEDGE_REQUEST, {\n request_id\n });\n\n return await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n }\n\n public async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n if (!saw_template_id) {\n throw new Error('Missing template id');\n }\n\n const request_id = IntUtils.uuid();\n\n const message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n saw_template_id,\n request_id\n });\n\n const spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n // to simulate fail\n // response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n const status: string = {\n [SAWSpinErrorCode.SAW_OK]: 'OK',\n [SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n [SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n [SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n [SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n }[spinAttemptResponse.errCode] || 'OTHER';\n\n await this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n saw_template_id,\n status,\n round_id,\n });\n\n return {...spinAttemptResponse, request_id };\n }\n\n public async missionOptIn(user_ext_id: string, mission_id: number) {\n if (!mission_id) {\n throw new Error('Missing mission id');\n }\n const message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(user_ext_id, ClassId.MISSION_OPTIN_REQUEST, {\n achievementId: mission_id\n });\n\n const res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n return res;\n }\n\n public async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(user_ext_id, ClassId.TOURNAMENT_REGISTER_REQUEST, {\n tournamentInstanceId\n });\n\n const res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n return res;\n }\n\n public async buyStoreItem(user_ext_id: string, itemId: number) {\n if (!itemId) {\n throw new Error('Missing store item id');\n }\n const message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n itemId\n });\n\n const res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n return res;\n }\n\n public async inboxGetMessages(user_ext_id: string, limit: number = 10, offset: number = 0): Promise<GetInboxMessagesResponse> {\n\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset\n });\n\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\n }\n\n public async storeGetItems(user_ext_id: string): Promise<GetStoreItemsResponse> {\n\n const message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n return await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE);\n }\n\n public async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n return StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n }\n\n public async storeGetCategories(user_ext_id: string): Promise<GetCategoriesStoreResponse> {\n\n const message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n return await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE);\n }\n\n public async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n return StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n } \n\n public async missionsGetItems(user_ext_id: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);\n // we need to clone response to avoid changing original object,for cases when its called together with badgesGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Mission);\n }\n return responseClone;\n }\n\n public async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n }\n\n public async achGetCategories(user_ext_id: string): Promise<GetAchCategoriesResponse> {\n\n const message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n return await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE);\n }\n\n public async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n return AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n } \n\n public async badgetsGetItems(user_ext_id: string): Promise<GetAchievementMapResponse> {\n\n const message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);\n const response = await this.send<GetAchievementMapResponse>(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);\n // we need to clone response to avoid changing original object,for cases when its called together with missionsGetItems (e.g. in Promise.all)\n const responseClone = { ...response };\n\n if (responseClone.achievements) { \n responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Badge);\n }\n return responseClone;\n } \n\n public async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n return UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n } \n\n\n public async tournamentsGetLobby(user_ext_id: string): Promise<GetTournamentsResponse> {\n\n const message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);\n return await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);\n\n }\n\n public async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n return TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n }\n\n public async tournamentsGetInfo(user_ext_id: string, tournamentInstanceId: number): Promise<GetTournamentInfoResponse> {\n\n const message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, \n {\n tournamentInstanceId\n }\n );\n const response = await this.send<GetTournamentInfoResponse>(message, ClassId.GET_TOURNAMENT_INFO_RESPONSE);\n \n if (response.userPosition?.avatar_id) {\n response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.tournamentInfo.players?.length) {\n response.tournamentInfo.players.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n }\n\n return response;\n\n }\n\n public async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n if (!tournamentInstanceId) {\n throw new Error('Missing tournament instance id');\n }\n const response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n return tournamentInfoItemTransform(response);\n } \n\n public async leaderboardGet(user_ext_id: string, period_type_id?: LeaderBoardPeriodType, prevPeriod: boolean = false): Promise<LeaderBoardDetails> {\n\n const message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(user_ext_id, ClassId.GET_LEADERS_BOARD_REQUEST, \n {\n period_type_id,\n snapshot_offset: prevPeriod ? 1 : 0,\n include_users: true\n }\n );\n\n const response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE);\n\n const boardKey = Object.keys(response.map).find( k => period_type_id === undefined || k === period_type_id?.toString());\n\n if (boardKey === undefined) {\n return undefined;\n }\n\n if (response.map[boardKey]?.userPosition?.avatar_id) {\n response.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(response.map[boardKey].userPosition.avatar_id, this.avatarDomain);\n }\n\n if (response.map[boardKey]?.positions?.length) {\n response.map[boardKey].positions.forEach(p => {\n p.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n });\n \n }\n \n return response.map[boardKey];\n\n }\n\n public async leaderboardsGetT(user_ext_id: string, period_type_id: LeaderBoardPeriodType = LeaderBoardPeriodType.DAILY, prevPeriod: boolean = false): Promise<LeaderBoardDetailsT> { \n return getLeaderBoardTransform(await this.leaderboardGet(user_ext_id, period_type_id, prevPeriod));\n }\n\n public async levelsGet(user_ext_id: string): Promise<GetLevelMapResponse> {\n const message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n return await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE);\n }\n\n public async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n }\n\n public async getTranslationsT(user_ext_id: string, lang_code: string, areas: TranslationArea[], cacheSec: number = 60): Promise<GetTranslationsResponse> {\n return await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n }\n\n public async getInboxMessages(user_ext_id: string, limit: number = 20, offset: number = 0, starred_only: boolean): Promise<GetInboxMessagesResponse> {\n const message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(user_ext_id, ClassId.GET_INBOX_MESSAGES_REQUEST, {\n limit,\n offset,\n starred_only\n });\n return await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n }\n\n public async getInboxMessagesT(user_ext_id: string, from: number = 0, to: number = 20, favoriteOnly: boolean = false): Promise<TInboxMessage[]> {\n const limit = (to - from) > 20 ? 20 : to - from;\n const offset = from;\n\n return InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly)).log);\n }\n\n public async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\n const getMessageBody = async (messageGuid: string): Promise<InboxMessageBody>=> {\n const inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n try {\n const url = `${inboxCdnUrl}${messageGuid}.json`;\n \n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n }\n });\n const data = await response.json();\n return data || {};\n } catch (error) {\n this.logger.error('Error fetching inbox message body:', error);\n return null;\n }\n };\n\n return await getMessageBody(messageGuid)\n }\n\n public async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n const message = await this.getInboxMessageBody(messageGuid);\n return InboxMessageBodyTransform(message);\n }\n\n public async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n engagement_uid: messageGuid\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n const message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(user_ext_id, ClassId.MARK_INBOX_READ_REQUEST, {\n all_read: true\n });\n\n return await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n }\n\n public async markUnmarkInboxMessageAsFavorite(user_ext_id: string, messageGuid: string, mark: boolean): Promise<MarkInboxMessageStarredResponse> {\n const message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(user_ext_id, ClassId.MARK_INBOX_STARRED_REQUEST, {\n engagement_uid: messageGuid,\n is_starred: mark\n });\n\n return await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n }\n\n public async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n engagement_uid: messageGuid,\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n public async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n const message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(user_ext_id, ClassId.MARK_INBOX_DELETED_REQUEST, {\n all_deleted: true\n });\n\n return await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n }\n\n \n public getWSCalls(): WSAPI {\n return new WSAPI(this);\n }\n\n}\n\nexport { SmarticoAPI, MessageSender }","import { TSMap } from \"typescript-map\";\n\nclass CookieStore {\n private static cookieStore = new TSMap<string, string[]>()\n\n public static get(key: string): string[] | undefined {\n \n return CookieStore.cookieStore.get(key);\n }\n\n public static set(key: string, value: string[]) {\n const v = value.map(v => v.split(';')[0]);\n CookieStore.cookieStore.set(key, v);\n }\n}\n\nexport { CookieStore }"],"names":["ClassId","IntUtils","uuid","a","b","Math","random","toString","isNotNull","val","isNotEmpty","length","replaceAll","value","regex","replacement","replace","RegExp","escapeRegExp","v","JsonOrText","str","includes","JSON","parse","e","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Unknown","SAWUtils","canPlay","t","pointsBalance","undefined","saw_buyin_type_id","spin_count","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","UNKNOWN","SAWTemplatesTransform","items","map","r","x","id","saw_template_id","name","saw_template_ui_definition","description","thumbnail","saw_skin_ui_definition","skin_folder","saw_skin_key","over_limit_message","no_attempts_message","jackpot_symbol","saw_game_type","saw_game_type_id","saw_buyin_type","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","next_available_spin_ts","prizes","p","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","icon","position","aknowledge_message","acknowledge_dp","acknowledge_action_title","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","NodeCache","constructor","ttlChecker","setInterval","now","Date","getTime","key","cache","hasOwnProperty","o","ttl","get","set","ttlSeconds","flushAll","ECacheContext","OCache","init","cacheContext","oKey","stringify","deepClone","use","f","clear","ActivityTypeLimited","CoreUtils","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","BuyStoreItemErrorCode","StoreCategoryTransform","publicMeta","order","StoreItemType","StoreItemTransform","filter","itemPublicMeta","price","image_url","ribbon","custom_label_tag","label_tag","limit_message","priority","related_item_ids","related_items","hint_text","Bonus","Manual","itemTypeId","can_buy","canBuy","category_ids","categoryIds","pool","shopPool","AchievementStatus","AchievementTaskType","AchievementType","UserAchievementTransform","ach_id","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","isLocked","is_requires_optin","requiresOptin","is_opted_in","isOptedIn","time_limit_ms","dt_start","start_date_ts","reward","progress","ach_type_id","Mission","cta_action","cta_text","custom_section_id","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","task_id","task_public_meta","points_reward","userProgress","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","ach_categories","ScheduledMissionType","AchCategoryTransform","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","registrationCount","is_user_registered","isUserRegistered","players_min_count","playersMinCount","players_max_count","playersMaxCount","registration_status","tournamentRegistrationStatus","registration_type","registrationType","registration_cost_points","buyInAmount","duration_ms","durationMs","is_active","TournamentUtils","isActive","is_can_register","isCanRegister","is_cancelled","isCancelled","is_finished","isFinished","is_in_progress","isInProgress","is_upcoming","isUpcoming","prizeStructure","getPrizeTransformed","tournamentPlayer","me","getPlayerTransformed","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","tournament","tournamentInstanceStatus","allowLateRegistration","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","prize","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","LeaderBoardPeriodType","GetLevelMapResponseTransform","levels","l","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","CACHE_DATA_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","on","tracker","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","updateOnAddSpin","SAW_DO_SPIN_RESPONSE","SAW_AKNOWLEDGE_RESPONSE","updateOnPrizeWin","MISSION_OPTIN_RESPONSE","updateMissionsOnOptIn","TOURNAMENT_REGISTER_RESPONSE","updateTournamentsOnRegistration","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","getUserProfile","Object","assign","userPublicProps","Error","getLevels","Levels","levelsGetT","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","Badges","badgetsGetItemsT","getStoreItems","StoreItems","storeGetItemsT","buyStoreItem","item_id","err_code","errCode","err_message","errMsg","getStoreCategories","StoreCategories","storeGetCategoriesT","getAchCategories","AchCategories","achGetCategoriesT","getMiniGames","Saw","sawGetTemplatesT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","prize_id","requestMissionOptIn","mission_id","missionOptIn","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getLeaderBoard","periodType","getPreviousPeriod","LeaderBoards","leaderboardsGetT","getInboxMessages","from","to","onlyFavorite","InboxMessages","getInboxMessagesT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","payload","SAW_OK","template","find","prizeType","updatedTemplates","contextKey","pointsRewardTransform","reward_points","i","place","points","getLeaderBoardPlayerTransformed","user","user_alt_name","position_in_board","points_accumulated","getLeaderBoardTransform","board","board_id","board_public_meta","rules","period_type_id","rewards","users","positions","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","info","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","getEnvId","send","message","expectCID","cid","result","timeStart","timeEnd","url","request","Array","isArray","obj","buildMessage","user_ext_id","api_key","brand_key","ext_user_id","ts","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","trUserRQ","trUser","keys","forEach","k","coreIdentifyLabel","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","sawGetTemplates","lang","is_visitor_mode","SAW_GET_SPINS_REQUEST","force_language","SAW_GET_SPINS_RESPONSE","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","MISSION_OPTIN_REQUEST","achievementId","res","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","BUY_SHOP_ITEM_RESPONSE","inboxGetMessages","limit","offset","GET_INBOX_MESSAGES_REQUEST","GET_INBOX_MESSAGES_RESPONSE","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","responseClone","achievements","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","prevPeriod","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","DAILY","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","starred_only","favoriteOnly","log","getMessageBody","getLabelSetting","INBOX_PUBLIC_CDN","fetch","method","headers","json","MARK_INBOX_READ_REQUEST","MARK_INBOX_READ_RESPONSE","all_read","MARK_INBOX_STARRED_REQUEST","MARK_INBOX_STARRED_RESPONSE","MARK_INBOX_DELETED_REQUEST","MARK_INBOX_DELETED_RESPONSE","all_deleted","getWSCalls","CookieStore","cookieStore","split","TSMap"],"mappings":"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"}
|