@smartico/public-api 0.0.310 → 0.0.311
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/Analytics/AnalyticStoreData.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +2 -2
- package/dist/index.modern.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Analytics/AnalyticStoreData.ts +2 -2
- package/src/Missions/MissionsUtils.ts +1 -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/MiniGames/SAWWinningHistoryResponse.ts","../src/MiniGames/SAWGameLayout.ts","../src/MiniGames/PrizeModifiers.ts","../src/MiniGames/SAWWheelLayout.ts","../src/MiniGames/SAWGameDifficulty.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/Inbox/OpenLinksType.ts","../src/Inbox/InboxCategories.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemPurchaseType.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Store/StoreItemPurchased.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/AchievementAvailabilityStatus.ts","../src/Missions/MissionsUtils.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Missions/MissionCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Leaderboard/LeaderBoardPeriodType.ts","../src/Leaderboard/LeaderBoards.ts","../src/Level/GetLevelMapResponse.ts","../src/Raffle/GetRafflesResponse.ts","../src/Raffle/GetDrawRunResponse.ts","../src/Raffle/RaffleDraw.ts","../src/Raffle/GetRaffleDrawRunsHistoryResponse.ts","../src/Raffle/RaffleClaimPrizeResponse.ts","../src/WSAPI/WSAPI.ts","../src/CustomSections/AchCustomSection.ts","../src/CustomSections/UICustomSection.ts","../src/Bonuses/Bonus.ts","../src/Bonuses/BonusStatus.ts","../src/Jackpots/GetJackpotWinnersResponse.ts","../src/Jackpots/GetJackpotEligibleGamesResponse.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts","../src/Analytics/AnalyticStoreData.ts","../src/Quiz/SportTypes.ts","../src/Quiz/MarketsType.ts","../src/Quiz/MarketsAnswers.ts","../src/Quiz/MarketsInfo.ts","../src/Quiz/MarketsPerSport.ts","../src/Jackpots/JackpotContributionType.ts","../src/Jackpots/JackpotPot.ts","../src/Jackpots/JackpotType.ts"],"sourcesContent":["export enum ClassId {\n\tPING = 1,\n\tPONG = 2,\n\n\tINIT = 3,\n\tINIT_RESPONSE = 4,\n\tIDENTIFY = 5,\n\tIDENTIFY_RESPONSE = 6,\n\tLOGIN = 7,\n\tLOGOUT = 8,\n\tEVENT = 9,\n\tEVENT_RESPONSE = 10,\n\n\tLOGIN_RESPONSE = 11,\n\tLOGOUT_RESPONSE = 12,\n\n\tGET_TRANSLATIONS_REQUEST = 13,\n\tGET_TRANSLATIONS_RESPONSE = 14,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tCLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n\tCLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n\tCLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n\tCLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n\tCLIENT_EXECUTE_JS_EVENT = 107,\n\tCLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n\tCLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n\tCLIENT_TRACK_ACTIVITY_REQUEST = 155,\n\tCLIENT_SET_AVATAR_REQUEST = 157,\n\tCLIENT_SET_AVATAR_RESPONSE = 158,\n\n\tCLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n\tCLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n\tCHECK_SEGMENT_MATCH_REQUEST = 161,\n\tCHECK_SEGMENT_MATCH_RESPONSE = 162,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\t// 500-1000 - Achievements\n\tGET_LEVEL_MAP_REQUEST = 500,\n\tGET_LEVEL_MAP_RESPONSE = 501,\n\tGET_ACHIEVEMENT_MAP_REQUEST = 502,\n\tGET_ACHIEVEMENT_MAP_RESPONSE = 503,\n\tRELOAD_ACHIEVEMENTS_EVENT = 504,\n\tGET_LEADERS_BOARD_REQUEST = 505,\n\tGET_LEADERS_BOARD_RESPONSE = 506,\n\tGET_SHOP_ITEMS_REQUEST = 509,\n\tGET_SHOP_ITEMS_RESPONSE = 510,\n\tBUY_SHOP_ITEM_REQUEST = 511,\n\tBUY_SHOP_ITEM_RESPONSE = 512,\n\tGET_INBOX_MESSAGES_REQUEST = 513,\n\tGET_INBOX_MESSAGES_RESPONSE = 514,\n\tGET_SHOP_CATEGORIES_REQUEST = 515,\n\tGET_SHOP_CATEGORIES_RESPONSE = 516,\n\tGET_TOURNAMENT_LOBBY_REQUEST = 517,\n\tGET_TOURNAMENT_LOBBY_RESPONSE = 518,\n\tGET_TOURNAMENT_INFO_REQUEST = 519,\n\tGET_TOURNAMENT_INFO_RESPONSE = 520,\n\tTOURNAMENT_REGISTER_REQUEST = 521,\n\tTOURNAMENT_REGISTER_RESPONSE = 522,\n\tGET_CUSTOM_SECTIONS_REQUEST = 523,\n\tGET_CUSTOM_SECTIONS_RESPONSE = 524,\n\tMISSION_OPTIN_REQUEST = 525,\n\tMISSION_OPTIN_RESPONSE = 526,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tGET_ACHIEVEMENT_USER_REQUEST = 527,\n\tGET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n\tMARK_INBOX_READ_REQUEST = 529,\n\tMARK_INBOX_READ_RESPONSE = 530,\n\tMARK_INBOX_STARRED_REQUEST = 531,\n\tMARK_INBOX_STARRED_RESPONSE = 532,\n\tMARK_INBOX_DELETED_REQUEST = 535,\n\tMARK_INBOX_DELETED_RESPONSE = 536,\n\n\tGET_ACH_CATEGORIES_REQUEST = 537,\n\tGET_ACH_CATEGORIES_RESPONSE = 538,\n\n\tACHIEVEMENT_CLAIM_PRIZE_REQUEST = 539,\n\tACHIEVEMENT_CLAIM_PRIZE_RESPONSE = 540,\n\n\tACH_SHOP_ITEM_HISTORY_REQUEST = 541,\n\tACH_SHOP_ITEM_HISTORY_RESPONSE = 542,\n\n\tGET_RELATED_ACH_N_TOURNAMENTS_REQUEST = 543,\n\tGET_RELATED_ACH_N_TOURNAMENTS_RESPONSE = 544,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tGET_BONUSES_REQUEST = 600,\n\tGET_BONUSES_RESPONSE = 601,\n\tCLAIM_BONUS_REQUEST = 602,\n\tCLAIM_BONUS_RESPONSE = 603,\n\n\tSAW_GET_SPINS_REQUEST = 700,\n\tSAW_GET_SPINS_RESPONSE = 701,\n\tSAW_DO_SPIN_REQUEST = 702,\n\tSAW_DO_SPIN_RESPONSE = 703,\n\tSAW_AKNOWLEDGE_REQUEST = 704,\n\tSAW_AKNOWLEDGE_RESPONSE = 705,\n\tSAW_SPINS_COUNT_PUSH = 706,\n\tSAW_SHOW_SPIN_PUSH = 707,\n\tSAW_PRIZE_DROP_WIN_PUSH = 708,\n\tSAW_PRIZE_DROP_WIN_AKNOWLEDGE_REQUEST = 709,\n\tSAW_PRIZE_DROP_WIN_AKNOWLEDGE_RESPONSE = 710,\n\tSAW_AKNOWLEDGE_SPIN_PUSH = 711,\n\tSAW_DO_SPIN_BATCH_REQUEST = 712,\n\tSAW_DO_SPIN_BATCH_RESPONSE = 713,\n\tSAW_AKNOWLEDGE_BATCH_REQUEST = 714,\n\tSAW_AKNOWLEDGE_BATCH_RESPONSE = 715,\n\n\tGET_SAW_HISTORY_REQUEST = 716,\n\tGET_SAW_HISTORY_RESPONSE = 717,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tJP_GET_JACKPOTS_REQUEST = 800,\n\tJP_GET_JACKPOTS_RESPONSE = 801,\n\n\tJP_GET_LATEST_POTS_REQUEST = 802,\n\tJP_GET_LATEST_POTS_RESPONSE = 803,\n\n\tJP_OPTIN_REQUEST = 804,\n\tJP_OPTIN_RESPONSE = 805,\n\n\tJP_OPTOUT_REQUEST = 806,\n\tJP_OPTOUT_RESPONSE = 807,\n\n\tJP_WIN_PUSH = 808,\n\tJP_GET_WINNERS_REQUEST = 809,\n\tJP_GET_WINNERS_RESPONSE = 810,\n\n\tJP_GET_ELIGIBLE_GAMES_REQUEST = 811,\n\tJP_GET_ELIGIBLE_GAMES_RESPONSE = 812,\n\n\tRAF_GET_RAFFLES_REQUEST = 902,\n\tRAF_GET_RAFFLES_RESPONSE = 903,\n\tRAF_GET_DRAW_RUN_REQUEST = 904,\n\tRAF_GET_DRAW_RUN_RESPONSE = 905,\n\tRAF_GET_DRAW_HISTORY_REQUEST = 906,\n\tRAF_GET_DRAW_HISTORY_RESPONSE = 907,\n\tRAF_CLAIM_PRIZE_REQUEST = 908,\n\tRAF_CLAIM_PRIZE_RESPONSE = 909,\n\t/*\n\tRAF_GET_TICKETS_REQUEST = 902,\n\tRAF_GET_TICKETS_RESPONSE = 903,\n\n\tRAF_CLAIM_PRIZE_REQUEST = 906,\n\t*/\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tREGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n\tREGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n\tCLIENT_DEBUG_REQUEST = 77777,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tUNSUPPORTED_COMMAND = 99999,\n}\n","class IntUtils {\n\tpublic static uuid(): string {\n\t\tlet a: any;\n\t\tlet b: any;\n\t\tfor (\n\t\t\tb = a = '';\n\t\t\ta++ < 36;\n\t\t\tb += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : '-'\n\t\t) {}\n\t\treturn b;\n\t}\n\n\tpublic static isNotNull(val: any): boolean {\n\t\treturn typeof val !== 'undefined' && val !== null;\n\t}\n\n\tpublic static isNotEmpty(val: string): boolean {\n\t\treturn typeof val !== 'undefined' && val !== null && val.length > 0;\n\t}\n\n\tpublic static replaceAll(value: string, regex: string, replacement: string | number): string {\n\t\tif (IntUtils.isNotNull(value)) {\n\t\t\treturn value.replace(new RegExp(IntUtils.escapeRegExp(regex), 'g'), replacement?.toString());\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic static escapeRegExp(v: string): string {\n\t\tif (IntUtils.isNotEmpty(v)) {\n\t\t\treturn v.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t}\n\t\treturn v;\n\t}\n\n\tpublic static JsonOrText = (str: string): any => {\n\t\tif (str && str.includes && (str.includes('{') || str.includes('['))) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(str);\n\t\t\t} catch (e) {\n\t\t\t\treturn str;\n\t\t\t}\n\t\t}\n\t\treturn str || {};\n\t};\n\n\t// public static wsTimeToEpoch = (time: string): number => {\n\t// if (time) {\n\t// return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n\t// } else {\n\t// return null\n\t// }\n\t// }\n\n\tpublic static isWithinPeriod = (timestamp: number, period: 'today' | 'thisWeek' | 'thisMonth'): boolean => {\n\t\tconst now = new Date();\n\t\tconst completedDate = new Date(timestamp);\n\n\t\tswitch (period) {\n\t\t\tcase 'today':\n\t\t\t\treturn (\n\t\t\t\t\tnow.getFullYear() === completedDate.getFullYear() &&\n\t\t\t\t\tnow.getMonth() === completedDate.getMonth() &&\n\t\t\t\t\tnow.getDate() === completedDate.getDate()\n\t\t\t\t);\n\t\t\tcase 'thisWeek':\n\t\t\t\tconst startOfWeek = new Date(now);\n\t\t\t\tstartOfWeek.setDate(now.getDate() - now.getDay());\n\t\t\t\tstartOfWeek.setHours(0, 0, 0, 0);\n\n\t\t\t\tconst endOfWeek = new Date(startOfWeek);\n\t\t\t\tendOfWeek.setDate(startOfWeek.getDate() + 6);\n\t\t\t\tendOfWeek.setHours(23, 59, 59, 999);\n\n\t\t\t\treturn completedDate >= startOfWeek && completedDate <= endOfWeek;\n\t\t\tcase 'thisMonth':\n\t\t\t\treturn now.getFullYear() === completedDate.getFullYear() && now.getMonth() === completedDate.getMonth();\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nexport { IntUtils };\n","export enum SAWBuyInType {\n\tFree = 1,\n\tPoints = 2,\n\tSpins = 3,\n\tGems = 4,\n\tDiamonds = 5,\n}\n\nexport enum SAWBuyInTypeName {\n\tFree = 'free',\n\tPoints = 'points',\n\tSpins = 'spins',\n\tUnknown = 'unknown',\n\tGems = 'gems',\n\tDiamonds = 'diamonds',\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n\t\t\t[SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n\t\t\t[SAWBuyInType.Spins]: SAWBuyInTypeName.Spins,\n\t\t\t[SAWBuyInType.Gems]: SAWBuyInTypeName.Gems,\n\t\t\t[SAWBuyInType.Diamonds]: SAWBuyInTypeName.Diamonds,\n\t\t}[type] || SAWBuyInTypeName.Unknown\n\t);\n};\n","import { SAWBuyInType } from './SAWBuyInType';\nimport { SAWTemplate } from './SAWTemplate';\n\nclass SAWUtils {\n\tpublic static canPlay = (t: SAWTemplate, user_balances: {ach_points_balance: number, ach_gems_balance: number, ach_diamonds_balance: number}): boolean => {\n\t\tif (t === null || t === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tswitch (t.saw_buyin_type_id) {\n\t\t\tcase SAWBuyInType.Free: {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcase SAWBuyInType.Spins: {\n\t\t\t\treturn t.spin_count !== null && t.spin_count > 0;\n\t\t\t}\n\t\t\tcase SAWBuyInType.Points:\n\t\t\tcase SAWBuyInType.Gems:\n\t\t\tcase SAWBuyInType.Diamonds: {\n\t\t\t\tlet balance = user_balances.ach_points_balance;\n\t\t\t\tif (t.saw_buyin_type_id === SAWBuyInType.Gems) {\n\t\t\t\t\tbalance = user_balances.ach_gems_balance;\n\t\t\t\t} else if (t.saw_buyin_type_id === SAWBuyInType.Diamonds) {\n\t\t\t\t\tbalance = user_balances.ach_diamonds_balance;\n\t\t\t\t}\n\t\t\t\treturn t.buyin_cost_points <= balance;\n\t\t\t}\n\t\t\t\n\t\t\tdefault: {\n\t\t\t\tconsole.error('MiniGamesUtils.canPlay: Unknwon SAW buyin type ' + t.saw_buyin_type_id);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport { SAWUtils };\n","export enum SAWAcknowledgeType {\n\tSilent = 1,\n\tQuickMessage = 2,\n\tFullMessage = 3,\n\tExplicityAcknowledge = 4\n}\n\nexport enum SAWAcknowledgeTypeName {\n\tSilent = 'silent',\n\tQuickMessage = 'quick-message',\n\tFullMessage = 'full-message',\n\tExplicityAcknowledge = 'explicity-acknowledge'\n}\n\n/** @hidden */\nexport const SAWAcknowledgeTypeNamed = (type: SAWAcknowledgeType): SAWAcknowledgeTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWAcknowledgeType.Silent]: SAWAcknowledgeTypeName.Silent,\n\t\t\t[SAWAcknowledgeType.QuickMessage]: SAWAcknowledgeTypeName.QuickMessage,\n\t\t\t[SAWAcknowledgeType.FullMessage]: SAWAcknowledgeTypeName.FullMessage,\n\t\t\t[SAWAcknowledgeType.ExplicityAcknowledge]: SAWAcknowledgeTypeName.ExplicityAcknowledge\n\t\t}[type]\n\t);\n};\n","export enum SAWAskForUsername {\n\tNOASK = 'no-ask',\n\tONSUMBIT = 'on-submit',\n}\n","export enum SAWGameType {\n\tSpinAWheel = 1,\n\tScratchCard = 2,\n\tMatchX = 3,\n\tGiftBox = 4,\n\tPrizeDrop = 5,\n\tQuiz = 6,\n\tLootboxWeekdays = 7,\n\tLootboxCalendarDays = 8,\n\tTreasureHunt = 9,\n\tVoyager = 10,\n\tPlinko = 11,\n}\n\nexport enum SAWGameTypeName {\n\tSpinAWheel = 'wheel',\n\tScratchCard = 'scratch',\n\tMatchX = 'matchx',\n\tGiftBox = 'giftbox',\n\tPrizeDrop = 'prizedrop',\n\tQuiz = 'quiz',\n\tLootboxWeekdays = 'lootbox_weekdays',\n\tLootboxCalendarDays = 'lootbox_calendar_days',\n\tTreasureHunt = 'treasure_hunt',\n\tVoyager = 'voyager',\n\tPlinko = 'plinko',\n\tUnknown = 'unknown',\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n\t\t\t[SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n\t\t\t[SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n\t\t\t[SAWGameType.GiftBox]: SAWGameTypeName.GiftBox,\n\t\t\t[SAWGameType.PrizeDrop]: SAWGameTypeName.PrizeDrop,\n\t\t\t[SAWGameType.Quiz]: SAWGameTypeName.Quiz,\n\t\t\t[SAWGameType.LootboxWeekdays]: SAWGameTypeName.LootboxWeekdays,\n\t\t\t[SAWGameType.LootboxCalendarDays]: SAWGameTypeName.LootboxCalendarDays,\n\t\t\t[SAWGameType.TreasureHunt]: SAWGameTypeName.TreasureHunt,\n\t\t\t[SAWGameType.Voyager]: SAWGameTypeName.Voyager,\n\t\t\t[SAWGameType.Plinko]: SAWGameTypeName.Plinko,\n\t\t}[type] || SAWGameTypeName.Unknown\n\t);\n};\n","export enum SAWPrizeType {\n\tNO_PRIZE = 1,\n\tPOINTS = 2,\n\tBONUS = 3,\n\tMANUAL = 4,\n\tSPIN = 5,\n\tJACKPOT = 6,\n\tCHANGE_LEVEL = 7,\n\tMISSION = 8,\n\tRAFFLE_TICKET = 9,\n\tGEMS_AND_DIAMONDS = 10,\n}\n\nexport enum MiniGamePrizeTypeName {\n\tNO_PRIZE = 'no-prize',\n\tPOINTS = 'points',\n\tBONUS = 'bonus',\n\tMANUAL = 'manual',\n\tSPIN = 'spin',\n\tJACKPOT = 'jackpot',\n\tCHANGE_LEVEL = 'change-level',\n\tMISSION = 'mission',\n\tRAFFLE_TICKET = 'raffle-ticket',\n\tGEMS_AND_DIAMONDS = 'gems-and-diamonds',\n\tUNKNOWN = 'unknown',\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n\t\t\t[SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n\t\t\t[SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n\t\t\t[SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n\t\t\t[SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n\t\t\t[SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT,\n\t\t\t[SAWPrizeType.CHANGE_LEVEL]: MiniGamePrizeTypeName.CHANGE_LEVEL,\n\t\t\t[SAWPrizeType.MISSION]: MiniGamePrizeTypeName.MISSION,\n\t\t\t[SAWPrizeType.RAFFLE_TICKET]: MiniGamePrizeTypeName.RAFFLE_TICKET,\n\t\t\t[SAWPrizeType.GEMS_AND_DIAMONDS]: MiniGamePrizeTypeName.GEMS_AND_DIAMONDS,\n\t\t}[type] || MiniGamePrizeTypeName.UNKNOWN\n\t);\n};\n","import { IntUtils } from '../IntUtils';\nimport { TMiniGamePrize, TMiniGameTemplate } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from './../Base/ProtocolResponse';\nimport { SAWAcknowledgeTypeNamed } from './SAWAcknowledgeType';\nimport { SAWBuyInType, SAWBuyInTypeNamed } from './SAWBuyInType';\nimport { SAWGameTypeNamed } from './SAWGameType';\nimport { MiniGamePrizeTypeNamed } from './SAWPrizeType';\nimport { SAWTemplate } from './SAWTemplate';\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\ttemplates: SAWTemplate[];\n}\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => {\n\treturn items.map((r) => {\n\t\tconst x: TMiniGameTemplate = {\n\t\t\tid: r.saw_template_id,\n\t\t\tname: r.saw_template_ui_definition.name,\n\t\t\tdescription: r.saw_template_ui_definition.description,\n\t\t\tthumbnail: r.saw_template_ui_definition.thumbnail\n\t\t\t? r.saw_template_ui_definition.thumbnail\n\t\t\t: r.saw_skin_ui_definition?.skin_folder\n\t\t\t\t? `${r.saw_skin_ui_definition.skin_folder}/ico.png`\n\t\t\t\t: `https://d312ucx3huj7iy.cloudfront.net/gf/images/saw/${r.saw_skin_key}/ico.png`,\n\t\t\tover_limit_message: r.saw_template_ui_definition.over_limit_message,\n\t\t\tno_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n\t\t\tjackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n\t\t\tsaw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n\t\t\tsaw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Points ? { buyin_cost_points: r.buyin_cost_points } : {}),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Gems ? { buyin_cost_gems: r.buyin_cost_points } : {}),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Diamonds ? { buyin_cost_diamonds: r.buyin_cost_points } : {}),\n\t\t\tjackpot_add_on_attempt: r.jackpot_add_on_attempt,\n\t\t\tjackpot_current: r.jackpot_current,\n\t\t\tspin_count: r.spin_count,\n\t\t\tpromo_image: r.saw_template_ui_definition.promo_image,\n\t\t\tpromo_text: r.saw_template_ui_definition.promo_text,\n\t\t\tcustom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n\t\t\texpose_game_stat_on_api: r.expose_game_stat_on_api,\n\t\t\trelative_period_timezone: r.relative_period_timezone,\n\t\t\tactiveFromDate: r.activeFromDate,\n\t\t\tactiveTillDate: r.activeTillDate,\n\t\t\tnext_available_spin_ts: r.next_available_spin_ts,\n\t\t\tsteps_to_finish_game: r.saw_template_ui_definition.steps_to_finish_game,\n\t\t\tcustom_section_id: r.saw_template_ui_definition.custom_section_id,\n\t\t\tsaw_template_ui_definition: r.saw_template_ui_definition,\n\t\t\tshow_prize_history: r.show_prize_history,\n\t\t\tmax_number_of_attempts: r.maxSpinsCount,\n\t\t\tmax_spins_period_ms: r.maxSpinsPediodMs,\n\n\t\t\tprizes: r.prizes.map((p) => {\n\t\t\t\tconst y: TMiniGamePrize = {\n\t\t\t\t\tid: p.saw_prize_id,\n\t\t\t\t\tname: p.saw_prize_ui_definition.name,\n\t\t\t\t\tprize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n\t\t\t\t\tprize_value: p.prize_value,\n\t\t\t\t\tfont_size: p.saw_prize_ui_definition.font_size,\n\t\t\t\t\tfont_size_mobile: p.saw_prize_ui_definition.font_size_mobile,\n\t\t\t\t\ticon: p.saw_prize_ui_definition.icon,\n\t\t\t\t\tposition: p.saw_prize_ui_definition.position,\n\t\t\t\t\tsectors: p.saw_prize_ui_definition.sectors,\n\t\t\t\t\tacknowledge_type: SAWAcknowledgeTypeNamed(p.saw_prize_ui_definition.acknowledge_type),\n\t\t\t\t\taknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n\t\t\t\t\tacknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n\t\t\t\t\tacknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n\t\t\t\t\tacknowledge_dp_additional: p.saw_prize_ui_definition.acknowledge_dp_additional,\n\t\t\t\t\tacknowledge_action_title_additional: p.saw_prize_ui_definition.acknowledge_action_title_additional,\n\t\t\t\t\tout_of_stock_message: p.saw_prize_ui_definition.out_of_stock_message,\n\t\t\t\t\tpool: p.pool,\n\t\t\t\t\tpool_initial: p.pool_initial,\n\t\t\t\t\twins_count: p.wins_count,\n\t\t\t\t\tweekdays: p.weekdays,\n\t\t\t\t\tactive_from_ts: p.active_from_ts,\n\t\t\t\t\tactive_till_ts: p.active_till_ts,\n\t\t\t\t\trelative_period_timezone: p.relative_period_timezone,\n\t\t\t\t\tis_surcharge: p.is_surcharge,\n\t\t\t\t\tis_deleted: p.is_deleted,\n\t\t\t\t\tcustom_data: IntUtils.JsonOrText(p.saw_prize_ui_definition?.custom_data),\n\t\t\t\t\tprize_modifiers: p.saw_prize_ui_definition.prize_modifiers,\n\t\t\t\t\tallow_split_decimal: p.saw_prize_ui_definition.allow_split_decimal,\n\t\t\t\t\thide_prize_from_history: p.saw_prize_ui_definition.hide_prize_from_history,\n\t\t\t\t\trequirements_to_get_prize: p.saw_prize_ui_definition.requirements_to_get_prize,\n\t\t\t\t};\n\t\t\t\treturn y;\n\t\t\t}),\n\t\t};\n\t\treturn x;\n\t});\n};\n","/*\n * Possible error codes for the mini-games attempts\n */\nexport enum SAWSpinErrorCode {\n\t/** No error */\n\tSAW_OK = 0,\n\t/** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n\tSAW_NO_SPINS = 40001,\n\t/** The are no prizes left to play the game */\n\tSAW_PRIZE_POOL_EMPTY = 40002,\n\t/** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n\tSAW_NOT_ENOUGH_POINTS = 40003,\n\t/** User reached max number of game attempts defined in the BackOffice */\n\tSAW_FAILED_MAX_SPINS_REACHED = 40004,\n\t/** User tries to play a template that is restricted by date */\n\tSAW_TEMPLATE_NOT_ACTIVE = 40007,\n\t/** Special code for the 'visitor' mode */\n\tSAW_VISITOR_STOP_SPIN_REQUEST = -40001,\n\t/** User is not in the segment */\n\tSAW_NOT_IN_SEGMENT = 40009,\n\t/** User doesn't have enough gems to play. In case buy in type for the game is 'gems' based */\n\tSAW_NO_BALANCE_GEMS = 40011,\n\t/** User doesn't have enough diamonds to play. In case buy in type for the game is 'diamonds' based */\n\tSAW_NO_BALANCE_DIAMONDS = 40012,\n}\n","export enum SAWWinSoundType {\n\tDisappointing = 1,\n\tPositive = 2,\n\tHighlyPositive = 3,\n\tNoSound = 4,\n\tCustom = 5,\n}\n\nexport const SAWWinSoundFiles = {\n\t[SAWWinSoundType.NoSound]: null,\n\t[SAWWinSoundType.Disappointing]: 'saw-disappointed.m4a',\n\t[SAWWinSoundType.Positive]: 'saw-positive.m4a',\n\t[SAWWinSoundType.HighlyPositive]: 'saw-highly-positive.m4a',\n};\n","import { ProtocolResponse } from \"../SmarticoLib\";\nimport { TSawHistory } from \"../WSAPI/WSAPITypes\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\nexport interface SAWWinningHistoryResponse extends ProtocolResponse {\n\tprizes: SAWPrizesHistory[];\n\thasMore: boolean;\n}\n\nexport interface SAWPrizesHistory {\n\ttemplate: SAWTemplate,\n\tsaw_template_id: number,\n\tsaw_prize_id: number,\n\tprize_amount: number,\n\tclient_request_id: string,\n\tis_claimed: boolean,\n\tcreate_date_ts: number;\n\tacknowledge_date_ts: number;\n}\n\nexport const SAWHistoryTransform = (items: SAWPrizesHistory[]): TSawHistory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TSawHistory = {\n\t\t\ttemplate: r.template,\n\t\t\tsaw_template_id: r.saw_template_id,\n\t\t\tsaw_prize_id: r.saw_prize_id,\n\t\t\tprize_amount: r.prize_amount,\n\t\t\tclient_request_id: r.client_request_id,\n\t\t\tis_claimed: r.is_claimed,\n\t\t\tcreate_date_ts: r.create_date_ts,\n\t\t\tacknowledge_date_ts: r.acknowledge_date_ts,\n\t\t}\n\t\treturn x;\n\t})\n}\n\n","export enum SAWGameLayout {\n Horizontal = 1,\n VerticalMap = 2,\n}","export enum PrizeModifiers {\n '2x' = 1,\n '5x' = 2,\n '10x' = 3,\n '/2' = 4,\n '/5' = 5,\n '/10' = 6,\n '0x' = 7,\n \"reset\" = 8,\n}\n\nexport const PrizeModifiersKeysNames = {\n [PrizeModifiers['2x']]: '2x',\n [PrizeModifiers['5x']]: '5x',\n [PrizeModifiers['10x']]: '10x',\n [PrizeModifiers['/2']]: '/2',\n [PrizeModifiers['/5']]: '/5',\n [PrizeModifiers['/10']]: '/10',\n [PrizeModifiers['0x']]: '0',\n [PrizeModifiers['reset']]: 'Reset to 0',\n};","export enum SAWWheelLayout {\n Centered = 1,\n LeftAligned = 2,\n RightAligned = 3,\n BottomAligned = 4,\n}","export enum SAWGameDifficultyType {\n\tEASY = 1,\n\tMEDIUM = 2,\n\tHARD = 3,\n}\n\nexport enum SAWGameDifficultyTypeName {\n\tEASY = 'easy',\n\tMEDIUM = 'medium',\n\tHARD = 'hard',\n}\n\n/** @hidden */\nexport const SawGameDifficultyTypeNamed = (type: SAWGameDifficultyType): SAWGameDifficultyTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWGameDifficultyType.EASY]: SAWGameDifficultyTypeName.EASY,\n\t\t\t[SAWGameDifficultyType.MEDIUM]: SAWGameDifficultyTypeName.MEDIUM,\n\t\t\t[SAWGameDifficultyType.HARD]: SAWGameDifficultyTypeName.HARD,\n\t\t}[type]\n\t);\n};\n","class NodeCache {\n\tprivate ttlChecker: NodeJS.Timeout;\n\n\tprivate cache: { [key: string]: any } = {};\n\n\tconstructor() {\t\t\n\t\tif (this.ttlChecker === undefined) {\n\t\t\tthis.ttlChecker = setInterval(() => {\n\t\t\t\tconst now = new Date().getTime();\n\t\t\t\tfor (const key in this.cache) {\n\t\t\t\t\tif (this.cache.hasOwnProperty(key)) {\n\t\t\t\t\t\tconst o = this.cache[key];\n\t\t\t\t\t\tif (o.ttl < now) {\n\t\t\t\t\t\t\tdelete this.cache[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\tpublic get(key: string): any {\n\t\tconst o = this.cache[key];\n\t\tif (o !== undefined && o.ttl > new Date().getTime()) {\n\t\t\treturn o.value;\n\t\t}\n\t}\n\n\tpublic set(key: string, value: any, ttlSeconds: number = 60) {\n\t\tthis.cache[key] = {\n\t\t\tvalue,\n\t\t\tttl: new Date().getTime() + ttlSeconds * 1000,\n\t\t};\n\t}\n\n\tpublic remove(key: string) {\n\t\tif (this.cache.hasOwnProperty(key)) {\n\t\t\tdelete this.cache[key];\n\t\t}\n\t}\n\n\tpublic flushAll() {\n\t\tthis.cache = {};\n\t\tif (this.ttlChecker) {\n\t\t\tclearInterval(this.ttlChecker);\n\t\t\tthis.ttlChecker = undefined\n\t\t}\n\t}\n}\n\nexport { NodeCache };\n","import { NodeCache } from './NodeCache';\n\nexport enum ECacheContext {\n\tTranslations,\n\tLabelInfo,\n\tWSAPI,\n}\n\nconst WITH_REF_CACHE = [ECacheContext.Translations];\n\nexport class OCache {\n\tprivate static cache: { [key: string]: NodeCache } = {};\n\n\tprivate static init(cacheContext: ECacheContext) {\n\t\tif (this.cache[cacheContext] === undefined) {\n\t\t\tthis.cache[cacheContext] = new NodeCache();\n\t\t}\n\t}\n\n\tpublic static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tthis.init(cacheContext);\n\n\t\treturn deepClone(this.cache[cacheContext].get(key));\n\t}\n\n\tpublic static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tthis.init(cacheContext);\n\n\t\tthis.cache[cacheContext].set(key, deepClone(o), ttlSeconds);\n\t}\n\n\tpublic static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n\t\tif (ttlSeconds <= 0) {\n\t\t\treturn await f();\n\t\t} else {\n\t\t\tlet o: T = OCache.get(oKey, cacheContext);\n\n\t\t\tif (o === undefined) {\n\t\t\t\to = await f();\n\t\t\t\tOCache.set(oKey, o, cacheContext, ttlSeconds);\n\t\t\t}\n\n\t\t\treturn o;\n\t\t}\n\t}\n\n\tpublic static async clear(cacheContext: ECacheContext, oKey: any) {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tif (this.cache[cacheContext]) {\n\t\t\tthis.cache[cacheContext].remove(key);\n\t\t}\n\t}\n\n\tpublic static async clearContext(cacheContext: ECacheContext) {\n\t\tif (this.cache[cacheContext]) {\n\t\t\tthis.cache[cacheContext].flushAll();\n\t\t}\n\t}\n\n\tpublic static async clearAll() {\n\t\tfor (const cacheContext in this.cache) {\n\t\t\tif (this.cache.hasOwnProperty(cacheContext)) {\n\t\t\t\tthis.cache[cacheContext].flushAll();\n\t\t\t}\n\t\t}\n\t\tthis.cache = {};\n\t}\n}\n\nconst deepClone = (o: any) => {\n\tif (o) {\n\t\treturn JSON.parse(JSON.stringify(o));\n\t}\n\n\treturn o;\n};\n","export enum ActivityTypeLimited {\n\tDoNothing = 8,\n\tPoints = 12,\n\tGiveMission = 14,\n\tStartAnotherCampaign = 15,\n\tMiniGameAttempt = 16,\n\tDeductPoints = 21,\n\tResetPoints = 22,\n\tAddGemsAndDiamonds = 25,\n\tDeductGemsAndDiamonds = 26,\n\tResetGemsAndDiamonds = 27,\n\tPopup = 30,\n\tInbox = 31,\n\tSlack = 70,\n\tEmail_To_Customer_Support = 80,\n\tEmail_To_Risk_Operator = 90,\n\tBonus = 100,\n\tWebHook = 200,\n\tTagCustomer = 504,\n\tUnTagCustomer = 505,\n}\n","class CoreUtils {\n\tpublic static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n\t\tif (\n\t\t\tavatarDomain &&\n\t\t\tavatar_id !== null &&\n\t\t\tavatar_id !== undefined &&\n\t\t\t!(avatar_id.startsWith && avatar_id.startsWith('http'))\n\t\t) {\n\t\t\tif (avatarDomain.endsWith('/')) {\n\t\t\t\treturn avatarDomain.slice(0, -1) + '/avatar/' + avatar_id;\n\t\t\t} else {\n\t\t\t\treturn avatarDomain + '/avatar/' + avatar_id;\n\t\t\t}\n\t\t} else {\n\t\t\treturn avatar_id;\n\t\t}\n\t};\n\n\tpublic static currencySymbol(currency: string) {\n\t\treturn {\n\t\t\t[currency?.toUpperCase()]: currency?.toUpperCase(),\n\t\t\tUSD: '$', // United States Dollar\n\t\t\tEUR: '\\u20AC', // Euro\n\t\t\tJPY: '\\u00A5', // Japanese Yen\n\t\t\tGBP: '\\u00A3', // British Pound Sterling\n\t\t\tAUD: 'A$', // Australian Dollar\n\t\t\tCAD: 'C$', // Canadian Dollar\n\t\t\tCHF: 'CHF', // Swiss Franc\n\t\t\tCNY: '\\u00A5', // Chinese Yuan\n\t\t\tSEK: 'kr', // Swedish Krona\n\t\t\tNZD: 'NZ$', // New Zealand Dollar\n\t\t\tMXN: 'MX$', // Mexican Peso\n\t\t\tSGD: 'S$', // Singapore Dollar\n\t\t\tHKD: 'HK$', // Hong Kong Dollar\n\t\t\tNOK: 'kr', // Norwegian Krone\n\t\t\tKRW: '\\u20A9', // South Korean Won\n\t\t\tTRY: '\\u20BA', // Turkish Lira\n\t\t\tINR: '\\u20B9', // Indian Rupee\n\t\t\tRUB: '\\u20BD', // Russian Ruble\n\t\t\tBRL: 'R$', // Brazilian Real\n\t\t\tZAR: 'R', // South African Rand\n\t\t}[currency?.toUpperCase()];\n\t}\n}\n\nexport { CoreUtils };\n","export enum PublicLabelSettings {\n\tPUBLIC_API_URL = 'PUBLIC_API_URL',\n\tRECORDING_ENABLED_FOR_ALL_USERS = 'RECORDING_ENABLED_FOR_ALL_USERS',\n\tJS_INJECTION = 'JS_INJECTION',\n\tGAMIFICATION_UI_MAIN = 'GAMIFICATION_UI_MAIN',\n\tGAMIFICATION_UI_WIDGET = 'GAMIFICATION_UI_WIDGET',\n\tGAMIFICATION_UI_MINI_GAME = 'GAMIFICATION_UI_MINI_GAME',\n\tGAMIFICATION_UI_SETTINGS = 'GAMIFICATION_UI_SETTINGS',\n\tGAMIFICATION_UI_MAIN_TEST = 'GAMIFICATION_UI_MAIN_TEST',\n\tGAMIFICATION_UI_WIDGET_TEST = 'GAMIFICATION_UI_WIDGET_TEST',\n\tGAMIFICATION_UI_SETTINGS_TEST = 'GAMIFICATION_UI_SETTINGS_TEST',\n\tFRONT_END_ALLOWED_LANGUAGES = 'FRONT_END_ALLOWED_LANGUAGES',\n\tFRONT_END_ALLOW_DOMAINS = 'FRONT_END_ALLOW_DOMAINS',\n\tDELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = 'DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS',\n\tSHADOW_LABEL_PUBLIC_KEY = 'SHADOW_LABEL_PUBLIC_KEY',\n\tDYNAMIC_IMAGE_DOMAIN = 'DYNAMIC_IMAGE_DOMAIN',\n\n\tGAMIFICATION_LEVELS_LOGIC2 = 'GAMIFICATION_LEVELS_LOGIC2',\n\tGAMIFICATION_LEVELS_LOGIC3 = 'GAMIFICATION_LEVELS_LOGIC2',\n\n\tAVATAR_CUSTOM_IMAGE_MAX_ID = 'AVATAR_CUSTOM_IMAGE_MAX_ID',\n\tAVATAR_CUSTOM_IMAGE_FOLDER = 'AVATAR_CUSTOM_IMAGE_FOLDER',\n\n\tGAMIFICATION_SHOW_POWERED_BY = 'GAMIFICATION_SHOW_POWERED_BY',\n\t_system_leader_board_mask_username = '_system_leader_board_mask_username',\n\t_system_gamification_mask_username = '_system_gamification_mask_username',\n\n\tINBOX_PUBLIC_CDN = 'INBOX_PUBLIC_CDN',\n}\n","enum TranslationArea {\n\tCasino = 1,\n\tGamification = 2,\n\tTrading = 3,\n\tArchived = 4,\n\tAffiliation = 5,\n\tRetentionGames = 6,\n\tAffIliateAdminNew = 7,\n\tAcademy = 8,\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { InboxMessage } from './InboxMessage';\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\tlog: InboxMessage[];\n\tunread_count: number;\n}\n\nexport const InboxMessagesTransform = (items: InboxMessage[]): TInboxMessage[] => {\n\treturn items.map((item) => {\n\t\tconst x: TInboxMessage = {\n\t\t\tsent_date: item.createDate,\n\t\t\tmessage_guid: item.engagement_uid,\n\t\t\tread: item.is_read,\n\t\t\tfavorite: item.is_starred,\n\t\t\tcategory_id: item.category_id\n\t\t};\n\t\treturn x;\n\t});\n};\n","import { TInboxMessageBody } from '../WSAPI/WSAPITypes';\nimport { InboxCategories } from './InboxCategories';\nimport { InboxMessageType } from './InboxMessageType';\nimport { OpenLinksType } from './OpenLinksType';\n\nexport interface InboxMessageBody {\n\t// URL or deep-link that neeed to be executed when user clicks on the message\n\taction: string;\n\t// the body of the message in case it's 'simple' inbox message\n\tbody: string;\n\t// type of message, deprecated\n\ttype: InboxMessageType;\n\t// image of the icon\n\timage: string;\n\t// title of the message\n\ttitle: string;\n\t// HTML body of the message in case it's 'rich' inbox message\n\thtml_body: string;\n\t// set of the buttons with text on the button and action that could be URL or deep-link\n\tadditional_buttons?: { inbox_cta_text: string; action: string }[];\n\t// indicator if the message need to be shown when sent and overlay or it should be shown only in the inbox, when user open 'inbox' interface explicitly\n\t// default is 'true'\n\tshow_preview?: boolean;\n\t// duration in seconds for how long to show preview, default is 7 seconds\n\tshow_duration_sec?: number;\n\t// indicator if the image in html_body can be zoomed out\n\t// default is 'false'\n\tenable_zoom_mode?: boolean;\n\t// options that allows to open links in buttons either in new window or in the current one\n\topen_links?: OpenLinksType;\n}\n\nexport interface InboxMessage {\n\t// date when the message was created\n\tcreateDate: string;\n\t// body of the message according to the interface\n\tbody: InboxMessageBody;\n\t// unique identifier of the message that connects it to the campaign from which it was sent\n\tengagement_uid: string;\n\t// flag that indicates if the message was read by the user\n\tis_read: boolean;\n\t// flag that indicates if the message was marked as favorite by the user\n\tis_starred: boolean;\n\t// flag that indicates if the message was deleted by the user. Such messages are not returned in the response and property is used only internaly in Smartico\n\tis_deleted?: boolean;\n\t// category id of the inbox message, could be categorized as System/Personal/General messages in mentioned tabs\n\tcategory_id?: InboxCategories;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n\tconst x: TInboxMessageBody = {\n\t\taction: item.action,\n\t\ticon: item.image,\n\t\ttitle: item.title,\n\t\tpreview_body: item.body,\n\t};\n\n\tif (item.action === 'dp:inbox') {\n\t\tif (item.additional_buttons && item.additional_buttons.length) {\n\t\t\tx.buttons = item.additional_buttons.map((b) => ({\n\t\t\t\taction: b.action,\n\t\t\t\ttext: b.inbox_cta_text,\n\t\t\t}));\n\t\t}\n\n\t\tx.html_body = item?.html_body || null;\n\t}\n\n\treturn x;\n};\n","export enum InboxMessageType {\n\tCustom = 0,\n\tMissionCompleted = 1,\n\tMissionUnlocked = 2,\n\tLeaderboardWon = 3,\n\tLevelChanged = 4,\n\tBonusGiven = 5,\n\tPointsAdded = 6,\n\tPointsUsed = 7,\n\tPersonalMessage = 8,\n}\n\n// keep in sync with BO enum\n","export enum OpenLinksType {\n\tNewWindow = 1,\n\tCurrentWindow = 2\n}","export enum InboxCategories {\n General = 0,\n\tPlatform = 1,\n\tPersonal = 2,\n}","export enum BuyStoreItemErrorCode {\n\t/** User don't have enough points on balance */\n\tSHOP_NO_BALANCE = 11000,\n\t/** Wrong shop item id */\n\tSHOP_WRONG_LABEL = 11001,\n\t/** Failed to buy bonus item, probably something wrong with the bonus configuration. */\n\tSHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n\t/** Failed to buy store item because segment conditions are set by operator for specific CRM item */\n\tSHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. shouldn't happen\n\t/** Segment conditions are set by operator for specific CRM item and user not matching to this conditions */\n\tSHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n\t/** Failed to buy matching bonus item */\n\tSHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n\t/** Failed to buy item because of limit of max items is reached */\n\tSHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n\t/** Failed to buy item because no more items are available */\n\tSHOP_FAILED_POOL_EMPTY = 11009,\n\t/** User doesn't have enough gems on balance */\n\tSHOP_NO_BALANCE_GEMS = 11011,\n\t/** User doesn't have enough diamonds on balance */\n\tSHOP_NO_BALANCE_DIAMONDS = 11012,\n\t/** Failed to buy item because of purchase limitation */\n\tSHOP_FAILED_PURCHASE_LIMITATION = 11014,\n}\n","import { TStoreCategory } from '../WSAPI/WSAPITypes';\nimport { StoreCategoryPublicMeta } from './StoreCategoryPublicMeta';\n\nexport interface StoreCategory {\n\tid?: number;\n\tpublicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TStoreCategory = {\n\t\t\tid: r.id,\n\t\t\tname: r.publicMeta?.name,\n\t\t\torder: r.publicMeta?.order,\n\t\t};\n\t\treturn x;\n\t});\n};\n","export enum StoreItemPurchaseType {\n Points = 0,\n Gems = 1,\n Diamonds = 2,\n}","export enum StoreItemType {\n\tBonus = 1,\n\tTangible = 2,\n\tMiniGameSpin = 3,\n\tChangeLevel = 4,\n\tPrizeDrop = 5,\n\tRaffleTicket = 6,\n}\n\nexport enum StoreItemTypeName {\n\tBonus = 'bonus',\n\tTangible = 'tangible',\n\tMiniGameSpin = 'minigamespin',\n\tChangeLevel = 'changelevel',\n\tPrizeDrop = 'prizedrop',\n\tRaffleTicket = 'raffleticket',\n\tUnknown = 'unknown',\n}\n\nexport const StoreItemTypeNamed = (type: StoreItemType): StoreItemTypeName => {\n\treturn (\n\t\t{\n\t\t\t[StoreItemType.Bonus]: StoreItemTypeName.Bonus,\n\t\t\t[StoreItemType.Tangible]: StoreItemTypeName.Bonus,\n\t\t\t[StoreItemType.MiniGameSpin]: StoreItemTypeName.MiniGameSpin,\n\t\t\t[StoreItemType.ChangeLevel]: StoreItemTypeName.ChangeLevel,\n\t\t\t[StoreItemType.PrizeDrop]: StoreItemTypeName.PrizeDrop,\n\t\t\t[StoreItemType.RaffleTicket]: StoreItemTypeName.RaffleTicket,\n\t\t}[type] || StoreItemTypeName.Unknown\n\t);\n};\n","import { IntUtils } from '../IntUtils';\nimport { TStoreItem } from '../WSAPI/WSAPITypes';\nimport { StoreItemPublicMeta } from './StoreItemPublicMeta';\nimport { StoreItemPurchaseType } from './StoreItemPurchaseType';\nimport { StoreItemType, StoreItemTypeNamed } from './StoreItemType';\n\nexport interface StoreItem {\n\tid: number;\n\titemTypeId: StoreItemType;\n\titemPublicMeta: StoreItemPublicMeta;\n\tcategoryIds?: number[];\n\tcanBuy?: boolean;\n\tshopPool: number;\n\tactiveTillDate?: number;\n}\n\nconst mapPurchaseType = (purchaseType: StoreItemPurchaseType) => {\n\tif (purchaseType === StoreItemPurchaseType.Points) {\n\t\treturn 'points';\n\t} else if (purchaseType === StoreItemPurchaseType.Gems) {\n\t\treturn 'gems';\n\t} else if (purchaseType === StoreItemPurchaseType.Diamonds) {\n\t\treturn 'diamonds';\n\t}\n\n\treturn 'points';\n};\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => {\n\t\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TStoreItem = {\n\t\t\t\tid: r.id,\n\t\t\t\tname: r.itemPublicMeta.name,\n\t\t\t\tpurchase_type: mapPurchaseType(r.itemPublicMeta.purchase_type),\n\t\t\t\tprice: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n\t\t\t\timage: r.itemPublicMeta.image_url,\n\t\t\t\tdescription: r.itemPublicMeta.description,\n\t\t\t\tribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n\t\t\t\tlimit_message: r.itemPublicMeta.limit_message,\n\t\t\t\tpurchase_limit_message: r.itemPublicMeta.purchase_limit_message,\n\t\t\t\tpriority: r.itemPublicMeta.priority ?? 0,\n\t\t\t\trelated_item_ids: r.itemPublicMeta.related_items,\n\t\t\t\thint_text: r.itemPublicMeta.hint_text,\n\t\t\t\ttype: StoreItemTypeNamed(r.itemTypeId),\n\t\t\t\tcan_buy: r.canBuy,\n\t\t\t\tcategory_ids: r.categoryIds ?? [],\n\t\t\t\tpool: r.shopPool,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.itemPublicMeta.custom_data),\n\t\t\t\tactive_till_date: r.activeTillDate,\n\t\t\t\tdiscounted_price: r.itemPublicMeta.discount_prize,\n\t\t\t\tdiscount_price_ribbon: r.itemPublicMeta.discount_prize_ribbon,\n\t\t\t\tcustom_ribbon_image: r.itemPublicMeta.custom_ribbon_image,\n\t\t\t};\n\t\t\treturn x;\n\t\t});\n};\n","import { IntUtils } from '../IntUtils';\nimport { TStoreItem } from '../WSAPI/WSAPITypes';\nimport { StoreItem } from './StoreItem';\nimport { StoreItemPurchaseType } from './StoreItemPurchaseType';\nimport { StoreItemTypeNamed } from './StoreItemType';\n\ninterface StoreItemPurchased extends StoreItem {\n\tpurchase_ts: number;\n\tpurchase_points_amount: number;\n\tpurchased_today?: boolean;\n\tpurchased_this_week?: boolean;\n\tpurchased_this_month?: boolean;\n}\n\nconst mapPurchaseType = (purchaseType: StoreItemPurchaseType) => {\n\tif (purchaseType === StoreItemPurchaseType.Points) {\n\t\treturn 'points';\n\t} else if (purchaseType === StoreItemPurchaseType.Gems) {\n\t\treturn 'gems';\n\t} else if (purchaseType === StoreItemPurchaseType.Diamonds) {\n\t\treturn 'diamonds';\n\t}\n\n\treturn 'points';\n};\n\nexport const StoreItemPurchasedTransform = (items: StoreItemPurchased[]): TStoreItem[] => {\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst purchasedToday = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'today') : false;\n\t\t\tconst purchasedThisWeek = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisWeek') : false;\n\t\t\tconst purchasedThisMonth = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisMonth') : false;\n\n\t\t\tconst x: TStoreItem = {\n\t\t\t\tid: r.id,\n\t\t\t\tname: r.itemPublicMeta.name,\n\t\t\t\tprice: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n\t\t\t\tpurchase_type: mapPurchaseType(r.itemPublicMeta.purchase_type),\n\t\t\t\timage: r.itemPublicMeta.image_url,\n\t\t\t\tdescription: r.itemPublicMeta.description,\n\t\t\t\tribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n\t\t\t\tlimit_message: r.itemPublicMeta.limit_message,\n\t\t\t\tpurchase_limit_message: r.itemPublicMeta.purchase_limit_message,\n\t\t\t\tpriority: r.itemPublicMeta.priority ?? 0,\n\t\t\t\trelated_item_ids: r.itemPublicMeta.related_items,\n\t\t\t\thint_text: r.itemPublicMeta.hint_text,\n\t\t\t\ttype: StoreItemTypeNamed(r.itemTypeId),\n\t\t\t\tcan_buy: r.canBuy,\n\t\t\t\tcategory_ids: r.categoryIds ?? [],\n\t\t\t\tpool: r.shopPool,\n\t\t\t\tpurchase_ts: r.purchase_ts,\n\t\t\t\tpurchase_points_amount: r.purchase_points_amount,\n\t\t\t\tpurchased_today: purchasedToday,\n\t\t\t\tpurchased_this_week: purchasedThisWeek,\n\t\t\t\tpurchased_this_month: purchasedThisMonth,\n\t\t\t\tcustom_data: r.itemPublicMeta.custom_data\n\t\t\t};\n\n\t\t\treturn x;\n\t\t});\n};\n\nexport { StoreItemPurchased };\n","export enum AchievementStatus {\n\tDraft = 1,\n\tAvailableUnlocked = 2,\n\tAvailableLocked = 3,\n\tArchived = 4,\n\tFeaturedManually = 5,\n\tFeaturedAI = 6,\n\tRecurring = 7,\n\tRecurringUponCompletion = 8\n}\n","export enum AchievementTaskType {\n\tCompleteAchievement = 1,\n\tUnlockAchievement = 2,\n}\n","export enum AchievementType {\n\tMission = 1,\n\tBadge = 2,\n}\n","/** Possible statuses of the mission availability. \n * Notes:\n * - Recurring missions have a special field next_recurrence_date_ts, but it's only relevant if the mission has no active till date or the next recurrence date is before the active till date.\n * - For a locked mission or mission that requires opt-in, the time limit should be calculated as dt_start + time_limit_ms. For a mission that does not require opt-in or type is not Locked, it should be the highest value of dt_start and active_from_ts (if defined) + time_limit_ms.\n * */\n\nexport enum AchievementAvailabilityStatus {\n /** Mission without date/time restrictions or with passed active from date and no opt-in required and mission is unlocked */\n Available = 0,\n\n /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is not opted-in or mission is locked */\n AvailableInactive = 1,\n\n /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is opted-in or mission is unlocked*/\n AvailableActive = 2,\n\n /** Mission with active from date defined, date is in future.\n * Field: active_from_ts\n */\n UnavailableWithActiveFrom = 3,\n\n /** Mission with active till date defined, date is in future, and no opt-in required and mission is unlocked.\n * Field: active_till_ts\n */\n AvailableWithActiveTill = 4,\n\n /** Mission with active till date defined, date is in future, and opt-in is required, user is not opted in or mission is locked.\n * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.\n */\n AvailableWithActiveTillInactive = 5,\n\n /** Mission with active till date defined, date is in future, and opt-in is required, user is opted in or mission is unlocked.\n * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.\n */\n AvailableWithActiveTillActive = 6,\n\n /** Available mission with time limit, and opt-in is required or mission is unlocked.\n * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.\n * \n */\n AvailableLimited = 7,\n\n /** Available mission with time limit, opt-in is required, user is not opted-in or mission is locked.\n * Time limit at this stage is not relevant, user should be opted-in or mission should be unlocked.\n */\n AvailableLimitedInactive = 8,\n\n /** Available mission with time limit, opt-in is required, user is opted-in or mission unlocked.\n * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.\n */\n AvailableLimitedActive = 9,\n\n /** Available mission with time limit and active till date, opt-in is not required and mission is unlocked.\n * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts;\n * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.\n */\n AvailableFullyLimited = 10,\n\n /** Available mission with time limit and active till date, opt-in is required, user is not opted in or mission is locked.\n * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts, is_requires_optin, is_opted_in, is_locked.\n * On this stage only active_till_ts is relevant. time_limit_ms is ignored because user should be opted in.\n */\n AvailableFullyLimitedInactive = 11,\n\n /** Available mission with time limit and active till date, opt-in is required, user is opted in or mission is unlocked.\n * Fields: active_till_ts, time_limit_ms, dt_start, is_requires_optin, is_opted_in, is_locked.\n * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.\n */\n AvailableFullyLimitedActive = 12,\n\n /** Missed mission when active till date is already passed. is_completed field indicating if mission is completed or just missed */\n MissedByActiveTill = 13,\n\n /** Missed mission when start_date + time_limit_ms is already passed. is_completed field indicating if mission is completed or just missed */\n MissedByLimitInTime = 14,\n}","import { IntUtils } from \"src/IntUtils\";\nimport { AchievementAvailabilityStatus } from \"./AchievementAvailabilityStatus\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { UserAchievement } from \"./UserAchievement\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport class MissionUtils {\n\n public static getAvailabilityStatus = (mission: UserAchievement) => {\n\n if (!mission) {\n return null;\n }\n\n const activeFrom = mission.active_from_ts ? MissionUtils.getMs(mission.active_from_ts) : null\n const activeTill = mission.active_till_ts ? MissionUtils.getMs(mission.active_till_ts) : null;\n const startDate = mission.start_date_ts ? MissionUtils.getMs(mission.start_date_ts) : null;\n const timeLimit = mission.time_limit_ms;\n const requiresOptIn = mission.requiresOptin;\n const optedIn = mission.isOptedIn;\n const isLockedMission = mission.ach_status_id === AchievementStatus.AvailableLocked;\n const isLocked = mission.isLocked;\n\n if (!activeFrom && !activeTill && !timeLimit) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else {\n return AchievementAvailabilityStatus.Available;\n }\n }\n\n if (activeFrom && activeFrom > Date.now()) {\n return AchievementAvailabilityStatus.UnavailableWithActiveFrom;\n }\n\n if ((activeFrom && activeFrom < Date.now()) || !activeFrom) {\n if (!activeTill && !timeLimit) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else {\n return AchievementAvailabilityStatus.Available;\n }\n }\n\n if (activeTill && !timeLimit) {\n if (activeTill > Date.now()) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableWithActiveTillActive;\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableWithActiveTillActive;\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTill;\n }\n } else {\n return AchievementAvailabilityStatus.MissedByActiveTill;\n }\n }\n\n if (timeLimit && !activeTill) {\n if (requiresOptIn) {\n const endDate = startDate + timeLimit;\n\n if (optedIn) {\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableLimitedInactive;\n }\n } else if (isLockedMission) {\n const endDate = startDate + timeLimit;\n\n if (!isLocked) {\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableLimitedInactive;\n }\n } else {\n const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimited;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n }\n }\n\n if (timeLimit && activeTill) {\n if (activeTill > Date.now()) {\n if (requiresOptIn) {\n if (optedIn) {\n const endDate = startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n const endDate = startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;\n }\n } else {\n const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimited;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n }\n } else {\n return AchievementAvailabilityStatus.MissedByActiveTill;\n }\n }\n }\n }\n\n public static getMs = (ts: number): number => {\n return new Date(ts).getTime();\n }\n\n public static replaceFavGameNameTag = (task: UserAchievementTask) => {\n if (!task) {\n return task;\n }\n \n const userStateParams = (task.user_state_params?.map || {});\n const userStateOperator = task.task_public_meta?.user_state_operations;\n const userStateParamsKeys = Object.keys(userStateParams);\n \n if (userStateParamsKeys.length === 0 || !userStateOperator) {\n return task;\n }\n \n const operatorsMulti = ['has', '!has'];\n const operatorsPos = ['pos1', 'pos2', 'pos3'];\n \n let replacementValue: string = '';\n \n userStateParamsKeys.forEach((k: 'core_fav_game_top3' | 'core_fav_game_type_top3') => {\n const operator = userStateOperator[k]?.op;\n \n if (operatorsMulti.includes(operator)) {\n const value = userStateParams[k];\n if (value && value.length > 0) {\n replacementValue = value.join(' ,');\n }\n }\n \n if (operatorsPos.includes(operator)) {\n const value = userStateParams[k];\n const pos = Number(operator.replace('pos', '')) - 1;\n \n if (IntUtils.isNotNull(pos) && value && value[pos]) {\n replacementValue = value[pos];\n }\n }\n });\n \n if (replacementValue) {\n task.task_public_meta.name =task.task_public_meta.name.replace('{{suggested_games}}', replacementValue);\n } \n \n return task;\n }\n}\n","import { AchRelatedGame } from '../Base/AchRelatedGame';\nimport { IntUtils } from '../IntUtils';\nimport { TMissionOrBadge } from '../WSAPI/WSAPITypes';\nimport { AchievementPublicMeta } from './AchievementPublicMeta';\nimport { AchievementStatus } from './AchievementStatus';\nimport { AchievementTaskType } from './AchievementTaskType';\nimport { AchievementType } from './AchievementType';\nimport { MissionUtils } from './MissionsUtils';\nimport { ScheduledMissionType } from './ScheduledMissionType';\nimport { UserAchievementTask } from './UserAchievementTask';\n\nexport interface UserAchievement {\n\tach_id?: number;\n\tach_type_id?: AchievementType;\n\tach_public_meta?: AchievementPublicMeta;\n\tisCompleted?: boolean;\n\tisLocked?: boolean;\n\trequiresOptin?: boolean;\n\tisOptedIn?: boolean;\n\tstart_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n\tstart_date_ts?: number;\n\ttime_limit_ms?: number;\n\tprogress?: number;\n\tcomplete_date?: string;\n\tcomplete_date_ts?: number;\n\tunlock_date?: string;\n\tmilliseconds_till_available?: number;\n\tcompleted_tasks?: number;\n\tachievementTasks?: UserAchievementTask[];\n\tnext_recurrence_date_ts?: number;\n\tach_status_id?: AchievementStatus;\n\tscheduledMissionType?: ScheduledMissionType;\n\trelated_games?: AchRelatedGame[];\n\tactive_from_ts?: number; // indicates when 'scheduled' mission is active from,\n\tactive_till_ts?: number; // indicates when 'scheduled' mission is active till,\n\tach_categories?: number[];\n\trecurring_quantity?: number; // max completion count for Recurring upon completion\n\tcompleted_count?: number; // completion count for Recurring upon completion\n\n\tach_completed_id?: number; // ID of the completion fact from ach_completed or ach_completed_recurring tables\n\trequires_prize_claim?: boolean; // flag from achievement if the mission prize will be given only after user claims it\n\tprize_claimed_date_ts?: number; // the date/timestamp indicating when the prize was claimed by the user\n\n\tcompleted_today?: boolean;\n\tcompleted_this_week?: boolean;\n\tcompleted_this_month?: boolean;\n\tcustom_section_type_id?: number;\n}\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n\treturn items\n\t\t.filter((r) => r.ach_id >= 1)\n\t\t.map((r) => {\n\t\t\tconst completedToday = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'today') : false;\n\t\t\tconst completedThisWeek = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisWeek') : false;\n\t\t\tconst completedThisMonth = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisMonth') : false;\n\n\t\t\tconst x: TMissionOrBadge = {\n\t\t\t\tid: r.ach_id,\n\t\t\t\tname: r.ach_public_meta.name,\n\t\t\t\tdescription: r.ach_public_meta.description,\n\t\t\t\thint_text: r.ach_public_meta.hint_text,\n\t\t\t\tunlock_mission_description: r.ach_public_meta.unlock_mission_description,\n\t\t\t\timage: r.ach_public_meta.image_url,\n\t\t\t\tis_completed: r.isCompleted,\n\t\t\t\tis_locked: r.isLocked,\n\t\t\t\tis_requires_optin: r.requiresOptin,\n\t\t\t\tis_opted_in: r.isOptedIn,\n\t\t\t\ttime_limit_ms: r.time_limit_ms,\n\t\t\t\tactive_from_ts: r.active_from_ts,\n\t\t\t\tactive_till_ts: r.active_till_ts,\n\t\t\t\tdt_start: r.start_date_ts,\n\t\t\t\treward: r.ach_public_meta.reward,\n\t\t\t\tprogress: r.progress,\n\t\t\t\ttype: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n\t\t\t\tcta_action: r.ach_public_meta.cta_action,\n\t\t\t\tcta_text: r.ach_public_meta.cta_text,\n\t\t\t\tcustom_section_id: r.ach_public_meta.custom_section_id,\n\t\t\t\tonly_in_custom_section: r.ach_public_meta.only_in_custom_section,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n\t\t\t\tposition: r.ach_public_meta.position,\n\t\t\t\tribbon:\n\t\t\t\t\tr.ach_public_meta.label_tag === 'custom' ? r.ach_public_meta.custom_label_tag : r.ach_public_meta.label_tag,\n\t\t\t\ttasks: (r.achievementTasks || [])\n\t\t\t\t\t.filter((t) => t.task_type_id === AchievementTaskType.CompleteAchievement)\n\t\t\t\t\t.map((t) => {\n\t\t\t\t\t\tMissionUtils.replaceFavGameNameTag(t);\n\n\t\t\t\t\t\treturn ({\n\t\t\t\t\t\t\tid: t.task_id,\n\t\t\t\t\t\t\tname: t.task_public_meta?.name,\n\t\t\t\t\t\t\tpoints_reward: t.points_reward,\n\t\t\t\t\t\t\tis_completed: t.isCompleted,\n\t\t\t\t\t\t\tprogress: t.userProgress,\n\t\t\t\t\t\t\texecution_count_expected: t.executionCount,\n\t\t\t\t\t\t\texecution_count_actual: t.userExecutedCount,\n\t\t\t\t\t\t\tdisplay_progress_as_count: t.task_public_meta.display_progress_as_count,\n\t\t\t\t\t\t\tstage_image: t.task_public_meta.stage_image,\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\trelated_games: (r.related_games || []).map((g) => ({\n\t\t\t\t\text_game_id: g.ext_game_id,\n\t\t\t\t\tgame_public_meta: {\n\t\t\t\t\t\tname: g.game_public_meta.name,\n\t\t\t\t\t\tlink: g.game_public_meta.link,\n\t\t\t\t\t\timage: g.game_public_meta.image,\n\t\t\t\t\t\tenabled: g.game_public_meta.enabled,\n\t\t\t\t\t\tgame_categories: g.game_public_meta.game_categories,\n\t\t\t\t\t\tgame_provider: g.game_public_meta.game_provider,\n\t\t\t\t\t\tmobile_spec_link: g.game_public_meta.mobile_spec_link\n\t\t\t\t\t},\n\t\t\t\t})),\n\t\t\t\tcategory_ids: r.ach_categories ?? [],\n\t\t\t\tach_completed_id: r.ach_completed_id,\n\t\t\t\trequires_prize_claim: r.requires_prize_claim,\n\t\t\t\tprize_claimed_date_ts: r.prize_claimed_date_ts,\n\t\t\t\tcomplete_date: r.complete_date,\n\t\t\t\tcomplete_date_ts: r.complete_date_ts,\n\t\t\t\tcompleted_today: completedToday,\n\t\t\t\tcompleted_this_week: completedThisWeek,\n\t\t\t\tcompleted_this_month: completedThisMonth,\n\t\t\t\tcustom_section_type_id: r.ach_public_meta.custom_section_type_id,\n\t\t\t\tavailability_status: MissionUtils.getAvailabilityStatus(r),\n\t\t\t\tclaim_button_title: r.ach_public_meta.claim_button_title,\n\t\t\t\tclaim_button_action: r.ach_public_meta.claim_button_action,\n\t\t\t};\n\n\t\t\tif (r.ach_status_id === AchievementStatus.Recurring) {\n\t\t\t\tx.next_recurrence_date_ts = Date.now() + r?.milliseconds_till_available;\n\t\t\t}\n\n\t\t\tif (r.ach_status_id === AchievementStatus.RecurringUponCompletion) {\n\t\t\t\tx.completion_count = r.completed_count;\n\t\t\t\tx.max_completion_count = r.recurring_quantity;\n\t\t\t}\n\t\t\treturn x;\n\t\t});\n};\n","export enum ScheduledMissionType {\n\tFuture = 1,\n\tPast = 2,\n\tPresent = 3,\n}\n","import { TAchCategory } from '../WSAPI/WSAPITypes';\nimport { AchCategoryPublicMeta } from './AchCategoryPublicMeta';\n\nexport interface AchCategory {\n\tid?: number;\n\tpublicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TAchCategory = {\n\t\t\tid: r.id,\n\t\t\tname: r.publicMeta?.name,\n\t\t\torder: r.publicMeta?.order,\n\t\t};\n\t\treturn x;\n\t});\n};\n","export enum MissionCategory {\n\tOverview,\n\t// fake category for custom section overview missions, using in TSMap.to get correct missions\n\tCustomSectionOverview,\n\tAvailable,\n\tLocked,\n\tCompleted,\n\tMissed,\n}","export enum TournamentRegistrationType {\n\tAUTO = 1,\n\tOPT_IN = 2,\n\tBUY_IN_POINTS = 3,\n\tMANUAL_APPROVAL = 4,\n\tREQUIRES_QUALIFICATION = 5,\n\tBUY_IN_GEMS = 6,\n\tBUY_IN_DIAMONDS = 7,\n\t// BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName =\n\t| 'AUTO'\n\t| 'OPT_IN'\n\t| 'BUY_IN_POINTS'\n\t| 'MANUAL_APPROVAL'\n\t| 'REQUIRES_QUALIFICATION'\n\t| 'BUY_IN_GEMS'\n\t| 'BUY_IN_DIAMONDS'\n\t| 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n\treturn ({\n\t\t[TournamentRegistrationType.AUTO]: 'AUTO',\n\t\t[TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n\t\t[TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n\t\t[TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n\t\t[TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n\t\t[TournamentRegistrationType.BUY_IN_GEMS]: 'BUY_IN_GEMS',\n\t\t[TournamentRegistrationType.BUY_IN_DIAMONDS]: 'BUY_IN_DIAMONDS',\n\t}[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n};\n","export enum TournamentRegistrationStatus {\n\tNOT_REGISTERED = 0,\n\tREGISTERED = 1,\n\tFINISHED = 2,\n\tPENDING = 3,\n\tCANCELLED = 4,\n\tREGISTERED_PENDING_QUALIFICATION = 5,\n\tQUALIFIED_PENDING_REGISTRATION = 6,\n}\n\nexport enum TournamentRegistrationStatusName {\n\tNOT_REGISTERED = 'NOT_REGISTERED',\n\tREGISTERED = 'REGISTERED',\n\tFINISHED = 'FINISHED',\n\tPENDING = 'PENDING',\n\tCANCELLED = 'CANCELLED',\n\tREGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n\tQUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n\tUNKNOWN = 'UNKNOWN',\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n\treturn ({\n\t\t[TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n\t\t[TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n\t\t[TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n\t\t[TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n\t\t[TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]:\n\t\t\tTournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n\t\t[TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n\t\t[TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]:\n\t\t\tTournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION,\n\t}[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n};\n","export enum TournamentInstanceStatus {\n\tPUBLISHED = 1,\n\tREGISTER = 2,\n\tSTARTED = 3,\n\tFINISHED = 4,\n\tCANCELLED = 5,\n\tFAILED = 6,\n\tFINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n\treturn {\n\t\t[TournamentInstanceStatus.PUBLISHED]: 'PUBLISHED',\n\t\t[TournamentInstanceStatus.REGISTER]: 'REGISTER',\n\t\t[TournamentInstanceStatus.STARTED]: 'STARTED',\n\t\t[TournamentInstanceStatus.FINISHED]: 'FINISHED',\n\t\t[TournamentInstanceStatus.CANCELLED]: 'CANCELLED',\n\t\t[TournamentInstanceStatus.FAILED]: 'FAILED',\n\t\t[TournamentInstanceStatus.FINALIZING]: 'FINALIZING',\n\t}[s];\n};\n","import { ActivityTypeLimited } from '../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\treturn {\n\t\t[ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n\t\t[ActivityTypeLimited.Points]: 'POINTS_ADD',\n\t\t[ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n\t\t[ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n\t\t[ActivityTypeLimited.MiniGameAttempt]: 'MINI_GAME_ATTEMPT',\n\t\t[ActivityTypeLimited.Bonus]: 'BONUS',\n\t\t[ActivityTypeLimited.AddGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_ADD',\n\t\t[ActivityTypeLimited.DeductGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_DEDUCT',\n\t\t[ActivityTypeLimited.ResetGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_RESET',\n\t}[type];\n};\n\nexport class TournamentUtils {\n\tpublic static isCanRegister = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\tif (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t!tournament.isUserRegistered && (\n\t\t\t\t\ttournament.playersMaxCount !== tournament.registrationCount ||\n\t\t\t\t\ttournament.playersMaxCount === null ||\n\t\t\t\t\ttournament.playersMaxCount === 0\n\t\t\t\t) &&\n\t\t\t\ttournament.registrationType !== TournamentRegistrationType.AUTO && (\n\t\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER || (\n\t\t\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isInProgress = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isActive = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isFinished = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isCancelled = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isUpcoming = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n\t\tif (player) {\n\t\t\tconst playerTransformed = {\n\t\t\t\tpublic_username: player.userAltName,\n\t\t\t\tavatar_url: player.avatar_url,\n\t\t\t\tposition: player.position,\n\t\t\t\tscores: player.scores,\n\t\t\t\tis_me: player.isMe,\n\t\t\t\tuser_ext_id: player.cleanExtUserId,\n\t\t\t\tcrm_brand_id: player.crmBrandId,\n\t\t\t\tuser_id: player.userId,\n\t\t\t};\n\n\t\t\tif (isMe) {\n\t\t\t\tdelete playerTransformed.is_me;\n\t\t\t}\n\n\t\t\treturn playerTransformed;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tpublic static getPrizeTransformed = (prize: TournamentPrize) => {\n\t\tif (prize) {\n\t\t\treturn { ...prize, type: tournamentPrizeTypeToPrizeName(prize.type) };\n\t\t}\n\n\t\treturn null;\n\t};\n}\n","import { TournamentRegistrationType, TournamentRegistrationTypeGetName } from './TournamentRegistrationType';\nimport { TournamentInstanceStatus } from './TournamentInstanceStatus';\nimport {\n\tTournamentRegistrationStatus,\n\tTournamentRegistrationStatusName,\n\tTournamentRegistrationStatusNamed,\n} from './TournamentRegistrationStatus';\nimport { TournamentType } from './TournamentType';\nimport { TournamentPublicMeta } from './TournamentPublicMeta';\nimport { TTournament } from '../WSAPI/WSAPITypes';\nimport { TournamentPlayer } from './TournamentPlayer';\nimport { TournamentPrize } from './TournamentPrize';\nimport { TournamentUtils } from './TournamentUtils';\nimport { IntUtils } from '../IntUtils';\nimport { AchRelatedGame } from '../Base/AchRelatedGame';\n\nexport interface Tournament {\n\t/** ID of tournament template */\n\ttournamentId?: number;\n\t/** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n\ttournamentInstanceId?: number;\n\t/** Type of the tournament. For now only SCHEDULED is support */\n\ttournamentType?: TournamentType;\n\t/** Meta information about tournament that should be used to build UI */\n\tpublicMeta?: TournamentPublicMeta;\n\t/** Cost of registration in the tournament in gamification points */\n\tbuyInAmount?: number;\n\t/** Not in use */\n\tprizePool?: number;\n\t/** The time when tournament is going to start */\n\tstartTime?: string;\n\t/** The time when tournament is going to finish */\n\tendTime?: string;\n\t/** The time when tournament is going to start, epoch */\n\tstartTimeTs?: number;\n\t/** The time when tournament is going to finish, epoch */\n\tendTimeTs?: number;\n\t/** Number of users registered in the tournament */\n\tregistrationCount?: number;\n\t/** Not in use */\n\ttotalCount?: number;\n\t/** Type of registration in the tournament */\n\tregistrationType?: TournamentRegistrationType;\n\t/** Status of registration in the tournament for current user */\n\ttournamentRegistrationStatus?: TournamentRegistrationStatus;\n\t/** Status of tournament instance */\n\ttournamentInstanceStatus?: TournamentInstanceStatus;\n\t/** flag indicating if current user is registered in the tournament */\n\tisUserRegistered?: boolean;\n\t/** Indicator if tournament allows later registration, when tournament is already started */\n\tallowLateRegistration?: boolean;\n\t/** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n\tplayersMinCount?: number;\n\t/** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n\tplayersMaxCount?: number;\n\t/** Tournament duration in millisecnnds */\n\tdurationMs?: number;\n\t/** prizes structure */\n\tprizeStructure?: {\n\t\tprizes: TournamentPrize[];\n\t};\n\t/** Information about current user */\n\ttournamentPlayer?: TournamentPlayer;\n\n\t/** List of casino games (or other types of entities) related to the tournament */\n\trelated_games?: AchRelatedGame[];\n\t/** The minimum amount of score points that the user should get in order to be qualified for the prize */\n\tminScoreToWin?: number;\n\t/** When enabled, users who don't meet the minimum qualifying score will be hidden from the Leaderboard. */\n\thideLeaderboardsMinScores?: boolean;\n}\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => {\n\treturn items\n\t\t.filter((r) => r.tournamentId >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TTournament = {\n\t\t\t\tinstance_id: r.tournamentInstanceId,\n\t\t\t\ttournament_id: r.tournamentId,\n\t\t\t\tname: r.publicMeta.name,\n\t\t\t\tdescription: r.publicMeta.description,\n\t\t\t\tsegment_dont_match_message: r.publicMeta.segment_dont_match_message,\n\t\t\t\timage1: r.publicMeta.image_url,\n\t\t\t\timage2: r.publicMeta.image_url2,\n\t\t\t\timage2_mobile: r.publicMeta.image_url2_mobile,\n\t\t\t\tprize_pool_short: r.publicMeta.prize_pool_short,\n\t\t\t\tcustom_price_text: r.publicMeta.custom_price_text,\n\t\t\t\tcustom_section_id: r.publicMeta.custom_section_id,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n\t\t\t\tis_featured: r.publicMeta.featured,\n\t\t\t\tribbon: r.publicMeta.label_tag === 'custom' ? r.publicMeta.custom_label_tag : r.publicMeta.label_tag,\n\t\t\t\tpriority: r.publicMeta.position,\n\n\t\t\t\tstart_time: r.startTimeTs,\n\t\t\t\tend_time: r.endTimeTs,\n\t\t\t\tregistration_count: r.registrationCount,\n\t\t\t\tis_user_registered: r.isUserRegistered,\n\t\t\t\tplayers_min_count: r.playersMinCount,\n\t\t\t\tplayers_max_count: r.playersMaxCount,\n\t\t\t\tregistration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n\t\t\t\tregistration_type: TournamentRegistrationTypeGetName(r.registrationType),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_POINTS ? { registration_cost_points: r.buyInAmount } : {}),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_GEMS ? { registration_cost_gems: r.buyInAmount } : {}),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_DIAMONDS ? { registration_cost_diamonds: r.buyInAmount } : {}),\n\t\t\t\tduration_ms: r.durationMs,\n\n\t\t\t\tis_active: TournamentUtils.isActive(r),\n\t\t\t\tis_can_register: TournamentUtils.isCanRegister(r),\n\t\t\t\tis_cancelled: TournamentUtils.isCancelled(r),\n\t\t\t\tis_finished: TournamentUtils.isFinished(r),\n\t\t\t\tis_in_progress: TournamentUtils.isInProgress(r),\n\t\t\t\tis_upcoming: TournamentUtils.isUpcoming(r),\n\n\t\t\t\tmin_scores_win: r.minScoreToWin,\n\t\t\t\thide_leaderboard_min_scores: r.hideLeaderboardsMinScores,\n\t\t\t};\n\n\t\t\tif (r.prizeStructure) {\n\t\t\t\tx.prizes = r.prizeStructure.prizes.map((p) => TournamentUtils.getPrizeTransformed(p));\n\t\t\t}\n\n\t\t\tif (r.tournamentPlayer) {\n\t\t\t\tx.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true);\n\t\t\t}\n\n\t\t\treturn x;\n\t\t});\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 { TournamentUtils } from './TournamentUtils';\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\t/** tournament info */\n\ttournamentInfo: {\n\t\t/** id of label, not in use */\n\t\tlabelId: number;\n\t\ttournamentLobbyInfo: Tournament;\n\t\t/** list of registered users */\n\t\tplayers: TournamentPlayer[];\n\t};\n\t/** information about current user position */\n\tuserPosition: TournamentPlayer;\n\t/** prizes structure */\n\tprizeStructure?: {\n\t\tprizes: TournamentPrize[];\n\t};\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n\tconst response: TTournamentDetailed = {\n\t\t...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n\t\trelated_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map((g) => ({\n\t\t\text_game_id: g.ext_game_id,\n\t\t\tgame_public_meta: {\n\t\t\t\tname: g.game_public_meta.name,\n\t\t\t\tlink: g.game_public_meta.link,\n\t\t\t\timage: g.game_public_meta.image,\n\t\t\t\tenabled: g.game_public_meta.enabled,\n\t\t\t\tgame_categories: g.game_public_meta.game_categories,\n\t\t\t\tgame_provider: g.game_public_meta.game_provider,\n\t\t\t\tmobile_spec_link: g.game_public_meta.mobile_spec_link,\n\t\t\t},\n\t\t})),\n\t\tplayers: t.tournamentInfo.players.map((p) => TournamentUtils.getPlayerTransformed(p)),\n\t};\n\n\tif (t.prizeStructure) {\n\t\tresponse.prizes = t.prizeStructure.prizes.map((p) => TournamentUtils.getPrizeTransformed(p));\n\t}\n\n\tif (t.userPosition) {\n\t\tresponse.me = TournamentUtils.getPlayerTransformed(t.userPosition, true);\n\t}\n\n\treturn response;\n};\n","export enum TournamentRegistrationError {\n\tNO_ERROR = 0,\n\tTOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n\tTOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n\tTOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n\tTOURNAMENT_ALREADY_REGISTERED = 30004,\n\tTOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n\tTOURNAMENT_USER_NOT_REGISTERED = 30006,\n\tTOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n\tTOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\tSCHEDULED = 1,\n\tSNG = 2,\n\tTEST = 3,\n}\n","export enum LeaderBoardPeriodType {\n\tDAILY = 1,\n\tWEEKLY = 2,\n\tMONTHLY = 3,\n}\n","import { LeaderBoardDetailsT, LeaderBoardUserT, LeaderBoardsRewardsT } from '../WSAPI/WSAPITypes';\nimport { LeaderBoardDetails } from './LeaderBoardDetails';\nimport { LeaderBoardPeriodType } from './LeaderBoardPeriodType';\nimport { LeaderBoardPosition } from './LeaderBoardPosition';\n\nconst pointsRewardTransform = (reward_points: number[]): LeaderBoardsRewardsT[] => {\n\tif (reward_points && reward_points.length) {\n\t\treturn reward_points.map((r, i) => ({ place: i + 1, points: r }));\n\t}\n\n\treturn null;\n};\n\nconst getLeaderBoardPlayerTransformed = (user: LeaderBoardPosition, isMe?: boolean): LeaderBoardUserT => {\n\tif (user) {\n\t\tconst x: LeaderBoardUserT = {\n\t\t\tpublic_username: user?.public_username || user.user_alt_name,\n\t\t\tavatar_url: user.avatar_url,\n\t\t\tposition: user.position_in_board,\n\t\t\tpoints: user.points_accumulated,\n\t\t\tis_me: user.is_me,\n\t\t};\n\n\t\tif (isMe) {\n\t\t\tdelete x.is_me;\n\t\t}\n\n\t\treturn x;\n\t}\n\n\treturn null;\n};\n\nexport const getLeaderBoardTransform = (board: LeaderBoardDetails): LeaderBoardDetailsT => {\n\tif (board) {\n\t\tconst x: LeaderBoardDetailsT = {\n\t\t\tboard_id: board.board_id,\n\t\t\tname: board.board_public_meta.name,\n\t\t\tdescription: board.board_public_meta.description,\n\t\t\trules: board.board_public_meta.rules,\n\t\t\tperiod_type_id: board.period_type_id,\n\t\t\trewards: pointsRewardTransform(board.reward_points),\n\t\t\tusers: board.positions.map((p) => getLeaderBoardPlayerTransformed(p)),\n\t\t\tme: getLeaderBoardPlayerTransformed(board.userPosition, true),\n\t\t};\n\n\t\treturn x;\n\t}\n\n\treturn null;\n};\n","import { IntUtils } from '../IntUtils';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { TLevel } from '../WSAPI/WSAPITypes';\nimport { Level } from './Level';\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\tlevels: Level[];\n}\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n\treturn levels?.levels.map((l) => ({\n\t\tid: l.level_id,\n\t\tname: l.level_public_meta.name,\n\t\tdescription: l.level_public_meta.description,\n\t\timage: l.level_public_meta.image_url,\n\t\trequired_points: l.required_points,\n\t\tvisibility_points: l.level_public_meta.visibility_points ? parseInt(l.level_public_meta.visibility_points as any) : null,\n\t\trequired_level_counter_1: l.required_level_counter_1,\n\t\trequired_level_counter_2: l.required_level_counter_2,\n\t\tcustom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n\t}));\n};\n","import { TRaffle, TRaffleDraw, TRafflePrize, TRafflePrizeWinner, TRaffleTicket } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { Raffle } from './Raffle';\nimport { RaffleDraw } from './RaffleDraw';\nimport { RafflePrize } from './RafflePrize';\nimport { RafflePrizeWinner } from './RafflePrizeWinner';\nimport { RaffleTicket } from './RaffleTicket';\n\nexport interface GetRafflesResponse extends ProtocolResponse {\n\titems: Raffle[];\n}\n\n/** @hidden */\nexport const ticketsTransform = (items: RaffleTicket[]): TRaffleTicket[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tticekt_id: item.id,\n\t\t\tticket_id_string: item.s,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const winnersTransform = (items: RafflePrizeWinner[]): TRafflePrizeWinner[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.user_id,\n\t\t\tusername: item.public_username,\n\t\t\tavatar_url: item.avatar_url,\n\t\t\tticket: { ticekt_id: item.ticket.id, ticket_id_string: item.ticket.s },\n\t\t\traf_won_id: item.raf_won_id,\n\t\t\tclaimed_date: item.claimed_date,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const prizeTransform = (items: RafflePrize[]): TRafflePrize[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.prize_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\tprizes_per_run: item.prizes_per_run,\n\t\t\tprizes_per_run_actual: item.prizes_per_run_actual,\n\t\t\tchances_to_win_perc: item.chances_to_win_perc,\n\t\t\tmin_required_total_tickets: item.min_required_total_tickets,\n\t\t\tcap_prizes_per_run: item.cap_prizes_per_run,\n\t\t\tpriority: item.priority,\n\t\t\tstock_items_per_draw: item.stock_items_per_draw,\n\t\t\tshould_claim: item.should_claim,\n\t\t\twinners: winnersTransform(item.winners),\n\t\t\trequires_claim: item.requires_claim,\n\t\t\tmin_required_tickets_for_user: item.min_required_tickets_for_user,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const drawTransform = (items: RaffleDraw[]): TRaffleDraw[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.draw_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\ticon_url: item.public_meta.icon_url,\n\t\t\tbackground_image_url: item.public_meta.background_image_url,\n\t\t\tbackground_image_url_mobile: item.public_meta.background_image_url_mobile,\n\t\t\tis_grand: item.public_meta.is_grand,\n\t\t\tprizes: prizeTransform(item.prizes),\n\t\t\tcurrent_state: item.current_state,\n\t\t\trun_id: item.run_id,\n\t\t\texecution_type: item.execution_type,\n\t\t\texecution_ts: item.execution_ts,\n\t\t\tprevious_run_ts: item.previous_run_ts,\n\t\t\tprevious_run_id: item.previous_run_id,\n\t\t\tticket_start_ts: item.ticket_start_ts,\n\t\t\tallow_multi_prize_per_ticket: item.allow_multi_prize_per_ticket,\n\t\t\ttotal_tickets_count: item.total_tickets_count,\n\t\t\tmy_tickets_count: item.my_tickets_count,\n\t\t\tmy_last_tickets: ticketsTransform(item.my_last_tickets),\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const raffleTransform = (items: Raffle[]): TRaffle[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.raffle_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\tcustom_section_id: item.public_meta.custom_section_id,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\tcustom_data: item.public_meta.custom_data,\n\t\t\tstart_date: item.start_date_ts,\n\t\t\tend_date: item.end_date_ts,\n\t\t\tmax_tickets_count: item.max_tickets_count,\n\t\t\tcurrent_tickets_count: item.current_tickets_count,\n\t\t\tdraws: drawTransform(item.draws),\n\t\t};\n\t});\n};\n","import { TRaffleDraw } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { RaffleDraw } from './RaffleDraw';\nimport { prizeTransform, ticketsTransform } from './GetRafflesResponse';\n\nexport interface GetDrawRunResponse extends ProtocolResponse {\n\tdraw: RaffleDraw;\n}\n\n/** @hidden */\nexport const drawRunTransform = (res: GetDrawRunResponse): TRaffleDraw => {\n\treturn {\n\t\tid: res.draw.draw_id,\n\t\tname: res.draw.public_meta.name,\n\t\tdescription: res.draw.public_meta.description,\n\t\timage_url:res.draw.public_meta.image_url,\n\t\timage_url_mobile:res.draw.public_meta.image_url_mobile,\n\t\ticon_url: res.draw.public_meta.icon_url,\n\t\tbackground_image_url: res.draw.public_meta.background_image_url,\n\t\tbackground_image_url_mobile: res.draw.public_meta.background_image_url_mobile,\n\t\tis_grand: res.draw.public_meta.is_grand,\n\t\tprizes: prizeTransform(res.draw.prizes),\n\t\tcurrent_state: res.draw.current_state,\n\t\trun_id: res.draw.run_id,\n\t\texecution_type: res.draw.execution_type,\n\t\texecution_ts: res.draw.execution_ts,\n\t\tprevious_run_ts: res.draw.previous_run_ts,\n\t\tprevious_run_id: res.draw.previous_run_id,\n\t\tticket_start_ts: res.draw.ticket_start_ts ?? res.draw['ticket_start_date'],\n\t\tallow_multi_prize_per_ticket: res.draw.allow_multi_prize_per_ticket,\n\t\ttotal_tickets_count: res.draw.total_tickets_count,\n\t\tmy_tickets_count: res.draw.my_tickets_count,\n\t\tmy_last_tickets: ticketsTransform(res.draw.my_last_tickets)\n\t} \t\n};","import { RaffleDrawPublicMeta } from \"./RaffleDrawPublicMeta\";\nimport { RafflePrize } from \"./RafflePrize\";\nimport { RaffleTicket } from \"./RaffleTicket\";\n\nexport enum RaffleDrawInstanceState {\n /** Draw is open for the tickets collection */\n Open = 1,\n /** Winner selection is in progress */\n WinnerSelection = 2,\n /** Draw is executed and the winners are selected */\n Executed = 3,\n}\n\nexport enum RaffleDrawTypeExecution {\n /** Draw is executed only once */\n ExecDate = 0,\n /** Draw is executed on a recurring basis */\n Recurring = 1,\n /** \n * Draw is executed once and is marked as grand.\n * This means it is a special or significant draw,\n * often with larger prizes or more importance.\n */\n Grand = 2,\n}\n\n\ninterface RaffleDraw {\n /** \n * Id of the Draw definition, for the repetative draws (e.g. daily), this number will be the same for all draws that are repeating daily\n * (internal name: schedule_id)\n */\n draw_id: number;\n\n /** Meta information of the Draw for the presentaiton in UI */\n public_meta: RaffleDrawPublicMeta;\n\n /** Information about prizes in the draw */\n prizes: RafflePrize[];\n\n /** \n * State of current instance of Draw\n */\n current_state: RaffleDrawInstanceState;\n\n /** \n * Field indicates the ID of the latest instance/run of draw\n */\n run_id: number;\n\n /** \n * Type of the draw execution, indicating how and when the draw is executed.\n * \n * - ExecDate: Draw is executed only once at a specific date and time.\n * - Recurring: Draw is executed on a recurring basis (e.g., daily, weekly).\n * - Grand: Draw is executed once and is marked as grand, often with larger prizes or more importance.\n */\n execution_type: RaffleDrawTypeExecution;\n\n /** Date/time of the draw execution */\n execution_ts: number;\n \n /** Date of the previously executed draw (if there is such) */\n previous_run_ts?: number;\n\n /** Unique ID of the previusly executed draw (if there is such) */\n previous_run_id?: number; \n\n /** \n * Date/time starting from which the tickets will participate in the upcoming draw\n * This value need to be taken into account with next_execute_ts field value, for example\n * Next draw is at 10:00, ticket_start_date is 9:00, so all tickets that are collected after 9:00 will participate in the draw at 10:00\n * (internally this value is calculated as next_execute_ts - ticket_start_date)\n */\n ticket_start_ts: number;\n\n /** \n * Field is indicating if same ticket can win multiple prizes in the same draw\n * For example there are 3 types of prizes in the draw - iPhone, iPad, MacBook\n * If this field is true, then one ticket can win all 3 prizes (depending on the chances of course),\n * if false, then one ticket can win only one prize.\n * The distribution of the prizes is start from top (assuming on top are the most valuable prizes) to bottom (less valuable prizes)\n * If specific prize has multiple values, e.g. we have 3 iPhones,\n * then the same ticket can win only one prize of a kind, but can win multiple prizes of different kind (if allow_multi_prize_per_ticket is true)\n */\n allow_multi_prize_per_ticket: boolean;\n\n\n /** \n * The number of tickets that are already given to all users for this instance of draw.\n * In other words tickets that are collected between ticket_start_date and current time (or till current_execution_ts is the instance is executed).\n */\n total_tickets_count: number;\n\n /** \n * The number of tickets collected by current user for this instance of draw.\n */\n my_tickets_count: number;\n\n /**\n * List of last 5 tickets are collected by current user for this instance of draw.\n */\n my_last_tickets: RaffleTicket[];\n}\n\nexport { RaffleDraw };\n","import { TRaffleDrawRun } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { RaffleDrawRun } from './RaffleDrawRun';\n\nexport interface GetRaffleDrawRunsHistoryResponse extends ProtocolResponse {\n\tdraw_runs: RaffleDrawRun[];\n}\n\n/** @hidden */\nexport const drawRunHistoryTransform = (res: GetRaffleDrawRunsHistoryResponse): TRaffleDrawRun[] => {\n\treturn res.draw_runs.map((item) => {\n\t\treturn {\n\t\t\tid: item.draw_id,\n\t\t\trun_id: item.run_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\ticon_url: item.public_meta.icon_url,\n\t\t\tbackground_image_url: item.public_meta.background_image_url,\n\t\t\tbackground_image_url_mobile: item.public_meta.background_image_url_mobile,\n\t\t\tis_grand: item.public_meta.is_grand,\n\t\t\texecution_ts: item.execution_ts,\n\t\t\tactual_execution_ts:item.actual_execution_ts,\n\t\t\tticket_start_ts:item.ticket_start_ts,\n\t\t\tis_winner:item.is_winner,\n\t\t\thas_unclaimed_prize:item.has_unclaimed_prize\n\t\t};\n\t});\n};\n","import { TransformedRaffleClaimPrizeResponse } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\n\nexport interface RaffleClaimPrizeResponse extends ProtocolResponse {\n errCode: number\n errMsg?: string\n}\n\n/** @hidden */\nexport const raffleClaimPrizeResponseTransform = (info: RaffleClaimPrizeResponse): TransformedRaffleClaimPrizeResponse => {\n return {\n errorCode: info.errCode,\n errorMessage: info.errMsg\n }\n}\n","import { ClassId } from '../Base/ClassId';\nimport { CoreUtils } from '../Core';\nimport {\n\tSAWSpinsCountPush,\n} from '../MiniGames';\nimport { ECacheContext, OCache } from '../OCache';\nimport { SmarticoAPI } from '../SmarticoAPI';\nimport {\n\tInboxMarkMessageAction,\n\tLeaderBoardDetailsT,\n\tTAchCategory,\n\tTBuyStoreItemResult,\n\tTGetTranslations,\n\tTInboxMessage,\n\tTInboxMessageBody,\n\tTLevel,\n\tTMiniGamePlayResult,\n\tTMiniGameTemplate,\n\tTMissionClaimRewardResult,\n\tTMissionOptInResult,\n\tTMissionOrBadge,\n\tTSegmentCheckResult,\n\tTStoreCategory,\n\tTStoreItem,\n\tTTournament,\n\tTTournamentDetailed,\n\tTTournamentRegistrationResult,\n\tTUICustomSection,\n\tTUserProfile,\n\tUserLevelExtraCountersT,\n\tTBonus,\n\tTClaimBonusResult,\n\tTMiniGamePlayBatchResult,\n\tTSawHistory,\n\tTRaffle,\n\tTRaffleDraw,\n\tTRaffleDrawRun,\n\tTransformedRaffleClaimPrizeResponse,\n\tTLevelCurrent\n} from './WSAPITypes';\nimport { LeaderBoardPeriodType } from '../Leaderboard';\nimport {\n\tJackpotDetails,\n\tJackpotPot,\n\tJackpotWinPush,\n\tJackpotWinnerHistory,\n\tJackpotsOptinResponse,\n\tJackpotsOptoutRequest,\n\tJackpotsOptoutResponse,\n} from '../Jackpots';\nimport { GetRelatedAchTourResponse } from '../Missions/GetRelatedAchTourResponse';\nimport { InboxCategories } from '../Inbox/InboxCategories';\nimport {\n\tdrawRunHistoryTransform,\n\tdrawRunTransform,\n\traffleClaimPrizeResponseTransform,\n} from '../Raffle';\nimport { IntUtils } from '../IntUtils';\nimport { TGetJackpotEligibleGamesResponse } from '../Jackpots/GetJackpotEligibleGamesResponse';\n\n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n\nconst JACKPOT_TEMPLATE_CACHE_SEC = 30;\nconst JACKPOT_POT_CACHE_SEC = 1;\nconst JACKPOT_WINNERS_CACHE_SEC = 30;\nconst JACKPOT_ELIGIBLE_GAMES_CACHE_SEC = 30;\n\n/** @hidden */\nenum onUpdateContextKey {\n\tSaw = 'saw',\n\tMissions = 'missions',\n\tTournamentList = 'tournamentList',\n\tInboxMessages = 'inboxMessages',\n\tBadges = 'badges',\n\tLevels = 'levels',\n\tStoreItems = 'storeItems',\n\tStoreCategories = 'storeCategories',\n\tAchCategories = 'achCategories',\n\tLeaderBoards = 'leaderBoards',\n\tLevelExtraCounters = 'levelExtraCounters',\n\tSegments = 'segments',\n\tStoreHistory = 'storeHistory',\n\tJackpots = 'jackpots',\n\tPots = 'Pots',\n\tCustomSections = 'customSections',\n\tBonuses = 'bonuses',\n\tSAWHistory = 'sawHistory',\n\tJackpotWinners = 'jackpotWinners',\n\tRaffles = 'raffles',\n\tJackpotEligibleGames = 'jackpotEligibleGames',\n\tCurrentLevel = 'currentLevel',\n\tInboxUnreadCount = 'inboxUnreadCount',\n}\n\n/** @group General API */\nexport class WSAPI {\n\tprivate onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n\tprivate jackpotGetSignature: string = '';\n\n\t/** @private */\n\tconstructor(private api: SmarticoAPI) {\n\t\tOCache.clearAll();\n\t\tif (this.api.tracker) {\n\t\t\tconst on = this.api.tracker.on;\n\n\t\t\ton(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n\t\t\ton(ClassId.SAW_SHOW_SPIN_PUSH, () => this.reloadMiniGameTemplate());\n\t\t\ton(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.SAW_DO_SPIN_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissions());\n\t\t\ton(ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE, () => this.updateMissions());\n\t\t\ton(ClassId.RELOAD_ACHIEVEMENTS_EVENT, () => this.updateMissions());\n\t\t\ton(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournaments());\n\t\t\ton(ClassId.BUY_SHOP_ITEM_RESPONSE, () => {\n\t\t\t\tthis.updateStorePurchasedItems();\n\t\t\t\tthis.updateStoreItems();\n\t\t\t});\n\t\t\ton(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n\t\t\ton(ClassId.LOGOUT_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n\t\t\ton(ClassId.IDENTIFY_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n\t\t\ton(ClassId.JP_WIN_PUSH, (data: JackpotWinPush) => this.jackpotClearCache());\n\t\t\ton(ClassId.JP_OPTOUT_RESPONSE, (data: JackpotsOptoutRequest) => this.jackpotClearCache());\n\t\t\ton(ClassId.JP_OPTIN_RESPONSE, (data: JackpotsOptinResponse) => this.jackpotClearCache());\n\t\t\ton(ClassId.CLAIM_BONUS_RESPONSE, () => this.updateBonuses());\n\t\t\ton(ClassId.SAW_DO_SPIN_BATCH_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.RAF_CLAIM_PRIZE_RESPONSE, () => {\n\t\t\t\tthis.updateRaffles();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Raffles);\n\t\t\t});\n\t\t\ton(ClassId.GET_INBOX_MESSAGES_RESPONSE, (res) => {\n\t\t\t\tif (res.unread_count !== undefined && res.unread_count !== null) {\n\t\t\t\t\tthis.updateInboxUnreadCount(res.unread_count);\n\t\t\t\t}\n\t\t\t});\n\t\t\ton(ClassId.CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT, (data: { props: { core_inbox_unread_count: number } }) => {\n\t\t\t\tif (data?.props?.core_inbox_unread_count !== undefined && data?.props?.core_inbox_unread_count !== null) {\n\t\t\t\t\tthis.updateInboxUnreadCount(data.props.core_inbox_unread_count);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/** @private */\n\t// AA: this method is used from the _smartico script to clear cache when the context is changed,\n\t// e.g. when user is changed or language is changed\n\tpublic clearCaches() {\n\t\tOCache.clearAll();\n\t}\n\n\t/** Returns information about current user\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getUserProfile(result => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t * */\n\tpublic getUserProfile(): TUserProfile {\n\t\tif (this.api.tracker) {\n\t\t\tconst o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n\t\t\to.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n\t\t\treturn o;\n\t\t} else {\n\t\t\tthrow new Error('Tracker is not initialized, cannot getUserProfile');\n\t\t}\n\t}\n\n\t/** Check if user belongs to specific segments\n\t * **Example**:\n\t * ```\n\t * _smartico.api.checkSegmentMatch(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async checkSegmentMatch(segment_id: number): Promise<boolean> {\n\t\tconst r = await this.api.coreCheckSegments(null, [segment_id]);\n\t\tif (r && r.find((s) => s.segment_id === segment_id && s.is_matching)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** Check if user belongs to specific list of segments\n\t * **Example**:\n\t * ```\n\t * _smartico.api.checkSegmentListMatch([1, 2, 3]).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async checkSegmentListMatch(segment_ids: number[]): Promise<TSegmentCheckResult[]> {\n\t\treturn await this.api.coreCheckSegments(null, Array.isArray(segment_ids) ? segment_ids : [segment_ids]);\n\t}\n\n\t/** Returns all the levels available the current user\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getLevels().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getLevels().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getLevels(): Promise<TLevel[]> {\n\t\treturn OCache.use(onUpdateContextKey.Levels, ECacheContext.WSAPI, () => this.api.levelsGetT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns the current level of the user with extended information including ordinal position and progress.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getCurrentLevel().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getCurrentLevel(): Promise<TLevelCurrent> {\n\t\treturn OCache.use(onUpdateContextKey.CurrentLevel, ECacheContext.WSAPI, () => this.api.getLevelCurrent(null), CACHE_DATA_SEC);\n\t}\n\n\t/** Returns all the missions available the current user.\n\t * The returned missions are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMissions().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getMissions().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.Missions,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.missionsGetItemsT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the badges available the current user\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getBadges(): Promise<TMissionOrBadge[]> {\n\t\treturn OCache.use(onUpdateContextKey.Badges, ECacheContext.WSAPI, () => this.api.badgetsGetItemsT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns all the bonuses for the current user\n\t * The returned bonuss are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getBonuses with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on bonus claimed and the updated bonuses will be passed to it.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getBonuses({ onUpdate }: { onUpdate?: (data: TBonus[]) => void } = {}): Promise<TBonus[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Bonuses, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Bonuses, ECacheContext.WSAPI, () => this.api.bonusesGetItemsT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Claim the bonus by bonus_id. Returns the err_code in case of success or error.\n\t * Note that this method can be used only on integrations where originally failed bonus can be claimed again.\n\t * For example, user won a bonus in the mini-game, but Operator rejected this bonus.\n\t * This bonus will be available for the user to claim again.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async claimBonus(bonus_id: number): Promise<TClaimBonusResult> {\n\t\tconst r = await this.api.bonusClaimItem(null, bonus_id);\n\n\t\tconst o: TClaimBonusResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t\tsuccess: r.success,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Returns the extra counters for the current user level.\n\t * These are counters that are configured for each Smartico client separatly by request.\n\t * For example 1st counter could be total wagering amount, 2nd counter could be total deposit amount, etc.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getUserLevelExtraCounters().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getUserLevelExtraCounters(): Promise<UserLevelExtraCountersT> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.LevelExtraCounters,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getUserGamificationInfoT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * Returns all the store items available the current user\n\t * The returned store items are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getStoreItems with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on purchase of the store item.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStoreItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getStoreItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * @param params\n\t * @param params.onUpdate - callback function that will be called when the store items are updated\n\t */\n\n\tpublic async getStoreItems({ onUpdate }: { onUpdate?: (data: TStoreItem[]) => void } = {}): Promise<TStoreItem[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.StoreItems, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreItems,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetItemsT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/** Buy the specific shop item by item_id. Returns the err_code in case of success or error.\n\t * **Example**:\n\t * ```\n\t * _smartico.api.buyStoreItem(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n\t\tconst r = await this.api.buyStoreItem(null, item_id);\n\n\t\tconst o: TBuyStoreItemResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t *\n\t * Returns store categories\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStoreCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getStoreCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getStoreCategories(): Promise<TStoreCategory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreCategories,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetCategoriesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns purchased items based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched.\n\t * The maximum number of items per request is limited to 20.\n\t * You can leave this params empty and by default it will return list of purchased items ranging from 0 to 20.\n\t * The returned store items are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getStorePurchasedItems with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on purchase of the store item and the last 20 items will be passed to it.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStorePurchasedItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async getStorePurchasedItems({\n\t\tlimit,\n\t\toffset,\n\t\tonUpdate,\n\t}: { limit?: number; offset?: number; onUpdate?: (data: TStoreItem[]) => void } = {}): Promise<TStoreItem[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.StoreHistory, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreHistory,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetPurchasedItemsT(null, limit, offset),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns missions & badges categories\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getAchCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getAchCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * */\n\tpublic async getAchCategories(): Promise<TAchCategory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.AchCategories,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.achGetCategoriesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of custom sections\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getCustomSections().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getCustomSections().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * */\n\tpublic async getCustomSections(): Promise<TUICustomSection[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.CustomSections,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.customSectionsGetT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the list of mini-games available for user\n\t * 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\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMiniGames().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getMiniGames().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\tpublic async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<\n\t\tTMiniGameTemplate[]\n\t> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns the list of mini-games based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched.\n\t * The maximum number of items per request is limited to 20.\n\t * You can leave this params empty and by default it will return list of mini-games ranging from 0 to 20.\n\t * The returned list of mini-games history is cached for 30 seconds.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMiniGamesHistory().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async getMiniGamesHistory({\n\t\tlimit,\n\t\toffset,\n\t\tsaw_template_id,\n\t}: {\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tsaw_template_id?: number;\n\t}): Promise<TSawHistory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.SAWHistory,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getSawWinningHistoryT(null, limit, offset, saw_template_id),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code\n\t * After playMiniGame is called, you can call getMiniGames to get the list of mini-games.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 playMiniGame with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.playMiniGame(55).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async playMiniGame(\n\t\ttemplate_id: number,\n\t\t{ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {},\n\t): Promise<TMiniGamePlayResult> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\tconst r = await this.api.sawSpinRequest(null, template_id);\n\t\tthis.api.doAcknowledgeRequest(null, r.request_id);\n\n\t\tconst o: TMiniGamePlayResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t\tprize_id: r.saw_prize_id,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Sends the acknowledge request with specific client_request_id from minigame history in order to claim prize\n\t * **Example**:\n\t * ```\n\t * _smartico.api.miniGameWinAcknowledgeRequest('2a189322-31bb-4119-b943-bx7868ff8dc3').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async miniGameWinAcknowledgeRequest(request_id: string) {\n\t\treturn this.api.doAcknowledgeRequest(null, request_id);\n\t}\n\n\t/**\n\t * Plays the specified by template_id mini-game on behalf of user spin_count times and returns array of the prizes\n\t * After playMiniGameBatch is called, you can call getMiniGames to get the list of mini-games. 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 playMiniGameBatch with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.playMiniGameBatch(55, 10).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async playMiniGameBatch(\n\t\ttemplate_id: number,\n\t\tspin_count: number,\n\t\t{ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {},\n\t): Promise<TMiniGamePlayBatchResult[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\tconst response = await this.api.sawSpinBatchRequest(null, template_id, spin_count);\n\n\t\tconst request_ids = response.results.map((result) => result.request_id);\n\t\tthis.api.doAcknowledgeBatchRequest(null, request_ids);\n\n\t\tconst o: TMiniGamePlayBatchResult[] = response.results.map((result) => ({\n\t\t\terrCode: result.errCode,\n\t\t\terrMessage: result.errMsg,\n\t\t\tsaw_prize_id: result.saw_prize_id,\n\t\t\tjackpot_amount: result.jackpot_amount,\n\t\t\tfirst_spin_in_period: result.first_spin_in_period,\n\t\t}));\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Requests an opt-in for the specified mission_id. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult> {\n\t\tconst r = await this.api.missionOptIn(null, mission_id);\n\n\t\tconst o: TMissionOptInResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Request for claim reward for the specified mission id. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async requestMissionClaimReward(mission_id: number, ach_completed_id: number): Promise<TMissionClaimRewardResult> {\n\t\tconst r = await this.api.missionClaimPrize(null, mission_id, ach_completed_id);\n\n\t\tconst o: TMissionClaimRewardResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/** Returns all the active instances of tournaments\n\t * 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\t * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getTournamentsList().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getTournamentsList().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * */\n\tpublic async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.TournamentList,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.tournamentsGetLobbyT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getTournamentsList().then((result) => {\n\t * if (result.length > 0) {\n\t * _smartico.api.getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n\t * console.log(result);\n\t * });\n\t * }\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getTournamentsList().then((result) => {\n\t * if (result.length > 0) {\n\t * _smartico.vapi('EN').getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n\t * console.log(result);\n\t * });\n\t * }\n\t * });\n\t * ```\n\t */\n\tpublic async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n\t\treturn this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n\t}\n\n\t/**\n\t * Requests registration for the specified tournament instance. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult> {\n\t\tconst r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n\t\tconst o: TTournamentRegistrationResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * 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\t * For example, if the type is Weekly and getPreviousPeriod is true, a leaderboard for the previous week will be returned.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getLeaderBoard(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getLeaderBoard(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getLeaderBoard(periodType: LeaderBoardPeriodType, getPreviousPeriod?: boolean): Promise<LeaderBoardDetailsT> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.LeaderBoards,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.leaderboardsGetT(null, periodType, getPreviousPeriod),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched.\n\t * 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\t * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n\t * This functions return list of messages without the body of the message.\n\t * 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\t * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n\t * 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\t *\n\t * **Visitor mode: not supported**\n\t *\n\t * @param params\n\t */\n\tpublic async getInboxMessages({\n\t\tfrom,\n\t\tto,\n\t\tonlyFavorite,\n\t\tcategoryId,\n\t\tonUpdate,\n\t}: {\n\t\tfrom?: number;\n\t\tto?: number;\n\t\tonlyFavorite?: boolean;\n\t\tcategoryId?: InboxCategories;\n\t\tonUpdate?: (data: TInboxMessage[]) => void;\n\t} = {}): Promise<TInboxMessage[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n\t\t}\n\t\treturn await this.api.getInboxMessagesT(null, from, to, onlyFavorite, categoryId);\n\t}\n\n\t/**\n\t * Returns inbox unread count.\n\t *\n\t * **Visitor mode: not supported**\n\t * @param params\n\t */\n\tpublic async getInboxUnreadCount({ onUpdate }: { onUpdate?: (unread_count: number) => void } = {}): Promise<number> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.InboxUnreadCount, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.InboxUnreadCount,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getInboxUnreadCountT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the message body of the specified message guid.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n\t\treturn await this.api.getInboxMessageBodyT(messageGuid);\n\t}\n\n\t/**\n\t * Requests to mark inbox message with specified guid as read\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markInboxMessageRead(null, messageGuid);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to mark all inbox messages as rea\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markAllInboxMessageRead(null);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to delete inbox message\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.deleteInboxMessage(null, messageGuid);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to delete all inbox messages\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.deleteAllInboxMessages(null);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * 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\t */\n\tpublic async getTranslations(lang_code: string): Promise<TGetTranslations> {\n\t\tconst r = await this.api.getTranslationsT(null, lang_code, []);\n\n\t\treturn {\n\t\t\ttranslations: r.translations,\n\t\t};\n\t}\n\n\tprivate async updateOnSpin(data: SAWSpinsCountPush) {\n\t\tconst templates: TMiniGameTemplate[] = await OCache.use(\n\t\t\tonUpdateContextKey.Saw,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.sawGetTemplatesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t\tconst index = templates.findIndex((t) => t.id === data.saw_template_id);\n\t\ttemplates[index].spin_count = data.spin_count;\n\t\tthis.updateEntity(onUpdateContextKey.Saw, templates);\n\t}\n\n\tprivate async reloadMiniGameTemplate() {\n\t\tconst updatedTemplates = await this.api.sawGetTemplatesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Saw, updatedTemplates);\n\t}\n\n\tprivate async updateMissions() {\n\t\tconst payload = await this.api.missionsGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Missions, payload);\n\t}\n\n\tprivate async updateBonuses() {\n\t\tconst payload = await this.api.bonusesGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Bonuses, payload);\n\t}\n\n\tprivate async updateTournaments() {\n\t\tconst payload = await this.api.tournamentsGetLobbyT(null);\n\t\tthis.updateEntity(onUpdateContextKey.TournamentList, payload);\n\t}\n\n\tprivate async updateStorePurchasedItems() {\n\t\tconst payload = await this.api.storeGetPurchasedItemsT(null, 20, 0);\n\t\tthis.updateEntity(onUpdateContextKey.StoreHistory, payload);\n\t}\n\n\tprivate async updateStoreItems() {\n\t\tconst payload = await this.api.storeGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.StoreItems, payload);\n\t}\n\n\tprivate async updateInboxUnreadCount(count: number) {\n\t\tthis.updateEntity(onUpdateContextKey.InboxUnreadCount, count);\n\t}\n\n\tprivate async updateInboxMessages() {\n\t\tconst payload = await this.api.getInboxMessagesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.InboxMessages, payload);\n\t}\n\n\tprivate async updateRaffles() {\n\t\tconst payload = await this.api.getRafflesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Raffles, payload);\n\t}\n\n\tprivate async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n\t\tOCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n\t\tconst onUpdate = this.onUpdateCallback.get(contextKey);\n\t\tif (onUpdate) {\n\t\t\tonUpdate(payload);\n\t\t}\n\t}\n\n\tprivate async jackpotClearCache() {\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Jackpots);\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Pots);\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.JackpotWinners);\n\t}\n\n\t/** Returns list of Jackpots that are active in the systen and matching to the filter definition.\n\t * If filter is not provided, all active jackpots will be returned.\n\t * Filter can be used to get jackpots related to specific game or specific jackpot template.\n\t * You can call this method every second in order to get up to date information about current value of the jackpot(s) and present them to the end-users\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async jackpotGet(filter?: { related_game_id?: string; jp_template_id?: number }): Promise<JackpotDetails[]> {\n\t\tconst signature: string = `${filter?.jp_template_id}:${filter?.related_game_id}`;\n\n\t\tif (signature !== this.jackpotGetSignature) {\n\t\t\tthis.jackpotGetSignature = signature;\n\t\t\tthis.jackpotClearCache();\n\t\t}\n\n\t\tlet jackpots: JackpotDetails[] = [];\n\t\tlet pots: JackpotPot[] = [];\n\n\t\tjackpots = await OCache.use<JackpotDetails[]>(\n\t\t\tonUpdateContextKey.Jackpots,\n\t\t\tECacheContext.WSAPI,\n\t\t\tasync () => {\n\t\t\t\tconst _jackpots = await this.api.jackpotGet(null, filter);\n\t\t\t\tconst _pots = _jackpots.items.map((jp) => jp.pot);\n\n\t\t\t\t_jackpots.items.forEach((jp) => {\n\t\t\t\t\tjp.jp_public_meta.custom_data = IntUtils.JsonOrText(jp.jp_public_meta.custom_data);\n\t\t\t\t});\n\n\t\t\t\tOCache.set(onUpdateContextKey.Pots, _pots, ECacheContext.WSAPI, JACKPOT_POT_CACHE_SEC);\n\t\t\t\treturn _jackpots.items;\n\t\t\t},\n\t\t\tJACKPOT_TEMPLATE_CACHE_SEC,\n\t\t);\n\n\t\tif (jackpots.length > 0) {\n\t\t\tpots = await OCache.use<JackpotPot[]>(\n\t\t\t\tonUpdateContextKey.Pots,\n\t\t\t\tECacheContext.WSAPI,\n\t\t\t\tasync () => {\n\t\t\t\t\tconst jp_template_ids = jackpots.map((jp) => jp.jp_template_id);\n\t\t\t\t\treturn (await this.api.potGet(null, { jp_template_ids })).items;\n\t\t\t\t},\n\t\t\t\tJACKPOT_POT_CACHE_SEC,\n\t\t\t);\n\t\t}\n\n\t\treturn jackpots.map((jp) => {\n\t\t\tlet _jp: JackpotDetails = {\n\t\t\t\t...jp,\n\t\t\t\tpot: pots.find((p) => p.jp_template_id === jp.jp_template_id),\n\t\t\t};\n\t\t\treturn _jp;\n\t\t});\n\t}\n\n\t/**\n\t * Opt-in currently logged in user to the jackpot with the specified jp_template_id.\n\t * You may call jackpotGet method after doing optin to see that user is opted in to the jackpot.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotOptIn({ jp_template_id: 123 }).then((result) => {\n\t * console.log('Opted in to the jackpot');\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t *\n\t */\n\tpublic async jackpotOptIn(filter: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n\t\tif (!filter.jp_template_id) {\n\t\t\tthrow new Error('jp_template_id is required in jackpotOptIn');\n\t\t}\n\n\t\tconst result = await this.api.jackpotOptIn(null, filter);\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Opt-out currently logged in user from the jackpot with the specified jp_template_id.\n\t * You may call jackpotGet method after doing optout to see that user is not opted in to the jackpot.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotOptOut({ jp_template_id: 123 }).then((result) => {\n\t * console.log('Opted out from the jackpot');\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t *\n\t */\n\tpublic async jackpotOptOut(filter: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n\t\tif (!filter.jp_template_id) {\n\t\t\tthrow new Error('jp_template_id is required in jackpotOptOut');\n\t\t}\n\n\t\tconst result = await this.api.jackpotOptOut(null, filter);\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Returns the winners of the jackpot with the specified jp_template_id.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getJackpotWinners({\n\t * jp_template_id: 123,\n\t * }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * \n\t * **Visitor mode: not supported**\n\t * \n\t */\n\n\tpublic async getJackpotWinners({\n\t\tlimit,\n\t\toffset,\n\t\tjp_template_id,\n\t} : {\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tjp_template_id?: number;\n\t}): Promise<JackpotWinnerHistory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.JackpotWinners + jp_template_id,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getJackpotWinnersT(null, limit, offset, jp_template_id),\n\t\t\tJACKPOT_WINNERS_CACHE_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the eligible games for the jackpot with the specified jp_template_id.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getJackpotEligibleGames({ jp_template_id: 123 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * \n\t * **Visitor mode: not supported**\n\t * \n\t */\n\n\tpublic async getJackpotEligibleGames({ jp_template_id, onUpdate } : { jp_template_id: number, onUpdate?: () => void }): Promise<TGetJackpotEligibleGamesResponse> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.JackpotEligibleGames, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.JackpotEligibleGames + jp_template_id,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getJackpotEligibleGamesT(null, { jp_template_id }),\n\t\t\tJACKPOT_ELIGIBLE_GAMES_CACHE_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the related tournaments and missions for the provided game id for the current user\n\t * The provided Game ID should correspond to the ID from the Games Catalog - https://help.smartico.ai/welcome/technical-guides/games-catalog-api\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getRelatedItemsForGame('gold-slot2').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getRelatedItemsForGame('gold-slot2').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getRelatedItemsForGame(related_game_id: string): Promise<GetRelatedAchTourResponse> {\n\t\tconst result = await this.api.getRelatedItemsForGame(null, related_game_id);\n\t\treturn result;\n\t}\n\n\t/**\n\t * Returns the list of Raffles available for user\n\t * The returned list of Raffles is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getRaffles with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on claiming prize. Updated Raffles will be passed to onUpdate callback.\n\t *\n\t * **Example**:\n\t * \n\t * ```\n\t * _smartico.api.getRaffles().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```\n\t * _smartico.vapi('EN').getRaffles().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffles({ onUpdate }: { onUpdate?: (data: TRaffle[]) => void } = {}): Promise<TRaffle[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Raffles, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Raffles, ECacheContext.WSAPI, () => this.api.getRafflesT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns draw run for provided raffle_id and run_id\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.getRaffleDrawRun({raffle_id: 156, run_id: 145}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').getRaffleDrawRun({ raffle_id: 156, run_id: 145 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffleDrawRun(props: { raffle_id: number; run_id: number }): Promise<TRaffleDraw> {\n\t\tconst res = await this.api.getRaffleDrawRun(null, props);\n\n\t\tif (!props.raffle_id || !props.run_id) {\n\t\t\tthrow new Error('both raffle_id and run_id are required');\n\t\t}\n\n\t\treturn drawRunTransform(res);\n\t}\n\n\t/**\n\t * Returns history of draw runs for the provided raffle_id and draw_id, if the draw_id is not provided will return history of all the draws for the provided raffle_id\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.getRaffleDrawRunHistory({raffle_id:156, draw_id: 432}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').getRaffleDrawRunHistory({ raffle_id: 156, draw_id: 432 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffleDrawRunsHistory(props: { raffle_id: number; draw_id?: number }): Promise<TRaffleDrawRun[]> {\n\t\tconst res = await this.api.getRaffleDrawRunsHistory(null, props);\n\n\t\tif (!props.raffle_id) {\n\t\t\tthrow new Error('raffle_id is required');\n\t\t}\n\n\t\treturn drawRunHistoryTransform(res);\n\t}\n\n\t/**\n\t * Returns error code, and error Message after calling the function, error message 0 - means that the request was successful\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.claimRafflePrize({won_id:251}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').claimRafflePrize({ won_id: 251 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\tpublic async claimRafflePrize(props: { won_id: number }): Promise<TransformedRaffleClaimPrizeResponse> {\n\t\tif (!props.won_id) {\n\t\t\tthrow new Error('won_id is required');\n\t\t}\n\n\t\tconst res = await this.api.claimRafflePrize(null, { won_id: props.won_id });\n\t\treturn raffleClaimPrizeResponseTransform(res);\n\t}\n}\n","export enum AchCustomSectionType {\n\tHTML_PAGE = 1,\n\tMISSIONS_CATEGORY = 2,\n\tTOURNAMENTS_CATEGORY = 3,\n\tLEVELS = 4,\n\tMINI_GAMES = 5,\n\tMISSION_CUSTOM_LAYOUT = 6,\n\tMATCH_X_AND_QUIZ = 7,\n\tREDIRECT_LINK = 9,\n\tLOOTBOX_WEEKLY = 10,\n\tLOOTBOX_CALENDAR_DAYS = 11,\n\tTREASURE_HUNT = 12,\n\tRAFFLE = 13,\n}\n\nexport enum AchCustomLayoutTheme {\n\tVALENTINES_LIGHT = 'valentines-light',\n\tVALENTINES_DARK = 'valentines-dark',\n\tEURO_2024 = 'euro-2024',\n\tGENERIC = 'generic',\n}\n\nexport enum AchMissionsTabsOptions {\n\tONLY_OVERVIEW = 1,\n\tNO_OVERVIEW = 2,\n\tALL = 3,\n}\n\nexport enum AchOverviewMissionsFilter {\n\tANY = 1,\n\tALL_MISSIONS = 2,\n\tALL_EXCEPT_COMPLETED = 3,\n\tALL_EXCEPT_LOCKED = 4,\n\tALL_EXCEPT_COMPLETED_AND_LOCKED = 5,\n}\n\nexport enum LiquidEntityData {\n\tMissions = 1,\n\tStore = 2,\n\tTournaments = 3,\n\tMiniGames = 4,\n\tLevels = 5,\n\tJackpots = 6,\n\tBonus = 7,\n\tLeaderboard = 8,\n\tBadges = 9,\n\tTournament = 10,\n}","import { TUICustomSection } from '../WSAPI/WSAPITypes';\nimport {\n\tAchCustomLayoutTheme,\n\tAchCustomSectionType,\n\tAchMissionsTabsOptions,\n\tAchOverviewMissionsFilter,\n\tLiquidEntityData,\n} from './AchCustomSection';\nimport { GetCustomSectionsResponse } from './GetCustomSectionsResponse';\n\nexport interface UICustomSection {\n\tbody?: string;\n\tmenu_img?: string;\n\tmenu_name?: string;\n\tcustom_skin_images?: string;\n\tsection_type_id?: AchCustomSectionType;\n\ttheme?: AchCustomLayoutTheme;\n\tgeneric_custom_css?: string;\n\tmission_tabs_options?: AchMissionsTabsOptions;\n\toverview_missions_filter?: AchOverviewMissionsFilter;\n\toverview_missions_count?: number;\n\tliquid_entity_data?: LiquidEntityData[];\n\tach_tournament_id?: number;\n\tshow_raw_data?: boolean;\n\tliquid_template?: number;\n}\n\nexport const UICustomSectionTransform = (response: GetCustomSectionsResponse): TUICustomSection[] => {\n\n\tconst items: TUICustomSection[] = [];\n\n\tObject.keys(response.customSections || []).forEach((key: string) => {\n\t\tconst r = response.customSections[key];\n\t\tconst id = parseInt(key);\n\t\tif (r.section_type_id !== undefined && r.section_type_id >= 1) {\n\t\t\tconst x: TUICustomSection = {\n\t\t\t\tid: id,\n\t\t\t\tbody: r.body,\n\t\t\t\tmenu_img: r.menu_img,\n\t\t\t\tmenu_name: r.menu_name,\n\t\t\t\tsection_type_id: r.section_type_id,\n\t\t\t\tcustom_skin_images: r.custom_skin_images,\n\t\t\t\tgeneric_custom_css: r.generic_custom_css,\n\t\t\t\tmission_tabs_options: r.mission_tabs_options,\n\t\t\t\toverview_missions_count: r.overview_missions_count,\n\t\t\t\toverview_missions_filter: r.overview_missions_filter,\n\t\t\t\ttheme: r.theme,\n\t\t\t\t...(r.section_type_id === AchCustomSectionType.LEVELS\n\t\t\t\t\t? {\n\t\t\t\t\t\tliquid_entity_data: r.liquid_entity_data,\n\t\t\t\t\t\tach_tournament_id: r.ach_tournament_id,\n\t\t\t\t\t\tshow_raw_data: r.show_raw_data,\n\t\t\t\t\t\tliquid_template: r.liquid_template,\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t\t),\n\t\t\t};\n\n\t\t\titems.push(x);\n\t\t}\n\t});\n\n\treturn items;\n};\n","import { BonusStatus } from './BonusStatus';\nimport { BonusTemplateMetaMap } from './BonusTemplateMetaMap';\nimport { BonusMetaMap } from './BonusMetaMap';\nimport { TBonus } from '../WSAPI/WSAPITypes';\n\nexport interface Bonus {\n\tid: number;\n\tredeemable?: boolean;\n\tcreateDate?: string;\n\tupdateDate?: string;\n\tredeemDate?: string;\n\tengagementUid?: string;\n\tlabelBonusTemplateId?: number;\n\tsourceProductRefId?: number;\n\tsourceProductId?: number;\n\tuserId?: number;\n\tbonusStatusId?: BonusStatus;\n\tlabelBonusTemplateMetaMap?: BonusTemplateMetaMap;\n\tbonusMetaMap?: BonusMetaMap;\n}\n\nexport const BonusItemsTransform = (items: Bonus[]): TBonus[] => {\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TBonus = {\n\n bonus_id: r.id,\n is_redeemable: r.redeemable,\n create_date: r.createDate,\n redeem_date: r.redeemDate,\n label_bonus_template_id: r.labelBonusTemplateId,\n bonus_status_id: r.bonusStatusId,\n label_bonus_template_meta_map: r.labelBonusTemplateMetaMap,\n bonus_meta_map: r.bonusMetaMap\n\t\t\t};\n\n\t\t\treturn x;\n\t\t});\n};","export enum BonusStatus {\n\tNew = 1,\n\tCOUPON_ISSUED = 2,\n\tREDEEMED = 3,\n\tREDEEM_FAILED = 4, \n\tCOUPON_ISSUE_FAILED = 5, \n\tEXPIRED = 6, \n}","import { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { JackPotWinner } from \"./JackPotWinner\";\n\nexport interface GetJackpotWinnersResponse extends ProtocolResponse {\n\t/** The list of jackpot winners */\n\twinners: JackpotWinnerHistory[];\n\t/** Whether there are more winners to fetch */\n\thas_more: boolean;\n}\n\nexport interface JackpotWinnerHistory {\n\t/** Id of the jackpot pot */\n\tjp_pot_id: number;\n\t/** Date of winning in milliseconds */\n\twin_date_ts: number;\n\t/** Info about jackpot winner */\n\twinner: JackPotWinner;\n}\n\n/**\n * @ignore\n */\nexport const GetJackpotWinnersResponseTransform = (items: JackpotWinnerHistory[]): JackpotWinnerHistory[] => {\n\treturn items.map((item) => {\n\t\tconst winnerInfo: JackpotWinnerHistory = {\n\t\t\twinner: item.winner,\n\t\t\twin_date_ts: item.win_date_ts,\n\t\t\tjp_pot_id: item.jp_pot_id,\n\t\t};\n\n\t\treturn winnerInfo;\n\t});\n};\n","import { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { AchRelatedGame } from '../Base/AchRelatedGame';\n\nexport interface GetJackpotEligibleGamesResponse extends ProtocolResponse {\n\teligible_games: AchRelatedGame[];\n}\n\nexport interface TGetJackpotEligibleGamesResponse {\n\teligible_games: JackpotEligibleGame[];\n}\n\nexport interface JackpotEligibleGame {\n /** ID of the game on Smartico side */\n\tgame_id: number;\n /** ID of the game on operator side */\n ext_game_id: string;\n /** Name of the game */\n name: string;\n /** Link to the game */\n link: string;\n /** Image of the game */\n image: string;\n /** Whether the game is enabled */\n enabled: boolean;\n /** Categories of the game */\n game_categories: string[];\n /** Provider of the game */\n game_provider: string;\n /** The link to the mobile game */\n mobile_spec_link: string;\n}\n\n/**\n * @ignore\n */\nexport const GetJackpotEligibleGamesResponseTransform = ({ eligible_games } : { eligible_games: AchRelatedGame[]}): TGetJackpotEligibleGamesResponse => {\n\tconst games = eligible_games.map((game: AchRelatedGame) => ({\n\t\tgame_id: game.ach_game_id,\n\t\text_game_id: game.ext_game_id,\n\t\tname: game.game_public_meta.name,\n\t\tlink: game.game_public_meta.link,\n\t\timage: game.game_public_meta.image,\n\t\tenabled: game.game_public_meta.enabled,\n\t\tgame_categories: game.game_public_meta.game_categories,\n\t\tgame_provider: game.game_public_meta.game_provider,\n\t\tmobile_spec_link: game.game_public_meta.mobile_spec_link,\n\t}));\n\n\treturn { eligible_games: games };\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 {\n\tSAWDoAknowledgeRequest,\n\tSAWDoAknowledgeResponse,\n\tSAWDoSpinRequest,\n\tSAWDoSpinResponse,\n\tSAWHistoryTransform,\n\tSAWPrizesHistory,\n\tSAWSpinErrorCode,\n\tSAWTemplatesTransform,\n\tSAWWinningHistoryRequest,\n\tSAWWinningHistoryResponse,\n} from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport {\n\tCoreUtils,\n\tGetTranslationsRequest,\n\tGetTranslationsResponse,\n\tPublicLabelSettings,\n\tResponseIdentify,\n\tTranslationArea,\n} from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport {\n\tGetInboxMessagesRequest,\n\tGetInboxMessagesResponse,\n\tInboxMessageBody,\n\tInboxMessageBodyTransform,\n\tInboxMessagesTransform,\n\tMarkInboxMessageDeletedRequest,\n\tMarkInboxMessageDeletedResponse,\n\tMarkInboxMessageReadRequest,\n\tMarkInboxMessageReadResponse,\n\tMarkInboxMessageStarredRequest,\n\tMarkInboxMessageStarredResponse,\n} from './Inbox';\nimport {\n\tBuyStoreItemRequest,\n\tBuyStoreItemResponse,\n\tGetCategoriesStoreResponse,\n\tGetStoreHistoryRequest,\n\tGetStoreHistoryResponse,\n\tGetStoreItemsResponse,\n\tStoreCategoryTransform,\n\tStoreItemPurchasedTransform,\n\tStoreItemTransform,\n} from './Store';\nimport {\n\tAchCategoryTransform,\n\tAchClaimPrizeRequest,\n\tAchClaimPrizeResponse,\n\tAchievementOptinRequest,\n\tAchievementOptinResponse,\n\tAchievementType,\n\tGetAchCategoriesResponse,\n\tGetAchievementMapRequest,\n\tGetAchievementMapResponse,\n\tUserAchievementTransform,\n} from './Missions';\nimport {\n\tGetTournamentInfoRequest,\n\tGetTournamentInfoResponse,\n\tGetTournamentsRequest,\n\tGetTournamentsResponse,\n\tTournamentItemsTransform,\n\tTournamentRegisterRequest,\n\tTournamentRegisterResponse,\n\ttournamentInfoItemTransform,\n} from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from './Leaderboard';\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from './Level';\nimport { WSAPI } from './WSAPI/WSAPI';\nimport {\n\tTInboxMessage,\n\tTInboxMessageBody,\n\tTLevel,\n\tTMiniGameTemplate,\n\tTMissionOrBadge,\n\tTStoreCategory,\n\tTAchCategory,\n\tTStoreItem,\n\tTTournament,\n\tTTournamentDetailed,\n\tLeaderBoardDetailsT,\n\tUserLevelExtraCountersT,\n\tTSegmentCheckResult,\n\tTUICustomSection,\n\tTBonus,\n\tTRaffle,\n\tTLevelCurrent,\n} from './WSAPI/WSAPITypes';\nimport { getLeaderBoardTransform } from './Leaderboard/LeaderBoards';\nimport { GetAchievementsUserInfoResponse } from './Core/GetAchievementsUserInfoResponse';\nimport { CheckSegmentMatchResponse } from './Core/CheckSegmentMatchResponse';\nimport { CheckSegmentMatchRequest } from './Core/CheckSegmentMatchRequest';\nimport {\n\tGetJackpotsPotsRequest,\n\tGetJackpotsPotsResponse,\n\tGetJackpotsRequest,\n\tGetJackpotsResponse,\n\tJackpotsOptinRequest,\n\tJackpotsOptinResponse,\n\tJackpotsOptoutRequest,\n\tJackpotsOptoutResponse,\n} from './Jackpots';\nimport { GetCustomSectionsRequest, GetCustomSectionsResponse, UICustomSectionTransform } from './CustomSections';\nimport { BonusItemsTransform, ClaimBonusRequest, ClaimBonusResponse, GetBonusesResponse } from './Bonuses';\nimport { GetBonusesRequest } from './Bonuses/GetBonusesRequest';\nimport { SAWDoSpinBatchResponse } from './MiniGames/SAWDoSpinBatchResponse';\nimport { SAWDoSpinBatchRequest } from './MiniGames/SAWDoSpinBatchRequest';\nimport { SAWDoAcknowledgeBatchRequest } from './MiniGames/SAWDoAcknowledgeBatchRequest';\nimport { SAWDoAcknowledgeBatchResponse } from './MiniGames/SAWDoAcknowledgeBatchResponse';\nimport { GetRelatedAchTourRequest } from './Missions/GetRelatedAchTourRequest';\nimport { GetRelatedAchTourResponse } from './Missions/GetRelatedAchTourResponse';\nimport { GetRafflesResponse, raffleTransform } from './Raffle/GetRafflesResponse';\nimport { GetRafflesRequest } from './Raffle/GetRafflesRequest';\nimport { InboxCategories } from './Inbox/InboxCategories';\nimport { GetDrawRunRequest, GetDrawRunResponse, GetRaffleDrawRunsHistoryRequest, GetRaffleDrawRunsHistoryResponse, RaffleClaimPrizeRequest, RaffleClaimPrizeResponse } from './Raffle';\nimport { GetJackpotWinnersResponse, GetJackpotWinnersResponseTransform, JackpotWinnerHistory } from './Jackpots/GetJackpotWinnersResponse';\nimport { GetJackpotWinnersRequest } from './Jackpots/GetJackpotWinnersRequest';\nimport { GetJackpotEligibleGamesRequest } from './Jackpots/GetJackpotEligibleGamesRequest';\nimport { GetJackpotEligibleGamesResponse, GetJackpotEligibleGamesResponseTransform, JackpotEligibleGame, TGetJackpotEligibleGamesResponse } from './Jackpots/GetJackpotEligibleGamesResponse';\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\tlabel_api_key: string;\n\tuserPublicProps: any;\n\ton: (callBackKey: ClassId, func: (data: any) => void) => void;\n\tgetLabelSetting: (key: PublicLabelSettings) => any;\n\ttriggerExternalCallBack: (callBackKey: string, payload: any) => void;\n}\ninterface IOptions {\n\tlogger?: ILogger;\n\tlogCIDs?: ClassId[];\n\tlogHTTPTiming?: boolean;\n\ttracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\nclass SmarticoAPI {\n\tprivate publicUrl: string;\n\tprivate wsUrl: string;\n\tprivate inboxCdnUrl: string;\n\tprivate partnerUrl: string;\n\tpublic avatarDomain: string;\n\n\tprivate logger: ILogger;\n\tprivate logCIDs: ClassId[];\n\tprivate logHTTPTiming: boolean;\n\tpublic tracker?: Tracker;\n\n\tpublic constructor(\n\t\tprivate label_api_key: string,\n\t\tprivate brand_api_key: string,\n\t\tprivate messageSender: MessageSender,\n\t\toptions: IOptions = {},\n\t) {\n\t\tthis.logger = options.logger || (console as any);\n\n\t\tif (this.logger.always === undefined) {\n\t\t\tthis.logger.always = this.logger.info;\n\t\t}\n\n\t\tthis.logCIDs = options.logCIDs || [];\n\t\tthis.logHTTPTiming = options.logHTTPTiming || false;\n\t\tthis.tracker = options.tracker;\n\n\t\tthis.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n\t\tthis.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n\t\tthis.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n\t\tthis.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\t}\n\n\tpublic static getEnvDnsSuffix(label_api_key: string): string {\n\t\tlet ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n\n\t\tif (ENV_ID === '1' || ENV_ID === '2') {\n\t\t\tENV_ID = '';\n\t\t}\n\t\treturn ENV_ID;\n\t}\n\n\tpublic static replaceSmrDomainsWithCloudfront<T>(value: string | {[key: string]: any}): T {\n\t\tif (!value) {\n\t\t\treturn value as T;\n\t\t}\n\n\t\tconst domains = {\n\t\t\t'img.smr.vc': 'd1am61onjxtys8.cloudfront.net',\n\t\t\t'img3.smr.vc': 'd3dubbodzd2q05.cloudfront.net',\n\t\t\t'img4.smr.vc': 'dvm0p9vsezqr2.cloudfront.net',\n\t\t\t'img5.smr.vc': 'd3gen1ksvxhac8.cloudfront.net',\n\t\t\t'img6.smr.vc': 'db1kmyg7iufeo.cloudfront.net',\n\t\t\t'img7.smr.vc': 'd36om2g86xefo6.cloudfront.net',\n\t\t\t'img8.smr.vc': 'd2zme31v54n5pb.cloudfront.net',\n\n\t\t\t'static.smr.vc': 'dtt380pweilws.cloudfront.net',\n\t\t\t'static3.smr.vc': 'd1qt8ake8g4imn.cloudfront.net',\n\t\t\t'static4.smr.vc': 'd146b4m7rkvjkw.cloudfront.net',\n\t\t\t'static5.smr.vc': 'd3l7suk1kl9rwh.cloudfront.net',\n\t\t\t'static6.smr.vc': 'd121pfj16xdfcq.cloudfront.net',\n\t\t\t'static7.smr.vc': 'd21deilz814qgl.cloudfront.net',\n\t\t\t'static8.smr.vc': 'd1uffsroxjy2ku.cloudfront.net',\n\t\t}\n\n\t\tconst escapeRegExp = (str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n\t\tlet replacedValue = typeof value === 'string' ? value : JSON.stringify(value);\n\n\t\tfor (const [oldDomain, newDomain] of Object.entries(domains)) {\n\t\t\treplacedValue = replacedValue.replace(new RegExp(escapeRegExp(oldDomain), 'g'), newDomain);\n\t\t}\n\n\t\ttry {\n\t\t\treturn typeof value === 'string' ? replacedValue as T : JSON.parse(replacedValue)\n\t\t} catch (err) {\n\t\t\treturn value as T;\n\t\t}\n\t}\n\n\tpublic static getEnvId(label_api_key: string): number {\n\t\treturn label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n\t}\n\n\tpublic static getCleanLabelApiKey(label_api_key: string): string {\n\t\treturn label_api_key.substring(0, 36);\n\t}\n\n\tpublic static getPublicUrl(label_api_key: string): string {\n\t\treturn PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t}\n\n\tpublic static getPublicWsUrl(label_api_key: string): string {\n\t\treturn C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t}\n\n\tpublic static getAvatarUrl(label_api_key: string): string {\n\t\tconst envId = SmarticoAPI.getEnvDnsSuffix(label_api_key);\n\t\tconst avatarUrl = AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t\treturn SmarticoAPI.replaceSmrDomainsWithCloudfront(avatarUrl);\n\t}\n\n\tprivate async send<T>(message: any, expectCID?: ClassId, force_language?: string): Promise<T> {\n\t\tif (this.logCIDs.includes(message.cid)) {\n\t\t\tthis.logger.info('REQ', message);\n\t\t}\n\n\t\tif (force_language) {\n\t\t\tmessage.force_language = force_language;\n\t\t}\n\n\t\tlet result: any;\n\n\t\ttry {\n\t\t\tconst timeStart = new Date().getTime();\n\t\t\tresult = await this.messageSender(message, this.publicUrl, expectCID);\n\n\t\t\tif (result.errCode && result.errSetup) {\n\t\t\t\tthrow new Error(result.errMessage);\n\t\t\t}\n\n\t\t\tresult = SmarticoAPI.replaceSmrDomainsWithCloudfront(result);\n\t\t\tconst timeEnd = new Date().getTime();\n\n\t\t\tif (this.logHTTPTiming) {\n\t\t\t\tthis.logger.always('HTTP time, ms:' + (timeEnd - timeStart));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.logger.warn(`Failed to make request to smartico channel, L2. ${e.message}`, {\n\t\t\t\turl: this.publicUrl,\n\t\t\t\trequest: message,\n\t\t\t\terror: e.message,\n\t\t\t});\n\t\t\tthrow new Error(`Failed to make request to smartico channel, L2 L1. ${e.message}`);\n\t\t}\n\n\t\tif (this.logCIDs.includes(message.cid)) {\n\t\t\tthis.logger.info('RES', result);\n\t\t}\n\n\t\tif (expectCID) {\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tfor (const str of result as string[]) {\n\t\t\t\t\tconst obj: ProtocolResponse = JSON.parse(str);\n\t\t\t\t\tif (this.logCIDs.includes(obj.cid)) {\n\t\t\t\t\t\tthis.logger.info('RES', result);\n\t\t\t\t\t}\n\t\t\t\t\tif (obj.cid === expectCID) {\n\t\t\t\t\t\treturn obj as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, {\n\t\t\t\t\trequest: message,\n\t\t\t\t\tresponse: result,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t} else {\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tif (result.length === 1) {\n\t\t\t\t\tconst obj = JSON.parse(result[0]);\n\t\t\t\t\tif (this.logCIDs.includes(obj.cid)) {\n\t\t\t\t\t\tthis.logger.info('RES', result);\n\t\t\t\t\t}\n\t\t\t\t\treturn obj;\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.error('Expected one response, but got array', { request: message, response: result });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tprivate buildMessage<TRequest, TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\t\tconst message: ProtocolRequest = {\n\t\t\t// AA: in fact we need api and brand keys and ext_user_id only in the context of HTTP\n\t\t\t// its not needed in WebSocket and can be deleted\n\t\t\tapi_key: this.label_api_key,\n\t\t\tbrand_key: this.brand_api_key,\n\t\t\text_user_id: user_ext_id,\n\t\t\tcid,\n\t\t\tuuid: IntUtils.uuid(),\n\t\t\tts: new Date().getTime(),\n\t\t\t...payload,\n\t\t};\n\n\t\tif (message.ext_user_id === undefined || message.ext_user_id === null) {\n\t\t\tdelete message.ext_user_id;\n\t\t}\n\n\t\tif (message.brand_key === undefined || message.brand_key === null) {\n\t\t\tdelete message.brand_key;\n\t\t}\n\n\t\treturn message as any;\n\t}\n\n\tpublic async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n\t\tconst eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n\t\t\teventType,\n\t\t\tpayload,\n\t\t});\n\n\t\tconst eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n\t\treturn eventResponse;\n\t}\n\n\tpublic async coreGetTranslations(\n\t\tuser_ext_id: string,\n\t\tlang_code: string,\n\t\tareas: TranslationArea[],\n\t\tcacheSec: number = 60,\n\t): Promise<GetTranslationsResponse> {\n\t\tif (lang_code === undefined || lang_code === null || (lang_code.trim && lang_code.trim() === '')) {\n\t\t\tlang_code = DEFAULT_LANG_EN;\n\t\t}\n\n\t\tconst response = await OCache.use<GetTranslationsResponse>(\n\t\t\t`${lang_code}-${this.label_api_key}-${this.brand_api_key}`,\n\t\t\tECacheContext.Translations,\n\t\t\tasync () => {\n\t\t\t\tconst tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(\n\t\t\t\t\tuser_ext_id,\n\t\t\t\t\tClassId.GET_TRANSLATIONS_REQUEST,\n\t\t\t\t\t{\n\t\t\t\t\t\tlang_code: DEFAULT_LANG_EN,\n\t\t\t\t\t\thash_code: null,\n\t\t\t\t\t\tareas,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tconst trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n\t\t\t\tif (lang_code !== DEFAULT_LANG_EN) {\n\t\t\t\t\tconst trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(\n\t\t\t\t\t\tuser_ext_id,\n\t\t\t\t\t\tClassId.GET_TRANSLATIONS_REQUEST,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlang_code,\n\t\t\t\t\t\t\thash_code: null,\n\t\t\t\t\t\t\tareas,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\tconst trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n\t\t\t\t\tObject.keys(trUser?.translations ?? {}).forEach((k) => {\n\t\t\t\t\t\ttrBase.translations[k] = trUser.translations[k];\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn trBase;\n\t\t\t},\n\t\t\tcacheSec,\n\t\t);\n\n\t\treturn response;\n\t}\n\n\tpublic async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n\t\treturn OCache.use<GetLabelInfoResponse>(\n\t\t\t`${this.label_api_key} - ${this.brand_api_key}`,\n\t\t\tECacheContext.LabelInfo,\n\t\t\tasync () => {\n\t\t\t\tconst message = this.buildMessage<GetLabelInfoRequest, GetLabelInfoResponse>(user_ext_id, ClassId.INIT);\n\n\t\t\t\treturn this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE);\n\t\t\t},\n\t\t\tcacheSec,\n\t\t);\n\t}\n\n\tpublic async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\t\tconst message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n\t\t\trequest_id: IntUtils.uuid(), // AA: do we need request_id?\n\t\t});\n\n\t\tconst r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n\t\tr.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n\t\treturn r;\n\t}\n\n\tpublic async coreChangeUsername(\n\t\tuser_ext_id: string,\n\t\tpublic_username_custom: string,\n\t): Promise<{ public_username_custom: string }> {\n\t\tconst message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n\t\t\tpublic_username_custom,\n\t\t});\n\n\t\treturn await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n\t}\n\n\tpublic async coreCheckSegments(user_ext_id: string, segment_id: number[]): Promise<TSegmentCheckResult[]> {\n\t\tconst message = this.buildMessage<CheckSegmentMatchRequest, any>(user_ext_id, ClassId.CHECK_SEGMENT_MATCH_REQUEST, {\n\t\t\tsegment_id,\n\t\t});\n\n\t\tconst results = await this.send<CheckSegmentMatchResponse>(message, ClassId.CHECK_SEGMENT_MATCH_RESPONSE);\n\n\t\treturn results.segments || [];\n\t}\n\n\tpublic async jackpotGet(\n\t\tuser_ext_id: string,\n\t\tfilter?: { related_game_id?: string; jp_template_id?: number },\n\t\tforce_language?: string,\n\t): Promise<GetJackpotsResponse> {\n\t\tconst message = this.buildMessage<GetJackpotsRequest, GetJackpotsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_JACKPOTS_REQUEST,\n\t\t\tfilter,\n\t\t);\n\t\treturn await this.send<GetJackpotsResponse>(message, ClassId.JP_GET_JACKPOTS_RESPONSE, force_language);\n\t}\n\n\tpublic async potGet(user_ext_id: string, filter: { jp_template_ids: number[] }): Promise<GetJackpotsPotsResponse> {\n\t\tconst message = this.buildMessage<GetJackpotsPotsRequest, GetJackpotsPotsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_LATEST_POTS_REQUEST,\n\t\t\tfilter,\n\t\t);\n\t\treturn await this.send<GetJackpotsPotsResponse>(message, ClassId.JP_GET_LATEST_POTS_RESPONSE);\n\t}\n\n\tpublic async jackpotOptIn(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n\t\tconst message = this.buildMessage<JackpotsOptinRequest, JackpotsOptinResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_OPTIN_REQUEST,\n\t\t\tpayload,\n\t\t);\n\t\treturn await this.send<JackpotsOptinResponse>(message, ClassId.JP_OPTIN_RESPONSE);\n\t}\n\n\tpublic async jackpotOptOut(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n\t\tconst message = this.buildMessage<JackpotsOptoutRequest, JackpotsOptoutResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_OPTOUT_REQUEST,\n\t\t\tpayload,\n\t\t);\n\t\treturn await this.send<JackpotsOptoutResponse>(message, ClassId.JP_OPTOUT_RESPONSE);\n\t}\n\n\tpublic async getJackpotWinners(user_ext_id: string, limit: number = 20, offset: number = 0, jp_template_id: number ): Promise<GetJackpotWinnersResponse> {\n\t\tconst message = this.buildMessage<GetJackpotWinnersRequest, GetJackpotWinnersResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_WINNERS_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tjp_template_id,\n\t\t\t},\n\t\t);\n\t\treturn await this.send<GetJackpotWinnersResponse>(message, ClassId.JP_GET_WINNERS_RESPONSE);\n\t}\n\n\tpublic async getJackpotWinnersT(user_ext_id: string, limit: number = 20, offset: number = 0, jp_template_id: number ): Promise<JackpotWinnerHistory[]> {\n\t\treturn GetJackpotWinnersResponseTransform((await this.getJackpotWinners(user_ext_id, limit, offset, jp_template_id)).winners);\n\t}\n\n\tpublic async getJackpotEligibleGames(user_ext_id: string, { jp_template_id } : { jp_template_id: number }): Promise<GetJackpotEligibleGamesResponse> {\n\t\tconst message = this.buildMessage<GetJackpotEligibleGamesRequest, GetJackpotEligibleGamesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_ELIGIBLE_GAMES_REQUEST,\n\t\t\t{ jp_template_id },\n\t\t);\n\n\t\treturn await this.send<GetJackpotEligibleGamesResponse>(message, ClassId.JP_GET_ELIGIBLE_GAMES_RESPONSE);;\n\t}\n\n\tpublic async getJackpotEligibleGamesT(user_ext_id: string, { jp_template_id } : { jp_template_id: number }): Promise<TGetJackpotEligibleGamesResponse> {\n\t\treturn GetJackpotEligibleGamesResponseTransform(await this.getJackpotEligibleGames(user_ext_id, { jp_template_id }));\n\t}\n\n\tpublic async sawGetTemplates(\n\t\tuser_ext_id: string,\n\t\tforce_language?: string,\n\t\tis_visitor_mode: boolean = false,\n\t): Promise<SAWGetTemplatesResponse> {\n\t\tconst message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_GET_SPINS_REQUEST,\n\t\t\t{ is_visitor_mode },\n\t\t);\n\n\t\tconst response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE, force_language);\n\n\t\tif (response && response.templates) {\n\t\t\tresponse.templates.forEach((t) => {\n\t\t\t\tif (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n\t\t\t\t\tconst jackpotValue =\n\t\t\t\t\t\tt.jackpot_current +\n\t\t\t\t\t\t(t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n\t\t\t\t\tt.saw_template_ui_definition.name = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.name,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.saw_template_ui_definition.description = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.description,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.saw_template_ui_definition.promo_text = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.promo_text,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.prizes.forEach((p) => {\n\t\t\t\t\t\tp.saw_prize_ui_definition.name = IntUtils.replaceAll(\n\t\t\t\t\t\t\tp.saw_prize_ui_definition.name,\n\t\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tp.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(\n\t\t\t\t\t\t\tp.saw_prize_ui_definition.aknowledge_message,\n\t\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n\t\treturn SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n\t}\n\n\tpublic async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse> {\n\t\tconst message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_AKNOWLEDGE_REQUEST,\n\t\t\t{\n\t\t\t\trequest_id,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n\t}\n\n\tpublic async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n\t\tif (!saw_template_id) {\n\t\t\tthrow new Error('Missing template id');\n\t\t}\n\n\t\tconst request_id = IntUtils.uuid();\n\n\t\tconst message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n\t\t\tsaw_template_id,\n\t\t\trequest_id,\n\t\t});\n\n\t\tconst spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n\t\t// to simulate fail\n\t\t// response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n\t\tconst status: string =\n\t\t\t{\n\t\t\t\t[SAWSpinErrorCode.SAW_OK]: 'OK',\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n\t\t\t\t[SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n\t\t\t\t[SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n\t\t\t\t[SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n\t\t\t\t[SAWSpinErrorCode.SAW_TEMPLATE_NOT_ACTIVE]: \"MINIGAME IS NOT IN ACTIVE PERIOD\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NOT_IN_SEGMENT]: \"USER IS NOT IN SEGMENT\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_BALANCE_GEMS]: \"NOT ENOUGH GEMS\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_BALANCE_DIAMONDS]: \"NOT ENOUGH DIAMONDS\",\n\t\t\t}[spinAttemptResponse.errCode] || 'OTHER';\n\n\t\tawait this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n\t\t\tsaw_template_id,\n\t\t\tstatus,\n\t\t\tround_id,\n\t\t});\n\n\t\treturn { ...spinAttemptResponse, request_id };\n\t}\n\n\n\tpublic async doAcknowledgeBatchRequest(user_ext_id: string, request_ids: string[]): Promise<SAWDoAcknowledgeBatchResponse> {\n\t\tconst message = this.buildMessage<SAWDoAcknowledgeBatchRequest, SAWDoAcknowledgeBatchResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_AKNOWLEDGE_REQUEST,\n\t\t\t{\n\t\t\t\trequest_ids,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<SAWDoAcknowledgeBatchResponse>(message, ClassId.SAW_AKNOWLEDGE_BATCH_RESPONSE);\n\t}\n\n\tpublic async sawSpinBatchRequest(user_ext_id: string, saw_template_id: number, spins_count: number): Promise<SAWDoSpinBatchResponse> {\n\n\t\tconst spins = [];\n\t\tfor (let i = 0; i < spins_count; i++) {\n\t\t\tconst request_id = IntUtils.uuid();\n\t\t\tspins.push({ request_id, saw_template_id })\n\t\t}\n\n\t\tconst message = this.buildMessage<SAWDoSpinBatchRequest, SAWDoSpinBatchResponse>(user_ext_id, ClassId.SAW_DO_SPIN_BATCH_REQUEST, { spins });\n\t\tconst spinAttemptResponse = await this.send<SAWDoSpinBatchResponse>(message, ClassId.SAW_DO_SPIN_BATCH_RESPONSE);\n\n\t\t// If one response is 'OK' we consider that whole result is 'OK'\n\t\tconst result = spinAttemptResponse.results.find((res) => res.errCode === 0);\n\n\t\tlet status = 'OK';\n\t\tif (!result) {\n\t\t\tstatus = 'BATCH FAIL';\n\t\t}\n\n\t\tawait this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n\t\t\tsaw_template_id,\n\t\t\tstatus,\n\t\t\tspins_count,\n\t\t});\n\n\t\treturn { ...spinAttemptResponse };\n\t}\n\n\tpublic async getSawWinningHistory(user_ext_id: string, limit: number = 20, offset: number = 0, saw_template_id: number): Promise<SAWWinningHistoryResponse> {\n\t\tconst message = this.buildMessage<SAWWinningHistoryRequest, SAWWinningHistoryResponse>(user_ext_id, ClassId.GET_SAW_HISTORY_REQUEST, {\n\t\t\tlimit, offset, saw_template_id\n\t\t})\n\n\t\treturn await this.send<SAWWinningHistoryResponse>(message, ClassId.GET_SAW_HISTORY_RESPONSE);\n\t}\n\n\tpublic async getSawWinningHistoryT(user_ext_id: string, limit?: number, offset?: number, saw_template_id?: number): Promise<SAWPrizesHistory[]> {\n\t\treturn SAWHistoryTransform((await this.getSawWinningHistory(user_ext_id, limit, offset, saw_template_id)).prizes);\n\t}\n\t\n\tpublic async missionOptIn(user_ext_id: string, mission_id: number) {\n\t\tif (!mission_id) {\n\t\t\tthrow new Error('Missing mission id');\n\t\t}\n\t\tconst message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MISSION_OPTIN_REQUEST,\n\t\t\t{\n\t\t\t\tachievementId: mission_id,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async missionClaimPrize(user_ext_id: string, mission_id: number, ach_completed_id: number) {\n\t\tif (!mission_id) {\n\t\t\tthrow new Error('Missing mission id');\n\t\t}\n\n\t\tconst message = this.buildMessage<AchClaimPrizeRequest, AchClaimPrizeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.ACHIEVEMENT_CLAIM_PRIZE_REQUEST,\n\t\t\t{\n\t\t\t\tach_id: mission_id,\n\t\t\t\tach_completed_id: ach_completed_id,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<AchClaimPrizeResponse>(message, ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n\t\tif (!tournamentInstanceId) {\n\t\t\tthrow new Error('Missing tournament instance id');\n\t\t}\n\t\tconst message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.TOURNAMENT_REGISTER_REQUEST,\n\t\t\t{\n\t\t\t\ttournamentInstanceId,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async buyStoreItem(user_ext_id: string, itemId: number) {\n\t\tif (!itemId) {\n\t\t\tthrow new Error('Missing store item id');\n\t\t}\n\t\tconst message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n\t\t\titemId,\n\t\t});\n\n\t\tconst res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async inboxGetMessages(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 10,\n\t\toffset: number = 0,\n\t): Promise<GetInboxMessagesResponse> {\n\t\tconst message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_INBOX_MESSAGES_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\t}\n\n\tpublic async storeGetItems(user_ext_id: string, force_language?: string): Promise<GetStoreItemsResponse> {\n\t\tconst message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n\t\treturn await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE, force_language);\n\t}\n\n\tpublic async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n\t\treturn StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n\t}\n\n\tpublic async storeGetCategories(user_ext_id: string, force_language?: string): Promise<GetCategoriesStoreResponse> {\n\t\tconst message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n\t\treturn await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE, force_language);\n\t}\n\n\tpublic async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n\t\treturn StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n\t}\n\n\tpublic async storeGetPurchasedItems(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 20,\n\t\toffset: number = 0,\n\t): Promise<GetStoreHistoryResponse> {\n\t\tconst message = this.buildMessage<GetStoreHistoryRequest, GetStoreHistoryResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.ACH_SHOP_ITEM_HISTORY_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<GetStoreHistoryResponse>(message, ClassId.ACH_SHOP_ITEM_HISTORY_RESPONSE);\n\t}\n\n\tpublic async storeGetPurchasedItemsT(user_ext_id: string, limit?: number, offset?: number): Promise<TStoreItem[]> {\n\t\treturn StoreItemPurchasedTransform((await this.storeGetPurchasedItems(user_ext_id, limit, offset)).items);\n\t}\n\n\tpublic async missionsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetAchievementMapResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t// we need to clone response to avoid changing original object,for cases when its called together with badgesGetItems (e.g. in Promise.all)\n\t\tconst responseClone = { ...response };\n\n\t\tif (responseClone.achievements) {\n\t\t\tresponseClone.achievements = responseClone.achievements.filter((a) => a.ach_type_id === AchievementType.Mission);\n\t\t}\n\t\treturn responseClone;\n\t}\n\n\tpublic async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n\t\treturn UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n\t}\n\n\tpublic async getUserGamificationInfo(user_ext_id: string): Promise<GetAchievementsUserInfoResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementsUserInfoResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_USER_REQUEST,\n\t\t);\n\n\t\treturn await this.send<GetAchievementsUserInfoResponse>(message, ClassId.GET_ACHIEVEMENT_USER_RESPONSE);\n\t}\n\n\tpublic async getUserGamificationInfoT(user_ext_id: string): Promise<UserLevelExtraCountersT> {\n\t\tconst response = await this.getUserGamificationInfo(user_ext_id);\n\n\t\treturn {\n\t\t\tlevel_counter_1: response.level_counter_1,\n\t\t\tlevel_counter_2: response.level_counter_2,\n\t\t};\n\t}\n\n\tpublic async achGetCategories(user_ext_id: string, force_language?: string): Promise<GetAchCategoriesResponse> {\n\t\tconst message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n\t\treturn await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE, force_language);\n\t}\n\n\tpublic async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n\t\treturn AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n\t}\n\n\tpublic async badgetsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetAchievementMapResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t// we need to clone response to avoid changing original object,for cases when its called together with missionsGetItems (e.g. in Promise.all)\n\t\tconst responseClone = { ...response };\n\n\t\tif (responseClone.achievements) {\n\t\t\tresponseClone.achievements = responseClone.achievements.filter((a) => a.ach_type_id === AchievementType.Badge);\n\t\t}\n\t\treturn responseClone;\n\t}\n\n\tpublic async bonusesGetItems(user_ext_id: string, force_language?: string): Promise<GetBonusesResponse> {\n\t\tconst message = this.buildMessage<GetBonusesRequest, GetBonusesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_BONUSES_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetBonusesResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_BONUSES_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t\n\t\tconst responseClone = { ...response };\n\n\t\treturn responseClone;\n\t}\n\tpublic async bonusClaimItem(user_ext_id: string, bonus_id: number): Promise<ClaimBonusResponse> {\n\t\tconst message = this.buildMessage<ClaimBonusRequest, ClaimBonusResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.CLAIM_BONUS_REQUEST,\n\t\t\t{ bonusId: bonus_id }\n\n\t\t);\n\t\tconst response = await this.send<ClaimBonusResponse>(\n\t\t\tmessage,\n\t\t\tClassId.CLAIM_BONUS_RESPONSE,\n\n\t\t);\n\t\t\n\t\tconst responseClone = { ...response };\n\n\t\treturn responseClone;\n\t}\n\n\tpublic async bonusesGetItemsT(user_ext_id: string): Promise<TBonus[]> {\n\t\treturn BonusItemsTransform((await this.bonusesGetItems(user_ext_id)).bonuses);\n\t}\n\n\tpublic async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n\t\treturn UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n\t}\n\n\tpublic async tournamentsGetLobby(user_ext_id: string, force_language?: string): Promise<GetTournamentsResponse> {\n\t\tconst message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_TOURNAMENT_LOBBY_REQUEST,\n\t\t);\n\t\treturn await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE, force_language);\n\t}\n\n\tpublic async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n\t\treturn TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n\t}\n\n\tpublic async tournamentsGetInfo(\n\t\tuser_ext_id: string,\n\t\ttournamentInstanceId: number,\n\t\tforce_language?: string,\n\t): Promise<GetTournamentInfoResponse> {\n\t\tconst message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_TOURNAMENT_INFO_REQUEST,\n\t\t\t{\n\t\t\t\ttournamentInstanceId,\n\t\t\t},\n\t\t);\n\t\tconst response = await this.send<GetTournamentInfoResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_TOURNAMENT_INFO_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\n\t\tif (response.userPosition?.avatar_id) {\n\t\t\tresponse.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n\t\t}\n\n\t\tif (response.tournamentInfo?.players?.length) {\n\t\t\tresponse.tournamentInfo.players.forEach((p) => {\n\t\t\t\tp.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n\t\t\t});\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n\t\tif (!tournamentInstanceId) {\n\t\t\tthrow new Error('Missing tournament instance id');\n\t\t}\n\t\tconst response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n\t\treturn tournamentInfoItemTransform(response);\n\t}\n\n\tpublic async leaderboardGet(\n\t\tuser_ext_id: string,\n\t\tperiod_type_id?: LeaderBoardPeriodType,\n\t\tprevPeriod: boolean = false,\n\t\tforce_language?: string,\n\t): Promise<LeaderBoardDetails> {\n\t\tconst message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_LEADERS_BOARD_REQUEST,\n\t\t\t{\n\t\t\t\tperiod_type_id,\n\t\t\t\tsnapshot_offset: prevPeriod ? 1 : 0,\n\t\t\t\tinclude_users: true,\n\t\t\t},\n\t\t);\n\n\t\tconst response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE, force_language);\n\n\t\tconst boardKey = Object.keys(response.map || {}).find((k) => period_type_id === undefined || k === period_type_id?.toString());\n\n\t\tif (boardKey === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (response.map[boardKey]?.userPosition?.avatar_id) {\n\t\t\tresponse.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(\n\t\t\t\tresponse.map[boardKey].userPosition.avatar_id,\n\t\t\t\tthis.avatarDomain,\n\t\t\t);\n\t\t}\n\n\t\tif (response.map[boardKey]?.positions?.length) {\n\t\t\tresponse.map[boardKey].positions.forEach((p) => {\n\t\t\t\tp.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n\t\t\t});\n\t\t}\n\n\t\treturn response.map[boardKey];\n\t}\n\n\tpublic async leaderboardsGetT(\n\t\tuser_ext_id: string,\n\t\tperiod_type_id: LeaderBoardPeriodType = LeaderBoardPeriodType.DAILY,\n\t\tprevPeriod: boolean = false,\n\t): Promise<LeaderBoardDetailsT> {\n\t\treturn getLeaderBoardTransform(await this.leaderboardGet(user_ext_id, period_type_id, prevPeriod));\n\t}\n\n\tpublic async levelsGet(user_ext_id: string, force_language?: string): Promise<GetLevelMapResponse> {\n\t\tconst message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n\t\treturn await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE, force_language);\n\t}\n\n\tpublic async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n\t\treturn GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n\t}\n\n\tpublic async getLevelCurrent(user_ext_id: string): Promise<TLevelCurrent> {\n\t\tconst levels = await this.levelsGetT(user_ext_id);\n\t\tconst userInfo = await this.getUserGamificationInfo(user_ext_id);\n\t\tif (!levels || levels.length === 0) return null;\n\n\t\tconst sortedLevels = [...levels].sort((a, b) => a.required_points - b.required_points);\n\n\t\tlet currentLevelIndex = sortedLevels.findIndex((level) => level.id === userInfo.current_level);\n\n\t\tif (currentLevelIndex === -1) {\n\t\t\tconst userPointsEver = userInfo.points_ever ?? 0;\n\t\t\tcurrentLevelIndex = sortedLevels.findIndex((level, index) => {\n\t\t\t\tconst nextLevel = sortedLevels[index + 1];\n\t\t\t\treturn userPointsEver >= level.required_points && (!nextLevel || userPointsEver < nextLevel.required_points);\n\t\t\t});\n\t\t\tif (currentLevelIndex === -1) {\n\t\t\t\tcurrentLevelIndex = sortedLevels.length - 1;\n\t\t\t}\n\t\t}\n\n\t\tconst currentLevel = sortedLevels[currentLevelIndex];\n\t\tconst nextLevel = sortedLevels[currentLevelIndex + 1];\n\t\tconst userPointsEver = userInfo.points_ever ?? 0;\n\t\tconst progress = nextLevel\n\t\t\t? ((userPointsEver - currentLevel.required_points) / (nextLevel.required_points - currentLevel.required_points)) * 100\n\t\t\t: 100;\n\n\t\treturn {\n\t\t\t...currentLevel,\n\t\t\tordinal_position: currentLevelIndex + 1,\n\t\t\tprogress: Math.min(Math.max(progress, 0), 100),\n\t\t};\n\t}\n\n\tpublic async customSectionsGet(user_ext_id: string, force_language?: string): Promise<GetCustomSectionsResponse> {\n\t\tconst message = this.buildMessage<GetCustomSectionsRequest, GetCustomSectionsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_CUSTOM_SECTIONS_REQUEST,\n\t\t);\n\t\treturn await this.send<GetCustomSectionsResponse>(message, ClassId.GET_CUSTOM_SECTIONS_RESPONSE, force_language);\n\t}\n\n\tpublic async customSectionsGetT(user_ext_id: string): Promise<TUICustomSection[]> {\n\t\treturn UICustomSectionTransform(await this.customSectionsGet(user_ext_id));\n\t}\n\n\tpublic async getTranslationsT(\n\t\tuser_ext_id: string,\n\t\tlang_code: string,\n\t\tareas: TranslationArea[],\n\t\tcacheSec: number = 60,\n\t): Promise<GetTranslationsResponse> {\n\t\treturn await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n\t}\n\n\tpublic async getInboxMessages(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 20,\n\t\toffset: number = 0,\n\t\tstarred_only: boolean,\n\t\tcategory_id?: InboxCategories,\n\t): Promise<GetInboxMessagesResponse> {\n\t\tconst message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_INBOX_MESSAGES_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tstarred_only,\n\t\t\t\tcategory_id,\n\t\t\t},\n\t\t);\n\t\treturn await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\t}\n\n\tpublic async getInboxMessagesT(\n\t\tuser_ext_id: string,\n\t\tfrom: number = 0,\n\t\tto: number = 20,\n\t\tfavoriteOnly: boolean = false,\n\t\tcategoryId?: InboxCategories,\n\t): Promise<TInboxMessage[]> {\n\t\tconst limit = to - from > 20 ? 20 : to - from;\n\t\tconst offset = from;\n\n\t\treturn InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly, categoryId)).log);\n\t}\n\n\tpublic async getInboxUnreadCountT(\n\t\tuser_ext_id: string,\n\t): Promise<number> {\n\t\tconst limit = 1;\n\t\tconst offset = 0;\n\n\t\treturn (await this.getInboxMessages(user_ext_id, limit, offset, false, null)).unread_count;\n\t}\n\n\tpublic async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\t\tconst getMessageBody = async (messageGuid: string): Promise<InboxMessageBody> => {\n\t\t\tconst inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n\t\t\ttry {\n\t\t\t\tconst url = `${inboxCdnUrl}${messageGuid}.json`;\n\n\t\t\t\tconst response = await fetch(url, {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Access-Control-Allow-Origin': '*',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst data = await response.json();\n\t\t\t\treturn data || {};\n\t\t\t} catch (error) {\n\t\t\t\tthis.logger.error('Error fetching inbox message body:', error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\n\t\treturn await getMessageBody(messageGuid);\n\t}\n\n\tpublic async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n\t\tconst message = await this.getInboxMessageBody(messageGuid);\n\t\treturn InboxMessageBodyTransform(message);\n\t}\n\n\tpublic async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_READ_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n\t}\n\n\tpublic async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_READ_REQUEST,\n\t\t\t{\n\t\t\t\tall_read: true,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n\t}\n\n\tpublic async markUnmarkInboxMessageAsFavorite(\n\t\tuser_ext_id: string,\n\t\tmessageGuid: string,\n\t\tmark: boolean,\n\t): Promise<MarkInboxMessageStarredResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_STARRED_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t\tis_starred: mark,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n\t}\n\n\tpublic async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_DELETED_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n\t}\n\n\tpublic async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_DELETED_REQUEST,\n\t\t\t{\n\t\t\t\tall_deleted: true,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n\t}\n\n\tpublic getWSCalls(): WSAPI {\n\t\treturn new WSAPI(this);\n\t}\n\n\tpublic async getRelatedItemsForGame(user_ext_id: string, related_game_id: string,): Promise<GetRelatedAchTourResponse> {\n\t\tconst message = this.buildMessage< GetRelatedAchTourRequest, GetRelatedAchTourResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_RELATED_ACH_N_TOURNAMENTS_REQUEST,\n\t\t\t{\n\t\t\t\trelated_game_id: related_game_id\n\t\t\t}\n\t\t);\n\t\t\n\t\treturn await this.send<GetRelatedAchTourResponse>(message, ClassId.GET_RELATED_ACH_N_TOURNAMENTS_RESPONSE);\n\t}\n\n\tpublic async getRafflesT(user_ext_id: string): Promise<TRaffle[]> {\n\t\treturn raffleTransform((await this.getRaffles(user_ext_id)).items);\n\t}\n\n\tpublic async getRaffles(user_ext_id: string): Promise<GetRafflesResponse> {\n\t\tconst message = this.buildMessage<GetRafflesRequest, GetRafflesResponse>(user_ext_id, ClassId.RAF_GET_RAFFLES_REQUEST);\n\n\t\treturn await this.send<GetRafflesResponse>(message, ClassId.RAF_GET_RAFFLES_RESPONSE);\n\t}\n\n\tpublic async getRaffleDrawRun(user_ext_id: string, payload: { raffle_id: number; run_id: number }): Promise<GetDrawRunResponse> {\n\t\tconst message = this.buildMessage<GetDrawRunRequest, GetDrawRunResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_GET_DRAW_RUN_REQUEST,\n\t\t\tpayload,\n\t\t);\n\n\t\treturn await this.send<GetDrawRunResponse>(message, ClassId.RAF_GET_DRAW_RUN_RESPONSE);\n\t}\n\n\tpublic async getRaffleDrawRunsHistory(\n\t\tuser_ext_id: string,\n\t\tprops: { raffle_id: number; draw_id?: number },\n\t): Promise<GetRaffleDrawRunsHistoryResponse> {\n\t\tconst message = this.buildMessage<GetRaffleDrawRunsHistoryRequest, GetRaffleDrawRunsHistoryResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_GET_DRAW_HISTORY_REQUEST,\n\t\t\tprops,\n\t\t);\n\n\t\treturn await this.send<GetRaffleDrawRunsHistoryResponse>(message, ClassId.RAF_GET_DRAW_HISTORY_RESPONSE);\n\t}\n\n\tpublic async claimRafflePrize(user_ext_id: string, props: { won_id: number }): Promise<RaffleClaimPrizeResponse> {\n\t\tconst message = this.buildMessage<RaffleClaimPrizeRequest, RaffleClaimPrizeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_CLAIM_PRIZE_REQUEST,\n\t\t\tprops,\n\t\t);\n\n\t\treturn await this.send<RaffleClaimPrizeResponse>(message, ClassId.RAF_CLAIM_PRIZE_RESPONSE);\n\n\t}\n}\n\nexport { SmarticoAPI, MessageSender };\n","import { TSMap } from 'typescript-map';\n\nclass CookieStore {\n\tprivate static cookieStore = new TSMap<string, string[]>();\n\n\tpublic static get(key: string): string[] | undefined {\n\t\treturn CookieStore.cookieStore.get(key);\n\t}\n\n\tpublic static set(key: string, value: string[]) {\n\t\tconst v = value.map((v) => v.split(';')[0]);\n\t\tCookieStore.cookieStore.set(key, v);\n\t}\n}\n\nexport { CookieStore };\n","\nexport enum AnalyticsInterfaceType {\n\tMobile = 0,\n\tDesktop = 1,\n}\n\nexport enum AnalyticsScreenNameId {\n\tOverview = 1,\n\tMissions = 2,\n\tLeaderboards = 3,\n\tTournaments = 4,\n\tTournamentLobby = 5,\n\tLevels = 6,\n\tLevelsMap = 7,\n\tBadges = 8,\n\tBonuses = 9,\n\tSpinAWheel = 10,\n\tStore = 11,\n\tStoreHistory = 12,\n\tInbox = 13,\n\tMatchX = 14,\n\tQuiz = 15,\n\tJackpots = 16,\n\tLootbox = 17,\n\tCustomSection = 18,\n\tShortInbox = 19,\n\tLootboxWeekdays = 20,\n\tLootboxCalendarDays = 21,\n\tTreasureHunt = 22,\n\tLiquidSection = 23,\n\n\tModalMission = 31,\n\tModalLevel = 33,\n\tModalBadge = 33,\n\tModalStore = 34,\n\tModalBonus = 33,\n\tModalJackpot = 36,\n\tModalUsername = 37,\n\tModalAvatar = 38,\n\tModalQR = 39,\n}\n\nexport enum AnalyticsTournamentsLobbySubScreenNameId {\n\tGeneral = 1,\n\tPrizes = 2,\n\tPlayers = 3,\n\tRelatedGames = 4,\n}\n\nexport enum AnalyticsInboxSubScreenNameId {\n\tAll = 1,\n\tFavorite = 2,\n}\n","export enum QuizSportType {\n\tSoccer = 1,\n\tBasketball = 2,\n\tTennis = 5,\n}\n\nexport const quizSupportedSports = [QuizSportType.Basketball, QuizSportType.Soccer, QuizSportType.Tennis];\n","export enum SAWGPMarketType {\n\tTwoTeamsWithScore = 1,\n\tRedCard = 2,\n\tOneXTwo = 3,\n\tOneXTwoHalftime = 4,\n\t// HalftimeFulltime = 5,\n\tFirstGoal = 6,\n\tDoubleChance = 7,\n\tOverUnder2_5 = 8,\n\tOverUnder1_5Halftime = 9,\n\tOverUnder1_5__2ndHalf = 10,\n\tTotalCorners8_5 = 11,\n\tTotalCorners9_5 = 12,\n\tCorners1x2 = 13,\n\tOne_Two = 14,\n\tOvertime = 15,\n\tOddEven = 16,\n\tOddEvenHomeAway = 17,\n\tFirstSet = 18,\n\tSecondSet = 19,\n\tThirdSet = 20,\n\tFourthSet = 21,\n\tFifthSet = 22,\n\tPlayerOneWinsOneSet = 23,\n\tPlayerTwoWinsOneSet = 24,\n\tLastGoal = 25,\n\n\tCustomSport = 26,\n\tCustomNonSport = 27,\n}\n","export enum QuizAnswersValueType {\n\tHomeTeam = '1',\n\tAwayTeam = '2',\n\tDraw = 'x',\n\tHomeTeamHomeTeam = '1/1',\n\tHomeTeamDraw = '1/x',\n\tHomeTeamAwayTeam = '1/2',\n\tDrawHomeTeam = 'x/1',\n\tDrawDraw = 'x/x',\n\tDrawAwayTeam = 'x/2',\n\tAwayTeamHomeTeam = '2/1',\n\tAwayTeamDraw = '2/x',\n\tAwayTeamAwayTeam = '2/2',\n\tYes = 'yes',\n\tNo = 'no',\n\tOdd = 'odd',\n\tEven = 'even',\n\tHomeOdd = '1/odd',\n\tHomeEven = '1/even',\n\tAwayOdd = '2/odd',\n\tAwayEven = '2/even',\n}\n\nexport const quizAnswerHomeTeamReplacementText = '{quiz_home_team}';\nexport const quizAnswerAwayTeamReplacementText = '{quiz_away_team}';\nexport const quizDrawReplacementText = '{quiz_draw}';\nexport const quizYesReplacementText = '{yes}';\nexport const quizNoReplacementText = '{no}';\nexport const quizOddReplacementText = '{odd}';\nexport const quizEvenReplacementText = '{even}';\nexport const quizOrReplacementText = '{or}';\nexport const quizNoGoalsReplacementText = '{quiz_no_goals}';\n\nexport const quizAnswersTrKeys = {\n\t[quizDrawReplacementText]: 'quizAnswer_draw',\n\t[quizYesReplacementText]: 'quizAnswer_yes',\n\t[quizNoReplacementText]: 'quizAnswer_no',\n\t[quizOddReplacementText]: 'quizAnswer_odd',\n\t[quizEvenReplacementText]: 'quizAnswer_even',\n\t[quizOrReplacementText]: 'quizAnswer_or',\n\t[quizNoGoalsReplacementText]: 'quizAnswer_no_goals',\n};\n","import {\n\tQuizAnswersValueType,\n\tquizAnswerAwayTeamReplacementText,\n\tquizAnswerHomeTeamReplacementText,\n\tquizDrawReplacementText,\n\tquizEvenReplacementText,\n\tquizNoGoalsReplacementText,\n\tquizNoReplacementText,\n\tquizOddReplacementText,\n\tquizOrReplacementText,\n\tquizYesReplacementText,\n} from './MarketsAnswers';\nimport { SAWGPMarketType } from './MarketsType';\n\nconst yesNoAnswers = [\n\t{ text: quizYesReplacementText, value: QuizAnswersValueType.Yes },\n\t{ text: quizNoReplacementText, value: QuizAnswersValueType.No },\n];\n\nconst homeAwayAnswers = [\n\t{ text: quizAnswerHomeTeamReplacementText, value: QuizAnswersValueType.HomeTeam },\n\t{ text: quizAnswerAwayTeamReplacementText, value: QuizAnswersValueType.AwayTeam },\n];\n\nconst homeAwayDrawAnswers = [...homeAwayAnswers, { text: quizDrawReplacementText, value: QuizAnswersValueType.Draw }];\nconst homeAwayNoGoalsAnswers = [...homeAwayAnswers, { text: quizNoGoalsReplacementText, value: QuizAnswersValueType.Draw }];\n\nexport const marketsInfo = [\n\t{\n\t\ttype: SAWGPMarketType.OneXTwo,\n\t\tname: '1x2',\n\t\tquestion: { text: 'Who will win the match ?', trKey: 'quizQuestion_1x2' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OneXTwoHalftime,\n\t\tname: '1x2 Halftime',\n\t\tquestion: { text: 'Who will lead the first half of the match ?', trKey: 'quizQuestion_x2half' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t// {\n\t// \ttype: SAWGPMarketType.HalftimeFulltime,\n\t// \tname: 'Halftime / Fulltime',\n\t// \tquestion: { text: 'Who will lead the first half and who will win the match ?', trKey: 'quizQuestion__HalftimeFulltime' },\n\t// \tanswers: [\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamHomeTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizDrawReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamDraw,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamAwayTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizDrawReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.DrawHomeTeam,\n\t// \t\t},\n\t// \t\t{ text: `${quizDrawReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.DrawDraw },\n\t// \t\t{\n\t// \t\t\ttext: `${quizDrawReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.DrawAwayTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamHomeTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizDrawReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamDraw,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamAwayTeam,\n\t// \t\t},\n\t// \t],\n\t// },\n\t{\n\t\ttype: SAWGPMarketType.FirstGoal,\n\t\tname: 'First Goal',\n\t\tquestion: { text: 'Who will score the first goal ?', trKey: 'quizQuestion_firstGoal' },\n\t\tanswers: homeAwayNoGoalsAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.LastGoal,\n\t\tname: 'Last Goal',\n\t\tquestion: { text: 'Who will score the last goal ?', trKey: 'quizQuestion_lastGoal' },\n\t\tanswers: homeAwayNoGoalsAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.DoubleChance,\n\t\tname: 'Double Chance',\n\t\tquestion: { text: 'Who will win the match? Choose a combination:', trKey: 'quizQuestion_doubleChance' },\n\t\tanswers: [\n\t\t\t{\n\t\t\t\ttext: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerHomeTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.HomeTeamDraw,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: `${quizAnswerHomeTeamReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.HomeTeamAwayTeam,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.AwayTeamDraw,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder2_5,\n\t\tname: 'Over/Under 2.5',\n\t\tquestion: { text: 'Will there be 3 or more goals in the match?', trKey: 'quizQuestion_overUnder2_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder1_5Halftime,\n\t\tname: 'Over/Under 1.5 Halftime',\n\t\tquestion: { text: 'Will there be 2 or more goals in the first half?', trKey: 'quizQuestion_overUnder1_5Halftime' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder1_5__2ndHalf,\n\t\tname: 'Over/Under 1.5 2nd Half',\n\t\tquestion: { text: 'Will there be 2 or more goals in the second half?', trKey: 'quizQuestion_overUnder1_5__2ndHalf' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.RedCard,\n\t\tname: 'Red Card',\n\t\tquestion: { text: 'Will there be a red card in the match?', trKey: 'quizQuestion_redCard' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.TotalCorners8_5,\n\t\tname: 'Total Corners 8.5',\n\t\tquestion: { text: 'Will there be 9 or more corners in the match?', trKey: 'quizQuestion_totalCorners8_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.TotalCorners9_5,\n\t\tname: 'Total Corners 9.5',\n\t\tquestion: { text: 'Will there be 10 or more corners in the match?', trKey: 'quizQuestion_totalCorners9_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.Corners1x2,\n\t\tname: 'Corners 1x2',\n\t\tquestion: { text: 'Which team will have more corners in the match?', trKey: 'quizQuestion_corners1x2' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.One_Two,\n\t\tname: '1-2',\n\t\tquestion: { text: 'Who will win the match ?', trKey: 'quizQuestion_1-2' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.Overtime,\n\t\tname: 'Overtime',\n\t\tquestion: { text: 'Will there be overtime in the match?', trKey: 'quizQuestion_overtime' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OddEven,\n\t\tname: 'Odd/Even',\n\t\tquestion: {\n\t\t\ttext: 'Is the sum of all points scored in the game going to be an odd number or even?',\n\t\t\ttrKey: 'quizQuestion_oddEven',\n\t\t},\n\t\tanswers: [\n\t\t\t{ text: quizOddReplacementText, value: QuizAnswersValueType.Odd },\n\t\t\t{ text: quizEvenReplacementText, value: QuizAnswersValueType.Even },\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OddEvenHomeAway,\n\t\tname: 'Odd/Even Home/Away',\n\t\tquestion: {\n\t\t\ttext: 'Which team will win and what will be the sum of the points (Odd or Even)?',\n\t\t\ttrKey: 'quizQuestion_oddEvenHomeAway',\n\t\t},\n\t\tanswers: [\n\t\t\t{ text: `${quizAnswerHomeTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.HomeOdd },\n\t\t\t{ text: `${quizAnswerHomeTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.HomeEven },\n\t\t\t{ text: `${quizAnswerAwayTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.AwayOdd },\n\t\t\t{ text: `${quizAnswerAwayTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.AwayEven },\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FirstSet,\n\t\tname: 'First Set',\n\t\tquestion: { text: 'Who will win the first set ?', trKey: 'quizQuestion_firstSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.SecondSet,\n\t\tname: 'Second Set',\n\t\tquestion: { text: 'Who will win the second set ?', trKey: 'quizQuestion_secondSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.ThirdSet,\n\t\tname: 'Third Set',\n\t\tquestion: { text: 'Who will win the third set ?', trKey: 'quizQuestion_thirdSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FourthSet,\n\t\tname: 'Fourth Set',\n\t\tquestion: { text: 'Who will win the fourth set ?', trKey: 'quizQuestion_fourthSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FifthSet,\n\t\tname: 'Fifth Set',\n\t\tquestion: { text: 'Who will win the fifth set ?', trKey: 'quizQuestion_fifthSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.PlayerOneWinsOneSet,\n\t\tname: 'Player One Wins One Set',\n\t\tquestion: { text: 'Will Player One win at least one set?', trKey: 'quizQuestion_playerOneWinsOneSet' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.PlayerTwoWinsOneSet,\n\t\tname: 'Player Two Wins One Set',\n\t\tquestion: { text: 'Will Player Two win at least one set?', trKey: 'quizQuestion_playerTwoWinsOneSet' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.CustomNonSport,\n\t\tname: 'Custom question (non sport)',\n\t\tquestion: null,\n\t\tanswers: null,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.CustomSport,\n\t\tname: 'Custom question (sport)',\n\t\tquestion: null,\n\t\tanswers: null,\n\t},\n];\n","import { SAWGPMarketType } from './MarketsType';\nimport { QuizSportType } from './SportTypes';\n\nexport const QuizMarketPerSport = {\n\t[QuizSportType.Basketball]: [\n\t\tSAWGPMarketType.One_Two,\n\t\tSAWGPMarketType.Overtime,\n\t\tSAWGPMarketType.OneXTwo,\n\t\tSAWGPMarketType.OddEven,\n\t\tSAWGPMarketType.OddEvenHomeAway,\n\t\tSAWGPMarketType.DoubleChance,\n\t],\n\t[QuizSportType.Soccer]: [\n\t\tSAWGPMarketType.OneXTwo,\n\t\tSAWGPMarketType.OneXTwoHalftime,\n\t\t// SAWGPMarketType.HalftimeFulltime,\n\t\tSAWGPMarketType.FirstGoal,\n\t\tSAWGPMarketType.LastGoal,\n\t\tSAWGPMarketType.DoubleChance,\n\t\tSAWGPMarketType.OverUnder2_5,\n\t\tSAWGPMarketType.OverUnder1_5Halftime,\n\t\tSAWGPMarketType.OverUnder1_5__2ndHalf,\n\t\tSAWGPMarketType.RedCard,\n\t\tSAWGPMarketType.TotalCorners8_5,\n\t\tSAWGPMarketType.TotalCorners9_5,\n\t\tSAWGPMarketType.Corners1x2,\n\t],\n\t[QuizSportType.Tennis]: [\n\t\tSAWGPMarketType.One_Two,\n\t\tSAWGPMarketType.FirstSet,\n\t\tSAWGPMarketType.SecondSet,\n\t\tSAWGPMarketType.ThirdSet,\n\t\tSAWGPMarketType.FourthSet,\n\t\tSAWGPMarketType.FifthSet,\n\t\tSAWGPMarketType.PlayerOneWinsOneSet,\n\t\tSAWGPMarketType.PlayerTwoWinsOneSet,\n\t\tSAWGPMarketType.OddEven,\n\t],\n};\n","enum JackpotContributionType {\n\tFixed = 1,\n\tPercentage = 2,\n}\n\nexport { JackpotContributionType };\n","enum JackPotTemparature {\n\t/** cold, seed amount < current pot < (min amount - seed amount)/2 */\n\tCOLD = 0,\n\t/** warm, (min amount - seed amount)/2 < current pot < min amount */\n\tWARM = 1,\n\t/** hot, current pot > min amount, entered explosion range */\n\tHOT = 2,\n\t/** burning, current pot > min amount + 0.5 * (max amount - min amount). E.g. mid of allowed explosion range */\n\tBURNING = 3,\n}\n\ninterface JackpotPot {\n\t/** ID of the jackpot template */\n\tjp_template_id: number;\n\t/** ID of the jackpot pot */\n\tjp_pot_id: number;\n\t/** currency of the jackpot pot in the Jackput base currency */\n\tcurrent_pot_amount: number;\n\t/** currency of the jackpot pot in the user wallet currency */\n\tcurrent_pot_amount_user_currency: number;\n\t/** the date/time when this pot exploded */\n\texplode_date_ts: number;\n\t/** current pot temperature */\n\tcurrent_pot_temperature: JackPotTemparature;\n}\n\nexport { JackpotPot, JackPotTemparature };\n","enum JackpotType {\n\tMultiUser = 1,\n\tPersonal = 2,\n}\n\nexport { JackpotType };\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","isWithinPeriod","timestamp","period","now","Date","completedDate","getFullYear","getMonth","getDate","startOfWeek","setDate","getDay","setHours","endOfWeek","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Gems","Diamonds","Unknown","SAWUtils","canPlay","t","user_balances","undefined","saw_buyin_type_id","spin_count","balance","ach_points_balance","ach_gems_balance","ach_diamonds_balance","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAcknowledgeTypeName","SAWAcknowledgeTypeNamed","Silent","QuickMessage","FullMessage","ExplicityAcknowledge","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","PrizeDrop","Quiz","LootboxWeekdays","LootboxCalendarDays","TreasureHunt","Voyager","Plinko","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","CHANGE_LEVEL","MISSION","RAFFLE_TICKET","GEMS_AND_DIAMONDS","UNKNOWN","SAWTemplatesTransform","items","map","r","_r$saw_skin_ui_defini","x","_extends","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","buyin_cost_gems","buyin_cost_diamonds","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","expose_game_stat_on_api","relative_period_timezone","activeFromDate","activeTillDate","next_available_spin_ts","steps_to_finish_game","custom_section_id","show_prize_history","max_number_of_attempts","maxSpinsCount","max_spins_period_ms","maxSpinsPediodMs","prizes","p","_p$saw_prize_ui_defin","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","font_size_mobile","icon","position","sectors","acknowledge_type","aknowledge_message","acknowledge_dp","acknowledge_action_title","acknowledge_dp_additional","acknowledge_action_title_additional","out_of_stock_message","pool","pool_initial","wins_count","weekdays","active_from_ts","active_till_ts","is_surcharge","is_deleted","prize_modifiers","allow_split_decimal","hide_prize_from_history","requirements_to_get_prize","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","SAWHistoryTransform","template","prize_amount","client_request_id","is_claimed","create_date_ts","acknowledge_date_ts","SAWGameLayout","PrizeModifiers","PrizeModifiersKeysNames","SAWWheelLayout","SAWGameDifficultyType","SAWGameDifficultyTypeName","SawGameDifficultyTypeNamed","EASY","MEDIUM","HARD","NodeCache","constructor","ttlChecker","cache","setInterval","getTime","key","hasOwnProperty","o","ttl","get","set","ttlSeconds","remove","flushAll","clearInterval","ECacheContext","OCache","init","cacheContext","oKey","stringify","deepClone","use","f","clear","clearContext","clearAll","ActivityTypeLimited","CoreUtils","currencySymbol","currency","toUpperCase","USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","MXN","SGD","HKD","NOK","KRW","TRY","INR","RUB","BRL","ZAR","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","category_id","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","OpenLinksType","InboxCategories","BuyStoreItemErrorCode","StoreCategoryTransform","_r$publicMeta","_r$publicMeta2","publicMeta","order","StoreItemPurchaseType","StoreItemType","StoreItemTypeName","StoreItemTypeNamed","Bonus","Tangible","MiniGameSpin","ChangeLevel","RaffleTicket","mapPurchaseType","purchaseType","StoreItemTransform","filter","_r$itemPublicMeta$pri","_r$categoryIds","itemPublicMeta","purchase_type","price","image_url","ribbon","label_tag","custom_label_tag","limit_message","purchase_limit_message","priority","related_item_ids","related_items","hint_text","itemTypeId","can_buy","canBuy","category_ids","categoryIds","shopPool","active_till_date","discounted_price","discount_prize","discount_price_ribbon","discount_prize_ribbon","custom_ribbon_image","StoreItemPurchasedTransform","purchasedToday","purchase_ts","purchasedThisWeek","purchasedThisMonth","purchase_points_amount","purchased_today","purchased_this_week","purchased_this_month","AchievementStatus","AchievementTaskType","AchievementType","AchievementAvailabilityStatus","MissionUtils","getAvailabilityStatus","mission","activeFrom","getMs","activeTill","startDate","start_date_ts","timeLimit","time_limit_ms","requiresOptIn","requiresOptin","optedIn","isOptedIn","isLockedMission","ach_status_id","AvailableLocked","isLocked","AvailableActive","AvailableInactive","Available","UnavailableWithActiveFrom","AvailableWithActiveTillActive","AvailableWithActiveTillInactive","AvailableWithActiveTill","MissedByActiveTill","endDate","AvailableLimitedActive","MissedByLimitInTime","AvailableLimitedInactive","AvailableLimited","AvailableFullyLimitedActive","AvailableFullyLimitedInactive","AvailableFullyLimited","ts","replaceFavGameNameTag","task","_task$user_state_para","_task$task_public_met","userStateParams","user_state_params","userStateOperator","task_public_meta","user_state_operations","userStateParamsKeys","Object","keys","operatorsMulti","operatorsPos","replacementValue","forEach","k","_userStateOperator$k","operator","op","join","pos","Number","UserAchievementTransform","ach_id","_r$ach_categories","completedToday","complete_date_ts","completedThisWeek","completedThisMonth","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","is_requires_optin","is_opted_in","dt_start","reward","progress","ach_type_id","Mission","cta_action","cta_text","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","_t$task_public_meta","task_id","points_reward","userProgress","execution_count_expected","executionCount","execution_count_actual","userExecutedCount","display_progress_as_count","stage_image","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","mobile_spec_link","ach_categories","ach_completed_id","requires_prize_claim","prize_claimed_date_ts","complete_date","completed_today","completed_this_week","completed_this_month","custom_section_type_id","availability_status","claim_button_title","claim_button_action","Recurring","next_recurrence_date_ts","milliseconds_till_available","RecurringUponCompletion","completion_count","completed_count","max_completion_count","recurring_quantity","ScheduledMissionType","AchCategoryTransform","MissionCategory","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","BUY_IN_GEMS","BUY_IN_DIAMONDS","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","AddGemsAndDiamonds","DeductGemsAndDiamonds","ResetGemsAndDiamonds","TournamentUtils","isCanRegister","tournament","tournamentRegistrationStatus","isUserRegistered","playersMaxCount","registrationCount","registrationType","tournamentInstanceStatus","allowLateRegistration","isInProgress","isActive","isFinished","isCancelled","isUpcoming","getPlayerTransformed","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","user_ext_id","cleanExtUserId","crm_brand_id","crmBrandId","user_id","userId","getPrizeTransformed","prize","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","image2_mobile","image_url2_mobile","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","is_user_registered","players_min_count","playersMinCount","players_max_count","registration_status","registration_type","registration_cost_points","buyInAmount","registration_cost_gems","registration_cost_diamonds","duration_ms","durationMs","is_active","is_can_register","is_cancelled","is_finished","is_in_progress","is_upcoming","min_scores_win","minScoreToWin","hide_leaderboard_min_scores","hideLeaderboardsMinScores","prizeStructure","tournamentPlayer","me","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","LeaderBoardPeriodType","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","GetLevelMapResponseTransform","levels","l","_l$level_public_meta","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","ticketsTransform","ticekt_id","ticket_id_string","winnersTransform","username","ticket","raf_won_id","claimed_date","prizeTransform","prize_id","public_meta","prizes_per_run","prizes_per_run_actual","chances_to_win_perc","min_required_total_tickets","cap_prizes_per_run","stock_items_per_draw","should_claim","winners","requires_claim","min_required_tickets_for_user","drawTransform","draw_id","image_url_mobile","icon_url","background_image_url","background_image_url_mobile","is_grand","current_state","run_id","execution_type","execution_ts","previous_run_ts","previous_run_id","ticket_start_ts","allow_multi_prize_per_ticket","total_tickets_count","my_tickets_count","my_last_tickets","raffleTransform","raffle_id","start_date","end_date","end_date_ts","max_tickets_count","current_tickets_count","draws","drawRunTransform","res","_res$draw$ticket_star","draw","RaffleDrawInstanceState","RaffleDrawTypeExecution","drawRunHistoryTransform","draw_runs","actual_execution_ts","is_winner","has_unclaimed_prize","raffleClaimPrizeResponseTransform","info","errorCode","errCode","errorMessage","errMsg","CACHE_DATA_SEC","JACKPOT_TEMPLATE_CACHE_SEC","JACKPOT_POT_CACHE_SEC","JACKPOT_WINNERS_CACHE_SEC","JACKPOT_ELIGIBLE_GAMES_CACHE_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","jackpotGetSignature","tracker","on","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","reloadMiniGameTemplate","SAW_AKNOWLEDGE_RESPONSE","SAWHistory","SAW_DO_SPIN_RESPONSE","MISSION_OPTIN_RESPONSE","updateMissions","ACHIEVEMENT_CLAIM_PRIZE_RESPONSE","RELOAD_ACHIEVEMENTS_EVENT","TOURNAMENT_REGISTER_RESPONSE","updateTournaments","BUY_SHOP_ITEM_RESPONSE","updateStorePurchasedItems","updateStoreItems","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","JP_WIN_PUSH","jackpotClearCache","JP_OPTOUT_RESPONSE","JP_OPTIN_RESPONSE","CLAIM_BONUS_RESPONSE","updateBonuses","SAW_DO_SPIN_BATCH_RESPONSE","RAF_CLAIM_PRIZE_RESPONSE","updateRaffles","Raffles","GET_INBOX_MESSAGES_RESPONSE","unread_count","updateInboxUnreadCount","CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT","_data$props","_data$props2","props","core_inbox_unread_count","clearCaches","getUserProfile","assign","userPublicProps","Error","checkSegmentMatch","segment_id","coreCheckSegments","find","is_matching","checkSegmentListMatch","segment_ids","Array","isArray","getLevels","Levels","levelsGetT","getCurrentLevel","CurrentLevel","getLevelCurrent","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","Badges","badgetsGetItemsT","getBonuses","Bonuses","bonusesGetItemsT","claimBonus","bonus_id","bonusClaimItem","err_code","err_message","success","getUserLevelExtraCounters","LevelExtraCounters","getUserGamificationInfoT","getStoreItems","StoreItems","storeGetItemsT","buyStoreItem","item_id","getStoreCategories","StoreCategories","storeGetCategoriesT","getStorePurchasedItems","limit","offset","StoreHistory","storeGetPurchasedItemsT","getAchCategories","AchCategories","achGetCategoriesT","getCustomSections","CustomSections","customSectionsGetT","getMiniGames","Saw","sawGetTemplatesT","getMiniGamesHistory","getSawWinningHistoryT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","miniGameWinAcknowledgeRequest","playMiniGameBatch","sawSpinBatchRequest","request_ids","results","result","doAcknowledgeBatchRequest","errMessage","jackpot_amount","first_spin_in_period","requestMissionOptIn","mission_id","missionOptIn","requestMissionClaimReward","missionClaimPrize","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getLeaderBoard","periodType","getPreviousPeriod","LeaderBoards","leaderboardsGetT","getInboxMessages","from","to","onlyFavorite","categoryId","InboxMessages","getInboxMessagesT","getInboxUnreadCount","InboxUnreadCount","getInboxUnreadCountT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","updatedTemplates","payload","count","getRafflesT","contextKey","Jackpots","Pots","JackpotWinners","jackpotGet","_this","signature","jp_template_id","related_game_id","jackpots","pots","_jackpots","_pots","jp","pot","jp_public_meta","jp_template_ids","potGet","_jp","jackpotOptIn","jackpotOptOut","getJackpotWinners","getJackpotWinnersT","getJackpotEligibleGames","JackpotEligibleGames","getJackpotEligibleGamesT","getRelatedItemsForGame","getRaffles","getRaffleDrawRun","getRaffleDrawRunsHistory","claimRafflePrize","won_id","AchCustomSectionType","AchCustomLayoutTheme","AchMissionsTabsOptions","AchOverviewMissionsFilter","LiquidEntityData","UICustomSectionTransform","customSections","section_type_id","menu_img","menu_name","custom_skin_images","generic_custom_css","mission_tabs_options","overview_missions_count","overview_missions_filter","theme","LEVELS","liquid_entity_data","ach_tournament_id","show_raw_data","liquid_template","push","BonusItemsTransform","is_redeemable","redeemable","create_date","redeem_date","redeemDate","label_bonus_template_id","labelBonusTemplateId","bonus_status_id","bonusStatusId","label_bonus_template_meta_map","labelBonusTemplateMetaMap","bonus_meta_map","bonusMetaMap","BonusStatus","GetJackpotWinnersResponseTransform","winnerInfo","winner","win_date_ts","jp_pot_id","GetJackpotEligibleGamesResponseTransform","eligible_games","games","game","game_id","ach_game_id","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","_options$tracker","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","replaceSmrDomainsWithCloudfront","domains","replacedValue","oldDomain","newDomain","entries","err","getEnvId","send","message","expectCID","force_language","cid","timeStart","errSetup","timeEnd","warn","url","request","obj","buildMessage","api_key","brand_key","ext_user_id","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","_trUser$translations","trUserRQ","trUser","coreIdentifyLabel","_this2","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","CHECK_SEGMENT_MATCH_REQUEST","CHECK_SEGMENT_MATCH_RESPONSE","segments","JP_GET_JACKPOTS_REQUEST","JP_GET_JACKPOTS_RESPONSE","JP_GET_LATEST_POTS_REQUEST","JP_GET_LATEST_POTS_RESPONSE","JP_OPTIN_REQUEST","JP_OPTOUT_REQUEST","JP_GET_WINNERS_REQUEST","JP_GET_WINNERS_RESPONSE","JP_GET_ELIGIBLE_GAMES_REQUEST","JP_GET_ELIGIBLE_GAMES_RESPONSE","sawGetTemplates","is_visitor_mode","SAW_GET_SPINS_REQUEST","SAW_GET_SPINS_RESPONSE","_t$saw_template_ui_de","_t$saw_template_ui_de2","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_OK","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","SAW_TEMPLATE_NOT_ACTIVE","SAW_NOT_IN_SEGMENT","SAW_NO_BALANCE_GEMS","SAW_NO_BALANCE_DIAMONDS","SAW_AKNOWLEDGE_BATCH_RESPONSE","spins_count","spins","SAW_DO_SPIN_BATCH_REQUEST","getSawWinningHistory","GET_SAW_HISTORY_REQUEST","GET_SAW_HISTORY_RESPONSE","MISSION_OPTIN_REQUEST","achievementId","ACHIEVEMENT_CLAIM_PRIZE_REQUEST","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","inboxGetMessages","GET_INBOX_MESSAGES_REQUEST","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","storeGetPurchasedItems","ACH_SHOP_ITEM_HISTORY_REQUEST","ACH_SHOP_ITEM_HISTORY_RESPONSE","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","responseClone","achievements","getUserGamificationInfo","GET_ACHIEVEMENT_USER_REQUEST","GET_ACHIEVEMENT_USER_RESPONSE","level_counter_1","level_counter_2","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","bonusesGetItems","GET_BONUSES_REQUEST","GET_BONUSES_RESPONSE","CLAIM_BONUS_REQUEST","bonusId","bonuses","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","_response$userPositio","_response$tournamentI","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","prevPeriod","_response$map$boardKe","_response$map$boardKe2","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","DAILY","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","_userInfo$points_ever2","userInfo","sortedLevels","sort","currentLevelIndex","level","current_level","_userInfo$points_ever","userPointsEver","points_ever","nextLevel","currentLevel","ordinal_position","min","max","customSectionsGet","GET_CUSTOM_SECTIONS_REQUEST","GET_CUSTOM_SECTIONS_RESPONSE","starred_only","favoriteOnly","log","_this3","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","GET_RELATED_ACH_N_TOURNAMENTS_REQUEST","GET_RELATED_ACH_N_TOURNAMENTS_RESPONSE","RAF_GET_RAFFLES_REQUEST","RAF_GET_RAFFLES_RESPONSE","RAF_GET_DRAW_RUN_REQUEST","RAF_GET_DRAW_RUN_RESPONSE","RAF_GET_DRAW_HISTORY_REQUEST","RAF_GET_DRAW_HISTORY_RESPONSE","RAF_CLAIM_PRIZE_REQUEST","CookieStore","cookieStore","split","TSMap","AnalyticsInterfaceType","AnalyticsScreenNameId","AnalyticsTournamentsLobbySubScreenNameId","AnalyticsInboxSubScreenNameId","QuizSportType","quizSupportedSports","Basketball","Soccer","Tennis","SAWGPMarketType","QuizAnswersValueType","quizAnswerHomeTeamReplacementText","quizAnswerAwayTeamReplacementText","quizDrawReplacementText","quizYesReplacementText","quizNoReplacementText","quizOddReplacementText","quizEvenReplacementText","quizOrReplacementText","quizNoGoalsReplacementText","quizAnswersTrKeys","yesNoAnswers","Yes","No","homeAwayAnswers","HomeTeam","AwayTeam","homeAwayDrawAnswers","Draw","homeAwayNoGoalsAnswers","marketsInfo","OneXTwo","question","trKey","answers","OneXTwoHalftime","FirstGoal","LastGoal","DoubleChance","HomeTeamDraw","HomeTeamAwayTeam","AwayTeamDraw","OverUnder2_5","OverUnder1_5Halftime","OverUnder1_5__2ndHalf","RedCard","TotalCorners8_5","TotalCorners9_5","Corners1x2","One_Two","Overtime","OddEven","Odd","Even","OddEvenHomeAway","HomeOdd","HomeEven","AwayOdd","AwayEven","FirstSet","SecondSet","ThirdSet","FourthSet","FifthSet","PlayerOneWinsOneSet","PlayerTwoWinsOneSet","CustomNonSport","CustomSport","QuizMarketPerSport","JackpotContributionType","JackPotTemparature","JackpotType"],"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/MiniGames/SAWWinningHistoryResponse.ts","../src/MiniGames/SAWGameLayout.ts","../src/MiniGames/PrizeModifiers.ts","../src/MiniGames/SAWWheelLayout.ts","../src/MiniGames/SAWGameDifficulty.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/Inbox/OpenLinksType.ts","../src/Inbox/InboxCategories.ts","../src/Store/BuyStoreItemErrorCode.ts","../src/Store/StoreCategory.ts","../src/Store/StoreItemPurchaseType.ts","../src/Store/StoreItemType.ts","../src/Store/StoreItem.ts","../src/Store/StoreItemPurchased.ts","../src/Missions/AchievementStatus.ts","../src/Missions/AchievementTaskType.ts","../src/Missions/AchievementType.ts","../src/Missions/AchievementAvailabilityStatus.ts","../src/Missions/MissionsUtils.ts","../src/Missions/UserAchievement.ts","../src/Missions/ScheduledMissionType.ts","../src/Missions/AchievementCategory.ts","../src/Missions/MissionCategory.ts","../src/Tournaments/TournamentRegistrationType.ts","../src/Tournaments/TournamentRegistrationStatus.ts","../src/Tournaments/TournamentInstanceStatus.ts","../src/Tournaments/TournamentUtils.ts","../src/Tournaments/Tournament.ts","../src/Tournaments/GetTournamentInfoResponse.ts","../src/Tournaments/TournamentRegistrationError.ts","../src/Tournaments/TournamentType.ts","../src/Leaderboard/LeaderBoardPeriodType.ts","../src/Leaderboard/LeaderBoards.ts","../src/Level/GetLevelMapResponse.ts","../src/Raffle/GetRafflesResponse.ts","../src/Raffle/GetDrawRunResponse.ts","../src/Raffle/RaffleDraw.ts","../src/Raffle/GetRaffleDrawRunsHistoryResponse.ts","../src/Raffle/RaffleClaimPrizeResponse.ts","../src/WSAPI/WSAPI.ts","../src/CustomSections/AchCustomSection.ts","../src/CustomSections/UICustomSection.ts","../src/Bonuses/Bonus.ts","../src/Bonuses/BonusStatus.ts","../src/Jackpots/GetJackpotWinnersResponse.ts","../src/Jackpots/GetJackpotEligibleGamesResponse.ts","../src/SmarticoAPI.ts","../src/CookieStore.ts","../src/Analytics/AnalyticStoreData.ts","../src/Quiz/SportTypes.ts","../src/Quiz/MarketsType.ts","../src/Quiz/MarketsAnswers.ts","../src/Quiz/MarketsInfo.ts","../src/Quiz/MarketsPerSport.ts","../src/Jackpots/JackpotContributionType.ts","../src/Jackpots/JackpotPot.ts","../src/Jackpots/JackpotType.ts"],"sourcesContent":["export enum ClassId {\n\tPING = 1,\n\tPONG = 2,\n\n\tINIT = 3,\n\tINIT_RESPONSE = 4,\n\tIDENTIFY = 5,\n\tIDENTIFY_RESPONSE = 6,\n\tLOGIN = 7,\n\tLOGOUT = 8,\n\tEVENT = 9,\n\tEVENT_RESPONSE = 10,\n\n\tLOGIN_RESPONSE = 11,\n\tLOGOUT_RESPONSE = 12,\n\n\tGET_TRANSLATIONS_REQUEST = 13,\n\tGET_TRANSLATIONS_RESPONSE = 14,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tCLIENT_ENGAGEMENT_IMPRESSION_REQUEST = 103,\n\tCLIENT_ENGAGEMENT_ACTION_REQUEST = 104,\n\tCLIENT_EXECUTE_DEEPLINK_EVENT = 105,\n\tCLIENT_ENGAGEMENT_FAILED_REQUEST = 106,\n\tCLIENT_EXECUTE_JS_EVENT = 107,\n\tCLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT = 108,\n\tCLIENT_ENGAGEMENT_EVENT_NEW = 110,\n\n\tCLIENT_TRACK_ACTIVITY_REQUEST = 155,\n\tCLIENT_SET_AVATAR_REQUEST = 157,\n\tCLIENT_SET_AVATAR_RESPONSE = 158,\n\n\tCLIENT_SET_CUSTOM_USERNAME_REQUEST = 159,\n\tCLIENT_SET_CUSTOM_USERNAME_RESPONSE = 160,\n\n\tCHECK_SEGMENT_MATCH_REQUEST = 161,\n\tCHECK_SEGMENT_MATCH_RESPONSE = 162,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\t// 500-1000 - Achievements\n\tGET_LEVEL_MAP_REQUEST = 500,\n\tGET_LEVEL_MAP_RESPONSE = 501,\n\tGET_ACHIEVEMENT_MAP_REQUEST = 502,\n\tGET_ACHIEVEMENT_MAP_RESPONSE = 503,\n\tRELOAD_ACHIEVEMENTS_EVENT = 504,\n\tGET_LEADERS_BOARD_REQUEST = 505,\n\tGET_LEADERS_BOARD_RESPONSE = 506,\n\tGET_SHOP_ITEMS_REQUEST = 509,\n\tGET_SHOP_ITEMS_RESPONSE = 510,\n\tBUY_SHOP_ITEM_REQUEST = 511,\n\tBUY_SHOP_ITEM_RESPONSE = 512,\n\tGET_INBOX_MESSAGES_REQUEST = 513,\n\tGET_INBOX_MESSAGES_RESPONSE = 514,\n\tGET_SHOP_CATEGORIES_REQUEST = 515,\n\tGET_SHOP_CATEGORIES_RESPONSE = 516,\n\tGET_TOURNAMENT_LOBBY_REQUEST = 517,\n\tGET_TOURNAMENT_LOBBY_RESPONSE = 518,\n\tGET_TOURNAMENT_INFO_REQUEST = 519,\n\tGET_TOURNAMENT_INFO_RESPONSE = 520,\n\tTOURNAMENT_REGISTER_REQUEST = 521,\n\tTOURNAMENT_REGISTER_RESPONSE = 522,\n\tGET_CUSTOM_SECTIONS_REQUEST = 523,\n\tGET_CUSTOM_SECTIONS_RESPONSE = 524,\n\tMISSION_OPTIN_REQUEST = 525,\n\tMISSION_OPTIN_RESPONSE = 526,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tGET_ACHIEVEMENT_USER_REQUEST = 527,\n\tGET_ACHIEVEMENT_USER_RESPONSE = 528,\n\n\tMARK_INBOX_READ_REQUEST = 529,\n\tMARK_INBOX_READ_RESPONSE = 530,\n\tMARK_INBOX_STARRED_REQUEST = 531,\n\tMARK_INBOX_STARRED_RESPONSE = 532,\n\tMARK_INBOX_DELETED_REQUEST = 535,\n\tMARK_INBOX_DELETED_RESPONSE = 536,\n\n\tGET_ACH_CATEGORIES_REQUEST = 537,\n\tGET_ACH_CATEGORIES_RESPONSE = 538,\n\n\tACHIEVEMENT_CLAIM_PRIZE_REQUEST = 539,\n\tACHIEVEMENT_CLAIM_PRIZE_RESPONSE = 540,\n\n\tACH_SHOP_ITEM_HISTORY_REQUEST = 541,\n\tACH_SHOP_ITEM_HISTORY_RESPONSE = 542,\n\n\tGET_RELATED_ACH_N_TOURNAMENTS_REQUEST = 543,\n\tGET_RELATED_ACH_N_TOURNAMENTS_RESPONSE = 544,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tGET_BONUSES_REQUEST = 600,\n\tGET_BONUSES_RESPONSE = 601,\n\tCLAIM_BONUS_REQUEST = 602,\n\tCLAIM_BONUS_RESPONSE = 603,\n\n\tSAW_GET_SPINS_REQUEST = 700,\n\tSAW_GET_SPINS_RESPONSE = 701,\n\tSAW_DO_SPIN_REQUEST = 702,\n\tSAW_DO_SPIN_RESPONSE = 703,\n\tSAW_AKNOWLEDGE_REQUEST = 704,\n\tSAW_AKNOWLEDGE_RESPONSE = 705,\n\tSAW_SPINS_COUNT_PUSH = 706,\n\tSAW_SHOW_SPIN_PUSH = 707,\n\tSAW_PRIZE_DROP_WIN_PUSH = 708,\n\tSAW_PRIZE_DROP_WIN_AKNOWLEDGE_REQUEST = 709,\n\tSAW_PRIZE_DROP_WIN_AKNOWLEDGE_RESPONSE = 710,\n\tSAW_AKNOWLEDGE_SPIN_PUSH = 711,\n\tSAW_DO_SPIN_BATCH_REQUEST = 712,\n\tSAW_DO_SPIN_BATCH_RESPONSE = 713,\n\tSAW_AKNOWLEDGE_BATCH_REQUEST = 714,\n\tSAW_AKNOWLEDGE_BATCH_RESPONSE = 715,\n\n\tGET_SAW_HISTORY_REQUEST = 716,\n\tGET_SAW_HISTORY_RESPONSE = 717,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tJP_GET_JACKPOTS_REQUEST = 800,\n\tJP_GET_JACKPOTS_RESPONSE = 801,\n\n\tJP_GET_LATEST_POTS_REQUEST = 802,\n\tJP_GET_LATEST_POTS_RESPONSE = 803,\n\n\tJP_OPTIN_REQUEST = 804,\n\tJP_OPTIN_RESPONSE = 805,\n\n\tJP_OPTOUT_REQUEST = 806,\n\tJP_OPTOUT_RESPONSE = 807,\n\n\tJP_WIN_PUSH = 808,\n\tJP_GET_WINNERS_REQUEST = 809,\n\tJP_GET_WINNERS_RESPONSE = 810,\n\n\tJP_GET_ELIGIBLE_GAMES_REQUEST = 811,\n\tJP_GET_ELIGIBLE_GAMES_RESPONSE = 812,\n\n\tRAF_GET_RAFFLES_REQUEST = 902,\n\tRAF_GET_RAFFLES_RESPONSE = 903,\n\tRAF_GET_DRAW_RUN_REQUEST = 904,\n\tRAF_GET_DRAW_RUN_RESPONSE = 905,\n\tRAF_GET_DRAW_HISTORY_REQUEST = 906,\n\tRAF_GET_DRAW_HISTORY_RESPONSE = 907,\n\tRAF_CLAIM_PRIZE_REQUEST = 908,\n\tRAF_CLAIM_PRIZE_RESPONSE = 909,\n\t/*\n\tRAF_GET_TICKETS_REQUEST = 902,\n\tRAF_GET_TICKETS_RESPONSE = 903,\n\n\tRAF_CLAIM_PRIZE_REQUEST = 906,\n\t*/\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tREGISTER_PUSH_NOTIFICATIONS_TOKEN_REQ = 1003,\n\tREGISTER_PUSH_NOTIFICATIONS_TOKEN_RESP = 2003,\n\n\tCLIENT_DEBUG_REQUEST = 77777,\n\n\t/*\n !Important, if adding new messages that are 'acting' on behalf of the client,\n you need to include them in the CLASS_ID_IGNORE_FOR_SIMULATION\n */\n\n\tUNSUPPORTED_COMMAND = 99999,\n}\n","class IntUtils {\n\tpublic static uuid(): string {\n\t\tlet a: any;\n\t\tlet b: any;\n\t\tfor (\n\t\t\tb = a = '';\n\t\t\ta++ < 36;\n\t\t\tb += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : '-'\n\t\t) {}\n\t\treturn b;\n\t}\n\n\tpublic static isNotNull(val: any): boolean {\n\t\treturn typeof val !== 'undefined' && val !== null;\n\t}\n\n\tpublic static isNotEmpty(val: string): boolean {\n\t\treturn typeof val !== 'undefined' && val !== null && val.length > 0;\n\t}\n\n\tpublic static replaceAll(value: string, regex: string, replacement: string | number): string {\n\t\tif (IntUtils.isNotNull(value)) {\n\t\t\treturn value.replace(new RegExp(IntUtils.escapeRegExp(regex), 'g'), replacement?.toString());\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic static escapeRegExp(v: string): string {\n\t\tif (IntUtils.isNotEmpty(v)) {\n\t\t\treturn v.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t}\n\t\treturn v;\n\t}\n\n\tpublic static JsonOrText = (str: string): any => {\n\t\tif (str && str.includes && (str.includes('{') || str.includes('['))) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(str);\n\t\t\t} catch (e) {\n\t\t\t\treturn str;\n\t\t\t}\n\t\t}\n\t\treturn str || {};\n\t};\n\n\t// public static wsTimeToEpoch = (time: string): number => {\n\t// if (time) {\n\t// return moment.utc(time, \"DD/MM/YYYY HH:mm:ss\").valueOf()\n\t// } else {\n\t// return null\n\t// }\n\t// }\n\n\tpublic static isWithinPeriod = (timestamp: number, period: 'today' | 'thisWeek' | 'thisMonth'): boolean => {\n\t\tconst now = new Date();\n\t\tconst completedDate = new Date(timestamp);\n\n\t\tswitch (period) {\n\t\t\tcase 'today':\n\t\t\t\treturn (\n\t\t\t\t\tnow.getFullYear() === completedDate.getFullYear() &&\n\t\t\t\t\tnow.getMonth() === completedDate.getMonth() &&\n\t\t\t\t\tnow.getDate() === completedDate.getDate()\n\t\t\t\t);\n\t\t\tcase 'thisWeek':\n\t\t\t\tconst startOfWeek = new Date(now);\n\t\t\t\tstartOfWeek.setDate(now.getDate() - now.getDay());\n\t\t\t\tstartOfWeek.setHours(0, 0, 0, 0);\n\n\t\t\t\tconst endOfWeek = new Date(startOfWeek);\n\t\t\t\tendOfWeek.setDate(startOfWeek.getDate() + 6);\n\t\t\t\tendOfWeek.setHours(23, 59, 59, 999);\n\n\t\t\t\treturn completedDate >= startOfWeek && completedDate <= endOfWeek;\n\t\t\tcase 'thisMonth':\n\t\t\t\treturn now.getFullYear() === completedDate.getFullYear() && now.getMonth() === completedDate.getMonth();\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nexport { IntUtils };\n","export enum SAWBuyInType {\n\tFree = 1,\n\tPoints = 2,\n\tSpins = 3,\n\tGems = 4,\n\tDiamonds = 5,\n}\n\nexport enum SAWBuyInTypeName {\n\tFree = 'free',\n\tPoints = 'points',\n\tSpins = 'spins',\n\tUnknown = 'unknown',\n\tGems = 'gems',\n\tDiamonds = 'diamonds',\n}\n\n/** @hidden */\nexport const SAWBuyInTypeNamed = (type: SAWBuyInType): SAWBuyInTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWBuyInType.Free]: SAWBuyInTypeName.Free,\n\t\t\t[SAWBuyInType.Points]: SAWBuyInTypeName.Points,\n\t\t\t[SAWBuyInType.Spins]: SAWBuyInTypeName.Spins,\n\t\t\t[SAWBuyInType.Gems]: SAWBuyInTypeName.Gems,\n\t\t\t[SAWBuyInType.Diamonds]: SAWBuyInTypeName.Diamonds,\n\t\t}[type] || SAWBuyInTypeName.Unknown\n\t);\n};\n","import { SAWBuyInType } from './SAWBuyInType';\nimport { SAWTemplate } from './SAWTemplate';\n\nclass SAWUtils {\n\tpublic static canPlay = (t: SAWTemplate, user_balances: {ach_points_balance: number, ach_gems_balance: number, ach_diamonds_balance: number}): boolean => {\n\t\tif (t === null || t === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tswitch (t.saw_buyin_type_id) {\n\t\t\tcase SAWBuyInType.Free: {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcase SAWBuyInType.Spins: {\n\t\t\t\treturn t.spin_count !== null && t.spin_count > 0;\n\t\t\t}\n\t\t\tcase SAWBuyInType.Points:\n\t\t\tcase SAWBuyInType.Gems:\n\t\t\tcase SAWBuyInType.Diamonds: {\n\t\t\t\tlet balance = user_balances.ach_points_balance;\n\t\t\t\tif (t.saw_buyin_type_id === SAWBuyInType.Gems) {\n\t\t\t\t\tbalance = user_balances.ach_gems_balance;\n\t\t\t\t} else if (t.saw_buyin_type_id === SAWBuyInType.Diamonds) {\n\t\t\t\t\tbalance = user_balances.ach_diamonds_balance;\n\t\t\t\t}\n\t\t\t\treturn t.buyin_cost_points <= balance;\n\t\t\t}\n\t\t\t\n\t\t\tdefault: {\n\t\t\t\tconsole.error('MiniGamesUtils.canPlay: Unknwon SAW buyin type ' + t.saw_buyin_type_id);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport { SAWUtils };\n","export enum SAWAcknowledgeType {\n\tSilent = 1,\n\tQuickMessage = 2,\n\tFullMessage = 3,\n\tExplicityAcknowledge = 4\n}\n\nexport enum SAWAcknowledgeTypeName {\n\tSilent = 'silent',\n\tQuickMessage = 'quick-message',\n\tFullMessage = 'full-message',\n\tExplicityAcknowledge = 'explicity-acknowledge'\n}\n\n/** @hidden */\nexport const SAWAcknowledgeTypeNamed = (type: SAWAcknowledgeType): SAWAcknowledgeTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWAcknowledgeType.Silent]: SAWAcknowledgeTypeName.Silent,\n\t\t\t[SAWAcknowledgeType.QuickMessage]: SAWAcknowledgeTypeName.QuickMessage,\n\t\t\t[SAWAcknowledgeType.FullMessage]: SAWAcknowledgeTypeName.FullMessage,\n\t\t\t[SAWAcknowledgeType.ExplicityAcknowledge]: SAWAcknowledgeTypeName.ExplicityAcknowledge\n\t\t}[type]\n\t);\n};\n","export enum SAWAskForUsername {\n\tNOASK = 'no-ask',\n\tONSUMBIT = 'on-submit',\n}\n","export enum SAWGameType {\n\tSpinAWheel = 1,\n\tScratchCard = 2,\n\tMatchX = 3,\n\tGiftBox = 4,\n\tPrizeDrop = 5,\n\tQuiz = 6,\n\tLootboxWeekdays = 7,\n\tLootboxCalendarDays = 8,\n\tTreasureHunt = 9,\n\tVoyager = 10,\n\tPlinko = 11,\n}\n\nexport enum SAWGameTypeName {\n\tSpinAWheel = 'wheel',\n\tScratchCard = 'scratch',\n\tMatchX = 'matchx',\n\tGiftBox = 'giftbox',\n\tPrizeDrop = 'prizedrop',\n\tQuiz = 'quiz',\n\tLootboxWeekdays = 'lootbox_weekdays',\n\tLootboxCalendarDays = 'lootbox_calendar_days',\n\tTreasureHunt = 'treasure_hunt',\n\tVoyager = 'voyager',\n\tPlinko = 'plinko',\n\tUnknown = 'unknown',\n}\n\n/** @hidden */\nexport const SAWGameTypeNamed = (type: SAWGameType): SAWGameTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWGameType.SpinAWheel]: SAWGameTypeName.SpinAWheel,\n\t\t\t[SAWGameType.ScratchCard]: SAWGameTypeName.ScratchCard,\n\t\t\t[SAWGameType.MatchX]: SAWGameTypeName.MatchX,\n\t\t\t[SAWGameType.GiftBox]: SAWGameTypeName.GiftBox,\n\t\t\t[SAWGameType.PrizeDrop]: SAWGameTypeName.PrizeDrop,\n\t\t\t[SAWGameType.Quiz]: SAWGameTypeName.Quiz,\n\t\t\t[SAWGameType.LootboxWeekdays]: SAWGameTypeName.LootboxWeekdays,\n\t\t\t[SAWGameType.LootboxCalendarDays]: SAWGameTypeName.LootboxCalendarDays,\n\t\t\t[SAWGameType.TreasureHunt]: SAWGameTypeName.TreasureHunt,\n\t\t\t[SAWGameType.Voyager]: SAWGameTypeName.Voyager,\n\t\t\t[SAWGameType.Plinko]: SAWGameTypeName.Plinko,\n\t\t}[type] || SAWGameTypeName.Unknown\n\t);\n};\n","export enum SAWPrizeType {\n\tNO_PRIZE = 1,\n\tPOINTS = 2,\n\tBONUS = 3,\n\tMANUAL = 4,\n\tSPIN = 5,\n\tJACKPOT = 6,\n\tCHANGE_LEVEL = 7,\n\tMISSION = 8,\n\tRAFFLE_TICKET = 9,\n\tGEMS_AND_DIAMONDS = 10,\n}\n\nexport enum MiniGamePrizeTypeName {\n\tNO_PRIZE = 'no-prize',\n\tPOINTS = 'points',\n\tBONUS = 'bonus',\n\tMANUAL = 'manual',\n\tSPIN = 'spin',\n\tJACKPOT = 'jackpot',\n\tCHANGE_LEVEL = 'change-level',\n\tMISSION = 'mission',\n\tRAFFLE_TICKET = 'raffle-ticket',\n\tGEMS_AND_DIAMONDS = 'gems-and-diamonds',\n\tUNKNOWN = 'unknown',\n}\n\n/** @hidden */\nexport const MiniGamePrizeTypeNamed = (type: SAWPrizeType): MiniGamePrizeTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWPrizeType.NO_PRIZE]: MiniGamePrizeTypeName.NO_PRIZE,\n\t\t\t[SAWPrizeType.POINTS]: MiniGamePrizeTypeName.POINTS,\n\t\t\t[SAWPrizeType.BONUS]: MiniGamePrizeTypeName.BONUS,\n\t\t\t[SAWPrizeType.MANUAL]: MiniGamePrizeTypeName.MANUAL,\n\t\t\t[SAWPrizeType.SPIN]: MiniGamePrizeTypeName.SPIN,\n\t\t\t[SAWPrizeType.JACKPOT]: MiniGamePrizeTypeName.JACKPOT,\n\t\t\t[SAWPrizeType.CHANGE_LEVEL]: MiniGamePrizeTypeName.CHANGE_LEVEL,\n\t\t\t[SAWPrizeType.MISSION]: MiniGamePrizeTypeName.MISSION,\n\t\t\t[SAWPrizeType.RAFFLE_TICKET]: MiniGamePrizeTypeName.RAFFLE_TICKET,\n\t\t\t[SAWPrizeType.GEMS_AND_DIAMONDS]: MiniGamePrizeTypeName.GEMS_AND_DIAMONDS,\n\t\t}[type] || MiniGamePrizeTypeName.UNKNOWN\n\t);\n};\n","import { IntUtils } from '../IntUtils';\nimport { TMiniGamePrize, TMiniGameTemplate } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from './../Base/ProtocolResponse';\nimport { SAWAcknowledgeTypeNamed } from './SAWAcknowledgeType';\nimport { SAWBuyInType, SAWBuyInTypeNamed } from './SAWBuyInType';\nimport { SAWGameTypeNamed } from './SAWGameType';\nimport { MiniGamePrizeTypeNamed } from './SAWPrizeType';\nimport { SAWTemplate } from './SAWTemplate';\n\nexport interface SAWGetTemplatesResponse extends ProtocolResponse {\n\ttemplates: SAWTemplate[];\n}\n\nexport const SAWTemplatesTransform = (items: SAWTemplate[]): TMiniGameTemplate[] => {\n\treturn items.map((r) => {\n\t\tconst x: TMiniGameTemplate = {\n\t\t\tid: r.saw_template_id,\n\t\t\tname: r.saw_template_ui_definition.name,\n\t\t\tdescription: r.saw_template_ui_definition.description,\n\t\t\tthumbnail: r.saw_template_ui_definition.thumbnail\n\t\t\t? r.saw_template_ui_definition.thumbnail\n\t\t\t: r.saw_skin_ui_definition?.skin_folder\n\t\t\t\t? `${r.saw_skin_ui_definition.skin_folder}/ico.png`\n\t\t\t\t: `https://d312ucx3huj7iy.cloudfront.net/gf/images/saw/${r.saw_skin_key}/ico.png`,\n\t\t\tover_limit_message: r.saw_template_ui_definition.over_limit_message,\n\t\t\tno_attempts_message: r.saw_template_ui_definition.no_attempts_message,\n\t\t\tjackpot_symbol: r.saw_template_ui_definition.jackpot_symbol,\n\t\t\tsaw_game_type: SAWGameTypeNamed(r.saw_game_type_id),\n\t\t\tsaw_buyin_type: SAWBuyInTypeNamed(r.saw_buyin_type_id),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Points ? { buyin_cost_points: r.buyin_cost_points } : {}),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Gems ? { buyin_cost_gems: r.buyin_cost_points } : {}),\n\t\t\t...(r.saw_buyin_type_id === SAWBuyInType.Diamonds ? { buyin_cost_diamonds: r.buyin_cost_points } : {}),\n\t\t\tjackpot_add_on_attempt: r.jackpot_add_on_attempt,\n\t\t\tjackpot_current: r.jackpot_current,\n\t\t\tspin_count: r.spin_count,\n\t\t\tpromo_image: r.saw_template_ui_definition.promo_image,\n\t\t\tpromo_text: r.saw_template_ui_definition.promo_text,\n\t\t\tcustom_data: IntUtils.JsonOrText(r.saw_template_ui_definition.custom_data),\n\t\t\texpose_game_stat_on_api: r.expose_game_stat_on_api,\n\t\t\trelative_period_timezone: r.relative_period_timezone,\n\t\t\tactiveFromDate: r.activeFromDate,\n\t\t\tactiveTillDate: r.activeTillDate,\n\t\t\tnext_available_spin_ts: r.next_available_spin_ts,\n\t\t\tsteps_to_finish_game: r.saw_template_ui_definition.steps_to_finish_game,\n\t\t\tcustom_section_id: r.saw_template_ui_definition.custom_section_id,\n\t\t\tsaw_template_ui_definition: r.saw_template_ui_definition,\n\t\t\tshow_prize_history: r.show_prize_history,\n\t\t\tmax_number_of_attempts: r.maxSpinsCount,\n\t\t\tmax_spins_period_ms: r.maxSpinsPediodMs,\n\n\t\t\tprizes: r.prizes.map((p) => {\n\t\t\t\tconst y: TMiniGamePrize = {\n\t\t\t\t\tid: p.saw_prize_id,\n\t\t\t\t\tname: p.saw_prize_ui_definition.name,\n\t\t\t\t\tprize_type: MiniGamePrizeTypeNamed(p.prize_type_id),\n\t\t\t\t\tprize_value: p.prize_value,\n\t\t\t\t\tfont_size: p.saw_prize_ui_definition.font_size,\n\t\t\t\t\tfont_size_mobile: p.saw_prize_ui_definition.font_size_mobile,\n\t\t\t\t\ticon: p.saw_prize_ui_definition.icon,\n\t\t\t\t\tposition: p.saw_prize_ui_definition.position,\n\t\t\t\t\tsectors: p.saw_prize_ui_definition.sectors,\n\t\t\t\t\tacknowledge_type: SAWAcknowledgeTypeNamed(p.saw_prize_ui_definition.acknowledge_type),\n\t\t\t\t\taknowledge_message: p.saw_prize_ui_definition.aknowledge_message,\n\t\t\t\t\tacknowledge_dp: p.saw_prize_ui_definition.acknowledge_dp,\n\t\t\t\t\tacknowledge_action_title: p.saw_prize_ui_definition.acknowledge_action_title,\n\t\t\t\t\tacknowledge_dp_additional: p.saw_prize_ui_definition.acknowledge_dp_additional,\n\t\t\t\t\tacknowledge_action_title_additional: p.saw_prize_ui_definition.acknowledge_action_title_additional,\n\t\t\t\t\tout_of_stock_message: p.saw_prize_ui_definition.out_of_stock_message,\n\t\t\t\t\tpool: p.pool,\n\t\t\t\t\tpool_initial: p.pool_initial,\n\t\t\t\t\twins_count: p.wins_count,\n\t\t\t\t\tweekdays: p.weekdays,\n\t\t\t\t\tactive_from_ts: p.active_from_ts,\n\t\t\t\t\tactive_till_ts: p.active_till_ts,\n\t\t\t\t\trelative_period_timezone: p.relative_period_timezone,\n\t\t\t\t\tis_surcharge: p.is_surcharge,\n\t\t\t\t\tis_deleted: p.is_deleted,\n\t\t\t\t\tcustom_data: IntUtils.JsonOrText(p.saw_prize_ui_definition?.custom_data),\n\t\t\t\t\tprize_modifiers: p.saw_prize_ui_definition.prize_modifiers,\n\t\t\t\t\tallow_split_decimal: p.saw_prize_ui_definition.allow_split_decimal,\n\t\t\t\t\thide_prize_from_history: p.saw_prize_ui_definition.hide_prize_from_history,\n\t\t\t\t\trequirements_to_get_prize: p.saw_prize_ui_definition.requirements_to_get_prize,\n\t\t\t\t};\n\t\t\t\treturn y;\n\t\t\t}),\n\t\t};\n\t\treturn x;\n\t});\n};\n","/*\n * Possible error codes for the mini-games attempts\n */\nexport enum SAWSpinErrorCode {\n\t/** No error */\n\tSAW_OK = 0,\n\t/** User doesn't have 'spin attempts' to play. In case buy in type for the game is 'spins' based */\n\tSAW_NO_SPINS = 40001,\n\t/** The are no prizes left to play the game */\n\tSAW_PRIZE_POOL_EMPTY = 40002,\n\t/** User doesn't have enough points to play. In case buy in type for the game is 'points' based */\n\tSAW_NOT_ENOUGH_POINTS = 40003,\n\t/** User reached max number of game attempts defined in the BackOffice */\n\tSAW_FAILED_MAX_SPINS_REACHED = 40004,\n\t/** User tries to play a template that is restricted by date */\n\tSAW_TEMPLATE_NOT_ACTIVE = 40007,\n\t/** Special code for the 'visitor' mode */\n\tSAW_VISITOR_STOP_SPIN_REQUEST = -40001,\n\t/** User is not in the segment */\n\tSAW_NOT_IN_SEGMENT = 40009,\n\t/** User doesn't have enough gems to play. In case buy in type for the game is 'gems' based */\n\tSAW_NO_BALANCE_GEMS = 40011,\n\t/** User doesn't have enough diamonds to play. In case buy in type for the game is 'diamonds' based */\n\tSAW_NO_BALANCE_DIAMONDS = 40012,\n}\n","export enum SAWWinSoundType {\n\tDisappointing = 1,\n\tPositive = 2,\n\tHighlyPositive = 3,\n\tNoSound = 4,\n\tCustom = 5,\n}\n\nexport const SAWWinSoundFiles = {\n\t[SAWWinSoundType.NoSound]: null,\n\t[SAWWinSoundType.Disappointing]: 'saw-disappointed.m4a',\n\t[SAWWinSoundType.Positive]: 'saw-positive.m4a',\n\t[SAWWinSoundType.HighlyPositive]: 'saw-highly-positive.m4a',\n};\n","import { ProtocolResponse } from \"../SmarticoLib\";\nimport { TSawHistory } from \"../WSAPI/WSAPITypes\";\nimport { SAWTemplate } from \"./SAWTemplate\";\n\nexport interface SAWWinningHistoryResponse extends ProtocolResponse {\n\tprizes: SAWPrizesHistory[];\n\thasMore: boolean;\n}\n\nexport interface SAWPrizesHistory {\n\ttemplate: SAWTemplate,\n\tsaw_template_id: number,\n\tsaw_prize_id: number,\n\tprize_amount: number,\n\tclient_request_id: string,\n\tis_claimed: boolean,\n\tcreate_date_ts: number;\n\tacknowledge_date_ts: number;\n}\n\nexport const SAWHistoryTransform = (items: SAWPrizesHistory[]): TSawHistory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TSawHistory = {\n\t\t\ttemplate: r.template,\n\t\t\tsaw_template_id: r.saw_template_id,\n\t\t\tsaw_prize_id: r.saw_prize_id,\n\t\t\tprize_amount: r.prize_amount,\n\t\t\tclient_request_id: r.client_request_id,\n\t\t\tis_claimed: r.is_claimed,\n\t\t\tcreate_date_ts: r.create_date_ts,\n\t\t\tacknowledge_date_ts: r.acknowledge_date_ts,\n\t\t}\n\t\treturn x;\n\t})\n}\n\n","export enum SAWGameLayout {\n Horizontal = 1,\n VerticalMap = 2,\n}","export enum PrizeModifiers {\n '2x' = 1,\n '5x' = 2,\n '10x' = 3,\n '/2' = 4,\n '/5' = 5,\n '/10' = 6,\n '0x' = 7,\n \"reset\" = 8,\n}\n\nexport const PrizeModifiersKeysNames = {\n [PrizeModifiers['2x']]: '2x',\n [PrizeModifiers['5x']]: '5x',\n [PrizeModifiers['10x']]: '10x',\n [PrizeModifiers['/2']]: '/2',\n [PrizeModifiers['/5']]: '/5',\n [PrizeModifiers['/10']]: '/10',\n [PrizeModifiers['0x']]: '0',\n [PrizeModifiers['reset']]: 'Reset to 0',\n};","export enum SAWWheelLayout {\n Centered = 1,\n LeftAligned = 2,\n RightAligned = 3,\n BottomAligned = 4,\n}","export enum SAWGameDifficultyType {\n\tEASY = 1,\n\tMEDIUM = 2,\n\tHARD = 3,\n}\n\nexport enum SAWGameDifficultyTypeName {\n\tEASY = 'easy',\n\tMEDIUM = 'medium',\n\tHARD = 'hard',\n}\n\n/** @hidden */\nexport const SawGameDifficultyTypeNamed = (type: SAWGameDifficultyType): SAWGameDifficultyTypeName => {\n\treturn (\n\t\t{\n\t\t\t[SAWGameDifficultyType.EASY]: SAWGameDifficultyTypeName.EASY,\n\t\t\t[SAWGameDifficultyType.MEDIUM]: SAWGameDifficultyTypeName.MEDIUM,\n\t\t\t[SAWGameDifficultyType.HARD]: SAWGameDifficultyTypeName.HARD,\n\t\t}[type]\n\t);\n};\n","class NodeCache {\n\tprivate ttlChecker: NodeJS.Timeout;\n\n\tprivate cache: { [key: string]: any } = {};\n\n\tconstructor() {\t\t\n\t\tif (this.ttlChecker === undefined) {\n\t\t\tthis.ttlChecker = setInterval(() => {\n\t\t\t\tconst now = new Date().getTime();\n\t\t\t\tfor (const key in this.cache) {\n\t\t\t\t\tif (this.cache.hasOwnProperty(key)) {\n\t\t\t\t\t\tconst o = this.cache[key];\n\t\t\t\t\t\tif (o.ttl < now) {\n\t\t\t\t\t\t\tdelete this.cache[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\tpublic get(key: string): any {\n\t\tconst o = this.cache[key];\n\t\tif (o !== undefined && o.ttl > new Date().getTime()) {\n\t\t\treturn o.value;\n\t\t}\n\t}\n\n\tpublic set(key: string, value: any, ttlSeconds: number = 60) {\n\t\tthis.cache[key] = {\n\t\t\tvalue,\n\t\t\tttl: new Date().getTime() + ttlSeconds * 1000,\n\t\t};\n\t}\n\n\tpublic remove(key: string) {\n\t\tif (this.cache.hasOwnProperty(key)) {\n\t\t\tdelete this.cache[key];\n\t\t}\n\t}\n\n\tpublic flushAll() {\n\t\tthis.cache = {};\n\t\tif (this.ttlChecker) {\n\t\t\tclearInterval(this.ttlChecker);\n\t\t\tthis.ttlChecker = undefined\n\t\t}\n\t}\n}\n\nexport { NodeCache };\n","import { NodeCache } from './NodeCache';\n\nexport enum ECacheContext {\n\tTranslations,\n\tLabelInfo,\n\tWSAPI,\n}\n\nconst WITH_REF_CACHE = [ECacheContext.Translations];\n\nexport class OCache {\n\tprivate static cache: { [key: string]: NodeCache } = {};\n\n\tprivate static init(cacheContext: ECacheContext) {\n\t\tif (this.cache[cacheContext] === undefined) {\n\t\t\tthis.cache[cacheContext] = new NodeCache();\n\t\t}\n\t}\n\n\tpublic static get<T>(oKey: any, cacheContext: ECacheContext): T | undefined {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tthis.init(cacheContext);\n\n\t\treturn deepClone(this.cache[cacheContext].get(key));\n\t}\n\n\tpublic static set(oKey: any, o: any, cacheContext: ECacheContext, ttlSeconds: number = 60) {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tthis.init(cacheContext);\n\n\t\tthis.cache[cacheContext].set(key, deepClone(o), ttlSeconds);\n\t}\n\n\tpublic static async use<T>(oKey: any, cacheContext: ECacheContext, f: () => Promise<T>, ttlSeconds: number = 60) {\n\t\tif (ttlSeconds <= 0) {\n\t\t\treturn await f();\n\t\t} else {\n\t\t\tlet o: T = OCache.get(oKey, cacheContext);\n\n\t\t\tif (o === undefined) {\n\t\t\t\to = await f();\n\t\t\t\tOCache.set(oKey, o, cacheContext, ttlSeconds);\n\t\t\t}\n\n\t\t\treturn o;\n\t\t}\n\t}\n\n\tpublic static async clear(cacheContext: ECacheContext, oKey: any) {\n\t\tconst key = cacheContext.toString() + '_' + JSON.stringify(oKey);\n\n\t\tif (this.cache[cacheContext]) {\n\t\t\tthis.cache[cacheContext].remove(key);\n\t\t}\n\t}\n\n\tpublic static async clearContext(cacheContext: ECacheContext) {\n\t\tif (this.cache[cacheContext]) {\n\t\t\tthis.cache[cacheContext].flushAll();\n\t\t}\n\t}\n\n\tpublic static async clearAll() {\n\t\tfor (const cacheContext in this.cache) {\n\t\t\tif (this.cache.hasOwnProperty(cacheContext)) {\n\t\t\t\tthis.cache[cacheContext].flushAll();\n\t\t\t}\n\t\t}\n\t\tthis.cache = {};\n\t}\n}\n\nconst deepClone = (o: any) => {\n\tif (o) {\n\t\treturn JSON.parse(JSON.stringify(o));\n\t}\n\n\treturn o;\n};\n","export enum ActivityTypeLimited {\n\tDoNothing = 8,\n\tPoints = 12,\n\tGiveMission = 14,\n\tStartAnotherCampaign = 15,\n\tMiniGameAttempt = 16,\n\tDeductPoints = 21,\n\tResetPoints = 22,\n\tAddGemsAndDiamonds = 25,\n\tDeductGemsAndDiamonds = 26,\n\tResetGemsAndDiamonds = 27,\n\tPopup = 30,\n\tInbox = 31,\n\tSlack = 70,\n\tEmail_To_Customer_Support = 80,\n\tEmail_To_Risk_Operator = 90,\n\tBonus = 100,\n\tWebHook = 200,\n\tTagCustomer = 504,\n\tUnTagCustomer = 505,\n}\n","class CoreUtils {\n\tpublic static avatarUrl = (avatar_id: string, avatarDomain: string): string => {\n\t\tif (\n\t\t\tavatarDomain &&\n\t\t\tavatar_id !== null &&\n\t\t\tavatar_id !== undefined &&\n\t\t\t!(avatar_id.startsWith && avatar_id.startsWith('http'))\n\t\t) {\n\t\t\tif (avatarDomain.endsWith('/')) {\n\t\t\t\treturn avatarDomain.slice(0, -1) + '/avatar/' + avatar_id;\n\t\t\t} else {\n\t\t\t\treturn avatarDomain + '/avatar/' + avatar_id;\n\t\t\t}\n\t\t} else {\n\t\t\treturn avatar_id;\n\t\t}\n\t};\n\n\tpublic static currencySymbol(currency: string) {\n\t\treturn {\n\t\t\t[currency?.toUpperCase()]: currency?.toUpperCase(),\n\t\t\tUSD: '$', // United States Dollar\n\t\t\tEUR: '\\u20AC', // Euro\n\t\t\tJPY: '\\u00A5', // Japanese Yen\n\t\t\tGBP: '\\u00A3', // British Pound Sterling\n\t\t\tAUD: 'A$', // Australian Dollar\n\t\t\tCAD: 'C$', // Canadian Dollar\n\t\t\tCHF: 'CHF', // Swiss Franc\n\t\t\tCNY: '\\u00A5', // Chinese Yuan\n\t\t\tSEK: 'kr', // Swedish Krona\n\t\t\tNZD: 'NZ$', // New Zealand Dollar\n\t\t\tMXN: 'MX$', // Mexican Peso\n\t\t\tSGD: 'S$', // Singapore Dollar\n\t\t\tHKD: 'HK$', // Hong Kong Dollar\n\t\t\tNOK: 'kr', // Norwegian Krone\n\t\t\tKRW: '\\u20A9', // South Korean Won\n\t\t\tTRY: '\\u20BA', // Turkish Lira\n\t\t\tINR: '\\u20B9', // Indian Rupee\n\t\t\tRUB: '\\u20BD', // Russian Ruble\n\t\t\tBRL: 'R$', // Brazilian Real\n\t\t\tZAR: 'R', // South African Rand\n\t\t}[currency?.toUpperCase()];\n\t}\n}\n\nexport { CoreUtils };\n","export enum PublicLabelSettings {\n\tPUBLIC_API_URL = 'PUBLIC_API_URL',\n\tRECORDING_ENABLED_FOR_ALL_USERS = 'RECORDING_ENABLED_FOR_ALL_USERS',\n\tJS_INJECTION = 'JS_INJECTION',\n\tGAMIFICATION_UI_MAIN = 'GAMIFICATION_UI_MAIN',\n\tGAMIFICATION_UI_WIDGET = 'GAMIFICATION_UI_WIDGET',\n\tGAMIFICATION_UI_MINI_GAME = 'GAMIFICATION_UI_MINI_GAME',\n\tGAMIFICATION_UI_SETTINGS = 'GAMIFICATION_UI_SETTINGS',\n\tGAMIFICATION_UI_MAIN_TEST = 'GAMIFICATION_UI_MAIN_TEST',\n\tGAMIFICATION_UI_WIDGET_TEST = 'GAMIFICATION_UI_WIDGET_TEST',\n\tGAMIFICATION_UI_SETTINGS_TEST = 'GAMIFICATION_UI_SETTINGS_TEST',\n\tFRONT_END_ALLOWED_LANGUAGES = 'FRONT_END_ALLOWED_LANGUAGES',\n\tFRONT_END_ALLOW_DOMAINS = 'FRONT_END_ALLOW_DOMAINS',\n\tDELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = 'DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS',\n\tSHADOW_LABEL_PUBLIC_KEY = 'SHADOW_LABEL_PUBLIC_KEY',\n\tDYNAMIC_IMAGE_DOMAIN = 'DYNAMIC_IMAGE_DOMAIN',\n\n\tGAMIFICATION_LEVELS_LOGIC2 = 'GAMIFICATION_LEVELS_LOGIC2',\n\tGAMIFICATION_LEVELS_LOGIC3 = 'GAMIFICATION_LEVELS_LOGIC2',\n\n\tAVATAR_CUSTOM_IMAGE_MAX_ID = 'AVATAR_CUSTOM_IMAGE_MAX_ID',\n\tAVATAR_CUSTOM_IMAGE_FOLDER = 'AVATAR_CUSTOM_IMAGE_FOLDER',\n\n\tGAMIFICATION_SHOW_POWERED_BY = 'GAMIFICATION_SHOW_POWERED_BY',\n\t_system_leader_board_mask_username = '_system_leader_board_mask_username',\n\t_system_gamification_mask_username = '_system_gamification_mask_username',\n\n\tINBOX_PUBLIC_CDN = 'INBOX_PUBLIC_CDN',\n}\n","enum TranslationArea {\n\tCasino = 1,\n\tGamification = 2,\n\tTrading = 3,\n\tArchived = 4,\n\tAffiliation = 5,\n\tRetentionGames = 6,\n\tAffIliateAdminNew = 7,\n\tAcademy = 8,\n}\n\nexport { TranslationArea };\n","import { TInboxMessage } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { InboxMessage } from './InboxMessage';\n\nexport interface GetInboxMessagesResponse extends ProtocolResponse {\n\tlog: InboxMessage[];\n\tunread_count: number;\n}\n\nexport const InboxMessagesTransform = (items: InboxMessage[]): TInboxMessage[] => {\n\treturn items.map((item) => {\n\t\tconst x: TInboxMessage = {\n\t\t\tsent_date: item.createDate,\n\t\t\tmessage_guid: item.engagement_uid,\n\t\t\tread: item.is_read,\n\t\t\tfavorite: item.is_starred,\n\t\t\tcategory_id: item.category_id\n\t\t};\n\t\treturn x;\n\t});\n};\n","import { TInboxMessageBody } from '../WSAPI/WSAPITypes';\nimport { InboxCategories } from './InboxCategories';\nimport { InboxMessageType } from './InboxMessageType';\nimport { OpenLinksType } from './OpenLinksType';\n\nexport interface InboxMessageBody {\n\t// URL or deep-link that neeed to be executed when user clicks on the message\n\taction: string;\n\t// the body of the message in case it's 'simple' inbox message\n\tbody: string;\n\t// type of message, deprecated\n\ttype: InboxMessageType;\n\t// image of the icon\n\timage: string;\n\t// title of the message\n\ttitle: string;\n\t// HTML body of the message in case it's 'rich' inbox message\n\thtml_body: string;\n\t// set of the buttons with text on the button and action that could be URL or deep-link\n\tadditional_buttons?: { inbox_cta_text: string; action: string }[];\n\t// indicator if the message need to be shown when sent and overlay or it should be shown only in the inbox, when user open 'inbox' interface explicitly\n\t// default is 'true'\n\tshow_preview?: boolean;\n\t// duration in seconds for how long to show preview, default is 7 seconds\n\tshow_duration_sec?: number;\n\t// indicator if the image in html_body can be zoomed out\n\t// default is 'false'\n\tenable_zoom_mode?: boolean;\n\t// options that allows to open links in buttons either in new window or in the current one\n\topen_links?: OpenLinksType;\n}\n\nexport interface InboxMessage {\n\t// date when the message was created\n\tcreateDate: string;\n\t// body of the message according to the interface\n\tbody: InboxMessageBody;\n\t// unique identifier of the message that connects it to the campaign from which it was sent\n\tengagement_uid: string;\n\t// flag that indicates if the message was read by the user\n\tis_read: boolean;\n\t// flag that indicates if the message was marked as favorite by the user\n\tis_starred: boolean;\n\t// flag that indicates if the message was deleted by the user. Such messages are not returned in the response and property is used only internaly in Smartico\n\tis_deleted?: boolean;\n\t// category id of the inbox message, could be categorized as System/Personal/General messages in mentioned tabs\n\tcategory_id?: InboxCategories;\n}\n\nexport const InboxMessageBodyTransform = (item: InboxMessageBody): TInboxMessageBody => {\n\tconst x: TInboxMessageBody = {\n\t\taction: item.action,\n\t\ticon: item.image,\n\t\ttitle: item.title,\n\t\tpreview_body: item.body,\n\t};\n\n\tif (item.action === 'dp:inbox') {\n\t\tif (item.additional_buttons && item.additional_buttons.length) {\n\t\t\tx.buttons = item.additional_buttons.map((b) => ({\n\t\t\t\taction: b.action,\n\t\t\t\ttext: b.inbox_cta_text,\n\t\t\t}));\n\t\t}\n\n\t\tx.html_body = item?.html_body || null;\n\t}\n\n\treturn x;\n};\n","export enum InboxMessageType {\n\tCustom = 0,\n\tMissionCompleted = 1,\n\tMissionUnlocked = 2,\n\tLeaderboardWon = 3,\n\tLevelChanged = 4,\n\tBonusGiven = 5,\n\tPointsAdded = 6,\n\tPointsUsed = 7,\n\tPersonalMessage = 8,\n}\n\n// keep in sync with BO enum\n","export enum OpenLinksType {\n\tNewWindow = 1,\n\tCurrentWindow = 2\n}","export enum InboxCategories {\n General = 0,\n\tPlatform = 1,\n\tPersonal = 2,\n}","export enum BuyStoreItemErrorCode {\n\t/** User don't have enough points on balance */\n\tSHOP_NO_BALANCE = 11000,\n\t/** Wrong shop item id */\n\tSHOP_WRONG_LABEL = 11001,\n\t/** Failed to buy bonus item, probably something wrong with the bonus configuration. */\n\tSHOP_FAILED_TO_BUY_BONUS = 11002, // remote product restriction\n\t/** Failed to buy store item because segment conditions are set by operator for specific CRM item */\n\tSHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION = 11003, // when not visible but trying to buy. shouldn't happen\n\t/** Segment conditions are set by operator for specific CRM item and user not matching to this conditions */\n\tSHOP_FAILED_TO_BUY_SHOP_ITEM_CONDITION_PURSHASE = 11004, // when visible but not matching to purchase segment\n\t/** Failed to buy matching bonus item */\n\tSHOP_FAILED_TO_BUY_MATCHING_BONUS = 11005,\n\t/** Failed to buy item because of limit of max items is reached */\n\tSHOP_FAILED_MAX_BOUGHT_ITEMS_REACHED = 11006,\n\t/** Failed to buy item because no more items are available */\n\tSHOP_FAILED_POOL_EMPTY = 11009,\n\t/** User doesn't have enough gems on balance */\n\tSHOP_NO_BALANCE_GEMS = 11011,\n\t/** User doesn't have enough diamonds on balance */\n\tSHOP_NO_BALANCE_DIAMONDS = 11012,\n\t/** Failed to buy item because of purchase limitation */\n\tSHOP_FAILED_PURCHASE_LIMITATION = 11014,\n}\n","import { TStoreCategory } from '../WSAPI/WSAPITypes';\nimport { StoreCategoryPublicMeta } from './StoreCategoryPublicMeta';\n\nexport interface StoreCategory {\n\tid?: number;\n\tpublicMeta?: StoreCategoryPublicMeta;\n}\n\nexport const StoreCategoryTransform = (items: StoreCategory[]): TStoreCategory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TStoreCategory = {\n\t\t\tid: r.id,\n\t\t\tname: r.publicMeta?.name,\n\t\t\torder: r.publicMeta?.order,\n\t\t};\n\t\treturn x;\n\t});\n};\n","export enum StoreItemPurchaseType {\n Points = 0,\n Gems = 1,\n Diamonds = 2,\n}","export enum StoreItemType {\n\tBonus = 1,\n\tTangible = 2,\n\tMiniGameSpin = 3,\n\tChangeLevel = 4,\n\tPrizeDrop = 5,\n\tRaffleTicket = 6,\n}\n\nexport enum StoreItemTypeName {\n\tBonus = 'bonus',\n\tTangible = 'tangible',\n\tMiniGameSpin = 'minigamespin',\n\tChangeLevel = 'changelevel',\n\tPrizeDrop = 'prizedrop',\n\tRaffleTicket = 'raffleticket',\n\tUnknown = 'unknown',\n}\n\nexport const StoreItemTypeNamed = (type: StoreItemType): StoreItemTypeName => {\n\treturn (\n\t\t{\n\t\t\t[StoreItemType.Bonus]: StoreItemTypeName.Bonus,\n\t\t\t[StoreItemType.Tangible]: StoreItemTypeName.Bonus,\n\t\t\t[StoreItemType.MiniGameSpin]: StoreItemTypeName.MiniGameSpin,\n\t\t\t[StoreItemType.ChangeLevel]: StoreItemTypeName.ChangeLevel,\n\t\t\t[StoreItemType.PrizeDrop]: StoreItemTypeName.PrizeDrop,\n\t\t\t[StoreItemType.RaffleTicket]: StoreItemTypeName.RaffleTicket,\n\t\t}[type] || StoreItemTypeName.Unknown\n\t);\n};\n","import { IntUtils } from '../IntUtils';\nimport { TStoreItem } from '../WSAPI/WSAPITypes';\nimport { StoreItemPublicMeta } from './StoreItemPublicMeta';\nimport { StoreItemPurchaseType } from './StoreItemPurchaseType';\nimport { StoreItemType, StoreItemTypeNamed } from './StoreItemType';\n\nexport interface StoreItem {\n\tid: number;\n\titemTypeId: StoreItemType;\n\titemPublicMeta: StoreItemPublicMeta;\n\tcategoryIds?: number[];\n\tcanBuy?: boolean;\n\tshopPool: number;\n\tactiveTillDate?: number;\n}\n\nconst mapPurchaseType = (purchaseType: StoreItemPurchaseType) => {\n\tif (purchaseType === StoreItemPurchaseType.Points) {\n\t\treturn 'points';\n\t} else if (purchaseType === StoreItemPurchaseType.Gems) {\n\t\treturn 'gems';\n\t} else if (purchaseType === StoreItemPurchaseType.Diamonds) {\n\t\treturn 'diamonds';\n\t}\n\n\treturn 'points';\n};\n\nexport const StoreItemTransform = (items: StoreItem[]): TStoreItem[] => {\n\t\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TStoreItem = {\n\t\t\t\tid: r.id,\n\t\t\t\tname: r.itemPublicMeta.name,\n\t\t\t\tpurchase_type: mapPurchaseType(r.itemPublicMeta.purchase_type),\n\t\t\t\tprice: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n\t\t\t\timage: r.itemPublicMeta.image_url,\n\t\t\t\tdescription: r.itemPublicMeta.description,\n\t\t\t\tribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n\t\t\t\tlimit_message: r.itemPublicMeta.limit_message,\n\t\t\t\tpurchase_limit_message: r.itemPublicMeta.purchase_limit_message,\n\t\t\t\tpriority: r.itemPublicMeta.priority ?? 0,\n\t\t\t\trelated_item_ids: r.itemPublicMeta.related_items,\n\t\t\t\thint_text: r.itemPublicMeta.hint_text,\n\t\t\t\ttype: StoreItemTypeNamed(r.itemTypeId),\n\t\t\t\tcan_buy: r.canBuy,\n\t\t\t\tcategory_ids: r.categoryIds ?? [],\n\t\t\t\tpool: r.shopPool,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.itemPublicMeta.custom_data),\n\t\t\t\tactive_till_date: r.activeTillDate,\n\t\t\t\tdiscounted_price: r.itemPublicMeta.discount_prize,\n\t\t\t\tdiscount_price_ribbon: r.itemPublicMeta.discount_prize_ribbon,\n\t\t\t\tcustom_ribbon_image: r.itemPublicMeta.custom_ribbon_image,\n\t\t\t};\n\t\t\treturn x;\n\t\t});\n};\n","import { IntUtils } from '../IntUtils';\nimport { TStoreItem } from '../WSAPI/WSAPITypes';\nimport { StoreItem } from './StoreItem';\nimport { StoreItemPurchaseType } from './StoreItemPurchaseType';\nimport { StoreItemTypeNamed } from './StoreItemType';\n\ninterface StoreItemPurchased extends StoreItem {\n\tpurchase_ts: number;\n\tpurchase_points_amount: number;\n\tpurchased_today?: boolean;\n\tpurchased_this_week?: boolean;\n\tpurchased_this_month?: boolean;\n}\n\nconst mapPurchaseType = (purchaseType: StoreItemPurchaseType) => {\n\tif (purchaseType === StoreItemPurchaseType.Points) {\n\t\treturn 'points';\n\t} else if (purchaseType === StoreItemPurchaseType.Gems) {\n\t\treturn 'gems';\n\t} else if (purchaseType === StoreItemPurchaseType.Diamonds) {\n\t\treturn 'diamonds';\n\t}\n\n\treturn 'points';\n};\n\nexport const StoreItemPurchasedTransform = (items: StoreItemPurchased[]): TStoreItem[] => {\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst purchasedToday = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'today') : false;\n\t\t\tconst purchasedThisWeek = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisWeek') : false;\n\t\t\tconst purchasedThisMonth = r.purchase_ts ? IntUtils.isWithinPeriod(r.purchase_ts, 'thisMonth') : false;\n\n\t\t\tconst x: TStoreItem = {\n\t\t\t\tid: r.id,\n\t\t\t\tname: r.itemPublicMeta.name,\n\t\t\t\tprice: r.itemPublicMeta.price as any as number, // AA: strange why it's string\n\t\t\t\tpurchase_type: mapPurchaseType(r.itemPublicMeta.purchase_type),\n\t\t\t\timage: r.itemPublicMeta.image_url,\n\t\t\t\tdescription: r.itemPublicMeta.description,\n\t\t\t\tribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,\n\t\t\t\tlimit_message: r.itemPublicMeta.limit_message,\n\t\t\t\tpurchase_limit_message: r.itemPublicMeta.purchase_limit_message,\n\t\t\t\tpriority: r.itemPublicMeta.priority ?? 0,\n\t\t\t\trelated_item_ids: r.itemPublicMeta.related_items,\n\t\t\t\thint_text: r.itemPublicMeta.hint_text,\n\t\t\t\ttype: StoreItemTypeNamed(r.itemTypeId),\n\t\t\t\tcan_buy: r.canBuy,\n\t\t\t\tcategory_ids: r.categoryIds ?? [],\n\t\t\t\tpool: r.shopPool,\n\t\t\t\tpurchase_ts: r.purchase_ts,\n\t\t\t\tpurchase_points_amount: r.purchase_points_amount,\n\t\t\t\tpurchased_today: purchasedToday,\n\t\t\t\tpurchased_this_week: purchasedThisWeek,\n\t\t\t\tpurchased_this_month: purchasedThisMonth,\n\t\t\t\tcustom_data: r.itemPublicMeta.custom_data\n\t\t\t};\n\n\t\t\treturn x;\n\t\t});\n};\n\nexport { StoreItemPurchased };\n","export enum AchievementStatus {\n\tDraft = 1,\n\tAvailableUnlocked = 2,\n\tAvailableLocked = 3,\n\tArchived = 4,\n\tFeaturedManually = 5,\n\tFeaturedAI = 6,\n\tRecurring = 7,\n\tRecurringUponCompletion = 8\n}\n","export enum AchievementTaskType {\n\tCompleteAchievement = 1,\n\tUnlockAchievement = 2,\n}\n","export enum AchievementType {\n\tMission = 1,\n\tBadge = 2,\n}\n","/** Possible statuses of the mission availability. \n * Notes:\n * - Recurring missions have a special field next_recurrence_date_ts, but it's only relevant if the mission has no active till date or the next recurrence date is before the active till date.\n * - For a locked mission or mission that requires opt-in, the time limit should be calculated as dt_start + time_limit_ms. For a mission that does not require opt-in or type is not Locked, it should be the highest value of dt_start and active_from_ts (if defined) + time_limit_ms.\n * */\n\nexport enum AchievementAvailabilityStatus {\n /** Mission without date/time restrictions or with passed active from date and no opt-in required and mission is unlocked */\n Available = 0,\n\n /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is not opted-in or mission is locked */\n AvailableInactive = 1,\n\n /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is opted-in or mission is unlocked*/\n AvailableActive = 2,\n\n /** Mission with active from date defined, date is in future.\n * Field: active_from_ts\n */\n UnavailableWithActiveFrom = 3,\n\n /** Mission with active till date defined, date is in future, and no opt-in required and mission is unlocked.\n * Field: active_till_ts\n */\n AvailableWithActiveTill = 4,\n\n /** Mission with active till date defined, date is in future, and opt-in is required, user is not opted in or mission is locked.\n * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.\n */\n AvailableWithActiveTillInactive = 5,\n\n /** Mission with active till date defined, date is in future, and opt-in is required, user is opted in or mission is unlocked.\n * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.\n */\n AvailableWithActiveTillActive = 6,\n\n /** Available mission with time limit, and opt-in is required or mission is unlocked.\n * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.\n * \n */\n AvailableLimited = 7,\n\n /** Available mission with time limit, opt-in is required, user is not opted-in or mission is locked.\n * Time limit at this stage is not relevant, user should be opted-in or mission should be unlocked.\n */\n AvailableLimitedInactive = 8,\n\n /** Available mission with time limit, opt-in is required, user is opted-in or mission unlocked.\n * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.\n */\n AvailableLimitedActive = 9,\n\n /** Available mission with time limit and active till date, opt-in is not required and mission is unlocked.\n * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts;\n * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.\n */\n AvailableFullyLimited = 10,\n\n /** Available mission with time limit and active till date, opt-in is required, user is not opted in or mission is locked.\n * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts, is_requires_optin, is_opted_in, is_locked.\n * On this stage only active_till_ts is relevant. time_limit_ms is ignored because user should be opted in.\n */\n AvailableFullyLimitedInactive = 11,\n\n /** Available mission with time limit and active till date, opt-in is required, user is opted in or mission is unlocked.\n * Fields: active_till_ts, time_limit_ms, dt_start, is_requires_optin, is_opted_in, is_locked.\n * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.\n */\n AvailableFullyLimitedActive = 12,\n\n /** Missed mission when active till date is already passed. is_completed field indicating if mission is completed or just missed */\n MissedByActiveTill = 13,\n\n /** Missed mission when start_date + time_limit_ms is already passed. is_completed field indicating if mission is completed or just missed */\n MissedByLimitInTime = 14,\n}","import { IntUtils } from \"src/IntUtils\";\nimport { AchievementAvailabilityStatus } from \"./AchievementAvailabilityStatus\";\nimport { AchievementStatus } from \"./AchievementStatus\";\nimport { UserAchievement } from \"./UserAchievement\";\nimport { UserAchievementTask } from \"./UserAchievementTask\";\n\nexport class MissionUtils {\n\n public static getAvailabilityStatus = (mission: UserAchievement) => {\n\n if (!mission) {\n return null;\n }\n\n const activeFrom = mission.active_from_ts ? MissionUtils.getMs(mission.active_from_ts) : null\n const activeTill = mission.active_till_ts ? MissionUtils.getMs(mission.active_till_ts) : null;\n const startDate = mission.start_date_ts ? MissionUtils.getMs(mission.start_date_ts) : null;\n const timeLimit = mission.time_limit_ms;\n const requiresOptIn = mission.requiresOptin;\n const optedIn = mission.isOptedIn;\n const isLockedMission = mission.ach_status_id === AchievementStatus.AvailableLocked;\n const isLocked = mission.isLocked;\n\n if (!activeFrom && !activeTill && !timeLimit) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else {\n return AchievementAvailabilityStatus.Available;\n }\n }\n\n if (activeFrom && activeFrom > Date.now()) {\n return AchievementAvailabilityStatus.UnavailableWithActiveFrom;\n }\n\n if ((activeFrom && activeFrom < Date.now()) || !activeFrom) {\n if (!activeTill && !timeLimit) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableActive;\n } else {\n return AchievementAvailabilityStatus.AvailableInactive;\n }\n } else {\n return AchievementAvailabilityStatus.Available;\n }\n }\n\n if (activeTill && !timeLimit) {\n if (activeTill > Date.now()) {\n if (requiresOptIn) {\n if (optedIn) {\n return AchievementAvailabilityStatus.AvailableWithActiveTillActive;\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n return AchievementAvailabilityStatus.AvailableWithActiveTillActive;\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableWithActiveTill;\n }\n } else {\n return AchievementAvailabilityStatus.MissedByActiveTill;\n }\n }\n\n if (timeLimit && !activeTill) {\n if (requiresOptIn) {\n const endDate = startDate + timeLimit;\n\n if (optedIn) {\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableLimitedInactive;\n }\n } else if (isLockedMission) {\n const endDate = startDate + timeLimit;\n\n if (!isLocked) {\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableLimitedInactive;\n }\n } else {\n const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableLimited;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n }\n }\n\n if (timeLimit && activeTill) {\n if (activeTill > Date.now()) {\n if (requiresOptIn) {\n if (optedIn) {\n const endDate = startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;\n }\n } else if (isLockedMission) {\n if (!isLocked) {\n const endDate = startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimitedActive;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n } else {\n return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;\n }\n } else {\n const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;\n\n if (endDate > Date.now()) {\n return AchievementAvailabilityStatus.AvailableFullyLimited;\n } else {\n return AchievementAvailabilityStatus.MissedByLimitInTime;\n }\n }\n } else {\n return AchievementAvailabilityStatus.MissedByActiveTill;\n }\n }\n }\n }\n\n public static getMs = (ts: number): number => {\n return new Date(ts).getTime();\n }\n\n public static replaceFavGameNameTag = (task: UserAchievementTask) => {\n if (!task) {\n return task;\n }\n \n const userStateParams = (task.user_state_params?.map || {});\n const userStateOperator = task.task_public_meta?.user_state_operations;\n const userStateParamsKeys = Object.keys(userStateParams);\n \n if (userStateParamsKeys.length === 0 || !userStateOperator) {\n return task;\n }\n \n const operatorsMulti = ['has', '!has'];\n const operatorsPos = ['pos1', 'pos2', 'pos3'];\n \n let replacementValue: string = '';\n \n userStateParamsKeys.forEach((k: 'core_fav_game_top3' | 'core_fav_game_type_top3') => {\n const operator = userStateOperator[k]?.op;\n \n if (operatorsMulti.includes(operator)) {\n const value = userStateParams[k];\n if (value && value.length > 0) {\n replacementValue = value.join(' ,');\n }\n }\n \n if (operatorsPos.includes(operator)) {\n const value = userStateParams[k];\n const pos = Number(operator.replace('pos', '')) - 1;\n \n if (IntUtils.isNotNull(pos) && value && value[pos]) {\n replacementValue = value[pos];\n }\n }\n });\n \n if (replacementValue) {\n task.task_public_meta.name = task.task_public_meta.name.replace('{{suggested_games}}', replacementValue);\n } \n \n return task;\n }\n}\n","import { AchRelatedGame } from '../Base/AchRelatedGame';\nimport { IntUtils } from '../IntUtils';\nimport { TMissionOrBadge } from '../WSAPI/WSAPITypes';\nimport { AchievementPublicMeta } from './AchievementPublicMeta';\nimport { AchievementStatus } from './AchievementStatus';\nimport { AchievementTaskType } from './AchievementTaskType';\nimport { AchievementType } from './AchievementType';\nimport { MissionUtils } from './MissionsUtils';\nimport { ScheduledMissionType } from './ScheduledMissionType';\nimport { UserAchievementTask } from './UserAchievementTask';\n\nexport interface UserAchievement {\n\tach_id?: number;\n\tach_type_id?: AchievementType;\n\tach_public_meta?: AchievementPublicMeta;\n\tisCompleted?: boolean;\n\tisLocked?: boolean;\n\trequiresOptin?: boolean;\n\tisOptedIn?: boolean;\n\tstart_date?: string; // time when mission unlocked or opted-in. Needed to calculated \"remaining time\" in case time_limit_ms is set\n\tstart_date_ts?: number;\n\ttime_limit_ms?: number;\n\tprogress?: number;\n\tcomplete_date?: string;\n\tcomplete_date_ts?: number;\n\tunlock_date?: string;\n\tmilliseconds_till_available?: number;\n\tcompleted_tasks?: number;\n\tachievementTasks?: UserAchievementTask[];\n\tnext_recurrence_date_ts?: number;\n\tach_status_id?: AchievementStatus;\n\tscheduledMissionType?: ScheduledMissionType;\n\trelated_games?: AchRelatedGame[];\n\tactive_from_ts?: number; // indicates when 'scheduled' mission is active from,\n\tactive_till_ts?: number; // indicates when 'scheduled' mission is active till,\n\tach_categories?: number[];\n\trecurring_quantity?: number; // max completion count for Recurring upon completion\n\tcompleted_count?: number; // completion count for Recurring upon completion\n\n\tach_completed_id?: number; // ID of the completion fact from ach_completed or ach_completed_recurring tables\n\trequires_prize_claim?: boolean; // flag from achievement if the mission prize will be given only after user claims it\n\tprize_claimed_date_ts?: number; // the date/timestamp indicating when the prize was claimed by the user\n\n\tcompleted_today?: boolean;\n\tcompleted_this_week?: boolean;\n\tcompleted_this_month?: boolean;\n\tcustom_section_type_id?: number;\n}\n\nexport const UserAchievementTransform = (items: UserAchievement[]): TMissionOrBadge[] => {\n\treturn items\n\t\t.filter((r) => r.ach_id >= 1)\n\t\t.map((r) => {\n\t\t\tconst completedToday = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'today') : false;\n\t\t\tconst completedThisWeek = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisWeek') : false;\n\t\t\tconst completedThisMonth = r.complete_date_ts ? IntUtils.isWithinPeriod(r.complete_date_ts, 'thisMonth') : false;\n\n\t\t\tconst x: TMissionOrBadge = {\n\t\t\t\tid: r.ach_id,\n\t\t\t\tname: r.ach_public_meta.name,\n\t\t\t\tdescription: r.ach_public_meta.description,\n\t\t\t\thint_text: r.ach_public_meta.hint_text,\n\t\t\t\tunlock_mission_description: r.ach_public_meta.unlock_mission_description,\n\t\t\t\timage: r.ach_public_meta.image_url,\n\t\t\t\tis_completed: r.isCompleted,\n\t\t\t\tis_locked: r.isLocked,\n\t\t\t\tis_requires_optin: r.requiresOptin,\n\t\t\t\tis_opted_in: r.isOptedIn,\n\t\t\t\ttime_limit_ms: r.time_limit_ms,\n\t\t\t\tactive_from_ts: r.active_from_ts,\n\t\t\t\tactive_till_ts: r.active_till_ts,\n\t\t\t\tdt_start: r.start_date_ts,\n\t\t\t\treward: r.ach_public_meta.reward,\n\t\t\t\tprogress: r.progress,\n\t\t\t\ttype: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',\n\t\t\t\tcta_action: r.ach_public_meta.cta_action,\n\t\t\t\tcta_text: r.ach_public_meta.cta_text,\n\t\t\t\tcustom_section_id: r.ach_public_meta.custom_section_id,\n\t\t\t\tonly_in_custom_section: r.ach_public_meta.only_in_custom_section,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),\n\t\t\t\tposition: r.ach_public_meta.position,\n\t\t\t\tribbon:\n\t\t\t\t\tr.ach_public_meta.label_tag === 'custom' ? r.ach_public_meta.custom_label_tag : r.ach_public_meta.label_tag,\n\t\t\t\ttasks: (r.achievementTasks || [])\n\t\t\t\t\t.filter((t) => t.task_type_id === AchievementTaskType.CompleteAchievement)\n\t\t\t\t\t.map((t) => {\n\t\t\t\t\t\tMissionUtils.replaceFavGameNameTag(t);\n\n\t\t\t\t\t\treturn ({\n\t\t\t\t\t\t\tid: t.task_id,\n\t\t\t\t\t\t\tname: t.task_public_meta?.name,\n\t\t\t\t\t\t\tpoints_reward: t.points_reward,\n\t\t\t\t\t\t\tis_completed: t.isCompleted,\n\t\t\t\t\t\t\tprogress: t.userProgress,\n\t\t\t\t\t\t\texecution_count_expected: t.executionCount,\n\t\t\t\t\t\t\texecution_count_actual: t.userExecutedCount,\n\t\t\t\t\t\t\tdisplay_progress_as_count: t.task_public_meta.display_progress_as_count,\n\t\t\t\t\t\t\tstage_image: t.task_public_meta.stage_image,\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\trelated_games: (r.related_games || []).map((g) => ({\n\t\t\t\t\text_game_id: g.ext_game_id,\n\t\t\t\t\tgame_public_meta: {\n\t\t\t\t\t\tname: g.game_public_meta.name,\n\t\t\t\t\t\tlink: g.game_public_meta.link,\n\t\t\t\t\t\timage: g.game_public_meta.image,\n\t\t\t\t\t\tenabled: g.game_public_meta.enabled,\n\t\t\t\t\t\tgame_categories: g.game_public_meta.game_categories,\n\t\t\t\t\t\tgame_provider: g.game_public_meta.game_provider,\n\t\t\t\t\t\tmobile_spec_link: g.game_public_meta.mobile_spec_link\n\t\t\t\t\t},\n\t\t\t\t})),\n\t\t\t\tcategory_ids: r.ach_categories ?? [],\n\t\t\t\tach_completed_id: r.ach_completed_id,\n\t\t\t\trequires_prize_claim: r.requires_prize_claim,\n\t\t\t\tprize_claimed_date_ts: r.prize_claimed_date_ts,\n\t\t\t\tcomplete_date: r.complete_date,\n\t\t\t\tcomplete_date_ts: r.complete_date_ts,\n\t\t\t\tcompleted_today: completedToday,\n\t\t\t\tcompleted_this_week: completedThisWeek,\n\t\t\t\tcompleted_this_month: completedThisMonth,\n\t\t\t\tcustom_section_type_id: r.ach_public_meta.custom_section_type_id,\n\t\t\t\tavailability_status: MissionUtils.getAvailabilityStatus(r),\n\t\t\t\tclaim_button_title: r.ach_public_meta.claim_button_title,\n\t\t\t\tclaim_button_action: r.ach_public_meta.claim_button_action,\n\t\t\t};\n\n\t\t\tif (r.ach_status_id === AchievementStatus.Recurring) {\n\t\t\t\tx.next_recurrence_date_ts = Date.now() + r?.milliseconds_till_available;\n\t\t\t}\n\n\t\t\tif (r.ach_status_id === AchievementStatus.RecurringUponCompletion) {\n\t\t\t\tx.completion_count = r.completed_count;\n\t\t\t\tx.max_completion_count = r.recurring_quantity;\n\t\t\t}\n\t\t\treturn x;\n\t\t});\n};\n","export enum ScheduledMissionType {\n\tFuture = 1,\n\tPast = 2,\n\tPresent = 3,\n}\n","import { TAchCategory } from '../WSAPI/WSAPITypes';\nimport { AchCategoryPublicMeta } from './AchCategoryPublicMeta';\n\nexport interface AchCategory {\n\tid?: number;\n\tpublicMeta?: AchCategoryPublicMeta;\n}\n\nexport const AchCategoryTransform = (items: AchCategory[]): TAchCategory[] => {\n\treturn items.map((r) => {\n\t\tconst x: TAchCategory = {\n\t\t\tid: r.id,\n\t\t\tname: r.publicMeta?.name,\n\t\t\torder: r.publicMeta?.order,\n\t\t};\n\t\treturn x;\n\t});\n};\n","export enum MissionCategory {\n\tOverview,\n\t// fake category for custom section overview missions, using in TSMap.to get correct missions\n\tCustomSectionOverview,\n\tAvailable,\n\tLocked,\n\tCompleted,\n\tMissed,\n}","export enum TournamentRegistrationType {\n\tAUTO = 1,\n\tOPT_IN = 2,\n\tBUY_IN_POINTS = 3,\n\tMANUAL_APPROVAL = 4,\n\tREQUIRES_QUALIFICATION = 5,\n\tBUY_IN_GEMS = 6,\n\tBUY_IN_DIAMONDS = 7,\n\t// BUY_IN_CASH = 5???,\n}\n\nexport type TournamentRegistrationTypeName =\n\t| 'AUTO'\n\t| 'OPT_IN'\n\t| 'BUY_IN_POINTS'\n\t| 'MANUAL_APPROVAL'\n\t| 'REQUIRES_QUALIFICATION'\n\t| 'BUY_IN_GEMS'\n\t| 'BUY_IN_DIAMONDS'\n\t| 'UNKNOWN';\n\n/** @hidden */\nexport const TournamentRegistrationTypeGetName = (type: TournamentRegistrationType): TournamentRegistrationTypeName => {\n\treturn ({\n\t\t[TournamentRegistrationType.AUTO]: 'AUTO',\n\t\t[TournamentRegistrationType.BUY_IN_POINTS]: 'BUY_IN_POINTS',\n\t\t[TournamentRegistrationType.MANUAL_APPROVAL]: 'MANUAL_APPROVAL',\n\t\t[TournamentRegistrationType.OPT_IN]: 'OPT_IN',\n\t\t[TournamentRegistrationType.REQUIRES_QUALIFICATION]: 'REQUIRES_QUALIFICATION',\n\t\t[TournamentRegistrationType.BUY_IN_GEMS]: 'BUY_IN_GEMS',\n\t\t[TournamentRegistrationType.BUY_IN_DIAMONDS]: 'BUY_IN_DIAMONDS',\n\t}[type] || 'UNKNOWN') as any as TournamentRegistrationTypeName;\n};\n","export enum TournamentRegistrationStatus {\n\tNOT_REGISTERED = 0,\n\tREGISTERED = 1,\n\tFINISHED = 2,\n\tPENDING = 3,\n\tCANCELLED = 4,\n\tREGISTERED_PENDING_QUALIFICATION = 5,\n\tQUALIFIED_PENDING_REGISTRATION = 6,\n}\n\nexport enum TournamentRegistrationStatusName {\n\tNOT_REGISTERED = 'NOT_REGISTERED',\n\tREGISTERED = 'REGISTERED',\n\tFINISHED = 'FINISHED',\n\tPENDING = 'PENDING',\n\tCANCELLED = 'CANCELLED',\n\tREGISTERED_PENDING_QUALIFICATION = 'REGISTERED_PENDING_QUALIFICATION',\n\tQUALIFIED_PENDING_REGISTRATION = 'QUALIFIED_PENDING_REGISTRATION',\n\tUNKNOWN = 'UNKNOWN',\n}\n\n/** @hidden */\nexport const TournamentRegistrationStatusNamed = (type: TournamentRegistrationStatus): TournamentRegistrationStatusName => {\n\treturn ({\n\t\t[TournamentRegistrationStatus.CANCELLED]: TournamentRegistrationStatusName.CANCELLED,\n\t\t[TournamentRegistrationStatus.FINISHED]: TournamentRegistrationStatusName.FINISHED,\n\t\t[TournamentRegistrationStatus.NOT_REGISTERED]: TournamentRegistrationStatusName.NOT_REGISTERED,\n\t\t[TournamentRegistrationStatus.PENDING]: TournamentRegistrationStatusName.PENDING,\n\t\t[TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION]:\n\t\t\tTournamentRegistrationStatusName.QUALIFIED_PENDING_REGISTRATION,\n\t\t[TournamentRegistrationStatus.REGISTERED]: TournamentRegistrationStatusName.REGISTERED,\n\t\t[TournamentRegistrationStatus.REGISTERED_PENDING_QUALIFICATION]:\n\t\t\tTournamentRegistrationStatusName.REGISTERED_PENDING_QUALIFICATION,\n\t}[type] || TournamentRegistrationStatusName.UNKNOWN) as TournamentRegistrationStatusName;\n};\n","export enum TournamentInstanceStatus {\n\tPUBLISHED = 1,\n\tREGISTER = 2,\n\tSTARTED = 3,\n\tFINISHED = 4,\n\tCANCELLED = 5,\n\tFAILED = 6,\n\tFINALIZING = 7,\n}\n\nexport const TournamentInstanceStatusName = (s: TournamentInstanceStatus): string => {\n\treturn {\n\t\t[TournamentInstanceStatus.PUBLISHED]: 'PUBLISHED',\n\t\t[TournamentInstanceStatus.REGISTER]: 'REGISTER',\n\t\t[TournamentInstanceStatus.STARTED]: 'STARTED',\n\t\t[TournamentInstanceStatus.FINISHED]: 'FINISHED',\n\t\t[TournamentInstanceStatus.CANCELLED]: 'CANCELLED',\n\t\t[TournamentInstanceStatus.FAILED]: 'FAILED',\n\t\t[TournamentInstanceStatus.FINALIZING]: 'FINALIZING',\n\t}[s];\n};\n","import { ActivityTypeLimited } from '../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\treturn {\n\t\t[ActivityTypeLimited.DoNothing]: 'TANGIBLE',\n\t\t[ActivityTypeLimited.Points]: 'POINTS_ADD',\n\t\t[ActivityTypeLimited.DeductPoints]: 'POINTS_DEDUCT',\n\t\t[ActivityTypeLimited.ResetPoints]: 'POINTS_RESET',\n\t\t[ActivityTypeLimited.MiniGameAttempt]: 'MINI_GAME_ATTEMPT',\n\t\t[ActivityTypeLimited.Bonus]: 'BONUS',\n\t\t[ActivityTypeLimited.AddGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_ADD',\n\t\t[ActivityTypeLimited.DeductGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_DEDUCT',\n\t\t[ActivityTypeLimited.ResetGemsAndDiamonds]: 'GEMS_AND_DIAMONDS_RESET',\n\t}[type];\n};\n\nexport class TournamentUtils {\n\tpublic static isCanRegister = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\tif (tournament.tournamentRegistrationStatus === TournamentRegistrationStatus.QUALIFIED_PENDING_REGISTRATION) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t!tournament.isUserRegistered && (\n\t\t\t\t\ttournament.playersMaxCount !== tournament.registrationCount ||\n\t\t\t\t\ttournament.playersMaxCount === null ||\n\t\t\t\t\ttournament.playersMaxCount === 0\n\t\t\t\t) &&\n\t\t\t\ttournament.registrationType !== TournamentRegistrationType.AUTO && (\n\t\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER || (\n\t\t\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED && tournament.allowLateRegistration\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isInProgress = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn tournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED;\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isActive = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.STARTED\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isFinished = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.FINISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.FINALIZING\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isCancelled = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn tournament.tournamentInstanceStatus === TournamentInstanceStatus.CANCELLED;\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static isUpcoming = (tournament: Tournament): boolean => {\n\t\tif (tournament) {\n\t\t\treturn (\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.PUBLISHED ||\n\t\t\t\ttournament.tournamentInstanceStatus === TournamentInstanceStatus.REGISTER\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t};\n\n\tpublic static getPlayerTransformed = (player: TournamentPlayer, isMe?: boolean) => {\n\t\tif (player) {\n\t\t\tconst playerTransformed = {\n\t\t\t\tpublic_username: player.userAltName,\n\t\t\t\tavatar_url: player.avatar_url,\n\t\t\t\tposition: player.position,\n\t\t\t\tscores: player.scores,\n\t\t\t\tis_me: player.isMe,\n\t\t\t\tuser_ext_id: player.cleanExtUserId,\n\t\t\t\tcrm_brand_id: player.crmBrandId,\n\t\t\t\tuser_id: player.userId,\n\t\t\t};\n\n\t\t\tif (isMe) {\n\t\t\t\tdelete playerTransformed.is_me;\n\t\t\t}\n\n\t\t\treturn playerTransformed;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tpublic static getPrizeTransformed = (prize: TournamentPrize) => {\n\t\tif (prize) {\n\t\t\treturn { ...prize, type: tournamentPrizeTypeToPrizeName(prize.type) };\n\t\t}\n\n\t\treturn null;\n\t};\n}\n","import { TournamentRegistrationType, TournamentRegistrationTypeGetName } from './TournamentRegistrationType';\nimport { TournamentInstanceStatus } from './TournamentInstanceStatus';\nimport {\n\tTournamentRegistrationStatus,\n\tTournamentRegistrationStatusName,\n\tTournamentRegistrationStatusNamed,\n} from './TournamentRegistrationStatus';\nimport { TournamentType } from './TournamentType';\nimport { TournamentPublicMeta } from './TournamentPublicMeta';\nimport { TTournament } from '../WSAPI/WSAPITypes';\nimport { TournamentPlayer } from './TournamentPlayer';\nimport { TournamentPrize } from './TournamentPrize';\nimport { TournamentUtils } from './TournamentUtils';\nimport { IntUtils } from '../IntUtils';\nimport { AchRelatedGame } from '../Base/AchRelatedGame';\n\nexport interface Tournament {\n\t/** ID of tournament template */\n\ttournamentId?: number;\n\t/** ID of tournament instance. Generated every time when tournament based on specific template is scheduled for run */\n\ttournamentInstanceId?: number;\n\t/** Type of the tournament. For now only SCHEDULED is support */\n\ttournamentType?: TournamentType;\n\t/** Meta information about tournament that should be used to build UI */\n\tpublicMeta?: TournamentPublicMeta;\n\t/** Cost of registration in the tournament in gamification points */\n\tbuyInAmount?: number;\n\t/** Not in use */\n\tprizePool?: number;\n\t/** The time when tournament is going to start */\n\tstartTime?: string;\n\t/** The time when tournament is going to finish */\n\tendTime?: string;\n\t/** The time when tournament is going to start, epoch */\n\tstartTimeTs?: number;\n\t/** The time when tournament is going to finish, epoch */\n\tendTimeTs?: number;\n\t/** Number of users registered in the tournament */\n\tregistrationCount?: number;\n\t/** Not in use */\n\ttotalCount?: number;\n\t/** Type of registration in the tournament */\n\tregistrationType?: TournamentRegistrationType;\n\t/** Status of registration in the tournament for current user */\n\ttournamentRegistrationStatus?: TournamentRegistrationStatus;\n\t/** Status of tournament instance */\n\ttournamentInstanceStatus?: TournamentInstanceStatus;\n\t/** flag indicating if current user is registered in the tournament */\n\tisUserRegistered?: boolean;\n\t/** Indicator if tournament allows later registration, when tournament is already started */\n\tallowLateRegistration?: boolean;\n\t/** Minimum number of participant for this tournament. If tournament doesnt have enough registrations, it will not start */\n\tplayersMinCount?: number;\n\t/** Maximum number of participant for this tournament. When reached, new users won't be able to register */\n\tplayersMaxCount?: number;\n\t/** Tournament duration in millisecnnds */\n\tdurationMs?: number;\n\t/** prizes structure */\n\tprizeStructure?: {\n\t\tprizes: TournamentPrize[];\n\t};\n\t/** Information about current user */\n\ttournamentPlayer?: TournamentPlayer;\n\n\t/** List of casino games (or other types of entities) related to the tournament */\n\trelated_games?: AchRelatedGame[];\n\t/** The minimum amount of score points that the user should get in order to be qualified for the prize */\n\tminScoreToWin?: number;\n\t/** When enabled, users who don't meet the minimum qualifying score will be hidden from the Leaderboard. */\n\thideLeaderboardsMinScores?: boolean;\n}\n\nexport const TournamentItemsTransform = (items: Tournament[]): TTournament[] => {\n\treturn items\n\t\t.filter((r) => r.tournamentId >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TTournament = {\n\t\t\t\tinstance_id: r.tournamentInstanceId,\n\t\t\t\ttournament_id: r.tournamentId,\n\t\t\t\tname: r.publicMeta.name,\n\t\t\t\tdescription: r.publicMeta.description,\n\t\t\t\tsegment_dont_match_message: r.publicMeta.segment_dont_match_message,\n\t\t\t\timage1: r.publicMeta.image_url,\n\t\t\t\timage2: r.publicMeta.image_url2,\n\t\t\t\timage2_mobile: r.publicMeta.image_url2_mobile,\n\t\t\t\tprize_pool_short: r.publicMeta.prize_pool_short,\n\t\t\t\tcustom_price_text: r.publicMeta.custom_price_text,\n\t\t\t\tcustom_section_id: r.publicMeta.custom_section_id,\n\t\t\t\tcustom_data: IntUtils.JsonOrText(r.publicMeta.custom_data),\n\t\t\t\tis_featured: r.publicMeta.featured,\n\t\t\t\tribbon: r.publicMeta.label_tag === 'custom' ? r.publicMeta.custom_label_tag : r.publicMeta.label_tag,\n\t\t\t\tpriority: r.publicMeta.position,\n\n\t\t\t\tstart_time: r.startTimeTs,\n\t\t\t\tend_time: r.endTimeTs,\n\t\t\t\tregistration_count: r.registrationCount,\n\t\t\t\tis_user_registered: r.isUserRegistered,\n\t\t\t\tplayers_min_count: r.playersMinCount,\n\t\t\t\tplayers_max_count: r.playersMaxCount,\n\t\t\t\tregistration_status: TournamentRegistrationStatusNamed(r.tournamentRegistrationStatus),\n\n\t\t\t\tregistration_type: TournamentRegistrationTypeGetName(r.registrationType),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_POINTS ? { registration_cost_points: r.buyInAmount } : {}),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_GEMS ? { registration_cost_gems: r.buyInAmount } : {}),\n\t\t\t\t...(r.registrationType === TournamentRegistrationType.BUY_IN_DIAMONDS ? { registration_cost_diamonds: r.buyInAmount } : {}),\n\t\t\t\tduration_ms: r.durationMs,\n\n\t\t\t\tis_active: TournamentUtils.isActive(r),\n\t\t\t\tis_can_register: TournamentUtils.isCanRegister(r),\n\t\t\t\tis_cancelled: TournamentUtils.isCancelled(r),\n\t\t\t\tis_finished: TournamentUtils.isFinished(r),\n\t\t\t\tis_in_progress: TournamentUtils.isInProgress(r),\n\t\t\t\tis_upcoming: TournamentUtils.isUpcoming(r),\n\n\t\t\t\tmin_scores_win: r.minScoreToWin,\n\t\t\t\thide_leaderboard_min_scores: r.hideLeaderboardsMinScores,\n\t\t\t};\n\n\t\t\tif (r.prizeStructure) {\n\t\t\t\tx.prizes = r.prizeStructure.prizes.map((p) => TournamentUtils.getPrizeTransformed(p));\n\t\t\t}\n\n\t\t\tif (r.tournamentPlayer) {\n\t\t\t\tx.me = TournamentUtils.getPlayerTransformed(r.tournamentPlayer, true);\n\t\t\t}\n\n\t\t\treturn x;\n\t\t});\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 { TournamentUtils } from './TournamentUtils';\n\nexport interface GetTournamentInfoResponse extends ProtocolResponse {\n\t/** tournament info */\n\ttournamentInfo: {\n\t\t/** id of label, not in use */\n\t\tlabelId: number;\n\t\ttournamentLobbyInfo: Tournament;\n\t\t/** list of registered users */\n\t\tplayers: TournamentPlayer[];\n\t};\n\t/** information about current user position */\n\tuserPosition: TournamentPlayer;\n\t/** prizes structure */\n\tprizeStructure?: {\n\t\tprizes: TournamentPrize[];\n\t};\n}\n\nexport const tournamentInfoItemTransform = (t: GetTournamentInfoResponse): TTournamentDetailed => {\n\tconst response: TTournamentDetailed = {\n\t\t...TournamentItemsTransform([t.tournamentInfo.tournamentLobbyInfo])[0],\n\t\trelated_games: (t.tournamentInfo.tournamentLobbyInfo.related_games || []).map((g) => ({\n\t\t\text_game_id: g.ext_game_id,\n\t\t\tgame_public_meta: {\n\t\t\t\tname: g.game_public_meta.name,\n\t\t\t\tlink: g.game_public_meta.link,\n\t\t\t\timage: g.game_public_meta.image,\n\t\t\t\tenabled: g.game_public_meta.enabled,\n\t\t\t\tgame_categories: g.game_public_meta.game_categories,\n\t\t\t\tgame_provider: g.game_public_meta.game_provider,\n\t\t\t\tmobile_spec_link: g.game_public_meta.mobile_spec_link,\n\t\t\t},\n\t\t})),\n\t\tplayers: t.tournamentInfo.players.map((p) => TournamentUtils.getPlayerTransformed(p)),\n\t};\n\n\tif (t.prizeStructure) {\n\t\tresponse.prizes = t.prizeStructure.prizes.map((p) => TournamentUtils.getPrizeTransformed(p));\n\t}\n\n\tif (t.userPosition) {\n\t\tresponse.me = TournamentUtils.getPlayerTransformed(t.userPosition, true);\n\t}\n\n\treturn response;\n};\n","export enum TournamentRegistrationError {\n\tNO_ERROR = 0,\n\tTOURNAMENT_INSTANCE_NOT_FOUND = 30001,\n\tTOURNAMENT_REGISTRATION_NOT_ENOUGH_POINTS = 30002,\n\tTOURNAMENT_INSTANCE_NOT_IN_STATE = 30003,\n\tTOURNAMENT_ALREADY_REGISTERED = 30004,\n\tTOURNAMENT_USER_DONT_MATCH_CONDITIONS = 30005,\n\tTOURNAMENT_USER_NOT_REGISTERED = 30006,\n\tTOURNAMENT_CANT_CHANGE_REGISTRATION_STATUS = 30007,\n\tTOURNAMENT_MAX_REGISTRATIONS_REACHED = 30008,\n}\n","export enum TournamentType {\n\tSCHEDULED = 1,\n\tSNG = 2,\n\tTEST = 3,\n}\n","export enum LeaderBoardPeriodType {\n\tDAILY = 1,\n\tWEEKLY = 2,\n\tMONTHLY = 3,\n}\n","import { LeaderBoardDetailsT, LeaderBoardUserT, LeaderBoardsRewardsT } from '../WSAPI/WSAPITypes';\nimport { LeaderBoardDetails } from './LeaderBoardDetails';\nimport { LeaderBoardPeriodType } from './LeaderBoardPeriodType';\nimport { LeaderBoardPosition } from './LeaderBoardPosition';\n\nconst pointsRewardTransform = (reward_points: number[]): LeaderBoardsRewardsT[] => {\n\tif (reward_points && reward_points.length) {\n\t\treturn reward_points.map((r, i) => ({ place: i + 1, points: r }));\n\t}\n\n\treturn null;\n};\n\nconst getLeaderBoardPlayerTransformed = (user: LeaderBoardPosition, isMe?: boolean): LeaderBoardUserT => {\n\tif (user) {\n\t\tconst x: LeaderBoardUserT = {\n\t\t\tpublic_username: user?.public_username || user.user_alt_name,\n\t\t\tavatar_url: user.avatar_url,\n\t\t\tposition: user.position_in_board,\n\t\t\tpoints: user.points_accumulated,\n\t\t\tis_me: user.is_me,\n\t\t};\n\n\t\tif (isMe) {\n\t\t\tdelete x.is_me;\n\t\t}\n\n\t\treturn x;\n\t}\n\n\treturn null;\n};\n\nexport const getLeaderBoardTransform = (board: LeaderBoardDetails): LeaderBoardDetailsT => {\n\tif (board) {\n\t\tconst x: LeaderBoardDetailsT = {\n\t\t\tboard_id: board.board_id,\n\t\t\tname: board.board_public_meta.name,\n\t\t\tdescription: board.board_public_meta.description,\n\t\t\trules: board.board_public_meta.rules,\n\t\t\tperiod_type_id: board.period_type_id,\n\t\t\trewards: pointsRewardTransform(board.reward_points),\n\t\t\tusers: board.positions.map((p) => getLeaderBoardPlayerTransformed(p)),\n\t\t\tme: getLeaderBoardPlayerTransformed(board.userPosition, true),\n\t\t};\n\n\t\treturn x;\n\t}\n\n\treturn null;\n};\n","import { IntUtils } from '../IntUtils';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { TLevel } from '../WSAPI/WSAPITypes';\nimport { Level } from './Level';\n\nexport interface GetLevelMapResponse extends ProtocolResponse {\n\tlevels: Level[];\n}\n\nexport const GetLevelMapResponseTransform = (levels: GetLevelMapResponse): TLevel[] => {\n\treturn levels?.levels.map((l) => ({\n\t\tid: l.level_id,\n\t\tname: l.level_public_meta.name,\n\t\tdescription: l.level_public_meta.description,\n\t\timage: l.level_public_meta.image_url,\n\t\trequired_points: l.required_points,\n\t\tvisibility_points: l.level_public_meta.visibility_points ? parseInt(l.level_public_meta.visibility_points as any) : null,\n\t\trequired_level_counter_1: l.required_level_counter_1,\n\t\trequired_level_counter_2: l.required_level_counter_2,\n\t\tcustom_data: IntUtils.JsonOrText(l.level_public_meta?.custom_data),\n\t}));\n};\n","import { TRaffle, TRaffleDraw, TRafflePrize, TRafflePrizeWinner, TRaffleTicket } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { Raffle } from './Raffle';\nimport { RaffleDraw } from './RaffleDraw';\nimport { RafflePrize } from './RafflePrize';\nimport { RafflePrizeWinner } from './RafflePrizeWinner';\nimport { RaffleTicket } from './RaffleTicket';\n\nexport interface GetRafflesResponse extends ProtocolResponse {\n\titems: Raffle[];\n}\n\n/** @hidden */\nexport const ticketsTransform = (items: RaffleTicket[]): TRaffleTicket[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tticekt_id: item.id,\n\t\t\tticket_id_string: item.s,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const winnersTransform = (items: RafflePrizeWinner[]): TRafflePrizeWinner[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.user_id,\n\t\t\tusername: item.public_username,\n\t\t\tavatar_url: item.avatar_url,\n\t\t\tticket: { ticekt_id: item.ticket.id, ticket_id_string: item.ticket.s },\n\t\t\traf_won_id: item.raf_won_id,\n\t\t\tclaimed_date: item.claimed_date,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const prizeTransform = (items: RafflePrize[]): TRafflePrize[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.prize_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\tprizes_per_run: item.prizes_per_run,\n\t\t\tprizes_per_run_actual: item.prizes_per_run_actual,\n\t\t\tchances_to_win_perc: item.chances_to_win_perc,\n\t\t\tmin_required_total_tickets: item.min_required_total_tickets,\n\t\t\tcap_prizes_per_run: item.cap_prizes_per_run,\n\t\t\tpriority: item.priority,\n\t\t\tstock_items_per_draw: item.stock_items_per_draw,\n\t\t\tshould_claim: item.should_claim,\n\t\t\twinners: winnersTransform(item.winners),\n\t\t\trequires_claim: item.requires_claim,\n\t\t\tmin_required_tickets_for_user: item.min_required_tickets_for_user,\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const drawTransform = (items: RaffleDraw[]): TRaffleDraw[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.draw_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\ticon_url: item.public_meta.icon_url,\n\t\t\tbackground_image_url: item.public_meta.background_image_url,\n\t\t\tbackground_image_url_mobile: item.public_meta.background_image_url_mobile,\n\t\t\tis_grand: item.public_meta.is_grand,\n\t\t\tprizes: prizeTransform(item.prizes),\n\t\t\tcurrent_state: item.current_state,\n\t\t\trun_id: item.run_id,\n\t\t\texecution_type: item.execution_type,\n\t\t\texecution_ts: item.execution_ts,\n\t\t\tprevious_run_ts: item.previous_run_ts,\n\t\t\tprevious_run_id: item.previous_run_id,\n\t\t\tticket_start_ts: item.ticket_start_ts,\n\t\t\tallow_multi_prize_per_ticket: item.allow_multi_prize_per_ticket,\n\t\t\ttotal_tickets_count: item.total_tickets_count,\n\t\t\tmy_tickets_count: item.my_tickets_count,\n\t\t\tmy_last_tickets: ticketsTransform(item.my_last_tickets),\n\t\t};\n\t});\n};\n\n/** @hidden */\nexport const raffleTransform = (items: Raffle[]): TRaffle[] => {\n\treturn items.map((item) => {\n\t\treturn {\n\t\t\tid: item.raffle_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\tcustom_section_id: item.public_meta.custom_section_id,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\tcustom_data: item.public_meta.custom_data,\n\t\t\tstart_date: item.start_date_ts,\n\t\t\tend_date: item.end_date_ts,\n\t\t\tmax_tickets_count: item.max_tickets_count,\n\t\t\tcurrent_tickets_count: item.current_tickets_count,\n\t\t\tdraws: drawTransform(item.draws),\n\t\t};\n\t});\n};\n","import { TRaffleDraw } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { RaffleDraw } from './RaffleDraw';\nimport { prizeTransform, ticketsTransform } from './GetRafflesResponse';\n\nexport interface GetDrawRunResponse extends ProtocolResponse {\n\tdraw: RaffleDraw;\n}\n\n/** @hidden */\nexport const drawRunTransform = (res: GetDrawRunResponse): TRaffleDraw => {\n\treturn {\n\t\tid: res.draw.draw_id,\n\t\tname: res.draw.public_meta.name,\n\t\tdescription: res.draw.public_meta.description,\n\t\timage_url:res.draw.public_meta.image_url,\n\t\timage_url_mobile:res.draw.public_meta.image_url_mobile,\n\t\ticon_url: res.draw.public_meta.icon_url,\n\t\tbackground_image_url: res.draw.public_meta.background_image_url,\n\t\tbackground_image_url_mobile: res.draw.public_meta.background_image_url_mobile,\n\t\tis_grand: res.draw.public_meta.is_grand,\n\t\tprizes: prizeTransform(res.draw.prizes),\n\t\tcurrent_state: res.draw.current_state,\n\t\trun_id: res.draw.run_id,\n\t\texecution_type: res.draw.execution_type,\n\t\texecution_ts: res.draw.execution_ts,\n\t\tprevious_run_ts: res.draw.previous_run_ts,\n\t\tprevious_run_id: res.draw.previous_run_id,\n\t\tticket_start_ts: res.draw.ticket_start_ts ?? res.draw['ticket_start_date'],\n\t\tallow_multi_prize_per_ticket: res.draw.allow_multi_prize_per_ticket,\n\t\ttotal_tickets_count: res.draw.total_tickets_count,\n\t\tmy_tickets_count: res.draw.my_tickets_count,\n\t\tmy_last_tickets: ticketsTransform(res.draw.my_last_tickets)\n\t} \t\n};","import { RaffleDrawPublicMeta } from \"./RaffleDrawPublicMeta\";\nimport { RafflePrize } from \"./RafflePrize\";\nimport { RaffleTicket } from \"./RaffleTicket\";\n\nexport enum RaffleDrawInstanceState {\n /** Draw is open for the tickets collection */\n Open = 1,\n /** Winner selection is in progress */\n WinnerSelection = 2,\n /** Draw is executed and the winners are selected */\n Executed = 3,\n}\n\nexport enum RaffleDrawTypeExecution {\n /** Draw is executed only once */\n ExecDate = 0,\n /** Draw is executed on a recurring basis */\n Recurring = 1,\n /** \n * Draw is executed once and is marked as grand.\n * This means it is a special or significant draw,\n * often with larger prizes or more importance.\n */\n Grand = 2,\n}\n\n\ninterface RaffleDraw {\n /** \n * Id of the Draw definition, for the repetative draws (e.g. daily), this number will be the same for all draws that are repeating daily\n * (internal name: schedule_id)\n */\n draw_id: number;\n\n /** Meta information of the Draw for the presentaiton in UI */\n public_meta: RaffleDrawPublicMeta;\n\n /** Information about prizes in the draw */\n prizes: RafflePrize[];\n\n /** \n * State of current instance of Draw\n */\n current_state: RaffleDrawInstanceState;\n\n /** \n * Field indicates the ID of the latest instance/run of draw\n */\n run_id: number;\n\n /** \n * Type of the draw execution, indicating how and when the draw is executed.\n * \n * - ExecDate: Draw is executed only once at a specific date and time.\n * - Recurring: Draw is executed on a recurring basis (e.g., daily, weekly).\n * - Grand: Draw is executed once and is marked as grand, often with larger prizes or more importance.\n */\n execution_type: RaffleDrawTypeExecution;\n\n /** Date/time of the draw execution */\n execution_ts: number;\n \n /** Date of the previously executed draw (if there is such) */\n previous_run_ts?: number;\n\n /** Unique ID of the previusly executed draw (if there is such) */\n previous_run_id?: number; \n\n /** \n * Date/time starting from which the tickets will participate in the upcoming draw\n * This value need to be taken into account with next_execute_ts field value, for example\n * Next draw is at 10:00, ticket_start_date is 9:00, so all tickets that are collected after 9:00 will participate in the draw at 10:00\n * (internally this value is calculated as next_execute_ts - ticket_start_date)\n */\n ticket_start_ts: number;\n\n /** \n * Field is indicating if same ticket can win multiple prizes in the same draw\n * For example there are 3 types of prizes in the draw - iPhone, iPad, MacBook\n * If this field is true, then one ticket can win all 3 prizes (depending on the chances of course),\n * if false, then one ticket can win only one prize.\n * The distribution of the prizes is start from top (assuming on top are the most valuable prizes) to bottom (less valuable prizes)\n * If specific prize has multiple values, e.g. we have 3 iPhones,\n * then the same ticket can win only one prize of a kind, but can win multiple prizes of different kind (if allow_multi_prize_per_ticket is true)\n */\n allow_multi_prize_per_ticket: boolean;\n\n\n /** \n * The number of tickets that are already given to all users for this instance of draw.\n * In other words tickets that are collected between ticket_start_date and current time (or till current_execution_ts is the instance is executed).\n */\n total_tickets_count: number;\n\n /** \n * The number of tickets collected by current user for this instance of draw.\n */\n my_tickets_count: number;\n\n /**\n * List of last 5 tickets are collected by current user for this instance of draw.\n */\n my_last_tickets: RaffleTicket[];\n}\n\nexport { RaffleDraw };\n","import { TRaffleDrawRun } from '../WSAPI/WSAPITypes';\nimport { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { RaffleDrawRun } from './RaffleDrawRun';\n\nexport interface GetRaffleDrawRunsHistoryResponse extends ProtocolResponse {\n\tdraw_runs: RaffleDrawRun[];\n}\n\n/** @hidden */\nexport const drawRunHistoryTransform = (res: GetRaffleDrawRunsHistoryResponse): TRaffleDrawRun[] => {\n\treturn res.draw_runs.map((item) => {\n\t\treturn {\n\t\t\tid: item.draw_id,\n\t\t\trun_id: item.run_id,\n\t\t\tname: item.public_meta.name,\n\t\t\tdescription: item.public_meta.description,\n\t\t\timage_url: item.public_meta.image_url,\n\t\t\timage_url_mobile: item.public_meta.image_url_mobile,\n\t\t\ticon_url: item.public_meta.icon_url,\n\t\t\tbackground_image_url: item.public_meta.background_image_url,\n\t\t\tbackground_image_url_mobile: item.public_meta.background_image_url_mobile,\n\t\t\tis_grand: item.public_meta.is_grand,\n\t\t\texecution_ts: item.execution_ts,\n\t\t\tactual_execution_ts:item.actual_execution_ts,\n\t\t\tticket_start_ts:item.ticket_start_ts,\n\t\t\tis_winner:item.is_winner,\n\t\t\thas_unclaimed_prize:item.has_unclaimed_prize\n\t\t};\n\t});\n};\n","import { TransformedRaffleClaimPrizeResponse } from \"../WSAPI/WSAPITypes\";\nimport { ProtocolResponse } from \"../Base/ProtocolResponse\";\n\nexport interface RaffleClaimPrizeResponse extends ProtocolResponse {\n errCode: number\n errMsg?: string\n}\n\n/** @hidden */\nexport const raffleClaimPrizeResponseTransform = (info: RaffleClaimPrizeResponse): TransformedRaffleClaimPrizeResponse => {\n return {\n errorCode: info.errCode,\n errorMessage: info.errMsg\n }\n}\n","import { ClassId } from '../Base/ClassId';\nimport { CoreUtils } from '../Core';\nimport {\n\tSAWSpinsCountPush,\n} from '../MiniGames';\nimport { ECacheContext, OCache } from '../OCache';\nimport { SmarticoAPI } from '../SmarticoAPI';\nimport {\n\tInboxMarkMessageAction,\n\tLeaderBoardDetailsT,\n\tTAchCategory,\n\tTBuyStoreItemResult,\n\tTGetTranslations,\n\tTInboxMessage,\n\tTInboxMessageBody,\n\tTLevel,\n\tTMiniGamePlayResult,\n\tTMiniGameTemplate,\n\tTMissionClaimRewardResult,\n\tTMissionOptInResult,\n\tTMissionOrBadge,\n\tTSegmentCheckResult,\n\tTStoreCategory,\n\tTStoreItem,\n\tTTournament,\n\tTTournamentDetailed,\n\tTTournamentRegistrationResult,\n\tTUICustomSection,\n\tTUserProfile,\n\tUserLevelExtraCountersT,\n\tTBonus,\n\tTClaimBonusResult,\n\tTMiniGamePlayBatchResult,\n\tTSawHistory,\n\tTRaffle,\n\tTRaffleDraw,\n\tTRaffleDrawRun,\n\tTransformedRaffleClaimPrizeResponse,\n\tTLevelCurrent\n} from './WSAPITypes';\nimport { LeaderBoardPeriodType } from '../Leaderboard';\nimport {\n\tJackpotDetails,\n\tJackpotPot,\n\tJackpotWinPush,\n\tJackpotWinnerHistory,\n\tJackpotsOptinResponse,\n\tJackpotsOptoutRequest,\n\tJackpotsOptoutResponse,\n} from '../Jackpots';\nimport { GetRelatedAchTourResponse } from '../Missions/GetRelatedAchTourResponse';\nimport { InboxCategories } from '../Inbox/InboxCategories';\nimport {\n\tdrawRunHistoryTransform,\n\tdrawRunTransform,\n\traffleClaimPrizeResponseTransform,\n} from '../Raffle';\nimport { IntUtils } from '../IntUtils';\nimport { TGetJackpotEligibleGamesResponse } from '../Jackpots/GetJackpotEligibleGamesResponse';\n\n/** @hidden */\nconst CACHE_DATA_SEC = 30;\n\nconst JACKPOT_TEMPLATE_CACHE_SEC = 30;\nconst JACKPOT_POT_CACHE_SEC = 1;\nconst JACKPOT_WINNERS_CACHE_SEC = 30;\nconst JACKPOT_ELIGIBLE_GAMES_CACHE_SEC = 30;\n\n/** @hidden */\nenum onUpdateContextKey {\n\tSaw = 'saw',\n\tMissions = 'missions',\n\tTournamentList = 'tournamentList',\n\tInboxMessages = 'inboxMessages',\n\tBadges = 'badges',\n\tLevels = 'levels',\n\tStoreItems = 'storeItems',\n\tStoreCategories = 'storeCategories',\n\tAchCategories = 'achCategories',\n\tLeaderBoards = 'leaderBoards',\n\tLevelExtraCounters = 'levelExtraCounters',\n\tSegments = 'segments',\n\tStoreHistory = 'storeHistory',\n\tJackpots = 'jackpots',\n\tPots = 'Pots',\n\tCustomSections = 'customSections',\n\tBonuses = 'bonuses',\n\tSAWHistory = 'sawHistory',\n\tJackpotWinners = 'jackpotWinners',\n\tRaffles = 'raffles',\n\tJackpotEligibleGames = 'jackpotEligibleGames',\n\tCurrentLevel = 'currentLevel',\n\tInboxUnreadCount = 'inboxUnreadCount',\n}\n\n/** @group General API */\nexport class WSAPI {\n\tprivate onUpdateCallback: Map<onUpdateContextKey, (data: any) => void> = new Map();\n\tprivate jackpotGetSignature: string = '';\n\n\t/** @private */\n\tconstructor(private api: SmarticoAPI) {\n\t\tOCache.clearAll();\n\t\tif (this.api.tracker) {\n\t\t\tconst on = this.api.tracker.on;\n\n\t\t\ton(ClassId.SAW_SPINS_COUNT_PUSH, (data: SAWSpinsCountPush) => this.updateOnSpin(data));\n\t\t\ton(ClassId.SAW_SHOW_SPIN_PUSH, () => this.reloadMiniGameTemplate());\n\t\t\ton(ClassId.SAW_AKNOWLEDGE_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.SAW_DO_SPIN_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.MISSION_OPTIN_RESPONSE, () => this.updateMissions());\n\t\t\ton(ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE, () => this.updateMissions());\n\t\t\ton(ClassId.RELOAD_ACHIEVEMENTS_EVENT, () => this.updateMissions());\n\t\t\ton(ClassId.TOURNAMENT_REGISTER_RESPONSE, () => this.updateTournaments());\n\t\t\ton(ClassId.BUY_SHOP_ITEM_RESPONSE, () => {\n\t\t\t\tthis.updateStorePurchasedItems();\n\t\t\t\tthis.updateStoreItems();\n\t\t\t});\n\t\t\ton(ClassId.CLIENT_ENGAGEMENT_EVENT_NEW, () => this.updateInboxMessages());\n\t\t\ton(ClassId.LOGOUT_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n\t\t\ton(ClassId.IDENTIFY_RESPONSE, () => OCache.clearContext(ECacheContext.WSAPI));\n\t\t\ton(ClassId.JP_WIN_PUSH, (data: JackpotWinPush) => this.jackpotClearCache());\n\t\t\ton(ClassId.JP_OPTOUT_RESPONSE, (data: JackpotsOptoutRequest) => this.jackpotClearCache());\n\t\t\ton(ClassId.JP_OPTIN_RESPONSE, (data: JackpotsOptinResponse) => this.jackpotClearCache());\n\t\t\ton(ClassId.CLAIM_BONUS_RESPONSE, () => this.updateBonuses());\n\t\t\ton(ClassId.SAW_DO_SPIN_BATCH_RESPONSE, () => {\n\t\t\t\tthis.reloadMiniGameTemplate();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.SAWHistory);\n\t\t\t});\n\t\t\ton(ClassId.RAF_CLAIM_PRIZE_RESPONSE, () => {\n\t\t\t\tthis.updateRaffles();\n\t\t\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Raffles);\n\t\t\t});\n\t\t\ton(ClassId.GET_INBOX_MESSAGES_RESPONSE, (res) => {\n\t\t\t\tif (res.unread_count !== undefined && res.unread_count !== null) {\n\t\t\t\t\tthis.updateInboxUnreadCount(res.unread_count);\n\t\t\t\t}\n\t\t\t});\n\t\t\ton(ClassId.CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT, (data: { props: { core_inbox_unread_count: number } }) => {\n\t\t\t\tif (data?.props?.core_inbox_unread_count !== undefined && data?.props?.core_inbox_unread_count !== null) {\n\t\t\t\t\tthis.updateInboxUnreadCount(data.props.core_inbox_unread_count);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/** @private */\n\t// AA: this method is used from the _smartico script to clear cache when the context is changed,\n\t// e.g. when user is changed or language is changed\n\tpublic clearCaches() {\n\t\tOCache.clearAll();\n\t}\n\n\t/** Returns information about current user\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getUserProfile(result => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t * */\n\tpublic getUserProfile(): TUserProfile {\n\t\tif (this.api.tracker) {\n\t\t\tconst o: TUserProfile = Object.assign({}, this.api.tracker.userPublicProps);\n\t\t\to.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);\n\t\t\treturn o;\n\t\t} else {\n\t\t\tthrow new Error('Tracker is not initialized, cannot getUserProfile');\n\t\t}\n\t}\n\n\t/** Check if user belongs to specific segments\n\t * **Example**:\n\t * ```\n\t * _smartico.api.checkSegmentMatch(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async checkSegmentMatch(segment_id: number): Promise<boolean> {\n\t\tconst r = await this.api.coreCheckSegments(null, [segment_id]);\n\t\tif (r && r.find((s) => s.segment_id === segment_id && s.is_matching)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** Check if user belongs to specific list of segments\n\t * **Example**:\n\t * ```\n\t * _smartico.api.checkSegmentListMatch([1, 2, 3]).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async checkSegmentListMatch(segment_ids: number[]): Promise<TSegmentCheckResult[]> {\n\t\treturn await this.api.coreCheckSegments(null, Array.isArray(segment_ids) ? segment_ids : [segment_ids]);\n\t}\n\n\t/** Returns all the levels available the current user\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getLevels().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getLevels().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getLevels(): Promise<TLevel[]> {\n\t\treturn OCache.use(onUpdateContextKey.Levels, ECacheContext.WSAPI, () => this.api.levelsGetT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns the current level of the user with extended information including ordinal position and progress.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getCurrentLevel().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getCurrentLevel(): Promise<TLevelCurrent> {\n\t\treturn OCache.use(onUpdateContextKey.CurrentLevel, ECacheContext.WSAPI, () => this.api.getLevelCurrent(null), CACHE_DATA_SEC);\n\t}\n\n\t/** Returns all the missions available the current user.\n\t * The returned missions are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getMissions with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on mission OptIn and the updated missions will be passed to it.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMissions().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getMissions().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getMissions({ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {}): Promise<TMissionOrBadge[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Missions, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.Missions,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.missionsGetItemsT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the badges available the current user\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getBadges(): Promise<TMissionOrBadge[]> {\n\t\treturn OCache.use(onUpdateContextKey.Badges, ECacheContext.WSAPI, () => this.api.badgetsGetItemsT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns all the bonuses for the current user\n\t * The returned bonuss are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getBonuses with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on bonus claimed and the updated bonuses will be passed to it.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getBonuses({ onUpdate }: { onUpdate?: (data: TBonus[]) => void } = {}): Promise<TBonus[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Bonuses, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Bonuses, ECacheContext.WSAPI, () => this.api.bonusesGetItemsT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Claim the bonus by bonus_id. Returns the err_code in case of success or error.\n\t * Note that this method can be used only on integrations where originally failed bonus can be claimed again.\n\t * For example, user won a bonus in the mini-game, but Operator rejected this bonus.\n\t * This bonus will be available for the user to claim again.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async claimBonus(bonus_id: number): Promise<TClaimBonusResult> {\n\t\tconst r = await this.api.bonusClaimItem(null, bonus_id);\n\n\t\tconst o: TClaimBonusResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t\tsuccess: r.success,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Returns the extra counters for the current user level.\n\t * These are counters that are configured for each Smartico client separatly by request.\n\t * For example 1st counter could be total wagering amount, 2nd counter could be total deposit amount, etc.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getUserLevelExtraCounters().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getUserLevelExtraCounters(): Promise<UserLevelExtraCountersT> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.LevelExtraCounters,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getUserGamificationInfoT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * Returns all the store items available the current user\n\t * The returned store items are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getStoreItems with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on purchase of the store item.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStoreItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getStoreItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * @param params\n\t * @param params.onUpdate - callback function that will be called when the store items are updated\n\t */\n\n\tpublic async getStoreItems({ onUpdate }: { onUpdate?: (data: TStoreItem[]) => void } = {}): Promise<TStoreItem[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.StoreItems, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreItems,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetItemsT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/** Buy the specific shop item by item_id. Returns the err_code in case of success or error.\n\t * **Example**:\n\t * ```\n\t * _smartico.api.buyStoreItem(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async buyStoreItem(item_id: number): Promise<TBuyStoreItemResult> {\n\t\tconst r = await this.api.buyStoreItem(null, item_id);\n\n\t\tconst o: TBuyStoreItemResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t *\n\t * Returns store categories\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStoreCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getStoreCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getStoreCategories(): Promise<TStoreCategory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreCategories,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetCategoriesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns purchased items based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched.\n\t * The maximum number of items per request is limited to 20.\n\t * You can leave this params empty and by default it will return list of purchased items ranging from 0 to 20.\n\t * The returned store items are cached for 30 seconds. But you can pass the onUpdate callback as a parameter.\n\t * Note that each time you call getStorePurchasedItems with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on purchase of the store item and the last 20 items will be passed to it.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getStorePurchasedItems().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async getStorePurchasedItems({\n\t\tlimit,\n\t\toffset,\n\t\tonUpdate,\n\t}: { limit?: number; offset?: number; onUpdate?: (data: TStoreItem[]) => void } = {}): Promise<TStoreItem[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.StoreHistory, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.StoreHistory,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.storeGetPurchasedItemsT(null, limit, offset),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns missions & badges categories\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getAchCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getAchCategories().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * */\n\tpublic async getAchCategories(): Promise<TAchCategory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.AchCategories,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.achGetCategoriesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of custom sections\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getCustomSections().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getCustomSections().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * */\n\tpublic async getCustomSections(): Promise<TUICustomSection[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.CustomSections,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.customSectionsGetT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the list of mini-games available for user\n\t * 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\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMiniGames().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getMiniGames().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\tpublic async getMiniGames({ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {}): Promise<\n\t\tTMiniGameTemplate[]\n\t> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Saw, ECacheContext.WSAPI, () => this.api.sawGetTemplatesT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns the list of mini-games based on the provided parameters. \"Limit\" and \"offset\" indicate the range of items to be fetched.\n\t * The maximum number of items per request is limited to 20.\n\t * You can leave this params empty and by default it will return list of mini-games ranging from 0 to 20.\n\t * The returned list of mini-games history is cached for 30 seconds.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getMiniGamesHistory().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async getMiniGamesHistory({\n\t\tlimit,\n\t\toffset,\n\t\tsaw_template_id,\n\t}: {\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tsaw_template_id?: number;\n\t}): Promise<TSawHistory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.SAWHistory,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getSawWinningHistoryT(null, limit, offset, saw_template_id),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Plays the specified by template_id mini-game on behalf of user and returns prize_id or err_code\n\t * After playMiniGame is called, you can call getMiniGames to get the list of mini-games.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 playMiniGame with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.playMiniGame(55).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async playMiniGame(\n\t\ttemplate_id: number,\n\t\t{ onUpdate }: { onUpdate?: (data: TMiniGameTemplate[]) => void } = {},\n\t): Promise<TMiniGamePlayResult> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\tconst r = await this.api.sawSpinRequest(null, template_id);\n\t\tthis.api.doAcknowledgeRequest(null, r.request_id);\n\n\t\tconst o: TMiniGamePlayResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t\tprize_id: r.saw_prize_id,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Sends the acknowledge request with specific client_request_id from minigame history in order to claim prize\n\t * **Example**:\n\t * ```\n\t * _smartico.api.miniGameWinAcknowledgeRequest('2a189322-31bb-4119-b943-bx7868ff8dc3').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async miniGameWinAcknowledgeRequest(request_id: string) {\n\t\treturn this.api.doAcknowledgeRequest(null, request_id);\n\t}\n\n\t/**\n\t * Plays the specified by template_id mini-game on behalf of user spin_count times and returns array of the prizes\n\t * After playMiniGameBatch is called, you can call getMiniGames to get the list of mini-games. 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 playMiniGameBatch with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * 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\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.playMiniGameBatch(55, 10).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async playMiniGameBatch(\n\t\ttemplate_id: number,\n\t\tspin_count: number,\n\t\t{ onUpdate }: { onUpdate?: (data: TMissionOrBadge[]) => void } = {},\n\t): Promise<TMiniGamePlayBatchResult[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Saw, onUpdate);\n\t\t}\n\n\t\tconst response = await this.api.sawSpinBatchRequest(null, template_id, spin_count);\n\n\t\tconst request_ids = response.results.map((result) => result.request_id);\n\t\tthis.api.doAcknowledgeBatchRequest(null, request_ids);\n\n\t\tconst o: TMiniGamePlayBatchResult[] = response.results.map((result) => ({\n\t\t\terrCode: result.errCode,\n\t\t\terrMessage: result.errMsg,\n\t\t\tsaw_prize_id: result.saw_prize_id,\n\t\t\tjackpot_amount: result.jackpot_amount,\n\t\t\tfirst_spin_in_period: result.first_spin_in_period,\n\t\t}));\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Requests an opt-in for the specified mission_id. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async requestMissionOptIn(mission_id: number): Promise<TMissionOptInResult> {\n\t\tconst r = await this.api.missionOptIn(null, mission_id);\n\n\t\tconst o: TMissionOptInResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * Request for claim reward for the specified mission id. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async requestMissionClaimReward(mission_id: number, ach_completed_id: number): Promise<TMissionClaimRewardResult> {\n\t\tconst r = await this.api.missionClaimPrize(null, mission_id, ach_completed_id);\n\n\t\tconst o: TMissionClaimRewardResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/** Returns all the active instances of tournaments\n\t * 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\t * The onUpdate callback will be called when the user has registered in a tournament. Updated list will be passed to onUpdate callback.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getTournamentsList().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getTournamentsList().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * */\n\tpublic async getTournamentsList({ onUpdate }: { onUpdate?: (data: TTournament[]) => void } = {}): Promise<TTournament[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.TournamentList, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.TournamentList,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.tournamentsGetLobbyT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns details information of specific tournament instance, the response will include tournament info and the leaderboard of players\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getTournamentsList().then((result) => {\n\t * if (result.length > 0) {\n\t * _smartico.api.getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n\t * console.log(result);\n\t * });\n\t * }\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getTournamentsList().then((result) => {\n\t * if (result.length > 0) {\n\t * _smartico.vapi('EN').getTournamentInstanceInfo(result[0].instance_id).then((result) => {\n\t * console.log(result);\n\t * });\n\t * }\n\t * });\n\t * ```\n\t */\n\tpublic async getTournamentInstanceInfo(tournamentInstanceId: number): Promise<TTournamentDetailed> {\n\t\treturn this.api.tournamentsGetInfoT(null, tournamentInstanceId);\n\t}\n\n\t/**\n\t * Requests registration for the specified tournament instance. Returns the err_code.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async registerInTournament(tournamentInstanceId: number): Promise<TTournamentRegistrationResult> {\n\t\tconst r = await this.api.registerInTournament(null, tournamentInstanceId);\n\n\t\tconst o: TTournamentRegistrationResult = {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\t/**\n\t * 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\t * For example, if the type is Weekly and getPreviousPeriod is true, a leaderboard for the previous week will be returned.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getLeaderBoard(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getLeaderBoard(1).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getLeaderBoard(periodType: LeaderBoardPeriodType, getPreviousPeriod?: boolean): Promise<LeaderBoardDetailsT> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.LeaderBoards,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.leaderboardsGetT(null, periodType, getPreviousPeriod),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/** Returns inbox messages based on the provided parameters. \"From\" and \"to\" indicate the range of messages to be fetched.\n\t * 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\t * You can leave this params empty and by default it will return list of messages ranging from 0 to 20.\n\t * This functions return list of messages without the body of the message.\n\t * 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\t * All other action like mark as read, favorite, delete, etc. can be done using this message GUID.\n\t * 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\t *\n\t * **Visitor mode: not supported**\n\t *\n\t * @param params\n\t */\n\tpublic async getInboxMessages({\n\t\tfrom,\n\t\tto,\n\t\tonlyFavorite,\n\t\tcategoryId,\n\t\tonUpdate,\n\t}: {\n\t\tfrom?: number;\n\t\tto?: number;\n\t\tonlyFavorite?: boolean;\n\t\tcategoryId?: InboxCategories;\n\t\tonUpdate?: (data: TInboxMessage[]) => void;\n\t} = {}): Promise<TInboxMessage[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.InboxMessages, onUpdate);\n\t\t}\n\t\treturn await this.api.getInboxMessagesT(null, from, to, onlyFavorite, categoryId);\n\t}\n\n\t/**\n\t * Returns inbox unread count.\n\t *\n\t * **Visitor mode: not supported**\n\t * @param params\n\t */\n\tpublic async getInboxUnreadCount({ onUpdate }: { onUpdate?: (unread_count: number) => void } = {}): Promise<number> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.InboxUnreadCount, onUpdate);\n\t\t}\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.InboxUnreadCount,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getInboxUnreadCountT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the message body of the specified message guid.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async getInboxMessageBody(messageGuid: string): Promise<TInboxMessageBody> {\n\t\treturn await this.api.getInboxMessageBodyT(messageGuid);\n\t}\n\n\t/**\n\t * Requests to mark inbox message with specified guid as read\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markInboxMessageAsRead(messageGuid: string): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markInboxMessageRead(null, messageGuid);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to mark all inbox messages as rea\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markAllInboxMessagesAsRead(): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markAllInboxMessageRead(null);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to mark inbox message with specified guid as favorite. Pass mark true to add message to favorite and false to remove.\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\tpublic async markUnmarkInboxMessageAsFavorite(messageGuid: string, mark: boolean): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.markUnmarkInboxMessageAsFavorite(null, messageGuid, mark);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to delete inbox message\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async deleteInboxMessage(messageGuid: string): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.deleteInboxMessage(null, messageGuid);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * Requests to delete all inbox messages\n\t *\n\t * **Visitor mode: not supported**\n\t */\n\n\tpublic async deleteAllInboxMessages(): Promise<InboxMarkMessageAction> {\n\t\tconst r = await this.api.deleteAllInboxMessages(null);\n\n\t\treturn {\n\t\t\terr_code: r.errCode,\n\t\t\terr_message: r.errMsg,\n\t\t};\n\t}\n\n\t/**\n\t * 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\t */\n\tpublic async getTranslations(lang_code: string): Promise<TGetTranslations> {\n\t\tconst r = await this.api.getTranslationsT(null, lang_code, []);\n\n\t\treturn {\n\t\t\ttranslations: r.translations,\n\t\t};\n\t}\n\n\tprivate async updateOnSpin(data: SAWSpinsCountPush) {\n\t\tconst templates: TMiniGameTemplate[] = await OCache.use(\n\t\t\tonUpdateContextKey.Saw,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.sawGetTemplatesT(null),\n\t\t\tCACHE_DATA_SEC,\n\t\t);\n\t\tconst index = templates.findIndex((t) => t.id === data.saw_template_id);\n\t\ttemplates[index].spin_count = data.spin_count;\n\t\tthis.updateEntity(onUpdateContextKey.Saw, templates);\n\t}\n\n\tprivate async reloadMiniGameTemplate() {\n\t\tconst updatedTemplates = await this.api.sawGetTemplatesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Saw, updatedTemplates);\n\t}\n\n\tprivate async updateMissions() {\n\t\tconst payload = await this.api.missionsGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Missions, payload);\n\t}\n\n\tprivate async updateBonuses() {\n\t\tconst payload = await this.api.bonusesGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Bonuses, payload);\n\t}\n\n\tprivate async updateTournaments() {\n\t\tconst payload = await this.api.tournamentsGetLobbyT(null);\n\t\tthis.updateEntity(onUpdateContextKey.TournamentList, payload);\n\t}\n\n\tprivate async updateStorePurchasedItems() {\n\t\tconst payload = await this.api.storeGetPurchasedItemsT(null, 20, 0);\n\t\tthis.updateEntity(onUpdateContextKey.StoreHistory, payload);\n\t}\n\n\tprivate async updateStoreItems() {\n\t\tconst payload = await this.api.storeGetItemsT(null);\n\t\tthis.updateEntity(onUpdateContextKey.StoreItems, payload);\n\t}\n\n\tprivate async updateInboxUnreadCount(count: number) {\n\t\tthis.updateEntity(onUpdateContextKey.InboxUnreadCount, count);\n\t}\n\n\tprivate async updateInboxMessages() {\n\t\tconst payload = await this.api.getInboxMessagesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.InboxMessages, payload);\n\t}\n\n\tprivate async updateRaffles() {\n\t\tconst payload = await this.api.getRafflesT(null);\n\t\tthis.updateEntity(onUpdateContextKey.Raffles, payload);\n\t}\n\n\tprivate async updateEntity(contextKey: onUpdateContextKey, payload: any) {\n\t\tOCache.set(contextKey, payload, ECacheContext.WSAPI);\n\n\t\tconst onUpdate = this.onUpdateCallback.get(contextKey);\n\t\tif (onUpdate) {\n\t\t\tonUpdate(payload);\n\t\t}\n\t}\n\n\tprivate async jackpotClearCache() {\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Jackpots);\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.Pots);\n\t\tOCache.clear(ECacheContext.WSAPI, onUpdateContextKey.JackpotWinners);\n\t}\n\n\t/** Returns list of Jackpots that are active in the systen and matching to the filter definition.\n\t * If filter is not provided, all active jackpots will be returned.\n\t * Filter can be used to get jackpots related to specific game or specific jackpot template.\n\t * You can call this method every second in order to get up to date information about current value of the jackpot(s) and present them to the end-users\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').jackpotGet({ related_game_id: 'wooko-slot' }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async jackpotGet(filter?: { related_game_id?: string; jp_template_id?: number }): Promise<JackpotDetails[]> {\n\t\tconst signature: string = `${filter?.jp_template_id}:${filter?.related_game_id}`;\n\n\t\tif (signature !== this.jackpotGetSignature) {\n\t\t\tthis.jackpotGetSignature = signature;\n\t\t\tthis.jackpotClearCache();\n\t\t}\n\n\t\tlet jackpots: JackpotDetails[] = [];\n\t\tlet pots: JackpotPot[] = [];\n\n\t\tjackpots = await OCache.use<JackpotDetails[]>(\n\t\t\tonUpdateContextKey.Jackpots,\n\t\t\tECacheContext.WSAPI,\n\t\t\tasync () => {\n\t\t\t\tconst _jackpots = await this.api.jackpotGet(null, filter);\n\t\t\t\tconst _pots = _jackpots.items.map((jp) => jp.pot);\n\n\t\t\t\t_jackpots.items.forEach((jp) => {\n\t\t\t\t\tjp.jp_public_meta.custom_data = IntUtils.JsonOrText(jp.jp_public_meta.custom_data);\n\t\t\t\t});\n\n\t\t\t\tOCache.set(onUpdateContextKey.Pots, _pots, ECacheContext.WSAPI, JACKPOT_POT_CACHE_SEC);\n\t\t\t\treturn _jackpots.items;\n\t\t\t},\n\t\t\tJACKPOT_TEMPLATE_CACHE_SEC,\n\t\t);\n\n\t\tif (jackpots.length > 0) {\n\t\t\tpots = await OCache.use<JackpotPot[]>(\n\t\t\t\tonUpdateContextKey.Pots,\n\t\t\t\tECacheContext.WSAPI,\n\t\t\t\tasync () => {\n\t\t\t\t\tconst jp_template_ids = jackpots.map((jp) => jp.jp_template_id);\n\t\t\t\t\treturn (await this.api.potGet(null, { jp_template_ids })).items;\n\t\t\t\t},\n\t\t\t\tJACKPOT_POT_CACHE_SEC,\n\t\t\t);\n\t\t}\n\n\t\treturn jackpots.map((jp) => {\n\t\t\tlet _jp: JackpotDetails = {\n\t\t\t\t...jp,\n\t\t\t\tpot: pots.find((p) => p.jp_template_id === jp.jp_template_id),\n\t\t\t};\n\t\t\treturn _jp;\n\t\t});\n\t}\n\n\t/**\n\t * Opt-in currently logged in user to the jackpot with the specified jp_template_id.\n\t * You may call jackpotGet method after doing optin to see that user is opted in to the jackpot.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotOptIn({ jp_template_id: 123 }).then((result) => {\n\t * console.log('Opted in to the jackpot');\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t *\n\t */\n\tpublic async jackpotOptIn(filter: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n\t\tif (!filter.jp_template_id) {\n\t\t\tthrow new Error('jp_template_id is required in jackpotOptIn');\n\t\t}\n\n\t\tconst result = await this.api.jackpotOptIn(null, filter);\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Opt-out currently logged in user from the jackpot with the specified jp_template_id.\n\t * You may call jackpotGet method after doing optout to see that user is not opted in to the jackpot.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.jackpotOptOut({ jp_template_id: 123 }).then((result) => {\n\t * console.log('Opted out from the jackpot');\n\t * });\n\t * ```\n\t *\n\t * **Visitor mode: not supported**\n\t *\n\t */\n\tpublic async jackpotOptOut(filter: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n\t\tif (!filter.jp_template_id) {\n\t\t\tthrow new Error('jp_template_id is required in jackpotOptOut');\n\t\t}\n\n\t\tconst result = await this.api.jackpotOptOut(null, filter);\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Returns the winners of the jackpot with the specified jp_template_id.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getJackpotWinners({\n\t * jp_template_id: 123,\n\t * }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * \n\t * **Visitor mode: not supported**\n\t * \n\t */\n\n\tpublic async getJackpotWinners({\n\t\tlimit,\n\t\toffset,\n\t\tjp_template_id,\n\t} : {\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tjp_template_id?: number;\n\t}): Promise<JackpotWinnerHistory[]> {\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.JackpotWinners + jp_template_id,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getJackpotWinnersT(null, limit, offset, jp_template_id),\n\t\t\tJACKPOT_WINNERS_CACHE_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns the eligible games for the jackpot with the specified jp_template_id.\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getJackpotEligibleGames({ jp_template_id: 123 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t * \n\t * **Visitor mode: not supported**\n\t * \n\t */\n\n\tpublic async getJackpotEligibleGames({ jp_template_id, onUpdate } : { jp_template_id: number, onUpdate?: () => void }): Promise<TGetJackpotEligibleGamesResponse> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.JackpotEligibleGames, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(\n\t\t\tonUpdateContextKey.JackpotEligibleGames + jp_template_id,\n\t\t\tECacheContext.WSAPI,\n\t\t\t() => this.api.getJackpotEligibleGamesT(null, { jp_template_id }),\n\t\t\tJACKPOT_ELIGIBLE_GAMES_CACHE_SEC,\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the related tournaments and missions for the provided game id for the current user\n\t * The provided Game ID should correspond to the ID from the Games Catalog - https://help.smartico.ai/welcome/technical-guides/games-catalog-api\n\t *\n\t * **Example**:\n\t * ```\n\t * _smartico.api.getRelatedItemsForGame('gold-slot2').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * ```\n\t * _smartico.vapi('EN').getRelatedItemsForGame('gold-slot2').then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t */\n\tpublic async getRelatedItemsForGame(related_game_id: string): Promise<GetRelatedAchTourResponse> {\n\t\tconst result = await this.api.getRelatedItemsForGame(null, related_game_id);\n\t\treturn result;\n\t}\n\n\t/**\n\t * Returns the list of Raffles available for user\n\t * The returned list of Raffles is cached for 30 seconds. But you can pass the onUpdate callback as a parameter. Note that each time you call getRaffles with a new onUpdate callback, the old one will be overwritten by the new one.\n\t * The onUpdate callback will be called on claiming prize. Updated Raffles will be passed to onUpdate callback.\n\t *\n\t * **Example**:\n\t * \n\t * ```\n\t * _smartico.api.getRaffles().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```\n\t * _smartico.vapi('EN').getRaffles().then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffles({ onUpdate }: { onUpdate?: (data: TRaffle[]) => void } = {}): Promise<TRaffle[]> {\n\t\tif (onUpdate) {\n\t\t\tthis.onUpdateCallback.set(onUpdateContextKey.Raffles, onUpdate);\n\t\t}\n\n\t\treturn OCache.use(onUpdateContextKey.Raffles, ECacheContext.WSAPI, () => this.api.getRafflesT(null), CACHE_DATA_SEC);\n\t}\n\n\t/**\n\t * Returns draw run for provided raffle_id and run_id\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.getRaffleDrawRun({raffle_id: 156, run_id: 145}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').getRaffleDrawRun({ raffle_id: 156, run_id: 145 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffleDrawRun(props: { raffle_id: number; run_id: number }): Promise<TRaffleDraw> {\n\t\tconst res = await this.api.getRaffleDrawRun(null, props);\n\n\t\tif (!props.raffle_id || !props.run_id) {\n\t\t\tthrow new Error('both raffle_id and run_id are required');\n\t\t}\n\n\t\treturn drawRunTransform(res);\n\t}\n\n\t/**\n\t * Returns history of draw runs for the provided raffle_id and draw_id, if the draw_id is not provided will return history of all the draws for the provided raffle_id\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.getRaffleDrawRunHistory({raffle_id:156, draw_id: 432}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').getRaffleDrawRunHistory({ raffle_id: 156, draw_id: 432 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\n\tpublic async getRaffleDrawRunsHistory(props: { raffle_id: number; draw_id?: number }): Promise<TRaffleDrawRun[]> {\n\t\tconst res = await this.api.getRaffleDrawRunsHistory(null, props);\n\n\t\tif (!props.raffle_id) {\n\t\t\tthrow new Error('raffle_id is required');\n\t\t}\n\n\t\treturn drawRunHistoryTransform(res);\n\t}\n\n\t/**\n\t * Returns error code, and error Message after calling the function, error message 0 - means that the request was successful\n\t *\n\t *\n\t * **Example**:\n\t * \n\t * ```javascript\n\t * _smartico.api.claimRafflePrize({won_id:251}).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t * **Example in the Visitor mode**:\n\t * \n\t * ```javascript\n\t * _smartico.vapi('EN').claimRafflePrize({ won_id: 251 }).then((result) => {\n\t * console.log(result);\n\t * });\n\t * ```\n\t *\n\t */\n\tpublic async claimRafflePrize(props: { won_id: number }): Promise<TransformedRaffleClaimPrizeResponse> {\n\t\tif (!props.won_id) {\n\t\t\tthrow new Error('won_id is required');\n\t\t}\n\n\t\tconst res = await this.api.claimRafflePrize(null, { won_id: props.won_id });\n\t\treturn raffleClaimPrizeResponseTransform(res);\n\t}\n}\n","export enum AchCustomSectionType {\n\tHTML_PAGE = 1,\n\tMISSIONS_CATEGORY = 2,\n\tTOURNAMENTS_CATEGORY = 3,\n\tLEVELS = 4,\n\tMINI_GAMES = 5,\n\tMISSION_CUSTOM_LAYOUT = 6,\n\tMATCH_X_AND_QUIZ = 7,\n\tREDIRECT_LINK = 9,\n\tLOOTBOX_WEEKLY = 10,\n\tLOOTBOX_CALENDAR_DAYS = 11,\n\tTREASURE_HUNT = 12,\n\tRAFFLE = 13,\n}\n\nexport enum AchCustomLayoutTheme {\n\tVALENTINES_LIGHT = 'valentines-light',\n\tVALENTINES_DARK = 'valentines-dark',\n\tEURO_2024 = 'euro-2024',\n\tGENERIC = 'generic',\n}\n\nexport enum AchMissionsTabsOptions {\n\tONLY_OVERVIEW = 1,\n\tNO_OVERVIEW = 2,\n\tALL = 3,\n}\n\nexport enum AchOverviewMissionsFilter {\n\tANY = 1,\n\tALL_MISSIONS = 2,\n\tALL_EXCEPT_COMPLETED = 3,\n\tALL_EXCEPT_LOCKED = 4,\n\tALL_EXCEPT_COMPLETED_AND_LOCKED = 5,\n}\n\nexport enum LiquidEntityData {\n\tMissions = 1,\n\tStore = 2,\n\tTournaments = 3,\n\tMiniGames = 4,\n\tLevels = 5,\n\tJackpots = 6,\n\tBonus = 7,\n\tLeaderboard = 8,\n\tBadges = 9,\n\tTournament = 10,\n}","import { TUICustomSection } from '../WSAPI/WSAPITypes';\nimport {\n\tAchCustomLayoutTheme,\n\tAchCustomSectionType,\n\tAchMissionsTabsOptions,\n\tAchOverviewMissionsFilter,\n\tLiquidEntityData,\n} from './AchCustomSection';\nimport { GetCustomSectionsResponse } from './GetCustomSectionsResponse';\n\nexport interface UICustomSection {\n\tbody?: string;\n\tmenu_img?: string;\n\tmenu_name?: string;\n\tcustom_skin_images?: string;\n\tsection_type_id?: AchCustomSectionType;\n\ttheme?: AchCustomLayoutTheme;\n\tgeneric_custom_css?: string;\n\tmission_tabs_options?: AchMissionsTabsOptions;\n\toverview_missions_filter?: AchOverviewMissionsFilter;\n\toverview_missions_count?: number;\n\tliquid_entity_data?: LiquidEntityData[];\n\tach_tournament_id?: number;\n\tshow_raw_data?: boolean;\n\tliquid_template?: number;\n}\n\nexport const UICustomSectionTransform = (response: GetCustomSectionsResponse): TUICustomSection[] => {\n\n\tconst items: TUICustomSection[] = [];\n\n\tObject.keys(response.customSections || []).forEach((key: string) => {\n\t\tconst r = response.customSections[key];\n\t\tconst id = parseInt(key);\n\t\tif (r.section_type_id !== undefined && r.section_type_id >= 1) {\n\t\t\tconst x: TUICustomSection = {\n\t\t\t\tid: id,\n\t\t\t\tbody: r.body,\n\t\t\t\tmenu_img: r.menu_img,\n\t\t\t\tmenu_name: r.menu_name,\n\t\t\t\tsection_type_id: r.section_type_id,\n\t\t\t\tcustom_skin_images: r.custom_skin_images,\n\t\t\t\tgeneric_custom_css: r.generic_custom_css,\n\t\t\t\tmission_tabs_options: r.mission_tabs_options,\n\t\t\t\toverview_missions_count: r.overview_missions_count,\n\t\t\t\toverview_missions_filter: r.overview_missions_filter,\n\t\t\t\ttheme: r.theme,\n\t\t\t\t...(r.section_type_id === AchCustomSectionType.LEVELS\n\t\t\t\t\t? {\n\t\t\t\t\t\tliquid_entity_data: r.liquid_entity_data,\n\t\t\t\t\t\tach_tournament_id: r.ach_tournament_id,\n\t\t\t\t\t\tshow_raw_data: r.show_raw_data,\n\t\t\t\t\t\tliquid_template: r.liquid_template,\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t\t),\n\t\t\t};\n\n\t\t\titems.push(x);\n\t\t}\n\t});\n\n\treturn items;\n};\n","import { BonusStatus } from './BonusStatus';\nimport { BonusTemplateMetaMap } from './BonusTemplateMetaMap';\nimport { BonusMetaMap } from './BonusMetaMap';\nimport { TBonus } from '../WSAPI/WSAPITypes';\n\nexport interface Bonus {\n\tid: number;\n\tredeemable?: boolean;\n\tcreateDate?: string;\n\tupdateDate?: string;\n\tredeemDate?: string;\n\tengagementUid?: string;\n\tlabelBonusTemplateId?: number;\n\tsourceProductRefId?: number;\n\tsourceProductId?: number;\n\tuserId?: number;\n\tbonusStatusId?: BonusStatus;\n\tlabelBonusTemplateMetaMap?: BonusTemplateMetaMap;\n\tbonusMetaMap?: BonusMetaMap;\n}\n\nexport const BonusItemsTransform = (items: Bonus[]): TBonus[] => {\n\treturn items\n\t\t.filter((r) => r.id >= 1)\n\t\t.map((r) => {\n\t\t\tconst x: TBonus = {\n\n bonus_id: r.id,\n is_redeemable: r.redeemable,\n create_date: r.createDate,\n redeem_date: r.redeemDate,\n label_bonus_template_id: r.labelBonusTemplateId,\n bonus_status_id: r.bonusStatusId,\n label_bonus_template_meta_map: r.labelBonusTemplateMetaMap,\n bonus_meta_map: r.bonusMetaMap\n\t\t\t};\n\n\t\t\treturn x;\n\t\t});\n};","export enum BonusStatus {\n\tNew = 1,\n\tCOUPON_ISSUED = 2,\n\tREDEEMED = 3,\n\tREDEEM_FAILED = 4, \n\tCOUPON_ISSUE_FAILED = 5, \n\tEXPIRED = 6, \n}","import { ProtocolResponse } from \"../Base/ProtocolResponse\";\nimport { JackPotWinner } from \"./JackPotWinner\";\n\nexport interface GetJackpotWinnersResponse extends ProtocolResponse {\n\t/** The list of jackpot winners */\n\twinners: JackpotWinnerHistory[];\n\t/** Whether there are more winners to fetch */\n\thas_more: boolean;\n}\n\nexport interface JackpotWinnerHistory {\n\t/** Id of the jackpot pot */\n\tjp_pot_id: number;\n\t/** Date of winning in milliseconds */\n\twin_date_ts: number;\n\t/** Info about jackpot winner */\n\twinner: JackPotWinner;\n}\n\n/**\n * @ignore\n */\nexport const GetJackpotWinnersResponseTransform = (items: JackpotWinnerHistory[]): JackpotWinnerHistory[] => {\n\treturn items.map((item) => {\n\t\tconst winnerInfo: JackpotWinnerHistory = {\n\t\t\twinner: item.winner,\n\t\t\twin_date_ts: item.win_date_ts,\n\t\t\tjp_pot_id: item.jp_pot_id,\n\t\t};\n\n\t\treturn winnerInfo;\n\t});\n};\n","import { ProtocolResponse } from '../Base/ProtocolResponse';\nimport { AchRelatedGame } from '../Base/AchRelatedGame';\n\nexport interface GetJackpotEligibleGamesResponse extends ProtocolResponse {\n\teligible_games: AchRelatedGame[];\n}\n\nexport interface TGetJackpotEligibleGamesResponse {\n\teligible_games: JackpotEligibleGame[];\n}\n\nexport interface JackpotEligibleGame {\n /** ID of the game on Smartico side */\n\tgame_id: number;\n /** ID of the game on operator side */\n ext_game_id: string;\n /** Name of the game */\n name: string;\n /** Link to the game */\n link: string;\n /** Image of the game */\n image: string;\n /** Whether the game is enabled */\n enabled: boolean;\n /** Categories of the game */\n game_categories: string[];\n /** Provider of the game */\n game_provider: string;\n /** The link to the mobile game */\n mobile_spec_link: string;\n}\n\n/**\n * @ignore\n */\nexport const GetJackpotEligibleGamesResponseTransform = ({ eligible_games } : { eligible_games: AchRelatedGame[]}): TGetJackpotEligibleGamesResponse => {\n\tconst games = eligible_games.map((game: AchRelatedGame) => ({\n\t\tgame_id: game.ach_game_id,\n\t\text_game_id: game.ext_game_id,\n\t\tname: game.game_public_meta.name,\n\t\tlink: game.game_public_meta.link,\n\t\timage: game.game_public_meta.image,\n\t\tenabled: game.game_public_meta.enabled,\n\t\tgame_categories: game.game_public_meta.game_categories,\n\t\tgame_provider: game.game_public_meta.game_provider,\n\t\tmobile_spec_link: game.game_public_meta.mobile_spec_link,\n\t}));\n\n\treturn { eligible_games: games };\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 {\n\tSAWDoAknowledgeRequest,\n\tSAWDoAknowledgeResponse,\n\tSAWDoSpinRequest,\n\tSAWDoSpinResponse,\n\tSAWHistoryTransform,\n\tSAWPrizesHistory,\n\tSAWSpinErrorCode,\n\tSAWTemplatesTransform,\n\tSAWWinningHistoryRequest,\n\tSAWWinningHistoryResponse,\n} from './MiniGames';\nimport { ECacheContext, OCache } from './OCache';\nimport {\n\tCoreUtils,\n\tGetTranslationsRequest,\n\tGetTranslationsResponse,\n\tPublicLabelSettings,\n\tResponseIdentify,\n\tTranslationArea,\n} from './Core';\nimport { GetLabelInfoResponse } from './Core/GetLabelInfoResponse';\nimport { GetLabelInfoRequest } from './Core/GetLabelInfoRequest';\nimport {\n\tGetInboxMessagesRequest,\n\tGetInboxMessagesResponse,\n\tInboxMessageBody,\n\tInboxMessageBodyTransform,\n\tInboxMessagesTransform,\n\tMarkInboxMessageDeletedRequest,\n\tMarkInboxMessageDeletedResponse,\n\tMarkInboxMessageReadRequest,\n\tMarkInboxMessageReadResponse,\n\tMarkInboxMessageStarredRequest,\n\tMarkInboxMessageStarredResponse,\n} from './Inbox';\nimport {\n\tBuyStoreItemRequest,\n\tBuyStoreItemResponse,\n\tGetCategoriesStoreResponse,\n\tGetStoreHistoryRequest,\n\tGetStoreHistoryResponse,\n\tGetStoreItemsResponse,\n\tStoreCategoryTransform,\n\tStoreItemPurchasedTransform,\n\tStoreItemTransform,\n} from './Store';\nimport {\n\tAchCategoryTransform,\n\tAchClaimPrizeRequest,\n\tAchClaimPrizeResponse,\n\tAchievementOptinRequest,\n\tAchievementOptinResponse,\n\tAchievementType,\n\tGetAchCategoriesResponse,\n\tGetAchievementMapRequest,\n\tGetAchievementMapResponse,\n\tUserAchievementTransform,\n} from './Missions';\nimport {\n\tGetTournamentInfoRequest,\n\tGetTournamentInfoResponse,\n\tGetTournamentsRequest,\n\tGetTournamentsResponse,\n\tTournamentItemsTransform,\n\tTournamentRegisterRequest,\n\tTournamentRegisterResponse,\n\ttournamentInfoItemTransform,\n} from './Tournaments';\nimport { GetLeaderBoardsRequest, GetLeaderBoardsResponse, LeaderBoardDetails, LeaderBoardPeriodType } from './Leaderboard';\nimport { GetLevelMapResponse, GetLevelMapResponseTransform } from './Level';\nimport { WSAPI } from './WSAPI/WSAPI';\nimport {\n\tTInboxMessage,\n\tTInboxMessageBody,\n\tTLevel,\n\tTMiniGameTemplate,\n\tTMissionOrBadge,\n\tTStoreCategory,\n\tTAchCategory,\n\tTStoreItem,\n\tTTournament,\n\tTTournamentDetailed,\n\tLeaderBoardDetailsT,\n\tUserLevelExtraCountersT,\n\tTSegmentCheckResult,\n\tTUICustomSection,\n\tTBonus,\n\tTRaffle,\n\tTLevelCurrent,\n} from './WSAPI/WSAPITypes';\nimport { getLeaderBoardTransform } from './Leaderboard/LeaderBoards';\nimport { GetAchievementsUserInfoResponse } from './Core/GetAchievementsUserInfoResponse';\nimport { CheckSegmentMatchResponse } from './Core/CheckSegmentMatchResponse';\nimport { CheckSegmentMatchRequest } from './Core/CheckSegmentMatchRequest';\nimport {\n\tGetJackpotsPotsRequest,\n\tGetJackpotsPotsResponse,\n\tGetJackpotsRequest,\n\tGetJackpotsResponse,\n\tJackpotsOptinRequest,\n\tJackpotsOptinResponse,\n\tJackpotsOptoutRequest,\n\tJackpotsOptoutResponse,\n} from './Jackpots';\nimport { GetCustomSectionsRequest, GetCustomSectionsResponse, UICustomSectionTransform } from './CustomSections';\nimport { BonusItemsTransform, ClaimBonusRequest, ClaimBonusResponse, GetBonusesResponse } from './Bonuses';\nimport { GetBonusesRequest } from './Bonuses/GetBonusesRequest';\nimport { SAWDoSpinBatchResponse } from './MiniGames/SAWDoSpinBatchResponse';\nimport { SAWDoSpinBatchRequest } from './MiniGames/SAWDoSpinBatchRequest';\nimport { SAWDoAcknowledgeBatchRequest } from './MiniGames/SAWDoAcknowledgeBatchRequest';\nimport { SAWDoAcknowledgeBatchResponse } from './MiniGames/SAWDoAcknowledgeBatchResponse';\nimport { GetRelatedAchTourRequest } from './Missions/GetRelatedAchTourRequest';\nimport { GetRelatedAchTourResponse } from './Missions/GetRelatedAchTourResponse';\nimport { GetRafflesResponse, raffleTransform } from './Raffle/GetRafflesResponse';\nimport { GetRafflesRequest } from './Raffle/GetRafflesRequest';\nimport { InboxCategories } from './Inbox/InboxCategories';\nimport { GetDrawRunRequest, GetDrawRunResponse, GetRaffleDrawRunsHistoryRequest, GetRaffleDrawRunsHistoryResponse, RaffleClaimPrizeRequest, RaffleClaimPrizeResponse } from './Raffle';\nimport { GetJackpotWinnersResponse, GetJackpotWinnersResponseTransform, JackpotWinnerHistory } from './Jackpots/GetJackpotWinnersResponse';\nimport { GetJackpotWinnersRequest } from './Jackpots/GetJackpotWinnersRequest';\nimport { GetJackpotEligibleGamesRequest } from './Jackpots/GetJackpotEligibleGamesRequest';\nimport { GetJackpotEligibleGamesResponse, GetJackpotEligibleGamesResponseTransform, JackpotEligibleGame, TGetJackpotEligibleGamesResponse } from './Jackpots/GetJackpotEligibleGamesResponse';\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\tlabel_api_key: string;\n\tuserPublicProps: any;\n\ton: (callBackKey: ClassId, func: (data: any) => void) => void;\n\tgetLabelSetting: (key: PublicLabelSettings) => any;\n\ttriggerExternalCallBack: (callBackKey: string, payload: any) => void;\n}\ninterface IOptions {\n\tlogger?: ILogger;\n\tlogCIDs?: ClassId[];\n\tlogHTTPTiming?: boolean;\n\ttracker?: Tracker;\n}\n\ntype MessageSender = (message: any, publicApuUrl?: string, expectCID?: ClassId) => Promise<any>;\n\nclass SmarticoAPI {\n\tprivate publicUrl: string;\n\tprivate wsUrl: string;\n\tprivate inboxCdnUrl: string;\n\tprivate partnerUrl: string;\n\tpublic avatarDomain: string;\n\n\tprivate logger: ILogger;\n\tprivate logCIDs: ClassId[];\n\tprivate logHTTPTiming: boolean;\n\tpublic tracker?: Tracker;\n\n\tpublic constructor(\n\t\tprivate label_api_key: string,\n\t\tprivate brand_api_key: string,\n\t\tprivate messageSender: MessageSender,\n\t\toptions: IOptions = {},\n\t) {\n\t\tthis.logger = options.logger || (console as any);\n\n\t\tif (this.logger.always === undefined) {\n\t\t\tthis.logger.always = this.logger.info;\n\t\t}\n\n\t\tthis.logCIDs = options.logCIDs || [];\n\t\tthis.logHTTPTiming = options.logHTTPTiming || false;\n\t\tthis.tracker = options.tracker;\n\n\t\tthis.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);\n\t\tthis.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);\n\n\t\tthis.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || options.tracker?.label_api_key);\n\n\t\tthis.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);\n\t}\n\n\tpublic static getEnvDnsSuffix(label_api_key: string): string {\n\t\tlet ENV_ID = label_api_key.length === 38 ? label_api_key.substring(37, 38) : '';\n\n\t\tif (ENV_ID === '1' || ENV_ID === '2') {\n\t\t\tENV_ID = '';\n\t\t}\n\t\treturn ENV_ID;\n\t}\n\n\tpublic static replaceSmrDomainsWithCloudfront<T>(value: string | {[key: string]: any}): T {\n\t\tif (!value) {\n\t\t\treturn value as T;\n\t\t}\n\n\t\tconst domains = {\n\t\t\t'img.smr.vc': 'd1am61onjxtys8.cloudfront.net',\n\t\t\t'img3.smr.vc': 'd3dubbodzd2q05.cloudfront.net',\n\t\t\t'img4.smr.vc': 'dvm0p9vsezqr2.cloudfront.net',\n\t\t\t'img5.smr.vc': 'd3gen1ksvxhac8.cloudfront.net',\n\t\t\t'img6.smr.vc': 'db1kmyg7iufeo.cloudfront.net',\n\t\t\t'img7.smr.vc': 'd36om2g86xefo6.cloudfront.net',\n\t\t\t'img8.smr.vc': 'd2zme31v54n5pb.cloudfront.net',\n\n\t\t\t'static.smr.vc': 'dtt380pweilws.cloudfront.net',\n\t\t\t'static3.smr.vc': 'd1qt8ake8g4imn.cloudfront.net',\n\t\t\t'static4.smr.vc': 'd146b4m7rkvjkw.cloudfront.net',\n\t\t\t'static5.smr.vc': 'd3l7suk1kl9rwh.cloudfront.net',\n\t\t\t'static6.smr.vc': 'd121pfj16xdfcq.cloudfront.net',\n\t\t\t'static7.smr.vc': 'd21deilz814qgl.cloudfront.net',\n\t\t\t'static8.smr.vc': 'd1uffsroxjy2ku.cloudfront.net',\n\t\t}\n\n\t\tconst escapeRegExp = (str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n\t\tlet replacedValue = typeof value === 'string' ? value : JSON.stringify(value);\n\n\t\tfor (const [oldDomain, newDomain] of Object.entries(domains)) {\n\t\t\treplacedValue = replacedValue.replace(new RegExp(escapeRegExp(oldDomain), 'g'), newDomain);\n\t\t}\n\n\t\ttry {\n\t\t\treturn typeof value === 'string' ? replacedValue as T : JSON.parse(replacedValue)\n\t\t} catch (err) {\n\t\t\treturn value as T;\n\t\t}\n\t}\n\n\tpublic static getEnvId(label_api_key: string): number {\n\t\treturn label_api_key.length === 38 ? parseInt(label_api_key.substring(37, 38), 10) : 2;\n\t}\n\n\tpublic static getCleanLabelApiKey(label_api_key: string): string {\n\t\treturn label_api_key.substring(0, 36);\n\t}\n\n\tpublic static getPublicUrl(label_api_key: string): string {\n\t\treturn PUBLIC_API_URL.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t}\n\n\tpublic static getPublicWsUrl(label_api_key: string): string {\n\t\treturn C_SOCKET_PROD.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t}\n\n\tpublic static getAvatarUrl(label_api_key: string): string {\n\t\tconst envId = SmarticoAPI.getEnvDnsSuffix(label_api_key);\n\t\tconst avatarUrl = AVATAR_DOMAIN.replace('{ENV_ID}', SmarticoAPI.getEnvDnsSuffix(label_api_key));\n\t\treturn SmarticoAPI.replaceSmrDomainsWithCloudfront(avatarUrl);\n\t}\n\n\tprivate async send<T>(message: any, expectCID?: ClassId, force_language?: string): Promise<T> {\n\t\tif (this.logCIDs.includes(message.cid)) {\n\t\t\tthis.logger.info('REQ', message);\n\t\t}\n\n\t\tif (force_language) {\n\t\t\tmessage.force_language = force_language;\n\t\t}\n\n\t\tlet result: any;\n\n\t\ttry {\n\t\t\tconst timeStart = new Date().getTime();\n\t\t\tresult = await this.messageSender(message, this.publicUrl, expectCID);\n\n\t\t\tif (result.errCode && result.errSetup) {\n\t\t\t\tthrow new Error(result.errMessage);\n\t\t\t}\n\n\t\t\tresult = SmarticoAPI.replaceSmrDomainsWithCloudfront(result);\n\t\t\tconst timeEnd = new Date().getTime();\n\n\t\t\tif (this.logHTTPTiming) {\n\t\t\t\tthis.logger.always('HTTP time, ms:' + (timeEnd - timeStart));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.logger.warn(`Failed to make request to smartico channel, L2. ${e.message}`, {\n\t\t\t\turl: this.publicUrl,\n\t\t\t\trequest: message,\n\t\t\t\terror: e.message,\n\t\t\t});\n\t\t\tthrow new Error(`Failed to make request to smartico channel, L2 L1. ${e.message}`);\n\t\t}\n\n\t\tif (this.logCIDs.includes(message.cid)) {\n\t\t\tthis.logger.info('RES', result);\n\t\t}\n\n\t\tif (expectCID) {\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tfor (const str of result as string[]) {\n\t\t\t\t\tconst obj: ProtocolResponse = JSON.parse(str);\n\t\t\t\t\tif (this.logCIDs.includes(obj.cid)) {\n\t\t\t\t\t\tthis.logger.info('RES', result);\n\t\t\t\t\t}\n\t\t\t\t\tif (obj.cid === expectCID) {\n\t\t\t\t\t\treturn obj as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.logger.error(`Cant find proper response in array, expected CID ${expectCID}`, {\n\t\t\t\t\trequest: message,\n\t\t\t\t\tresponse: result,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t} else {\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tif (result.length === 1) {\n\t\t\t\t\tconst obj = JSON.parse(result[0]);\n\t\t\t\t\tif (this.logCIDs.includes(obj.cid)) {\n\t\t\t\t\t\tthis.logger.info('RES', result);\n\t\t\t\t\t}\n\t\t\t\t\treturn obj;\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.error('Expected one response, but got array', { request: message, response: result });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tprivate buildMessage<TRequest, TResponse>(user_ext_id: string, cid: ClassId, payload: Partial<TRequest> = {}): TResponse {\n\t\tconst message: ProtocolRequest = {\n\t\t\t// AA: in fact we need api and brand keys and ext_user_id only in the context of HTTP\n\t\t\t// its not needed in WebSocket and can be deleted\n\t\t\tapi_key: this.label_api_key,\n\t\t\tbrand_key: this.brand_api_key,\n\t\t\text_user_id: user_ext_id,\n\t\t\tcid,\n\t\t\tuuid: IntUtils.uuid(),\n\t\t\tts: new Date().getTime(),\n\t\t\t...payload,\n\t\t};\n\n\t\tif (message.ext_user_id === undefined || message.ext_user_id === null) {\n\t\t\tdelete message.ext_user_id;\n\t\t}\n\n\t\tif (message.brand_key === undefined || message.brand_key === null) {\n\t\t\tdelete message.brand_key;\n\t\t}\n\n\t\treturn message as any;\n\t}\n\n\tpublic async coreReportCustomEvent(user_ext_id: string, eventType: string, payload: any = {}): Promise<any> {\n\t\tconst eventMessage = this.buildMessage<any, any>(user_ext_id, ClassId.EVENT, {\n\t\t\teventType,\n\t\t\tpayload,\n\t\t});\n\n\t\tconst eventResponse = await this.send<any>(eventMessage, ClassId.EVENT_RESPONSE);\n\t\treturn eventResponse;\n\t}\n\n\tpublic async coreGetTranslations(\n\t\tuser_ext_id: string,\n\t\tlang_code: string,\n\t\tareas: TranslationArea[],\n\t\tcacheSec: number = 60,\n\t): Promise<GetTranslationsResponse> {\n\t\tif (lang_code === undefined || lang_code === null || (lang_code.trim && lang_code.trim() === '')) {\n\t\t\tlang_code = DEFAULT_LANG_EN;\n\t\t}\n\n\t\tconst response = await OCache.use<GetTranslationsResponse>(\n\t\t\t`${lang_code}-${this.label_api_key}-${this.brand_api_key}`,\n\t\t\tECacheContext.Translations,\n\t\t\tasync () => {\n\t\t\t\tconst tsBaseRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(\n\t\t\t\t\tuser_ext_id,\n\t\t\t\t\tClassId.GET_TRANSLATIONS_REQUEST,\n\t\t\t\t\t{\n\t\t\t\t\t\tlang_code: DEFAULT_LANG_EN,\n\t\t\t\t\t\thash_code: null,\n\t\t\t\t\t\tareas,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tconst trBase = await this.send<GetTranslationsResponse>(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n\t\t\t\tif (lang_code !== DEFAULT_LANG_EN) {\n\t\t\t\t\tconst trUserRQ = this.buildMessage<GetTranslationsRequest, GetTranslationsResponse>(\n\t\t\t\t\t\tuser_ext_id,\n\t\t\t\t\t\tClassId.GET_TRANSLATIONS_REQUEST,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlang_code,\n\t\t\t\t\t\t\thash_code: null,\n\t\t\t\t\t\t\tareas,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\tconst trUser = await this.send<GetTranslationsResponse>(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);\n\n\t\t\t\t\tObject.keys(trUser?.translations ?? {}).forEach((k) => {\n\t\t\t\t\t\ttrBase.translations[k] = trUser.translations[k];\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn trBase;\n\t\t\t},\n\t\t\tcacheSec,\n\t\t);\n\n\t\treturn response;\n\t}\n\n\tpublic async coreIdentifyLabel(user_ext_id: string, cacheSec: number = 60): Promise<GetLabelInfoResponse> {\n\t\treturn OCache.use<GetLabelInfoResponse>(\n\t\t\t`${this.label_api_key} - ${this.brand_api_key}`,\n\t\t\tECacheContext.LabelInfo,\n\t\t\tasync () => {\n\t\t\t\tconst message = this.buildMessage<GetLabelInfoRequest, GetLabelInfoResponse>(user_ext_id, ClassId.INIT);\n\n\t\t\t\treturn this.send<GetLabelInfoResponse>(message, ClassId.INIT_RESPONSE);\n\t\t\t},\n\t\t\tcacheSec,\n\t\t);\n\t}\n\n\tpublic async coreIdentifyUser(user_ext_id: string): Promise<ResponseIdentify> {\n\t\tconst message = this.buildMessage<any, ResponseIdentify>(user_ext_id, ClassId.IDENTIFY, {\n\t\t\trequest_id: IntUtils.uuid(), // AA: do we need request_id?\n\t\t});\n\n\t\tconst r = await this.send<ResponseIdentify>(message, ClassId.IDENTIFY_RESPONSE);\n\n\t\tr.avatar_id = CoreUtils.avatarUrl(r.avatar_id, this.avatarDomain);\n\n\t\treturn r;\n\t}\n\n\tpublic async coreChangeUsername(\n\t\tuser_ext_id: string,\n\t\tpublic_username_custom: string,\n\t): Promise<{ public_username_custom: string }> {\n\t\tconst message = this.buildMessage<any, any>(user_ext_id, ClassId.CLIENT_SET_CUSTOM_USERNAME_REQUEST, {\n\t\t\tpublic_username_custom,\n\t\t});\n\n\t\treturn await this.send(message, ClassId.CLIENT_SET_CUSTOM_USERNAME_RESPONSE);\n\t}\n\n\tpublic async coreCheckSegments(user_ext_id: string, segment_id: number[]): Promise<TSegmentCheckResult[]> {\n\t\tconst message = this.buildMessage<CheckSegmentMatchRequest, any>(user_ext_id, ClassId.CHECK_SEGMENT_MATCH_REQUEST, {\n\t\t\tsegment_id,\n\t\t});\n\n\t\tconst results = await this.send<CheckSegmentMatchResponse>(message, ClassId.CHECK_SEGMENT_MATCH_RESPONSE);\n\n\t\treturn results.segments || [];\n\t}\n\n\tpublic async jackpotGet(\n\t\tuser_ext_id: string,\n\t\tfilter?: { related_game_id?: string; jp_template_id?: number },\n\t\tforce_language?: string,\n\t): Promise<GetJackpotsResponse> {\n\t\tconst message = this.buildMessage<GetJackpotsRequest, GetJackpotsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_JACKPOTS_REQUEST,\n\t\t\tfilter,\n\t\t);\n\t\treturn await this.send<GetJackpotsResponse>(message, ClassId.JP_GET_JACKPOTS_RESPONSE, force_language);\n\t}\n\n\tpublic async potGet(user_ext_id: string, filter: { jp_template_ids: number[] }): Promise<GetJackpotsPotsResponse> {\n\t\tconst message = this.buildMessage<GetJackpotsPotsRequest, GetJackpotsPotsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_LATEST_POTS_REQUEST,\n\t\t\tfilter,\n\t\t);\n\t\treturn await this.send<GetJackpotsPotsResponse>(message, ClassId.JP_GET_LATEST_POTS_RESPONSE);\n\t}\n\n\tpublic async jackpotOptIn(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptinResponse> {\n\t\tconst message = this.buildMessage<JackpotsOptinRequest, JackpotsOptinResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_OPTIN_REQUEST,\n\t\t\tpayload,\n\t\t);\n\t\treturn await this.send<JackpotsOptinResponse>(message, ClassId.JP_OPTIN_RESPONSE);\n\t}\n\n\tpublic async jackpotOptOut(user_ext_id: string, payload: { jp_template_id: number }): Promise<JackpotsOptoutResponse> {\n\t\tconst message = this.buildMessage<JackpotsOptoutRequest, JackpotsOptoutResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_OPTOUT_REQUEST,\n\t\t\tpayload,\n\t\t);\n\t\treturn await this.send<JackpotsOptoutResponse>(message, ClassId.JP_OPTOUT_RESPONSE);\n\t}\n\n\tpublic async getJackpotWinners(user_ext_id: string, limit: number = 20, offset: number = 0, jp_template_id: number ): Promise<GetJackpotWinnersResponse> {\n\t\tconst message = this.buildMessage<GetJackpotWinnersRequest, GetJackpotWinnersResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_WINNERS_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tjp_template_id,\n\t\t\t},\n\t\t);\n\t\treturn await this.send<GetJackpotWinnersResponse>(message, ClassId.JP_GET_WINNERS_RESPONSE);\n\t}\n\n\tpublic async getJackpotWinnersT(user_ext_id: string, limit: number = 20, offset: number = 0, jp_template_id: number ): Promise<JackpotWinnerHistory[]> {\n\t\treturn GetJackpotWinnersResponseTransform((await this.getJackpotWinners(user_ext_id, limit, offset, jp_template_id)).winners);\n\t}\n\n\tpublic async getJackpotEligibleGames(user_ext_id: string, { jp_template_id } : { jp_template_id: number }): Promise<GetJackpotEligibleGamesResponse> {\n\t\tconst message = this.buildMessage<GetJackpotEligibleGamesRequest, GetJackpotEligibleGamesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.JP_GET_ELIGIBLE_GAMES_REQUEST,\n\t\t\t{ jp_template_id },\n\t\t);\n\n\t\treturn await this.send<GetJackpotEligibleGamesResponse>(message, ClassId.JP_GET_ELIGIBLE_GAMES_RESPONSE);;\n\t}\n\n\tpublic async getJackpotEligibleGamesT(user_ext_id: string, { jp_template_id } : { jp_template_id: number }): Promise<TGetJackpotEligibleGamesResponse> {\n\t\treturn GetJackpotEligibleGamesResponseTransform(await this.getJackpotEligibleGames(user_ext_id, { jp_template_id }));\n\t}\n\n\tpublic async sawGetTemplates(\n\t\tuser_ext_id: string,\n\t\tforce_language?: string,\n\t\tis_visitor_mode: boolean = false,\n\t): Promise<SAWGetTemplatesResponse> {\n\t\tconst message = this.buildMessage<SAWGetTemplatesRequest, SAWGetTemplatesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_GET_SPINS_REQUEST,\n\t\t\t{ is_visitor_mode },\n\t\t);\n\n\t\tconst response = await this.send<SAWGetTemplatesResponse>(message, ClassId.SAW_GET_SPINS_RESPONSE, force_language);\n\n\t\tif (response && response.templates) {\n\t\t\tresponse.templates.forEach((t) => {\n\t\t\t\tif (t.jackpot_current !== undefined && t.jackpot_current !== null) {\n\t\t\t\t\tconst jackpotValue =\n\t\t\t\t\t\tt.jackpot_current +\n\t\t\t\t\t\t(t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');\n\t\t\t\t\tt.saw_template_ui_definition.name = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.name,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.saw_template_ui_definition.description = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.description,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.saw_template_ui_definition.promo_text = IntUtils.replaceAll(\n\t\t\t\t\t\tt.saw_template_ui_definition.promo_text,\n\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t);\n\t\t\t\t\tt.prizes.forEach((p) => {\n\t\t\t\t\t\tp.saw_prize_ui_definition.name = IntUtils.replaceAll(\n\t\t\t\t\t\t\tp.saw_prize_ui_definition.name,\n\t\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tp.saw_prize_ui_definition.aknowledge_message = IntUtils.replaceAll(\n\t\t\t\t\t\t\tp.saw_prize_ui_definition.aknowledge_message,\n\t\t\t\t\t\t\t'{{jackpot}}',\n\t\t\t\t\t\t\tjackpotValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async sawGetTemplatesT(user_ext_id: string): Promise<TMiniGameTemplate[]> {\n\t\treturn SAWTemplatesTransform((await this.sawGetTemplates(user_ext_id)).templates);\n\t}\n\n\tpublic async doAcknowledgeRequest(user_ext_id: string, request_id: string): Promise<SAWDoAknowledgeResponse> {\n\t\tconst message = this.buildMessage<SAWDoAknowledgeRequest, SAWDoAknowledgeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_AKNOWLEDGE_REQUEST,\n\t\t\t{\n\t\t\t\trequest_id,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<SAWDoAknowledgeResponse>(message, ClassId.SAW_AKNOWLEDGE_RESPONSE);\n\t}\n\n\tpublic async sawSpinRequest(user_ext_id: string, saw_template_id: number, round_id?: number): Promise<SAWDoSpinResponse> {\n\t\tif (!saw_template_id) {\n\t\t\tthrow new Error('Missing template id');\n\t\t}\n\n\t\tconst request_id = IntUtils.uuid();\n\n\t\tconst message = this.buildMessage<SAWDoSpinRequest, SAWDoSpinResponse>(user_ext_id, ClassId.SAW_DO_SPIN_REQUEST, {\n\t\t\tsaw_template_id,\n\t\t\trequest_id,\n\t\t});\n\n\t\tconst spinAttemptResponse = await this.send<SAWDoSpinResponse>(message, ClassId.SAW_DO_SPIN_RESPONSE);\n\n\t\t// to simulate fail\n\t\t// response.errCode = SAWSpinErrorCode.SAW_NO_SPINS;\n\n\t\tconst status: string =\n\t\t\t{\n\t\t\t\t[SAWSpinErrorCode.SAW_OK]: 'OK',\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_SPINS]: 'NO SPINS AVAILABLE',\n\t\t\t\t[SAWSpinErrorCode.SAW_PRIZE_POOL_EMPTY]: 'PRIZE POOL IS EMPTY',\n\t\t\t\t[SAWSpinErrorCode.SAW_NOT_ENOUGH_POINTS]: 'NOT ENOUGH POINTS',\n\t\t\t\t[SAWSpinErrorCode.SAW_FAILED_MAX_SPINS_REACHED]: 'MAX SPIN ATTEMPTS REACHED',\n\t\t\t\t[SAWSpinErrorCode.SAW_TEMPLATE_NOT_ACTIVE]: \"MINIGAME IS NOT IN ACTIVE PERIOD\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NOT_IN_SEGMENT]: \"USER IS NOT IN SEGMENT\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_BALANCE_GEMS]: \"NOT ENOUGH GEMS\",\n\t\t\t\t[SAWSpinErrorCode.SAW_NO_BALANCE_DIAMONDS]: \"NOT ENOUGH DIAMONDS\",\n\t\t\t}[spinAttemptResponse.errCode] || 'OTHER';\n\n\t\tawait this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n\t\t\tsaw_template_id,\n\t\t\tstatus,\n\t\t\tround_id,\n\t\t});\n\n\t\treturn { ...spinAttemptResponse, request_id };\n\t}\n\n\n\tpublic async doAcknowledgeBatchRequest(user_ext_id: string, request_ids: string[]): Promise<SAWDoAcknowledgeBatchResponse> {\n\t\tconst message = this.buildMessage<SAWDoAcknowledgeBatchRequest, SAWDoAcknowledgeBatchResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.SAW_AKNOWLEDGE_REQUEST,\n\t\t\t{\n\t\t\t\trequest_ids,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<SAWDoAcknowledgeBatchResponse>(message, ClassId.SAW_AKNOWLEDGE_BATCH_RESPONSE);\n\t}\n\n\tpublic async sawSpinBatchRequest(user_ext_id: string, saw_template_id: number, spins_count: number): Promise<SAWDoSpinBatchResponse> {\n\n\t\tconst spins = [];\n\t\tfor (let i = 0; i < spins_count; i++) {\n\t\t\tconst request_id = IntUtils.uuid();\n\t\t\tspins.push({ request_id, saw_template_id })\n\t\t}\n\n\t\tconst message = this.buildMessage<SAWDoSpinBatchRequest, SAWDoSpinBatchResponse>(user_ext_id, ClassId.SAW_DO_SPIN_BATCH_REQUEST, { spins });\n\t\tconst spinAttemptResponse = await this.send<SAWDoSpinBatchResponse>(message, ClassId.SAW_DO_SPIN_BATCH_RESPONSE);\n\n\t\t// If one response is 'OK' we consider that whole result is 'OK'\n\t\tconst result = spinAttemptResponse.results.find((res) => res.errCode === 0);\n\n\t\tlet status = 'OK';\n\t\tif (!result) {\n\t\t\tstatus = 'BATCH FAIL';\n\t\t}\n\n\t\tawait this.coreReportCustomEvent(user_ext_id, 'minigame_attempt', {\n\t\t\tsaw_template_id,\n\t\t\tstatus,\n\t\t\tspins_count,\n\t\t});\n\n\t\treturn { ...spinAttemptResponse };\n\t}\n\n\tpublic async getSawWinningHistory(user_ext_id: string, limit: number = 20, offset: number = 0, saw_template_id: number): Promise<SAWWinningHistoryResponse> {\n\t\tconst message = this.buildMessage<SAWWinningHistoryRequest, SAWWinningHistoryResponse>(user_ext_id, ClassId.GET_SAW_HISTORY_REQUEST, {\n\t\t\tlimit, offset, saw_template_id\n\t\t})\n\n\t\treturn await this.send<SAWWinningHistoryResponse>(message, ClassId.GET_SAW_HISTORY_RESPONSE);\n\t}\n\n\tpublic async getSawWinningHistoryT(user_ext_id: string, limit?: number, offset?: number, saw_template_id?: number): Promise<SAWPrizesHistory[]> {\n\t\treturn SAWHistoryTransform((await this.getSawWinningHistory(user_ext_id, limit, offset, saw_template_id)).prizes);\n\t}\n\t\n\tpublic async missionOptIn(user_ext_id: string, mission_id: number) {\n\t\tif (!mission_id) {\n\t\t\tthrow new Error('Missing mission id');\n\t\t}\n\t\tconst message = this.buildMessage<AchievementOptinRequest, AchievementOptinResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MISSION_OPTIN_REQUEST,\n\t\t\t{\n\t\t\t\tachievementId: mission_id,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<AchievementOptinResponse>(message, ClassId.MISSION_OPTIN_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async missionClaimPrize(user_ext_id: string, mission_id: number, ach_completed_id: number) {\n\t\tif (!mission_id) {\n\t\t\tthrow new Error('Missing mission id');\n\t\t}\n\n\t\tconst message = this.buildMessage<AchClaimPrizeRequest, AchClaimPrizeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.ACHIEVEMENT_CLAIM_PRIZE_REQUEST,\n\t\t\t{\n\t\t\t\tach_id: mission_id,\n\t\t\t\tach_completed_id: ach_completed_id,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<AchClaimPrizeResponse>(message, ClassId.ACHIEVEMENT_CLAIM_PRIZE_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async registerInTournament(user_ext_id: string, tournamentInstanceId: number) {\n\t\tif (!tournamentInstanceId) {\n\t\t\tthrow new Error('Missing tournament instance id');\n\t\t}\n\t\tconst message = this.buildMessage<TournamentRegisterRequest, TournamentRegisterResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.TOURNAMENT_REGISTER_REQUEST,\n\t\t\t{\n\t\t\t\ttournamentInstanceId,\n\t\t\t},\n\t\t);\n\n\t\tconst res = await this.send<TournamentRegisterResponse>(message, ClassId.TOURNAMENT_REGISTER_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async buyStoreItem(user_ext_id: string, itemId: number) {\n\t\tif (!itemId) {\n\t\t\tthrow new Error('Missing store item id');\n\t\t}\n\t\tconst message = this.buildMessage<BuyStoreItemRequest, BuyStoreItemResponse>(user_ext_id, ClassId.BUY_SHOP_ITEM_REQUEST, {\n\t\t\titemId,\n\t\t});\n\n\t\tconst res = await this.send<BuyStoreItemResponse>(message, ClassId.BUY_SHOP_ITEM_RESPONSE);\n\n\t\treturn res;\n\t}\n\n\tpublic async inboxGetMessages(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 10,\n\t\toffset: number = 0,\n\t): Promise<GetInboxMessagesResponse> {\n\t\tconst message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_INBOX_MESSAGES_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\t}\n\n\tpublic async storeGetItems(user_ext_id: string, force_language?: string): Promise<GetStoreItemsResponse> {\n\t\tconst message = this.buildMessage<any, GetStoreItemsResponse>(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);\n\t\treturn await this.send<GetStoreItemsResponse>(message, ClassId.GET_SHOP_ITEMS_RESPONSE, force_language);\n\t}\n\n\tpublic async storeGetItemsT(user_ext_id: string): Promise<TStoreItem[]> {\n\t\treturn StoreItemTransform((await this.storeGetItems(user_ext_id)).items);\n\t}\n\n\tpublic async storeGetCategories(user_ext_id: string, force_language?: string): Promise<GetCategoriesStoreResponse> {\n\t\tconst message = this.buildMessage<any, GetCategoriesStoreResponse>(user_ext_id, ClassId.GET_SHOP_CATEGORIES_REQUEST);\n\t\treturn await this.send<GetCategoriesStoreResponse>(message, ClassId.GET_SHOP_CATEGORIES_RESPONSE, force_language);\n\t}\n\n\tpublic async storeGetCategoriesT(user_ext_id: string): Promise<TStoreCategory[]> {\n\t\treturn StoreCategoryTransform((await this.storeGetCategories(user_ext_id)).categories);\n\t}\n\n\tpublic async storeGetPurchasedItems(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 20,\n\t\toffset: number = 0,\n\t): Promise<GetStoreHistoryResponse> {\n\t\tconst message = this.buildMessage<GetStoreHistoryRequest, GetStoreHistoryResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.ACH_SHOP_ITEM_HISTORY_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<GetStoreHistoryResponse>(message, ClassId.ACH_SHOP_ITEM_HISTORY_RESPONSE);\n\t}\n\n\tpublic async storeGetPurchasedItemsT(user_ext_id: string, limit?: number, offset?: number): Promise<TStoreItem[]> {\n\t\treturn StoreItemPurchasedTransform((await this.storeGetPurchasedItems(user_ext_id, limit, offset)).items);\n\t}\n\n\tpublic async missionsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetAchievementMapResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t// we need to clone response to avoid changing original object,for cases when its called together with badgesGetItems (e.g. in Promise.all)\n\t\tconst responseClone = { ...response };\n\n\t\tif (responseClone.achievements) {\n\t\t\tresponseClone.achievements = responseClone.achievements.filter((a) => a.ach_type_id === AchievementType.Mission);\n\t\t}\n\t\treturn responseClone;\n\t}\n\n\tpublic async missionsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n\t\treturn UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);\n\t}\n\n\tpublic async getUserGamificationInfo(user_ext_id: string): Promise<GetAchievementsUserInfoResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementsUserInfoResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_USER_REQUEST,\n\t\t);\n\n\t\treturn await this.send<GetAchievementsUserInfoResponse>(message, ClassId.GET_ACHIEVEMENT_USER_RESPONSE);\n\t}\n\n\tpublic async getUserGamificationInfoT(user_ext_id: string): Promise<UserLevelExtraCountersT> {\n\t\tconst response = await this.getUserGamificationInfo(user_ext_id);\n\n\t\treturn {\n\t\t\tlevel_counter_1: response.level_counter_1,\n\t\t\tlevel_counter_2: response.level_counter_2,\n\t\t};\n\t}\n\n\tpublic async achGetCategories(user_ext_id: string, force_language?: string): Promise<GetAchCategoriesResponse> {\n\t\tconst message = this.buildMessage<any, GetAchCategoriesResponse>(user_ext_id, ClassId.GET_ACH_CATEGORIES_REQUEST);\n\t\treturn await this.send<GetAchCategoriesResponse>(message, ClassId.GET_ACH_CATEGORIES_RESPONSE, force_language);\n\t}\n\n\tpublic async achGetCategoriesT(user_ext_id: string): Promise<TAchCategory[]> {\n\t\treturn AchCategoryTransform((await this.achGetCategories(user_ext_id)).categories);\n\t}\n\n\tpublic async badgetsGetItems(user_ext_id: string, force_language?: string): Promise<GetAchievementMapResponse> {\n\t\tconst message = this.buildMessage<GetAchievementMapRequest, GetAchievementMapResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetAchievementMapResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_ACHIEVEMENT_MAP_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t// we need to clone response to avoid changing original object,for cases when its called together with missionsGetItems (e.g. in Promise.all)\n\t\tconst responseClone = { ...response };\n\n\t\tif (responseClone.achievements) {\n\t\t\tresponseClone.achievements = responseClone.achievements.filter((a) => a.ach_type_id === AchievementType.Badge);\n\t\t}\n\t\treturn responseClone;\n\t}\n\n\tpublic async bonusesGetItems(user_ext_id: string, force_language?: string): Promise<GetBonusesResponse> {\n\t\tconst message = this.buildMessage<GetBonusesRequest, GetBonusesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_BONUSES_REQUEST,\n\t\t);\n\t\tconst response = await this.send<GetBonusesResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_BONUSES_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\t\t\n\t\tconst responseClone = { ...response };\n\n\t\treturn responseClone;\n\t}\n\tpublic async bonusClaimItem(user_ext_id: string, bonus_id: number): Promise<ClaimBonusResponse> {\n\t\tconst message = this.buildMessage<ClaimBonusRequest, ClaimBonusResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.CLAIM_BONUS_REQUEST,\n\t\t\t{ bonusId: bonus_id }\n\n\t\t);\n\t\tconst response = await this.send<ClaimBonusResponse>(\n\t\t\tmessage,\n\t\t\tClassId.CLAIM_BONUS_RESPONSE,\n\n\t\t);\n\t\t\n\t\tconst responseClone = { ...response };\n\n\t\treturn responseClone;\n\t}\n\n\tpublic async bonusesGetItemsT(user_ext_id: string): Promise<TBonus[]> {\n\t\treturn BonusItemsTransform((await this.bonusesGetItems(user_ext_id)).bonuses);\n\t}\n\n\tpublic async badgetsGetItemsT(user_ext_id: string): Promise<TMissionOrBadge[]> {\n\t\treturn UserAchievementTransform((await this.badgetsGetItems(user_ext_id)).achievements);\n\t}\n\n\tpublic async tournamentsGetLobby(user_ext_id: string, force_language?: string): Promise<GetTournamentsResponse> {\n\t\tconst message = this.buildMessage<GetTournamentsRequest, GetTournamentsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_TOURNAMENT_LOBBY_REQUEST,\n\t\t);\n\t\treturn await this.send<GetTournamentsResponse>(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE, force_language);\n\t}\n\n\tpublic async tournamentsGetLobbyT(user_ext_id: string): Promise<TTournament[]> {\n\t\treturn TournamentItemsTransform((await this.tournamentsGetLobby(user_ext_id)).tournaments);\n\t}\n\n\tpublic async tournamentsGetInfo(\n\t\tuser_ext_id: string,\n\t\ttournamentInstanceId: number,\n\t\tforce_language?: string,\n\t): Promise<GetTournamentInfoResponse> {\n\t\tconst message = this.buildMessage<GetTournamentInfoRequest, GetTournamentInfoResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_TOURNAMENT_INFO_REQUEST,\n\t\t\t{\n\t\t\t\ttournamentInstanceId,\n\t\t\t},\n\t\t);\n\t\tconst response = await this.send<GetTournamentInfoResponse>(\n\t\t\tmessage,\n\t\t\tClassId.GET_TOURNAMENT_INFO_RESPONSE,\n\t\t\tforce_language,\n\t\t);\n\n\t\tif (response.userPosition?.avatar_id) {\n\t\t\tresponse.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);\n\t\t}\n\n\t\tif (response.tournamentInfo?.players?.length) {\n\t\t\tresponse.tournamentInfo.players.forEach((p) => {\n\t\t\t\tp.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n\t\t\t});\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async tournamentsGetInfoT(user_ext_id: string, tournamentInstanceId: number): Promise<TTournamentDetailed> {\n\t\tif (!tournamentInstanceId) {\n\t\t\tthrow new Error('Missing tournament instance id');\n\t\t}\n\t\tconst response = await this.tournamentsGetInfo(user_ext_id, tournamentInstanceId);\n\t\treturn tournamentInfoItemTransform(response);\n\t}\n\n\tpublic async leaderboardGet(\n\t\tuser_ext_id: string,\n\t\tperiod_type_id?: LeaderBoardPeriodType,\n\t\tprevPeriod: boolean = false,\n\t\tforce_language?: string,\n\t): Promise<LeaderBoardDetails> {\n\t\tconst message = this.buildMessage<GetLeaderBoardsRequest, GetLeaderBoardsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_LEADERS_BOARD_REQUEST,\n\t\t\t{\n\t\t\t\tperiod_type_id,\n\t\t\t\tsnapshot_offset: prevPeriod ? 1 : 0,\n\t\t\t\tinclude_users: true,\n\t\t\t},\n\t\t);\n\n\t\tconst response = await this.send<GetLeaderBoardsResponse>(message, ClassId.GET_LEADERS_BOARD_RESPONSE, force_language);\n\n\t\tconst boardKey = Object.keys(response.map || {}).find((k) => period_type_id === undefined || k === period_type_id?.toString());\n\n\t\tif (boardKey === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (response.map[boardKey]?.userPosition?.avatar_id) {\n\t\t\tresponse.map[boardKey].userPosition.avatar_url = CoreUtils.avatarUrl(\n\t\t\t\tresponse.map[boardKey].userPosition.avatar_id,\n\t\t\t\tthis.avatarDomain,\n\t\t\t);\n\t\t}\n\n\t\tif (response.map[boardKey]?.positions?.length) {\n\t\t\tresponse.map[boardKey].positions.forEach((p) => {\n\t\t\t\tp.avatar_url = CoreUtils.avatarUrl(p.avatar_id, this.avatarDomain);\n\t\t\t});\n\t\t}\n\n\t\treturn response.map[boardKey];\n\t}\n\n\tpublic async leaderboardsGetT(\n\t\tuser_ext_id: string,\n\t\tperiod_type_id: LeaderBoardPeriodType = LeaderBoardPeriodType.DAILY,\n\t\tprevPeriod: boolean = false,\n\t): Promise<LeaderBoardDetailsT> {\n\t\treturn getLeaderBoardTransform(await this.leaderboardGet(user_ext_id, period_type_id, prevPeriod));\n\t}\n\n\tpublic async levelsGet(user_ext_id: string, force_language?: string): Promise<GetLevelMapResponse> {\n\t\tconst message = this.buildMessage<any, GetLevelMapResponse>(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);\n\t\treturn await this.send<GetLevelMapResponse>(message, ClassId.GET_LEVEL_MAP_RESPONSE, force_language);\n\t}\n\n\tpublic async levelsGetT(user_ext_id: string): Promise<TLevel[]> {\n\t\treturn GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));\n\t}\n\n\tpublic async getLevelCurrent(user_ext_id: string): Promise<TLevelCurrent> {\n\t\tconst levels = await this.levelsGetT(user_ext_id);\n\t\tconst userInfo = await this.getUserGamificationInfo(user_ext_id);\n\t\tif (!levels || levels.length === 0) return null;\n\n\t\tconst sortedLevels = [...levels].sort((a, b) => a.required_points - b.required_points);\n\n\t\tlet currentLevelIndex = sortedLevels.findIndex((level) => level.id === userInfo.current_level);\n\n\t\tif (currentLevelIndex === -1) {\n\t\t\tconst userPointsEver = userInfo.points_ever ?? 0;\n\t\t\tcurrentLevelIndex = sortedLevels.findIndex((level, index) => {\n\t\t\t\tconst nextLevel = sortedLevels[index + 1];\n\t\t\t\treturn userPointsEver >= level.required_points && (!nextLevel || userPointsEver < nextLevel.required_points);\n\t\t\t});\n\t\t\tif (currentLevelIndex === -1) {\n\t\t\t\tcurrentLevelIndex = sortedLevels.length - 1;\n\t\t\t}\n\t\t}\n\n\t\tconst currentLevel = sortedLevels[currentLevelIndex];\n\t\tconst nextLevel = sortedLevels[currentLevelIndex + 1];\n\t\tconst userPointsEver = userInfo.points_ever ?? 0;\n\t\tconst progress = nextLevel\n\t\t\t? ((userPointsEver - currentLevel.required_points) / (nextLevel.required_points - currentLevel.required_points)) * 100\n\t\t\t: 100;\n\n\t\treturn {\n\t\t\t...currentLevel,\n\t\t\tordinal_position: currentLevelIndex + 1,\n\t\t\tprogress: Math.min(Math.max(progress, 0), 100),\n\t\t};\n\t}\n\n\tpublic async customSectionsGet(user_ext_id: string, force_language?: string): Promise<GetCustomSectionsResponse> {\n\t\tconst message = this.buildMessage<GetCustomSectionsRequest, GetCustomSectionsResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_CUSTOM_SECTIONS_REQUEST,\n\t\t);\n\t\treturn await this.send<GetCustomSectionsResponse>(message, ClassId.GET_CUSTOM_SECTIONS_RESPONSE, force_language);\n\t}\n\n\tpublic async customSectionsGetT(user_ext_id: string): Promise<TUICustomSection[]> {\n\t\treturn UICustomSectionTransform(await this.customSectionsGet(user_ext_id));\n\t}\n\n\tpublic async getTranslationsT(\n\t\tuser_ext_id: string,\n\t\tlang_code: string,\n\t\tareas: TranslationArea[],\n\t\tcacheSec: number = 60,\n\t): Promise<GetTranslationsResponse> {\n\t\treturn await this.coreGetTranslations(user_ext_id, lang_code, areas, 30);\n\t}\n\n\tpublic async getInboxMessages(\n\t\tuser_ext_id: string,\n\t\tlimit: number = 20,\n\t\toffset: number = 0,\n\t\tstarred_only: boolean,\n\t\tcategory_id?: InboxCategories,\n\t): Promise<GetInboxMessagesResponse> {\n\t\tconst message = this.buildMessage<GetInboxMessagesRequest, GetInboxMessagesResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_INBOX_MESSAGES_REQUEST,\n\t\t\t{\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tstarred_only,\n\t\t\t\tcategory_id,\n\t\t\t},\n\t\t);\n\t\treturn await this.send<GetInboxMessagesResponse>(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);\n\t}\n\n\tpublic async getInboxMessagesT(\n\t\tuser_ext_id: string,\n\t\tfrom: number = 0,\n\t\tto: number = 20,\n\t\tfavoriteOnly: boolean = false,\n\t\tcategoryId?: InboxCategories,\n\t): Promise<TInboxMessage[]> {\n\t\tconst limit = to - from > 20 ? 20 : to - from;\n\t\tconst offset = from;\n\n\t\treturn InboxMessagesTransform((await this.getInboxMessages(user_ext_id, limit, offset, favoriteOnly, categoryId)).log);\n\t}\n\n\tpublic async getInboxUnreadCountT(\n\t\tuser_ext_id: string,\n\t): Promise<number> {\n\t\tconst limit = 1;\n\t\tconst offset = 0;\n\n\t\treturn (await this.getInboxMessages(user_ext_id, limit, offset, false, null)).unread_count;\n\t}\n\n\tpublic async getInboxMessageBody(messageGuid: string): Promise<InboxMessageBody> {\n\t\tconst getMessageBody = async (messageGuid: string): Promise<InboxMessageBody> => {\n\t\t\tconst inboxCdnUrl = this.tracker.getLabelSetting(PublicLabelSettings.INBOX_PUBLIC_CDN);\n\n\t\t\ttry {\n\t\t\t\tconst url = `${inboxCdnUrl}${messageGuid}.json`;\n\n\t\t\t\tconst response = await fetch(url, {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Access-Control-Allow-Origin': '*',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst data = await response.json();\n\t\t\t\treturn data || {};\n\t\t\t} catch (error) {\n\t\t\t\tthis.logger.error('Error fetching inbox message body:', error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\n\t\treturn await getMessageBody(messageGuid);\n\t}\n\n\tpublic async getInboxMessageBodyT(messageGuid: string): Promise<TInboxMessageBody> {\n\t\tconst message = await this.getInboxMessageBody(messageGuid);\n\t\treturn InboxMessageBodyTransform(message);\n\t}\n\n\tpublic async markInboxMessageRead(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageReadResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_READ_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n\t}\n\n\tpublic async markAllInboxMessageRead(user_ext_id: string): Promise<MarkInboxMessageReadResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageReadRequest, MarkInboxMessageReadResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_READ_REQUEST,\n\t\t\t{\n\t\t\t\tall_read: true,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageReadResponse>(message, ClassId.MARK_INBOX_READ_RESPONSE);\n\t}\n\n\tpublic async markUnmarkInboxMessageAsFavorite(\n\t\tuser_ext_id: string,\n\t\tmessageGuid: string,\n\t\tmark: boolean,\n\t): Promise<MarkInboxMessageStarredResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageStarredRequest, MarkInboxMessageStarredResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_STARRED_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t\tis_starred: mark,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageStarredResponse>(message, ClassId.MARK_INBOX_STARRED_RESPONSE);\n\t}\n\n\tpublic async deleteInboxMessage(user_ext_id: string, messageGuid: string): Promise<MarkInboxMessageDeletedResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_DELETED_REQUEST,\n\t\t\t{\n\t\t\t\tengagement_uid: messageGuid,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n\t}\n\n\tpublic async deleteAllInboxMessages(user_ext_id: string): Promise<MarkInboxMessageDeletedResponse> {\n\t\tconst message = this.buildMessage<MarkInboxMessageDeletedRequest, MarkInboxMessageDeletedResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.MARK_INBOX_DELETED_REQUEST,\n\t\t\t{\n\t\t\t\tall_deleted: true,\n\t\t\t},\n\t\t);\n\n\t\treturn await this.send<MarkInboxMessageDeletedResponse>(message, ClassId.MARK_INBOX_DELETED_RESPONSE);\n\t}\n\n\tpublic getWSCalls(): WSAPI {\n\t\treturn new WSAPI(this);\n\t}\n\n\tpublic async getRelatedItemsForGame(user_ext_id: string, related_game_id: string,): Promise<GetRelatedAchTourResponse> {\n\t\tconst message = this.buildMessage< GetRelatedAchTourRequest, GetRelatedAchTourResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.GET_RELATED_ACH_N_TOURNAMENTS_REQUEST,\n\t\t\t{\n\t\t\t\trelated_game_id: related_game_id\n\t\t\t}\n\t\t);\n\t\t\n\t\treturn await this.send<GetRelatedAchTourResponse>(message, ClassId.GET_RELATED_ACH_N_TOURNAMENTS_RESPONSE);\n\t}\n\n\tpublic async getRafflesT(user_ext_id: string): Promise<TRaffle[]> {\n\t\treturn raffleTransform((await this.getRaffles(user_ext_id)).items);\n\t}\n\n\tpublic async getRaffles(user_ext_id: string): Promise<GetRafflesResponse> {\n\t\tconst message = this.buildMessage<GetRafflesRequest, GetRafflesResponse>(user_ext_id, ClassId.RAF_GET_RAFFLES_REQUEST);\n\n\t\treturn await this.send<GetRafflesResponse>(message, ClassId.RAF_GET_RAFFLES_RESPONSE);\n\t}\n\n\tpublic async getRaffleDrawRun(user_ext_id: string, payload: { raffle_id: number; run_id: number }): Promise<GetDrawRunResponse> {\n\t\tconst message = this.buildMessage<GetDrawRunRequest, GetDrawRunResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_GET_DRAW_RUN_REQUEST,\n\t\t\tpayload,\n\t\t);\n\n\t\treturn await this.send<GetDrawRunResponse>(message, ClassId.RAF_GET_DRAW_RUN_RESPONSE);\n\t}\n\n\tpublic async getRaffleDrawRunsHistory(\n\t\tuser_ext_id: string,\n\t\tprops: { raffle_id: number; draw_id?: number },\n\t): Promise<GetRaffleDrawRunsHistoryResponse> {\n\t\tconst message = this.buildMessage<GetRaffleDrawRunsHistoryRequest, GetRaffleDrawRunsHistoryResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_GET_DRAW_HISTORY_REQUEST,\n\t\t\tprops,\n\t\t);\n\n\t\treturn await this.send<GetRaffleDrawRunsHistoryResponse>(message, ClassId.RAF_GET_DRAW_HISTORY_RESPONSE);\n\t}\n\n\tpublic async claimRafflePrize(user_ext_id: string, props: { won_id: number }): Promise<RaffleClaimPrizeResponse> {\n\t\tconst message = this.buildMessage<RaffleClaimPrizeRequest, RaffleClaimPrizeResponse>(\n\t\t\tuser_ext_id,\n\t\t\tClassId.RAF_CLAIM_PRIZE_REQUEST,\n\t\t\tprops,\n\t\t);\n\n\t\treturn await this.send<RaffleClaimPrizeResponse>(message, ClassId.RAF_CLAIM_PRIZE_RESPONSE);\n\n\t}\n}\n\nexport { SmarticoAPI, MessageSender };\n","import { TSMap } from 'typescript-map';\n\nclass CookieStore {\n\tprivate static cookieStore = new TSMap<string, string[]>();\n\n\tpublic static get(key: string): string[] | undefined {\n\t\treturn CookieStore.cookieStore.get(key);\n\t}\n\n\tpublic static set(key: string, value: string[]) {\n\t\tconst v = value.map((v) => v.split(';')[0]);\n\t\tCookieStore.cookieStore.set(key, v);\n\t}\n}\n\nexport { CookieStore };\n","\nexport enum AnalyticsInterfaceType {\n\tMobile = 0,\n\tDesktop = 1,\n}\n\nexport enum AnalyticsScreenNameId {\n\tOverview = 1,\n\tMissions = 2,\n\tLeaderboards = 3,\n\tTournaments = 4,\n\tTournamentLobby = 5,\n\tLevels = 6,\n\tLevelsMap = 7,\n\tBadges = 8,\n\tBonuses = 9,\n\tSpinAWheel = 10,\n\tStore = 11,\n\tStoreHistory = 12,\n\tInbox = 13,\n\tMatchX = 14,\n\tQuiz = 15,\n\tJackpots = 16,\n\tLootbox = 17,\n\tCustomSection = 18,\n\tShortInbox = 19,\n\tLootboxWeekdays = 20,\n\tLootboxCalendarDays = 21,\n\tTreasureHunt = 22,\n\tLiquidSection = 23,\n\n\tModalMission = 31,\n\tModalLevel = 32,\n\tModalBadge = 33,\n\tModalStore = 34,\n\tModalBonus = 35,\n\tModalJackpot = 36,\n\tModalUsername = 37,\n\tModalAvatar = 38,\n\tModalQR = 39,\n}\n\nexport enum AnalyticsTournamentsLobbySubScreenNameId {\n\tGeneral = 1,\n\tPrizes = 2,\n\tPlayers = 3,\n\tRelatedGames = 4,\n}\n\nexport enum AnalyticsInboxSubScreenNameId {\n\tAll = 1,\n\tFavorite = 2,\n}\n","export enum QuizSportType {\n\tSoccer = 1,\n\tBasketball = 2,\n\tTennis = 5,\n}\n\nexport const quizSupportedSports = [QuizSportType.Basketball, QuizSportType.Soccer, QuizSportType.Tennis];\n","export enum SAWGPMarketType {\n\tTwoTeamsWithScore = 1,\n\tRedCard = 2,\n\tOneXTwo = 3,\n\tOneXTwoHalftime = 4,\n\t// HalftimeFulltime = 5,\n\tFirstGoal = 6,\n\tDoubleChance = 7,\n\tOverUnder2_5 = 8,\n\tOverUnder1_5Halftime = 9,\n\tOverUnder1_5__2ndHalf = 10,\n\tTotalCorners8_5 = 11,\n\tTotalCorners9_5 = 12,\n\tCorners1x2 = 13,\n\tOne_Two = 14,\n\tOvertime = 15,\n\tOddEven = 16,\n\tOddEvenHomeAway = 17,\n\tFirstSet = 18,\n\tSecondSet = 19,\n\tThirdSet = 20,\n\tFourthSet = 21,\n\tFifthSet = 22,\n\tPlayerOneWinsOneSet = 23,\n\tPlayerTwoWinsOneSet = 24,\n\tLastGoal = 25,\n\n\tCustomSport = 26,\n\tCustomNonSport = 27,\n}\n","export enum QuizAnswersValueType {\n\tHomeTeam = '1',\n\tAwayTeam = '2',\n\tDraw = 'x',\n\tHomeTeamHomeTeam = '1/1',\n\tHomeTeamDraw = '1/x',\n\tHomeTeamAwayTeam = '1/2',\n\tDrawHomeTeam = 'x/1',\n\tDrawDraw = 'x/x',\n\tDrawAwayTeam = 'x/2',\n\tAwayTeamHomeTeam = '2/1',\n\tAwayTeamDraw = '2/x',\n\tAwayTeamAwayTeam = '2/2',\n\tYes = 'yes',\n\tNo = 'no',\n\tOdd = 'odd',\n\tEven = 'even',\n\tHomeOdd = '1/odd',\n\tHomeEven = '1/even',\n\tAwayOdd = '2/odd',\n\tAwayEven = '2/even',\n}\n\nexport const quizAnswerHomeTeamReplacementText = '{quiz_home_team}';\nexport const quizAnswerAwayTeamReplacementText = '{quiz_away_team}';\nexport const quizDrawReplacementText = '{quiz_draw}';\nexport const quizYesReplacementText = '{yes}';\nexport const quizNoReplacementText = '{no}';\nexport const quizOddReplacementText = '{odd}';\nexport const quizEvenReplacementText = '{even}';\nexport const quizOrReplacementText = '{or}';\nexport const quizNoGoalsReplacementText = '{quiz_no_goals}';\n\nexport const quizAnswersTrKeys = {\n\t[quizDrawReplacementText]: 'quizAnswer_draw',\n\t[quizYesReplacementText]: 'quizAnswer_yes',\n\t[quizNoReplacementText]: 'quizAnswer_no',\n\t[quizOddReplacementText]: 'quizAnswer_odd',\n\t[quizEvenReplacementText]: 'quizAnswer_even',\n\t[quizOrReplacementText]: 'quizAnswer_or',\n\t[quizNoGoalsReplacementText]: 'quizAnswer_no_goals',\n};\n","import {\n\tQuizAnswersValueType,\n\tquizAnswerAwayTeamReplacementText,\n\tquizAnswerHomeTeamReplacementText,\n\tquizDrawReplacementText,\n\tquizEvenReplacementText,\n\tquizNoGoalsReplacementText,\n\tquizNoReplacementText,\n\tquizOddReplacementText,\n\tquizOrReplacementText,\n\tquizYesReplacementText,\n} from './MarketsAnswers';\nimport { SAWGPMarketType } from './MarketsType';\n\nconst yesNoAnswers = [\n\t{ text: quizYesReplacementText, value: QuizAnswersValueType.Yes },\n\t{ text: quizNoReplacementText, value: QuizAnswersValueType.No },\n];\n\nconst homeAwayAnswers = [\n\t{ text: quizAnswerHomeTeamReplacementText, value: QuizAnswersValueType.HomeTeam },\n\t{ text: quizAnswerAwayTeamReplacementText, value: QuizAnswersValueType.AwayTeam },\n];\n\nconst homeAwayDrawAnswers = [...homeAwayAnswers, { text: quizDrawReplacementText, value: QuizAnswersValueType.Draw }];\nconst homeAwayNoGoalsAnswers = [...homeAwayAnswers, { text: quizNoGoalsReplacementText, value: QuizAnswersValueType.Draw }];\n\nexport const marketsInfo = [\n\t{\n\t\ttype: SAWGPMarketType.OneXTwo,\n\t\tname: '1x2',\n\t\tquestion: { text: 'Who will win the match ?', trKey: 'quizQuestion_1x2' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OneXTwoHalftime,\n\t\tname: '1x2 Halftime',\n\t\tquestion: { text: 'Who will lead the first half of the match ?', trKey: 'quizQuestion_x2half' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t// {\n\t// \ttype: SAWGPMarketType.HalftimeFulltime,\n\t// \tname: 'Halftime / Fulltime',\n\t// \tquestion: { text: 'Who will lead the first half and who will win the match ?', trKey: 'quizQuestion__HalftimeFulltime' },\n\t// \tanswers: [\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamHomeTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizDrawReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamDraw,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerHomeTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.HomeTeamAwayTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizDrawReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.DrawHomeTeam,\n\t// \t\t},\n\t// \t\t{ text: `${quizDrawReplacementText} / ${quizDrawReplacementText}`, value: QuizAnswersValueType.DrawDraw },\n\t// \t\t{\n\t// \t\t\ttext: `${quizDrawReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.DrawAwayTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerHomeTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamHomeTeam,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizDrawReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamDraw,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\ttext: `${quizAnswerAwayTeamReplacementText} / ${quizAnswerAwayTeamReplacementText}`,\n\t// \t\t\tvalue: QuizAnswersValueType.AwayTeamAwayTeam,\n\t// \t\t},\n\t// \t],\n\t// },\n\t{\n\t\ttype: SAWGPMarketType.FirstGoal,\n\t\tname: 'First Goal',\n\t\tquestion: { text: 'Who will score the first goal ?', trKey: 'quizQuestion_firstGoal' },\n\t\tanswers: homeAwayNoGoalsAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.LastGoal,\n\t\tname: 'Last Goal',\n\t\tquestion: { text: 'Who will score the last goal ?', trKey: 'quizQuestion_lastGoal' },\n\t\tanswers: homeAwayNoGoalsAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.DoubleChance,\n\t\tname: 'Double Chance',\n\t\tquestion: { text: 'Who will win the match? Choose a combination:', trKey: 'quizQuestion_doubleChance' },\n\t\tanswers: [\n\t\t\t{\n\t\t\t\ttext: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerHomeTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.HomeTeamDraw,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: `${quizAnswerHomeTeamReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.HomeTeamAwayTeam,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: `${quizDrawReplacementText} ${quizOrReplacementText} ${quizAnswerAwayTeamReplacementText}`,\n\t\t\t\tvalue: QuizAnswersValueType.AwayTeamDraw,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder2_5,\n\t\tname: 'Over/Under 2.5',\n\t\tquestion: { text: 'Will there be 3 or more goals in the match?', trKey: 'quizQuestion_overUnder2_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder1_5Halftime,\n\t\tname: 'Over/Under 1.5 Halftime',\n\t\tquestion: { text: 'Will there be 2 or more goals in the first half?', trKey: 'quizQuestion_overUnder1_5Halftime' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OverUnder1_5__2ndHalf,\n\t\tname: 'Over/Under 1.5 2nd Half',\n\t\tquestion: { text: 'Will there be 2 or more goals in the second half?', trKey: 'quizQuestion_overUnder1_5__2ndHalf' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.RedCard,\n\t\tname: 'Red Card',\n\t\tquestion: { text: 'Will there be a red card in the match?', trKey: 'quizQuestion_redCard' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.TotalCorners8_5,\n\t\tname: 'Total Corners 8.5',\n\t\tquestion: { text: 'Will there be 9 or more corners in the match?', trKey: 'quizQuestion_totalCorners8_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.TotalCorners9_5,\n\t\tname: 'Total Corners 9.5',\n\t\tquestion: { text: 'Will there be 10 or more corners in the match?', trKey: 'quizQuestion_totalCorners9_5' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.Corners1x2,\n\t\tname: 'Corners 1x2',\n\t\tquestion: { text: 'Which team will have more corners in the match?', trKey: 'quizQuestion_corners1x2' },\n\t\tanswers: homeAwayDrawAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.One_Two,\n\t\tname: '1-2',\n\t\tquestion: { text: 'Who will win the match ?', trKey: 'quizQuestion_1-2' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.Overtime,\n\t\tname: 'Overtime',\n\t\tquestion: { text: 'Will there be overtime in the match?', trKey: 'quizQuestion_overtime' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OddEven,\n\t\tname: 'Odd/Even',\n\t\tquestion: {\n\t\t\ttext: 'Is the sum of all points scored in the game going to be an odd number or even?',\n\t\t\ttrKey: 'quizQuestion_oddEven',\n\t\t},\n\t\tanswers: [\n\t\t\t{ text: quizOddReplacementText, value: QuizAnswersValueType.Odd },\n\t\t\t{ text: quizEvenReplacementText, value: QuizAnswersValueType.Even },\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.OddEvenHomeAway,\n\t\tname: 'Odd/Even Home/Away',\n\t\tquestion: {\n\t\t\ttext: 'Which team will win and what will be the sum of the points (Odd or Even)?',\n\t\t\ttrKey: 'quizQuestion_oddEvenHomeAway',\n\t\t},\n\t\tanswers: [\n\t\t\t{ text: `${quizAnswerHomeTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.HomeOdd },\n\t\t\t{ text: `${quizAnswerHomeTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.HomeEven },\n\t\t\t{ text: `${quizAnswerAwayTeamReplacementText} - ${quizOddReplacementText}`, value: QuizAnswersValueType.AwayOdd },\n\t\t\t{ text: `${quizAnswerAwayTeamReplacementText} - ${quizEvenReplacementText}`, value: QuizAnswersValueType.AwayEven },\n\t\t],\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FirstSet,\n\t\tname: 'First Set',\n\t\tquestion: { text: 'Who will win the first set ?', trKey: 'quizQuestion_firstSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.SecondSet,\n\t\tname: 'Second Set',\n\t\tquestion: { text: 'Who will win the second set ?', trKey: 'quizQuestion_secondSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.ThirdSet,\n\t\tname: 'Third Set',\n\t\tquestion: { text: 'Who will win the third set ?', trKey: 'quizQuestion_thirdSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FourthSet,\n\t\tname: 'Fourth Set',\n\t\tquestion: { text: 'Who will win the fourth set ?', trKey: 'quizQuestion_fourthSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.FifthSet,\n\t\tname: 'Fifth Set',\n\t\tquestion: { text: 'Who will win the fifth set ?', trKey: 'quizQuestion_fifthSet' },\n\t\tanswers: homeAwayAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.PlayerOneWinsOneSet,\n\t\tname: 'Player One Wins One Set',\n\t\tquestion: { text: 'Will Player One win at least one set?', trKey: 'quizQuestion_playerOneWinsOneSet' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.PlayerTwoWinsOneSet,\n\t\tname: 'Player Two Wins One Set',\n\t\tquestion: { text: 'Will Player Two win at least one set?', trKey: 'quizQuestion_playerTwoWinsOneSet' },\n\t\tanswers: yesNoAnswers,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.CustomNonSport,\n\t\tname: 'Custom question (non sport)',\n\t\tquestion: null,\n\t\tanswers: null,\n\t},\n\t{\n\t\ttype: SAWGPMarketType.CustomSport,\n\t\tname: 'Custom question (sport)',\n\t\tquestion: null,\n\t\tanswers: null,\n\t},\n];\n","import { SAWGPMarketType } from './MarketsType';\nimport { QuizSportType } from './SportTypes';\n\nexport const QuizMarketPerSport = {\n\t[QuizSportType.Basketball]: [\n\t\tSAWGPMarketType.One_Two,\n\t\tSAWGPMarketType.Overtime,\n\t\tSAWGPMarketType.OneXTwo,\n\t\tSAWGPMarketType.OddEven,\n\t\tSAWGPMarketType.OddEvenHomeAway,\n\t\tSAWGPMarketType.DoubleChance,\n\t],\n\t[QuizSportType.Soccer]: [\n\t\tSAWGPMarketType.OneXTwo,\n\t\tSAWGPMarketType.OneXTwoHalftime,\n\t\t// SAWGPMarketType.HalftimeFulltime,\n\t\tSAWGPMarketType.FirstGoal,\n\t\tSAWGPMarketType.LastGoal,\n\t\tSAWGPMarketType.DoubleChance,\n\t\tSAWGPMarketType.OverUnder2_5,\n\t\tSAWGPMarketType.OverUnder1_5Halftime,\n\t\tSAWGPMarketType.OverUnder1_5__2ndHalf,\n\t\tSAWGPMarketType.RedCard,\n\t\tSAWGPMarketType.TotalCorners8_5,\n\t\tSAWGPMarketType.TotalCorners9_5,\n\t\tSAWGPMarketType.Corners1x2,\n\t],\n\t[QuizSportType.Tennis]: [\n\t\tSAWGPMarketType.One_Two,\n\t\tSAWGPMarketType.FirstSet,\n\t\tSAWGPMarketType.SecondSet,\n\t\tSAWGPMarketType.ThirdSet,\n\t\tSAWGPMarketType.FourthSet,\n\t\tSAWGPMarketType.FifthSet,\n\t\tSAWGPMarketType.PlayerOneWinsOneSet,\n\t\tSAWGPMarketType.PlayerTwoWinsOneSet,\n\t\tSAWGPMarketType.OddEven,\n\t],\n};\n","enum JackpotContributionType {\n\tFixed = 1,\n\tPercentage = 2,\n}\n\nexport { JackpotContributionType };\n","enum JackPotTemparature {\n\t/** cold, seed amount < current pot < (min amount - seed amount)/2 */\n\tCOLD = 0,\n\t/** warm, (min amount - seed amount)/2 < current pot < min amount */\n\tWARM = 1,\n\t/** hot, current pot > min amount, entered explosion range */\n\tHOT = 2,\n\t/** burning, current pot > min amount + 0.5 * (max amount - min amount). E.g. mid of allowed explosion range */\n\tBURNING = 3,\n}\n\ninterface JackpotPot {\n\t/** ID of the jackpot template */\n\tjp_template_id: number;\n\t/** ID of the jackpot pot */\n\tjp_pot_id: number;\n\t/** currency of the jackpot pot in the Jackput base currency */\n\tcurrent_pot_amount: number;\n\t/** currency of the jackpot pot in the user wallet currency */\n\tcurrent_pot_amount_user_currency: number;\n\t/** the date/time when this pot exploded */\n\texplode_date_ts: number;\n\t/** current pot temperature */\n\tcurrent_pot_temperature: JackPotTemparature;\n}\n\nexport { JackpotPot, JackPotTemparature };\n","enum JackpotType {\n\tMultiUser = 1,\n\tPersonal = 2,\n}\n\nexport { JackpotType };\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","isWithinPeriod","timestamp","period","now","Date","completedDate","getFullYear","getMonth","getDate","startOfWeek","setDate","getDay","setHours","endOfWeek","SAWBuyInType","SAWBuyInTypeName","SAWBuyInTypeNamed","type","Free","Points","Spins","Gems","Diamonds","Unknown","SAWUtils","canPlay","t","user_balances","undefined","saw_buyin_type_id","spin_count","balance","ach_points_balance","ach_gems_balance","ach_diamonds_balance","buyin_cost_points","console","error","SAWAcknowledgeType","SAWAcknowledgeTypeName","SAWAcknowledgeTypeNamed","Silent","QuickMessage","FullMessage","ExplicityAcknowledge","SAWAskForUsername","SAWGameType","SAWGameTypeName","SAWGameTypeNamed","SpinAWheel","ScratchCard","MatchX","GiftBox","PrizeDrop","Quiz","LootboxWeekdays","LootboxCalendarDays","TreasureHunt","Voyager","Plinko","SAWPrizeType","MiniGamePrizeTypeName","MiniGamePrizeTypeNamed","NO_PRIZE","POINTS","BONUS","MANUAL","SPIN","JACKPOT","CHANGE_LEVEL","MISSION","RAFFLE_TICKET","GEMS_AND_DIAMONDS","UNKNOWN","SAWTemplatesTransform","items","map","r","_r$saw_skin_ui_defini","x","_extends","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","buyin_cost_gems","buyin_cost_diamonds","jackpot_add_on_attempt","jackpot_current","promo_image","promo_text","custom_data","expose_game_stat_on_api","relative_period_timezone","activeFromDate","activeTillDate","next_available_spin_ts","steps_to_finish_game","custom_section_id","show_prize_history","max_number_of_attempts","maxSpinsCount","max_spins_period_ms","maxSpinsPediodMs","prizes","p","_p$saw_prize_ui_defin","y","saw_prize_id","saw_prize_ui_definition","prize_type","prize_type_id","prize_value","font_size","font_size_mobile","icon","position","sectors","acknowledge_type","aknowledge_message","acknowledge_dp","acknowledge_action_title","acknowledge_dp_additional","acknowledge_action_title_additional","out_of_stock_message","pool","pool_initial","wins_count","weekdays","active_from_ts","active_till_ts","is_surcharge","is_deleted","prize_modifiers","allow_split_decimal","hide_prize_from_history","requirements_to_get_prize","SAWSpinErrorCode","SAWWinSoundType","SAWWinSoundFiles","NoSound","Disappointing","Positive","HighlyPositive","SAWHistoryTransform","template","prize_amount","client_request_id","is_claimed","create_date_ts","acknowledge_date_ts","SAWGameLayout","PrizeModifiers","PrizeModifiersKeysNames","SAWWheelLayout","SAWGameDifficultyType","SAWGameDifficultyTypeName","SawGameDifficultyTypeNamed","EASY","MEDIUM","HARD","NodeCache","constructor","ttlChecker","cache","setInterval","getTime","key","hasOwnProperty","o","ttl","get","set","ttlSeconds","remove","flushAll","clearInterval","ECacheContext","OCache","init","cacheContext","oKey","stringify","deepClone","use","f","clear","clearContext","clearAll","ActivityTypeLimited","CoreUtils","currencySymbol","currency","toUpperCase","USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","MXN","SGD","HKD","NOK","KRW","TRY","INR","RUB","BRL","ZAR","avatarUrl","avatar_id","avatarDomain","startsWith","endsWith","slice","PublicLabelSettings","TranslationArea","InboxMessagesTransform","item","sent_date","createDate","message_guid","engagement_uid","read","is_read","favorite","is_starred","category_id","InboxMessageBodyTransform","action","image","title","preview_body","body","additional_buttons","buttons","text","inbox_cta_text","html_body","InboxMessageType","OpenLinksType","InboxCategories","BuyStoreItemErrorCode","StoreCategoryTransform","_r$publicMeta","_r$publicMeta2","publicMeta","order","StoreItemPurchaseType","StoreItemType","StoreItemTypeName","StoreItemTypeNamed","Bonus","Tangible","MiniGameSpin","ChangeLevel","RaffleTicket","mapPurchaseType","purchaseType","StoreItemTransform","filter","_r$itemPublicMeta$pri","_r$categoryIds","itemPublicMeta","purchase_type","price","image_url","ribbon","label_tag","custom_label_tag","limit_message","purchase_limit_message","priority","related_item_ids","related_items","hint_text","itemTypeId","can_buy","canBuy","category_ids","categoryIds","shopPool","active_till_date","discounted_price","discount_prize","discount_price_ribbon","discount_prize_ribbon","custom_ribbon_image","StoreItemPurchasedTransform","purchasedToday","purchase_ts","purchasedThisWeek","purchasedThisMonth","purchase_points_amount","purchased_today","purchased_this_week","purchased_this_month","AchievementStatus","AchievementTaskType","AchievementType","AchievementAvailabilityStatus","MissionUtils","getAvailabilityStatus","mission","activeFrom","getMs","activeTill","startDate","start_date_ts","timeLimit","time_limit_ms","requiresOptIn","requiresOptin","optedIn","isOptedIn","isLockedMission","ach_status_id","AvailableLocked","isLocked","AvailableActive","AvailableInactive","Available","UnavailableWithActiveFrom","AvailableWithActiveTillActive","AvailableWithActiveTillInactive","AvailableWithActiveTill","MissedByActiveTill","endDate","AvailableLimitedActive","MissedByLimitInTime","AvailableLimitedInactive","AvailableLimited","AvailableFullyLimitedActive","AvailableFullyLimitedInactive","AvailableFullyLimited","ts","replaceFavGameNameTag","task","_task$user_state_para","_task$task_public_met","userStateParams","user_state_params","userStateOperator","task_public_meta","user_state_operations","userStateParamsKeys","Object","keys","operatorsMulti","operatorsPos","replacementValue","forEach","k","_userStateOperator$k","operator","op","join","pos","Number","UserAchievementTransform","ach_id","_r$ach_categories","completedToday","complete_date_ts","completedThisWeek","completedThisMonth","ach_public_meta","unlock_mission_description","is_completed","isCompleted","is_locked","is_requires_optin","is_opted_in","dt_start","reward","progress","ach_type_id","Mission","cta_action","cta_text","only_in_custom_section","tasks","achievementTasks","task_type_id","CompleteAchievement","_t$task_public_meta","task_id","points_reward","userProgress","execution_count_expected","executionCount","execution_count_actual","userExecutedCount","display_progress_as_count","stage_image","related_games","g","ext_game_id","game_public_meta","link","enabled","game_categories","game_provider","mobile_spec_link","ach_categories","ach_completed_id","requires_prize_claim","prize_claimed_date_ts","complete_date","completed_today","completed_this_week","completed_this_month","custom_section_type_id","availability_status","claim_button_title","claim_button_action","Recurring","next_recurrence_date_ts","milliseconds_till_available","RecurringUponCompletion","completion_count","completed_count","max_completion_count","recurring_quantity","ScheduledMissionType","AchCategoryTransform","MissionCategory","TournamentRegistrationType","TournamentRegistrationTypeGetName","AUTO","BUY_IN_POINTS","MANUAL_APPROVAL","OPT_IN","REQUIRES_QUALIFICATION","BUY_IN_GEMS","BUY_IN_DIAMONDS","TournamentRegistrationStatus","TournamentRegistrationStatusName","TournamentRegistrationStatusNamed","CANCELLED","FINISHED","NOT_REGISTERED","PENDING","QUALIFIED_PENDING_REGISTRATION","REGISTERED","REGISTERED_PENDING_QUALIFICATION","TournamentInstanceStatus","TournamentInstanceStatusName","s","PUBLISHED","REGISTER","STARTED","FAILED","FINALIZING","tournamentPrizeTypeToPrizeName","DoNothing","DeductPoints","ResetPoints","MiniGameAttempt","AddGemsAndDiamonds","DeductGemsAndDiamonds","ResetGemsAndDiamonds","TournamentUtils","isCanRegister","tournament","tournamentRegistrationStatus","isUserRegistered","playersMaxCount","registrationCount","registrationType","tournamentInstanceStatus","allowLateRegistration","isInProgress","isActive","isFinished","isCancelled","isUpcoming","getPlayerTransformed","player","isMe","playerTransformed","public_username","userAltName","avatar_url","scores","is_me","user_ext_id","cleanExtUserId","crm_brand_id","crmBrandId","user_id","userId","getPrizeTransformed","prize","TournamentItemsTransform","tournamentId","instance_id","tournamentInstanceId","tournament_id","segment_dont_match_message","image1","image2","image_url2","image2_mobile","image_url2_mobile","prize_pool_short","custom_price_text","is_featured","featured","start_time","startTimeTs","end_time","endTimeTs","registration_count","is_user_registered","players_min_count","playersMinCount","players_max_count","registration_status","registration_type","registration_cost_points","buyInAmount","registration_cost_gems","registration_cost_diamonds","duration_ms","durationMs","is_active","is_can_register","is_cancelled","is_finished","is_in_progress","is_upcoming","min_scores_win","minScoreToWin","hide_leaderboard_min_scores","hideLeaderboardsMinScores","prizeStructure","tournamentPlayer","me","tournamentInfoItemTransform","response","tournamentInfo","tournamentLobbyInfo","players","userPosition","TournamentRegistrationError","TournamentType","LeaderBoardPeriodType","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","GetLevelMapResponseTransform","levels","l","_l$level_public_meta","level_id","level_public_meta","required_points","visibility_points","parseInt","required_level_counter_1","required_level_counter_2","ticketsTransform","ticekt_id","ticket_id_string","winnersTransform","username","ticket","raf_won_id","claimed_date","prizeTransform","prize_id","public_meta","prizes_per_run","prizes_per_run_actual","chances_to_win_perc","min_required_total_tickets","cap_prizes_per_run","stock_items_per_draw","should_claim","winners","requires_claim","min_required_tickets_for_user","drawTransform","draw_id","image_url_mobile","icon_url","background_image_url","background_image_url_mobile","is_grand","current_state","run_id","execution_type","execution_ts","previous_run_ts","previous_run_id","ticket_start_ts","allow_multi_prize_per_ticket","total_tickets_count","my_tickets_count","my_last_tickets","raffleTransform","raffle_id","start_date","end_date","end_date_ts","max_tickets_count","current_tickets_count","draws","drawRunTransform","res","_res$draw$ticket_star","draw","RaffleDrawInstanceState","RaffleDrawTypeExecution","drawRunHistoryTransform","draw_runs","actual_execution_ts","is_winner","has_unclaimed_prize","raffleClaimPrizeResponseTransform","info","errorCode","errCode","errorMessage","errMsg","CACHE_DATA_SEC","JACKPOT_TEMPLATE_CACHE_SEC","JACKPOT_POT_CACHE_SEC","JACKPOT_WINNERS_CACHE_SEC","JACKPOT_ELIGIBLE_GAMES_CACHE_SEC","onUpdateContextKey","WSAPI","api","onUpdateCallback","Map","jackpotGetSignature","tracker","on","SAW_SPINS_COUNT_PUSH","data","updateOnSpin","SAW_SHOW_SPIN_PUSH","reloadMiniGameTemplate","SAW_AKNOWLEDGE_RESPONSE","SAWHistory","SAW_DO_SPIN_RESPONSE","MISSION_OPTIN_RESPONSE","updateMissions","ACHIEVEMENT_CLAIM_PRIZE_RESPONSE","RELOAD_ACHIEVEMENTS_EVENT","TOURNAMENT_REGISTER_RESPONSE","updateTournaments","BUY_SHOP_ITEM_RESPONSE","updateStorePurchasedItems","updateStoreItems","CLIENT_ENGAGEMENT_EVENT_NEW","updateInboxMessages","LOGOUT_RESPONSE","IDENTIFY_RESPONSE","JP_WIN_PUSH","jackpotClearCache","JP_OPTOUT_RESPONSE","JP_OPTIN_RESPONSE","CLAIM_BONUS_RESPONSE","updateBonuses","SAW_DO_SPIN_BATCH_RESPONSE","RAF_CLAIM_PRIZE_RESPONSE","updateRaffles","Raffles","GET_INBOX_MESSAGES_RESPONSE","unread_count","updateInboxUnreadCount","CLIENT_PUBLIC_PROPERTIES_CHANGED_EVENT","_data$props","_data$props2","props","core_inbox_unread_count","clearCaches","getUserProfile","assign","userPublicProps","Error","checkSegmentMatch","segment_id","coreCheckSegments","find","is_matching","checkSegmentListMatch","segment_ids","Array","isArray","getLevels","Levels","levelsGetT","getCurrentLevel","CurrentLevel","getLevelCurrent","getMissions","onUpdate","Missions","missionsGetItemsT","getBadges","Badges","badgetsGetItemsT","getBonuses","Bonuses","bonusesGetItemsT","claimBonus","bonus_id","bonusClaimItem","err_code","err_message","success","getUserLevelExtraCounters","LevelExtraCounters","getUserGamificationInfoT","getStoreItems","StoreItems","storeGetItemsT","buyStoreItem","item_id","getStoreCategories","StoreCategories","storeGetCategoriesT","getStorePurchasedItems","limit","offset","StoreHistory","storeGetPurchasedItemsT","getAchCategories","AchCategories","achGetCategoriesT","getCustomSections","CustomSections","customSectionsGetT","getMiniGames","Saw","sawGetTemplatesT","getMiniGamesHistory","getSawWinningHistoryT","playMiniGame","template_id","sawSpinRequest","doAcknowledgeRequest","request_id","miniGameWinAcknowledgeRequest","playMiniGameBatch","sawSpinBatchRequest","request_ids","results","result","doAcknowledgeBatchRequest","errMessage","jackpot_amount","first_spin_in_period","requestMissionOptIn","mission_id","missionOptIn","requestMissionClaimReward","missionClaimPrize","getTournamentsList","TournamentList","tournamentsGetLobbyT","getTournamentInstanceInfo","tournamentsGetInfoT","registerInTournament","getLeaderBoard","periodType","getPreviousPeriod","LeaderBoards","leaderboardsGetT","getInboxMessages","from","to","onlyFavorite","categoryId","InboxMessages","getInboxMessagesT","getInboxUnreadCount","InboxUnreadCount","getInboxUnreadCountT","getInboxMessageBody","messageGuid","getInboxMessageBodyT","markInboxMessageAsRead","markInboxMessageRead","markAllInboxMessagesAsRead","markAllInboxMessageRead","markUnmarkInboxMessageAsFavorite","mark","deleteInboxMessage","deleteAllInboxMessages","getTranslations","lang_code","getTranslationsT","translations","templates","index","findIndex","updateEntity","updatedTemplates","payload","count","getRafflesT","contextKey","Jackpots","Pots","JackpotWinners","jackpotGet","_this","signature","jp_template_id","related_game_id","jackpots","pots","_jackpots","_pots","jp","pot","jp_public_meta","jp_template_ids","potGet","_jp","jackpotOptIn","jackpotOptOut","getJackpotWinners","getJackpotWinnersT","getJackpotEligibleGames","JackpotEligibleGames","getJackpotEligibleGamesT","getRelatedItemsForGame","getRaffles","getRaffleDrawRun","getRaffleDrawRunsHistory","claimRafflePrize","won_id","AchCustomSectionType","AchCustomLayoutTheme","AchMissionsTabsOptions","AchOverviewMissionsFilter","LiquidEntityData","UICustomSectionTransform","customSections","section_type_id","menu_img","menu_name","custom_skin_images","generic_custom_css","mission_tabs_options","overview_missions_count","overview_missions_filter","theme","LEVELS","liquid_entity_data","ach_tournament_id","show_raw_data","liquid_template","push","BonusItemsTransform","is_redeemable","redeemable","create_date","redeem_date","redeemDate","label_bonus_template_id","labelBonusTemplateId","bonus_status_id","bonusStatusId","label_bonus_template_meta_map","labelBonusTemplateMetaMap","bonus_meta_map","bonusMetaMap","BonusStatus","GetJackpotWinnersResponseTransform","winnerInfo","winner","win_date_ts","jp_pot_id","GetJackpotEligibleGamesResponseTransform","eligible_games","games","game","game_id","ach_game_id","PUBLIC_API_URL","C_SOCKET_PROD","AVATAR_DOMAIN","DEFAULT_LANG_EN","SmarticoAPI","label_api_key","brand_api_key","messageSender","options","_options$tracker","publicUrl","wsUrl","inboxCdnUrl","partnerUrl","logger","logCIDs","logHTTPTiming","always","getPublicUrl","getPublicWsUrl","getAvatarUrl","getCleanLabelApiKey","getEnvDnsSuffix","ENV_ID","substring","replaceSmrDomainsWithCloudfront","domains","replacedValue","oldDomain","newDomain","entries","err","getEnvId","send","message","expectCID","force_language","cid","timeStart","errSetup","timeEnd","warn","url","request","obj","buildMessage","api_key","brand_key","ext_user_id","coreReportCustomEvent","eventType","eventMessage","EVENT","eventResponse","EVENT_RESPONSE","coreGetTranslations","areas","cacheSec","trim","Translations","tsBaseRQ","GET_TRANSLATIONS_REQUEST","hash_code","trBase","GET_TRANSLATIONS_RESPONSE","_trUser$translations","trUserRQ","trUser","coreIdentifyLabel","_this2","LabelInfo","INIT","INIT_RESPONSE","coreIdentifyUser","IDENTIFY","coreChangeUsername","public_username_custom","CLIENT_SET_CUSTOM_USERNAME_REQUEST","CLIENT_SET_CUSTOM_USERNAME_RESPONSE","CHECK_SEGMENT_MATCH_REQUEST","CHECK_SEGMENT_MATCH_RESPONSE","segments","JP_GET_JACKPOTS_REQUEST","JP_GET_JACKPOTS_RESPONSE","JP_GET_LATEST_POTS_REQUEST","JP_GET_LATEST_POTS_RESPONSE","JP_OPTIN_REQUEST","JP_OPTOUT_REQUEST","JP_GET_WINNERS_REQUEST","JP_GET_WINNERS_RESPONSE","JP_GET_ELIGIBLE_GAMES_REQUEST","JP_GET_ELIGIBLE_GAMES_RESPONSE","sawGetTemplates","is_visitor_mode","SAW_GET_SPINS_REQUEST","SAW_GET_SPINS_RESPONSE","_t$saw_template_ui_de","_t$saw_template_ui_de2","jackpotValue","SAW_AKNOWLEDGE_REQUEST","round_id","SAW_DO_SPIN_REQUEST","spinAttemptResponse","status","SAW_OK","SAW_NO_SPINS","SAW_PRIZE_POOL_EMPTY","SAW_NOT_ENOUGH_POINTS","SAW_FAILED_MAX_SPINS_REACHED","SAW_TEMPLATE_NOT_ACTIVE","SAW_NOT_IN_SEGMENT","SAW_NO_BALANCE_GEMS","SAW_NO_BALANCE_DIAMONDS","SAW_AKNOWLEDGE_BATCH_RESPONSE","spins_count","spins","SAW_DO_SPIN_BATCH_REQUEST","getSawWinningHistory","GET_SAW_HISTORY_REQUEST","GET_SAW_HISTORY_RESPONSE","MISSION_OPTIN_REQUEST","achievementId","ACHIEVEMENT_CLAIM_PRIZE_REQUEST","TOURNAMENT_REGISTER_REQUEST","itemId","BUY_SHOP_ITEM_REQUEST","inboxGetMessages","GET_INBOX_MESSAGES_REQUEST","storeGetItems","GET_SHOP_ITEMS_REQUEST","GET_SHOP_ITEMS_RESPONSE","storeGetCategories","GET_SHOP_CATEGORIES_REQUEST","GET_SHOP_CATEGORIES_RESPONSE","categories","storeGetPurchasedItems","ACH_SHOP_ITEM_HISTORY_REQUEST","ACH_SHOP_ITEM_HISTORY_RESPONSE","missionsGetItems","GET_ACHIEVEMENT_MAP_REQUEST","GET_ACHIEVEMENT_MAP_RESPONSE","responseClone","achievements","getUserGamificationInfo","GET_ACHIEVEMENT_USER_REQUEST","GET_ACHIEVEMENT_USER_RESPONSE","level_counter_1","level_counter_2","achGetCategories","GET_ACH_CATEGORIES_REQUEST","GET_ACH_CATEGORIES_RESPONSE","badgetsGetItems","Badge","bonusesGetItems","GET_BONUSES_REQUEST","GET_BONUSES_RESPONSE","CLAIM_BONUS_REQUEST","bonusId","bonuses","tournamentsGetLobby","GET_TOURNAMENT_LOBBY_REQUEST","GET_TOURNAMENT_LOBBY_RESPONSE","tournaments","tournamentsGetInfo","_response$userPositio","_response$tournamentI","GET_TOURNAMENT_INFO_REQUEST","GET_TOURNAMENT_INFO_RESPONSE","leaderboardGet","prevPeriod","_response$map$boardKe","_response$map$boardKe2","GET_LEADERS_BOARD_REQUEST","snapshot_offset","include_users","GET_LEADERS_BOARD_RESPONSE","boardKey","DAILY","levelsGet","GET_LEVEL_MAP_REQUEST","GET_LEVEL_MAP_RESPONSE","_userInfo$points_ever2","userInfo","sortedLevels","sort","currentLevelIndex","level","current_level","_userInfo$points_ever","userPointsEver","points_ever","nextLevel","currentLevel","ordinal_position","min","max","customSectionsGet","GET_CUSTOM_SECTIONS_REQUEST","GET_CUSTOM_SECTIONS_RESPONSE","starred_only","favoriteOnly","log","_this3","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","GET_RELATED_ACH_N_TOURNAMENTS_REQUEST","GET_RELATED_ACH_N_TOURNAMENTS_RESPONSE","RAF_GET_RAFFLES_REQUEST","RAF_GET_RAFFLES_RESPONSE","RAF_GET_DRAW_RUN_REQUEST","RAF_GET_DRAW_RUN_RESPONSE","RAF_GET_DRAW_HISTORY_REQUEST","RAF_GET_DRAW_HISTORY_RESPONSE","RAF_CLAIM_PRIZE_REQUEST","CookieStore","cookieStore","split","TSMap","AnalyticsInterfaceType","AnalyticsScreenNameId","AnalyticsTournamentsLobbySubScreenNameId","AnalyticsInboxSubScreenNameId","QuizSportType","quizSupportedSports","Basketball","Soccer","Tennis","SAWGPMarketType","QuizAnswersValueType","quizAnswerHomeTeamReplacementText","quizAnswerAwayTeamReplacementText","quizDrawReplacementText","quizYesReplacementText","quizNoReplacementText","quizOddReplacementText","quizEvenReplacementText","quizOrReplacementText","quizNoGoalsReplacementText","quizAnswersTrKeys","yesNoAnswers","Yes","No","homeAwayAnswers","HomeTeam","AwayTeam","homeAwayDrawAnswers","Draw","homeAwayNoGoalsAnswers","marketsInfo","OneXTwo","question","trKey","answers","OneXTwoHalftime","FirstGoal","LastGoal","DoubleChance","HomeTeamDraw","HomeTeamAwayTeam","AwayTeamDraw","OverUnder2_5","OverUnder1_5Halftime","OverUnder1_5__2ndHalf","RedCard","TotalCorners8_5","TotalCorners9_5","Corners1x2","One_Two","Overtime","OddEven","Odd","Even","OddEvenHomeAway","HomeOdd","HomeEven","AwayOdd","AwayEven","FirstSet","SecondSet","ThirdSet","FourthSet","FifthSet","PlayerOneWinsOneSet","PlayerTwoWinsOneSet","CustomNonSport","CustomSport","QuizMarketPerSport","JackpotContributionType","JackPotTemparature","JackpotType"],"mappings":"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"}
|