@smartico/public-api 0.0.98 → 0.0.100

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