@opexa/portal-sdk 0.0.183 → 0.0.185

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sdk/object-id.ts","../src/sdk/object-type.ts","../src/utils/gql.ts","../src/services/queries.ts","../src/services/utils.ts","../src/services/account.service.ts","../src/utils/status-code-to-operation-error.ts","../src/services/auth.service.ts","../src/services/cms-portal.service.ts","../src/services/file.service.ts","../src/services/game.service.ts","../src/services/portal.service.ts","../src/services/report.service.ts","../src/services/trigger.service.ts","../src/services/wallet.service.ts","../src/utils/clone-date.ts","../src/utils/add-minutes.ts","../src/utils/is-after.ts","../src/utils/cache.ts","../src/utils/clamp.ts","../src/utils/is-plain-object.ts","../src/utils/flatten.ts","../src/utils/graphql-client.ts","../src/utils/sha256.ts","../src/sdk/logger.ts","../src/utils/add-days.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/utils/sub-minutes.ts","../src/sdk/session-manager.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/utils.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":"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","sourcesContent":["export { ObjectId } from '@opexa/object-id';\r\n","/*\r\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\r\n */\r\n\r\nexport const ObjectType = {\r\n\tAccount: 8,\r\n\tDeposit: 9,\r\n\tWithdrawal: 14,\r\n\tVerification: 15,\r\n\tFile: 16,\r\n\tGame: 203,\r\n\tGameSession: 204,\r\n\tMayaSession: 230,\r\n};\r\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\r\n\tlet result = '';\r\n\r\n\tfor (const [index, string] of strings.entries()) {\r\n\t\tconst value = values.at(index) ?? '';\r\n\r\n\t\tresult = `${result}${string}${value}`;\r\n\t}\r\n\r\n\treturn result.trim();\r\n}\r\n","import { gql } from '../utils/gql.js';\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FILE +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const FILE_FRAGMENT = gql`\r\n\tfragment FileFragment on File {\r\n\t\tid\r\n\t\turl\r\n\t\tstatus\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const FILE_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery File($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on File {\r\n\t\t\t\t...FileFragment\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\r\n\tmutation UploadPrivateImageFile($input: UploadFileInput!) {\r\n\t\tuploadPrivateImageFile(input: $input) {\r\n\t\t\t... on FileFormatNotSupportedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNameTooLongError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileSizeTooBigError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WALLET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WALLET_QUERY = gql`\r\n\tquery Wallet {\r\n\t\twallet {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t\tcurrency\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ POINTS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const POINTS_WALLET_QUERY = gql`\r\n\tquery PointsWallet {\r\n\t\tpointsWallet {\r\n\t\t\tid\r\n\t\t\tpoints\r\n\t\t\taccount\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\r\n\tmutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\r\n\t\tredeemPointsToCash(input: $input) {\r\n\t\t\t... on InsufficientPointsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PointsNotDivisibleBy100Error {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\r\n\tquery PointsWalletTransactions(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$filter: MemberPointsWalletTransactionFilterInput\r\n\t) {\r\n\t\tmember {\r\n\t\t\tpointsWalletTransactions(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on PointsWalletTransaction {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tbalance\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ GAME +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const GAME_SESSION_QUERY = {\r\n\tcurrent: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const CREATE_GAME_SESSION_MUTATION = gql`\r\n\tmutation CreateGameSession($input: CreateGameSessionInput!) {\r\n\t\tcreateGameSession(input: $input) {\r\n\t\t\t... on GameDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const END_GAME_SESSION_MUTATION = {\r\n\tcurrent: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input)\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input) {\r\n\t\t\t\t... on GameSessionDoesNotExistError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameSessionAlreadyClosedError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameProviderError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const RECOMMENDED_GAMES_QUERY = gql`\r\n\tquery RecommendedGames {\r\n\t\trecommendedGames {\r\n\t\t\tid\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ANNOUNCEMENT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ANNOUNCEMENTS_QUERY = gql`\r\n\tquery Announcements($first: Int, $after: Cursor, $filter: AnnouncementFilterInput) {\r\n\t\tannouncements(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Announcement {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tmessage\r\n\t\t\t\t\t\tactivationStartDateTime\r\n\t\t\t\t\t\tactivationEndDateTime\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WITHDRAWAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\r\n\tquery WithdrawalRecords($first: Int, $after: Cursor, $filter: WithdrawalRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\twithdrawalRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BankWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tbank\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on GCashWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\trecipientMobileNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on MayaAppWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on InstapayWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\r\n\t\tcreateGCashWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\r\n\t\tcreateMayaWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\r\n\t\tcreateMayaAppWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\r\n\t\tcreateBankWithdrawal(input: $input) {\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateAIOInstapayWithdrawal($input: CreateAIOInstapayWithdrawalInput!) {\r\n\t\tcreateAIOInstapayWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\r\n\tquery InstapayBankList {\r\n\t\tinstapayBankList {\r\n\t\t\tid\r\n\t\t\tcode\r\n\t\t\tname\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\r\n\tquery RemainingDailyWithdrawalsCount {\r\n\t\tremainingDailyWithdrawalsCount\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ DEPOSIT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const DEPOSIT_RECORDS_QUERY = gql`\r\n\tquery DepositRecords($after: Cursor, $first: Int, $filter: DepositRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tdepositRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on DepositRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdeposit\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tdepositNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\r\n\t\tcreateGCashDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on HasActiveBonusError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\r\n\t\tcreateMayaDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on HasActiveBonusError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\r\n\t\tcreateMayaAppDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on HasActiveBonusError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\r\n\t\tcreateAIOQRPHDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on HasActiveBonusError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOOnlineBankDeposit($input: CreateAIOOnlineBankDepositInput!) {\r\n\t\tcreateAIOOnlineBankDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on HasActiveBonusError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSIT_QUERY = gql`\r\n\tquery Deposit($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on GCashDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on MayaDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t}\r\n\t\t\t... on MayaAppDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on BankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on ManualDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on QRPHDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tqrCode\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on OnlineBankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tvca\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSITS_COUNT_QUERY = gql`\r\n\tquery DepositsCount {\r\n\t\tmember {\r\n\t\t\tdepositsCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\r\n\t\ttouchGCashDeposit(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BET_RECORDS_QUERY = gql`\r\n\tquery BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tbetRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\ttotalCount\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BetRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tserialCode\r\n\t\t\t\t\t\t\tgame {\r\n\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbet\r\n\t\t\t\t\t\t\tpayout\r\n\t\t\t\t\t\t\twinloss\r\n\t\t\t\t\t\t\tjackpotPayout\r\n\t\t\t\t\t\t\tjackpotContribution\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeSettled\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t\tmetadata\r\n\t\t\t\t\t\t\tvendorRoundId\r\n\t\t\t\t\t\t\tbetContent\r\n\t\t\t\t\t\t\tcontestName\r\n\t\t\t\t\t\t\texternalCategory\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const LATEST_BET_RECORDS_QUERY = gql`\r\n\tquery LatestBetRecords {\r\n\t\tlatestBetRecords {\r\n\t\t\tid\r\n\t\t\tmember {\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t}\r\n\t\t\tbet\r\n\t\t\tpayout\r\n\t\t\tvalidBet\r\n\t\t\tdateTimeSettled\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TRANSACTIONS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TRANSACTION_RECORDS_QUERY = gql`\r\n\tquery TransactionRecords($first: Int, $after: Cursor, $filter: TransactionRecordFilter) {\r\n\t\tmember {\r\n\t\t\ttransactionRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on TransactionRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\t\tcurrentBalance\r\n\t\t\t\t\t\t\treferenceNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PROMO +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const PROMO_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment PromoFragment on Promo {\r\n\t\tid\r\n\t\ttype\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tmaximumBonusAmount\r\n\t\tminimumBonusAmount\r\n\t\tmaximumDepositAmount\r\n\t\tminimumDepositAmount\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Promos {\r\n\t\tpromos {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery AvailablePromos($filter: PromoFilterInput) {\r\n\t\tavailablePromos(filter: $filter) {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const SPOT_BONUS_FRAGMENT = gql`\r\n\tfragment SpotBonusFragment on SpotBonusPromo {\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tstatus\r\n\t\tdaysToClear\r\n\t\tzeroOutThreshold\r\n\t\tturnoverRequirementMultiplier\r\n\t\tturnoverRequirementType\r\n\t\tminimumTicketOddFactorPerSportsGameProvider\r\n\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\tbonusAmount\r\n\t\tenabledGameProviders\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tbanner {\r\n\t\t\tid\r\n\t\t\turl\r\n\t\t}\r\n\t\tdescription\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t\tdateTimeClosed\r\n\t\ttotalBonus\r\n\t\ttotalDeposit\r\n\t\ttotalBonusBalance\r\n\t\ttotalBet\r\n\t\ttotalBonusCashedOut\r\n\t\tbonusesCount\r\n\t\tclosedBonusesCount\r\n\t\tclosedBonusesCountPercentage\r\n\t\tactiveBonusesCount\r\n\t\tclearedBonusesCount\r\n\t\tzeroedOutBonusesCount\r\n\t\tcancelledBonusesCount\r\n\t\texpiredBonusesCount\r\n\t\tcode\r\n\t\tmaximumBonusesCountLimit\r\n\t}\r\n`;\r\n\r\nexport const PROMO_BY_CODE_QUERY = gql`\r\n\t${SPOT_BONUS_FRAGMENT}\r\n\r\n\tquery PromoByCode($code: String!) {\r\n\t\tpromoByCode(code: $code) {\r\n\t\t\t...SpotBonusFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment CashbackFragment on Cashback {\r\n\t\tid\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tminimumCashback\r\n\t\tmaximumMonthlyCashback\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tturnoverContributionPercentagePerGameProvider\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const CASHBACKS_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery Cashbacks {\r\n\t\tcashbacks {\r\n\t\t\t...CashbackFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BONUS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BONUS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonus {\r\n\t\tbonus {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const BONUSES_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonuses {\r\n\t\tbonuses {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_BONUSES_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery CashbackBonuses {\r\n\t\tcashbackBonuses {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t\ttotal\r\n\t\t\tcashback {\r\n\t\t\t\t...CashbackFragment\r\n\t\t\t}\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\r\n\tmutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\r\n\t\tclaimCashbackBonus(input: $input) {\r\n\t\t\t... on CashbackBonusDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MEMBER +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MEMBER_QUERY = gql`\r\n\tquery Member {\r\n\t\tmember {\r\n\t\t\tdateTimeLastActive\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**\r\n * _aka_ `Query.self`\r\n */\r\nexport const MEMBER_ACCOUNT_QUERY = gql`\r\n\tquery MemberAccount {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t\tstatus\r\n\t\t\t\trealName\r\n\t\t\t\temailAddress\r\n\t\t\t\tmobileNumber\r\n\t\t\t\tbirthDay\r\n\t\t\t\tverified\r\n\t\t\t\tverificationStatus\r\n\t\t\t\tnickName\r\n\t\t\t\tvalidId\r\n\t\t\t\tmobileNumberVerified\r\n\t\t\t\tmobileNumberVerificationRequired\r\n\t\t\t\ttransactionPassword\r\n\t\t\t\tsecretAnswerSubmitted\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MEMBER_VERIFICATION_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery MemberVerification {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tverification {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\taddress\r\n\t\t\t\t\tpermanentAddress\r\n\t\t\t\t\tsourceOfIncome\r\n\t\t\t\t\tnatureOfWork\r\n\t\t\t\t\tnationality\r\n\t\t\t\t\tplaceOfBirth\r\n\t\t\t\t\tidFrontImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t\tselfieImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput!\r\n\t\t$referralCode: String\r\n\t\t$verificationCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\r\n\tmutation RegisterMemberAccountViaMobile(\r\n\t\t$input: RegisterMemberAccountViaMobileInput!\r\n\t\t$referralCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t\t$verificationCode: String\r\n\t) {\r\n\t\tregisterMemberAccountViaMobile(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput_next!\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount: registerMemberAccount_next(\r\n\t\t\tinput: $input\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\r\n\t\tregisterMayaMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\r\n\t\tupdateMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on EmailAddressNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NickNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RealNameAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ValidIdAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const RESET_PASSWORD_MUTATION = gql`\r\n\tmutation ResetPassword($input: ResetPasswordInput!, $verificationCode: String) {\r\n\t\tresetPassword(input: $input, verificationCode: $verificationCode) {\r\n\t\t\t... on AccountNotFoundError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\r\n\t\tdeleteMemberAccount(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\r\n\tmutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\r\n\t\tverifyMobileNumber(input: $input) {\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberAlreadyVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\r\n\t\tcreateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyExistsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\r\n\t\tupdateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyApprovedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PROFILE_COMPLETION_QUERY = gql`\r\n\tquery ProfileCompletion {\r\n\t\tprofileCompletion {\r\n\t\t\tcompletionPercentage\r\n\t\t\tpersonalInformation\r\n\t\t\taccountVerification\r\n\t\t\tmobileNumberVerification\r\n\t\t\ttransactionPassword\r\n\t\t\taccountPassword\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/** @deprecated */\r\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\r\n\tmutation SendVerificationCode($input: SendVerificationCodeInput!) {\r\n\t\tsendVerificationCode(input: $input) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotReadyToSendVerficationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PLATFORM +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\n/** @deprecated */\r\nexport const PLATFORM_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PLATFORM_QUERY__NEXT = gql`\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t}\r\n`;\r\n\r\nexport const PAYMENT_SETTINGS_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery PaymentSettings {\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ SESSION +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MAYA_SESSION_QUERY = gql`\r\n\tquery MayaSession($id: ObjectId!) {\r\n\t\tmayaSession(id: $id) {\r\n\t\t\tid\r\n\t\t\tmember\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\r\n\tmutation ValidateMayaSession {\r\n\t\tvalidateMayaSession: validMayaSession\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ACTIVITY +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ACTIVITY_RECORDS_QUERY = gql`\r\n\tquery ActivityRecords($after: Cursor, $first: Int, $filter: ActivityRecordsFilterInput) {\r\n\t\tmember {\r\n\t\t\tactivityRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on MemberActivity {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tdomain\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tdetails\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ REFERRAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const REFERRAL_CODE_QUERY = gql`\r\n\tquery ReferralCode {\r\n\t\treferralCode\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\r\n\tmutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\r\n\t\tupdateReferralCode(input: $input) {\r\n\t\t\t... on ReferralCodeNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REFERRAL_FRAGMENT = gql`\r\n\tfragment ReferralFragment on Referral {\r\n\t\tid\r\n\t\tupline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tdownline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tlevel\r\n\t\tturnover\r\n\t\tcommission\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const REFERRALS_QUERY = gql`\r\n\tquery Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\r\n\t\tmember {\r\n\t\t\treferrals(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on Referral {\r\n\t\t\t\t\t\t\t...ReferralFragment\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const UPLINES_BY_NAME_QUERY = gql`\r\n\tquery UplinesByName($search: String!, $first: Int) {\r\n\t\tuplinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const DOWNLINES_BY_NAME_QUERY = gql`\r\n\tquery DownlinesByName($search: String!, $first: Int) {\r\n\t\tdownlinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const REFERRAL_COMMISSION_QUERY = gql`\r\n\tquery ReferralCommission {\r\n\t\tmember {\r\n\t\t\treferralCommission {\r\n\t\t\t\tid\r\n\t\t\t\tcommission\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\tlevel1Commission\r\n\t\t\t\tlevel1ReferralsCount\r\n\t\t\t\tlevel2Commission\r\n\t\t\t\tlevel2ReferralsCount\r\n\t\t\t\tlevel3Commission\r\n\t\t\t\tlevel3ReferralsCount\r\n\t\t\t\treferralCode\r\n\t\t\t\treferralsCount\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\r\n\tquery PointsClubSettings {\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MESSAGES +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MESSAGES_QUERY = gql`\r\n\tquery Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\r\n\t\tmessages(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Message {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ticon\r\n\t\t\t\t\t\tlogo\r\n\t\t\t\t\t\timage\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\tpopup\r\n\t\t\t\t\t\tactions {\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmarkedAsRead\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\r\n\tquery UnreadMessagesCount($filter: MessageFilterInput) {\r\n\t\tmessages(filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkMessageAsRead($id: ObjectId!) {\r\n\t\tmarkMessageAsRead(id: $id)\r\n\t}\r\n`;\r\n\r\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkAllMessageAsRead {\r\n\t\tmarkAllMessageAsRead\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_REWARD_MUTATION = gql`\r\n\tmutation ClaimReward($id: ObjectId!) {\r\n\t\tclaimReward(id: $id) {\r\n\t\t\t... on RewardAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RewardAlreadyExpiredError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_SPOT_BONUS = gql`\r\n\tmutation ClaimSpotBonus($code: String!) {\r\n\t\tclaimSpotBonus(code: $code) {\r\n\t\t\t... on InvalidPromoCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumBonusesCountLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on SpotBonusAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ONBOARDING +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ONBOARDING_STATUS_QUERY = gql`\r\n\tquery OnboardingStatus {\r\n\t\tonboardingStatus\r\n\t}\r\n`;\r\n\r\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\r\n\tmutation CompleteOnboarding($input: CompleteOnboardingInput!) {\r\n\t\tcompleteOnboarding(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const SKIP_ONBOARDING_MUTATION = gql`\r\n\tmutation SkipOnboarding {\r\n\t\tskipOnboarding\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ QUEST +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\nexport const QUEST_PROGRAM_FRAGMENT = gql`\r\n\tfragment QuestProgramFragment on QuestProgram {\r\n\t\tstatus\r\n\t\ttype\r\n\t\tname\r\n\t\tdescription\r\n\t\tpromo\r\n\t\tquestsCount\r\n\t\tcompletedQuestsCount\r\n\t\tfailedQuestsCount\r\n\t\ttotalBonus\r\n\t\tactivationDate\r\n\r\n\t\tbonusTurnoverRequirementMultiplier\r\n\t}\r\n`;\r\n\r\nexport const DAILY_CHECKIN_FRAGMENT = gql`\r\n\t${QUEST_PROGRAM_FRAGMENT}\r\n\tfragment DailyCheckinQuestFragment on DailyCheckInQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\ttype\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t\t... on DailyCheckInQuestProgram {\r\n\t\t\t\tthirdDayBonusAmount\r\n\t\t\t\tsixthDayBonusAmount\r\n\t\t\t\tseventhDayBonusAmount\r\n\t\t\t\t...QuestProgramFragment\r\n\t\t\t}\r\n\r\n\t\t\t... on WageringQuestProgram {\r\n\t\t\t\tdaysToClear\r\n\t\t\t\ttargetTurnover\r\n\t\t\t\tbonusAmount\r\n\t\t\t\t...QuestProgramFragment\r\n\t\t\t}\r\n\t\t}\r\n\t\tmember {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t}\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tbonusAwarded\r\n\t\tlastCheckInDate\r\n\t\tstartDateTime\r\n\t\tcheckInStreak\r\n\r\n\t\tthirdDayBonusAmount\r\n\t\tseventhDayBonusAmount\r\n\t\tsixthDayBonusAmount\r\n\t}\r\n`;\r\nexport const WAGERING_FRAGMENT = gql`\r\n\tfragment WageringQuestFragment on WageringQuest {\r\n\t\tbonus\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t\t... on DailyCheckInQuestProgram {\r\n\t\t\t\tthirdDayBonusAmount\r\n\t\t\t\tsixthDayBonusAmount\r\n\t\t\t\tseventhDayBonusAmount\r\n\t\t\t\t...QuestProgramFragment\r\n\t\t\t}\r\n\r\n\t\t\t... on WageringQuestProgram {\r\n\t\t\t\tdaysToClear\r\n\t\t\t\ttargetTurnover\r\n\t\t\t\tbonusAmount\r\n\t\t\t\t...QuestProgramFragment\r\n\t\t\t}\r\n\t\t}\r\n\t\tmember {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t}\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\ttargetTurnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tbonusAwarded\r\n\t}\r\n`;\r\n\r\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\r\n\tfragment OnboardingQuestFragment on OnboardingQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\t\tmember {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t}\r\n\t\tstatus\r\n\t\ttype\r\n\t\tprogressPercentage\r\n\t\tbonus\r\n\t\tbonusAwarded\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tfirstDepositCompleted\r\n\t\taccountVerificationCompleted\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_QUESTS_QUERY = gql`\r\n\t${WAGERING_FRAGMENT}\r\n\t${DAILY_CHECKIN_FRAGMENT}\r\n\t${ONBOARDING_QUEST_FRAGMENT}\r\n\r\n\tquery AvailableQuests {\r\n\t\tavailableQuests {\r\n\t\t\t... on Quest {\r\n\t\t\t\t... on WageringQuest {\r\n\t\t\t\t\t...WageringQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on DailyCheckInQuest {\r\n\t\t\t\t\t...DailyCheckinQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on OnboardingQuest {\r\n\t\t\t\t\t...OnboardingQuestFragment\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\r\n\tmutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\r\n\t\tcheckInDailyCheckInQuest(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TOP WIN +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TOP_WINS_QUERY = gql`\r\n\tquery TopWins($first: Int) {\r\n\t\ttopWins(first: $first) {\r\n\t\t\tid\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tmember {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tmultiplier\r\n\t\t\tpayout\r\n\t\t}\r\n\t}\r\n`;\r\n","import type { OperationError } from '../types/index.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tClaimCashbackBonusError,\r\n\tClaimRewardError,\r\n\tClaimSpotBonusError,\r\n\tCreateDepositError,\r\n\tCreateGameSessionError,\r\n\tCreateMemberVerificationError,\r\n\tCreateSessionError,\r\n\tCreateWithdrawalError,\r\n\tEndGameSessionError,\r\n\tRedeemPointsToCashError,\r\n\tRefreshSessionError,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMemberAccountError,\r\n\tResetPasswordError,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeError__Next,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateReferralCodeError,\r\n\tUploadPrivateImageFileError,\r\n\tVerifyMobileNumberError,\r\n} from './types.js';\r\n\r\ntype E =\r\n\t| ClaimCashbackBonusError\r\n\t| CreateDepositError\r\n\t| UploadPrivateImageFileError\r\n\t| CreateGameSessionError\r\n\t| EndGameSessionError\r\n\t| RegisterMemberAccountError\r\n\t| RegisterMayaMemberAccountError\r\n\t| UpdateMemberAccountError\r\n\t| ResetPasswordError\r\n\t| SendVerificationCodeError\r\n\t| VerifyMobileNumberError\r\n\t| CreateMemberVerificationError\r\n\t| UpdateMemberVerificationError\r\n\t| RedeemPointsToCashError\r\n\t| CreateWithdrawalError\r\n\t| CreateSessionError\r\n\t| RefreshSessionError\r\n\t| AuthenticateError\r\n\t| UpdateReferralCodeError\r\n\t| SendVerificationCodeError__Next\r\n\t| ClaimRewardError\r\n\t| ClaimSpotBonusError;\r\n\r\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\r\n\tconst messages: Record<E, string> = {\r\n\t\tPointsNotDivisibleBy100Error: 'Please input points that are multiples of 100.',\r\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\r\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\r\n\t\tSpotBonusAlreadyClaimedError:\r\n\t\t\t'This promo code has already been redeemed and cannot be used again',\r\n\t\tRewardAlreadyExpiredError: 'Reward is either expired or no longer available',\r\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\r\n\t\tAccountNotFoundError: 'Account does not exist',\r\n\t\tAccountNotVerifiedError: 'Account is not verified',\r\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\r\n\t\tDepositPromoMaximumAmountExceededError: 'Deposit amount exceeds maximum amount',\r\n\t\tDepositPromoMinimumAmountNotMetError: 'Deposit amount does not meet minimum amount',\r\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\r\n\t\tFileDoesNotExistError: 'File does not exist',\r\n\t\tFileFormatNotSupportedError: 'File format is not supported',\r\n\t\tFileNameTooLongError: 'File name is too long',\r\n\t\tFileNotReadyError: 'File is not yet ready',\r\n\t\tFileSizeTooBigError: 'File size is too big',\r\n\t\tGameDoesNotExistError: 'Game does not exist',\r\n\t\tHasActiveBonusError: 'Account has active bonus',\r\n\t\tInsufficientPointsError: 'Insufficient points',\r\n\t\tInvalidPlatformError: 'Invalid platform',\r\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\r\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\r\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\r\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\r\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\r\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\r\n\t\tMemberVerificationAlreadyApprovedError: 'Member verification is already approved',\r\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\r\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\r\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\r\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\r\n\t\tMinimumFirstDepositAmountNotMetError: 'Minimum first deposit amount not met',\r\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\r\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\r\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\r\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\r\n\t\tNotEnoughBalanceError: 'Insufficient balance',\r\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\r\n\t\tPromoNotEnabledError: 'Promo is not enabled',\r\n\t\tRealNameAlreadySetError: 'Real name is already set',\r\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\r\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\r\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\r\n\t\tGameProviderError: 'Game provider error',\r\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\r\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\r\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\r\n\t\tAccountBlacklistedError: 'Account is blacklisted',\r\n\t\tInvalidTokenError: 'Invalid token',\r\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\r\n\t\tSessionExpiredError: 'Session expired',\r\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\r\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\r\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\r\n\t\tAccountSuspendedError: 'Account is suspended',\r\n\t};\r\n\r\n\treturn {\r\n\t\tname: code,\r\n\t\tmessage: messages[code],\r\n\t};\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tANNOUNCEMENTS_QUERY,\r\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\r\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\r\n\tMEMBER_ACCOUNT_QUERY,\r\n\tMEMBER_VERIFICATION_QUERY,\r\n\tPAYMENT_SETTINGS_QUERY,\r\n\tPLATFORM_QUERY,\r\n\tPOINTS_CLUB_SETTINGS_QUERY,\r\n\tPROFILE_COMPLETION_QUERY,\r\n\tREFERRAL_CODE_QUERY,\r\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\r\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\r\n\tRESET_PASSWORD_MUTATION,\r\n\tSEND_VERIFICATION_CODE_MUTATION,\r\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\r\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\r\n\tUPDATE_REFERRAL_CODE_MUTATION,\r\n\tVERIFY_MOBILE_NUMBER_MUTATION,\r\n} from './queries.js';\r\nimport type {\r\n\tAnnouncement,\r\n\tAnnouncementsQuery,\r\n\tAnnouncementsQueryVariables,\r\n\tCreateMemberVerificationError,\r\n\tCreateMemberVerificationMutation,\r\n\tCreateMemberVerificationMutationVariables,\r\n\tDeleteMemberAccountMutation,\r\n\tDeleteMemberAccountMutationVariables,\r\n\tMemberAccount,\r\n\tMemberAccountQuery,\r\n\tMemberVerification,\r\n\tMemberVerificationQuery,\r\n\tPaginatedQueryResult,\r\n\tPaymentSettings,\r\n\tPaymentSettingsQuery,\r\n\tPlatform,\r\n\tPlatformQuery,\r\n\tPointsClubSettings,\r\n\tPointsClubSettingsQuery,\r\n\tProfileCompletion,\r\n\tProfileCompletionQuery,\r\n\tReferralCodeQuery,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMayaMemberAccountMutation,\r\n\tRegisterMayaMemberAccountMutationVariables,\r\n\tRegisterMemberAccountError,\r\n\tRegisterMemberAccountMutation,\r\n\tRegisterMemberAccountMutationVariables,\r\n\tRegisterMemberAccountMutationVariables__Next,\r\n\tRegisterMemberAccountViaMobileMutation,\r\n\tRegisterMemberAccountViaMobileMutationVariables,\r\n\tResetPasswordError,\r\n\tResetPasswordMutation,\r\n\tResetPasswordMutationVariables,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeMutation,\r\n\tSendVerificationCodeMutationVariables,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberAccountMutation,\r\n\tUpdateMemberAccountMutationVariables,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateMemberVerificationMutation,\r\n\tUpdateMemberVerificationMutationVariables,\r\n\tUpdateReferralCodeError,\r\n\tUpdateReferralCodeMutation,\r\n\tUpdateReferralCodeMutationVariables,\r\n\tVerifyMobileNumberError,\r\n\tVerifyMobileNumberMutation,\r\n\tVerifyMobileNumberMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class AccountService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\t/** aka `Query.self` */\r\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\r\n\t\tconst res = await this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount(\r\n\t\tvariables: RegisterMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccountViaMobile(\r\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountViaMobileMutation,\r\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountViaMobile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountViaMobile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount__next(\r\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables__Next\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberAccount(\r\n\t\tvariables: UpdateMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberAccountMutation,\r\n\t\t\tUpdateMemberAccountMutationVariables\r\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync deleteMemberAccount(\r\n\t\tvariables: DeleteMemberAccountMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tDeleteMemberAccountMutation,\r\n\t\t\tDeleteMemberAccountMutationVariables\r\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.deleteMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync resetPassword(\r\n\t\tvariables: ResetPasswordMutationVariables,\r\n\t): Promise<OperationResult<ResetPasswordError>> {\r\n\t\tconst res = await this.client.request<ResetPasswordMutation, ResetPasswordMutationVariables>(\r\n\t\t\tRESET_PASSWORD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.resetPassword) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<OperationResult<never, ProfileCompletion>> {\r\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(PROFILE_COMPLETION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<OperationResult<never, Platform>> {\r\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync sendVerificationCode(\r\n\t\tvariables: SendVerificationCodeMutationVariables,\r\n\t): Promise<OperationResult<SendVerificationCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tSendVerificationCodeMutation,\r\n\t\t\tSendVerificationCodeMutationVariables\r\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.sendVerificationCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\r\n\t\treturn await this.client.request<PaymentSettingsQuery>(PAYMENT_SETTINGS_QUERY);\r\n\t}\r\n\r\n\tasync verifyMobileNumber(\r\n\t\tvariables: VerifyMobileNumberMutationVariables,\r\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tVerifyMobileNumberMutation,\r\n\t\t\tVerifyMobileNumberMutationVariables\r\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.verifyMobileNumber) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMemberVerification(\r\n\t\tvariables: CreateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMemberVerificationMutation,\r\n\t\t\tCreateMemberVerificationMutationVariables\r\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberVerification(\r\n\t\tvariables: UpdateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberVerificationMutation,\r\n\t\t\tUpdateMemberVerificationMutationVariables\r\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberVerification(): Promise<\r\n\t\tOperationResult<never, MemberVerification | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<MemberVerificationQuery>(MEMBER_VERIFICATION_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount.verification,\r\n\t\t};\r\n\t}\r\n\r\n\tasync announcements(\r\n\t\tvariables?: AnnouncementsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\r\n\t\tconst res = await this.client.request<AnnouncementsQuery, AnnouncementsQueryVariables>(\r\n\t\t\tANNOUNCEMENTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.announcements,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMayaMemberAccount(\r\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMayaMemberAccountMutation,\r\n\t\t\tRegisterMayaMemberAccountMutationVariables\r\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMayaMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMayaMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync referralCode(): Promise<OperationResult<never, string | null | undefined>> {\r\n\t\tconst res = await this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.referralCode,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(\r\n\t\tvariables: UpdateReferralCodeMutationVariables,\r\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateReferralCodeMutation,\r\n\t\t\tUpdateReferralCodeMutationVariables\r\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateReferralCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<\r\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(POINTS_CLUB_SETTINGS_QUERY);\r\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\r\n\t}\r\n}\r\n","import type { HttpError, OperationError } from '../types/index.js';\r\n\r\nexport function statusCodeToOperationError(\r\n\tvalue: number,\r\n\tmessage?: string,\r\n): OperationError<HttpError> {\r\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\r\n\r\n\treturn {\r\n\t\tname: e.name,\r\n\t\tmessage: message ?? e.message,\r\n\t};\r\n}\r\n\r\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\r\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\r\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\r\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\r\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\r\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\r\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\r\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\r\n};\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticateMutation,\r\n\tCreateSessionError,\r\n\tCreateSessionInput,\r\n\tCreateSessionMutation,\r\n\tRefreshSessionError,\r\n\tRefreshSessionMutation,\r\n\tSendVerificationCodeError__Next,\r\n\tSendVerificationCodeInput__Next,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\ninterface FetchOptions {\r\n\theaders?: HeadersInit;\r\n}\r\n\r\nexport interface AuthServiceConfig {\r\n\turl: string;\r\n\tfetchOptions?: FetchOptions;\r\n}\r\n\r\nexport class AuthService {\r\n\tprivate url: string;\r\n\tprivate options: FetchOptions;\r\n\r\n\tconstructor(config: AuthServiceConfig) {\r\n\t\tthis.url = config.url;\r\n\t\tthis.options = config.fetchOptions ?? {};\r\n\t}\r\n\r\n\tprivate get headers() {\r\n\t\tconst headers = new Headers(this.options.headers);\r\n\t\theaders.append('Accept', 'application/json, text/plain');\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\tasync createSession(\r\n\t\tinput: CreateSessionInput,\r\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst data = `${input.name}:${input.password}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `Basic ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'SOCIALS') {\r\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\theaders.set('Authorization', `OPEXA-CABINET-TOKEN ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.reCAPTCHAResponse) {\r\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'SECURITY_QUESTION') {\r\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await fetch(`${this.url}/session/${input.token}/authenticate`, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theaders,\r\n\t\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst data = await res.json();\r\n\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (res.status === 401 || res.status === 403) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t} catch {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Invalid input 'type'\");\r\n\t}\r\n\r\n\tasync refreshSession(\r\n\t\trefreshToken: string,\r\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (res.status === 403 || res.status === 401) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true } : { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t} catch {\r\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\r\n\t\t}\r\n\t}\r\n\r\n\tasync verifySession(accessToken: string) {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok;\r\n\t\t} catch {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tasync sendVerificationCode(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\r\n\t\tif (input.channel === 'EMAIL') throw new Error('Email channel is not yet supported');\r\n\r\n\t\tfunction getErrorCode(message: string): SendVerificationCodeError__Next | null {\r\n\t\t\tswitch (message) {\r\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\r\n\t\t\t\t\treturn 'AccountNotFoundError';\r\n\t\t\t\tcase 'RATE_LIMIT_REACH':\r\n\t\t\t\t\treturn 'RateLimitExceededError';\r\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\r\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: this.headers,\r\n\t\t\t\tbody: JSON.stringify(input),\r\n\t\t\t});\r\n\r\n\t\t\tif (res.status === 403) {\r\n\t\t\t\tconst data = await res.json();\r\n\t\t\t\tconst code = getErrorCode(data.message);\r\n\r\n\t\t\t\tif (code) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError(code),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tGame,\r\n\tGameQuery,\r\n\tGamesQuery,\r\n\tGamesQueryVariables,\r\n\tGamesQueryVariables__Next,\r\n\tPaginatedQueryResult,\r\n\tSite,\r\n\tSiteQuery,\r\n} from './types.js';\r\n\r\nexport interface CmsPortalServiceConfig {\r\n\turl: string;\r\n\tsite: string;\r\n\tplatform: string;\r\n}\r\n\r\nexport class CmsPortalService {\r\n\tprivate url: string;\r\n\tprivate siteId: string;\r\n\tprivate platformId: string;\r\n\r\n\tconstructor(config: CmsPortalServiceConfig) {\r\n\t\tthis.url = config.url;\r\n\t\tthis.siteId = config.site;\r\n\t\tthis.platformId = config.platform;\r\n\t}\r\n\r\n\tasync self(): Promise<OperationResult<never, Site>> {\r\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${this.siteId}`);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync games(\r\n\t\tvariables?: GamesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync games__next(\r\n\t\tvariables?: GamesQueryVariables__Next,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) {\r\n\t\t\tsearch.set('sort[order]', variables.sort.order);\r\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\r\n\t\t}\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync game(id: string): Promise<OperationResult<never, Game | null | undefined>> {\r\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\r\n\r\n\t\tif (res.error?.name === 'HttpNotFound') {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate async getJson<T>(\r\n\t\tpath: string,\r\n\t\tparams?: URLSearchParams,\r\n\t): Promise<OperationResult<never, T>> {\r\n\t\tconst req = new Request(`${this.url}${path}?${params?.toString() ?? ''}`, {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: {\r\n\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Site-ID': this.siteId,\r\n\t\t\t\t'Platform-ID': this.platformId,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(req);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: await res.json(),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\r\nimport type {\r\n\tFile,\r\n\tFileQuery,\r\n\tFileQueryVariables,\r\n\tUploadPrivateImageFileError,\r\n\tUploadPrivateImageFileMutation,\r\n\tUploadPrivateImageFileMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class FileService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync file(\r\n\t\tvariables: FileQueryVariables,\r\n\t): Promise<OperationResult<never, File | null | undefined>> {\r\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(FILE_QUERY, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.node,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadPrivateImageFile(\r\n\t\tvariables: UploadPrivateImageFileMutationVariables,\r\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\r\n\t\tconst res = await this.client.upload<\r\n\t\t\tUploadPrivateImageFileMutation,\r\n\t\t\tUploadPrivateImageFileMutationVariables\r\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.uploadPrivateImageFile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tGAME_SESSION_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class GameService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery<true>, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.legacy,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tconst data = !res.data.node ? null : { ...res.data.node, game: res.data.node.game.id };\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tEndGameSessionMutation<true>,\r\n\t\t\tEndGameSessionMutationVariables\r\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCOMPLETE_ONBOARDING_MUTATION,\r\n\tLATEST_BET_RECORDS_QUERY,\r\n\tONBOARDING_STATUS_QUERY,\r\n\tPLATFORM_QUERY__NEXT,\r\n\tRECOMMENDED_GAMES_QUERY,\r\n\tSKIP_ONBOARDING_MUTATION,\r\n\tTOP_WINS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCompleteOnboardingMutation,\r\n\tCompleteOnboardingMutationVariables,\r\n\tLatestBetRecord,\r\n\tLatestBetRecordsQuery,\r\n\tOnboardingStatus,\r\n\tOnboardingStatusQuery,\r\n\tPlatformQuery__Next,\r\n\tRecommendedGame,\r\n\tRecommendedGamesQuery,\r\n\tSkipOnboardingMutation,\r\n\tTopWin,\r\n\tTopWinsQuery,\r\n} from './types.js';\r\n\r\nexport class PortalService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\r\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(LATEST_BET_RECORDS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.latestBetRecords,\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\r\n\t\tconst res = await this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\r\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(RECOMMENDED_GAMES_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.recommendedGames,\r\n\t\t};\r\n\t}\r\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\r\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(ONBOARDING_STATUS_QUERY);\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\r\n\t}\r\n\r\n\tasync completeOnboarding(\r\n\t\tvariables: CompleteOnboardingMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCompleteOnboardingMutation,\r\n\t\t\tCompleteOnboardingMutationVariables\r\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.completeOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(SKIP_ONBOARDING_MUTATION);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.skipOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\r\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.topWins,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tACTIVITY_RECORDS_QUERY,\r\n\tBET_RECORDS_QUERY,\r\n\tDEPOSITS_COUNT_QUERY,\r\n\tDEPOSIT_RECORDS_QUERY,\r\n\tDOWNLINES_BY_NAME_QUERY,\r\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\r\n\tPROMO_BY_CODE_QUERY,\r\n\tREFERRALS_QUERY,\r\n\tREFERRAL_COMMISSION_QUERY,\r\n\tTRANSACTION_RECORDS_QUERY,\r\n\tUPLINES_BY_NAME_QUERY,\r\n\tWITHDRAWAL_RECORDS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tActivityRecord,\r\n\tActivityRecordsQuery,\r\n\tActivityRecordsQueryVariables,\r\n\tBetRecord,\r\n\tBetRecordsQuery,\r\n\tBetRecordsQueryVariables,\r\n\tDepositRecord,\r\n\tDepositRecordsQuery,\r\n\tDepositRecordsQueryVariables,\r\n\tDepositsCountQuery,\r\n\tDownlinesByNameQuery,\r\n\tDownlinesByNameQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tPointsWalletTransaction,\r\n\tPointsWalletTransactionsQuery,\r\n\tPointsWalletTransactionsQueryVariables,\r\n\tPromoByCodeQuery,\r\n\tPromoByCodeQueryVariables,\r\n\tReferral,\r\n\tReferralCommission,\r\n\tReferralCommissionQuery,\r\n\tReferralsQuery,\r\n\tReferralsQueryVariables,\r\n\tSpotBonusPromo,\r\n\tTransactionRecord,\r\n\tTransactionRecordsQuery,\r\n\tTransactionRecordsQueryVariables,\r\n\tUplinesByNameQuery,\r\n\tUplinesByNameQueryVariables,\r\n\tWithdrawalRecord,\r\n\tWithdrawalRecordsQuery,\r\n\tWithdrawalRecordsQueryVariables,\r\n} from './types.js';\r\n\r\nexport class ReportService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync betRecords(\r\n\t\tvariables?: BetRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\r\n\t\tconst res = await this.client.request<BetRecordsQuery, BetRecordsQueryVariables>(\r\n\t\t\tBET_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\r\n\t}\r\n\r\n\tasync transactionRecords(\r\n\t\tvariables?: TransactionRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTransactionRecordsQuery,\r\n\t\t\tTransactionRecordsQueryVariables\r\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.transactionRecords } : res;\r\n\t}\r\n\r\n\tasync withdrawalRecords(\r\n\t\tvariables?: WithdrawalRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\r\n\t\tconst res = await this.client.request<WithdrawalRecordsQuery, WithdrawalRecordsQueryVariables>(\r\n\t\t\tWITHDRAWAL_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.withdrawalRecords } : res;\r\n\t}\r\n\r\n\tasync depositRecords(\r\n\t\tvariables?: DepositRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\r\n\t\tconst res = await this.client.request<DepositRecordsQuery, DepositRecordsQueryVariables>(\r\n\t\t\tDEPOSIT_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tPointsWalletTransactionsQuery,\r\n\t\t\tPointsWalletTransactionsQueryVariables\r\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.pointsWalletTransactions } : res;\r\n\t}\r\n\r\n\tasync activityRecords(\r\n\t\tvariables?: ActivityRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\r\n\t\tconst res = await this.client.request<ActivityRecordsQuery, ActivityRecordsQueryVariables>(\r\n\t\t\tACTIVITY_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\r\n\t}\r\n\r\n\tasync referrals(\r\n\t\tvariables?: ReferralsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\r\n\t\tconst res = await this.client.request<ReferralsQuery, ReferralsQueryVariables>(\r\n\t\t\tREFERRALS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<\r\n\t\tOperationResult<never, ReferralCommission | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(REFERRAL_COMMISSION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referralCommission } : res;\r\n\t}\r\n\r\n\tasync uplinesByName(\r\n\t\tvariables: UplinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<UplinesByNameQuery, UplinesByNameQueryVariables>(\r\n\t\t\tUPLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\r\n\t}\r\n\tasync downlinesByName(\r\n\t\tvariables: DownlinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<DownlinesByNameQuery, DownlinesByNameQueryVariables>(\r\n\t\t\tDOWNLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\r\n\t}\r\n\r\n\tasync promoByCode(\r\n\t\tvariables: PromoByCodeQueryVariables,\r\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\r\n\t\tconst res = await this.client.request<PromoByCodeQuery, PromoByCodeQueryVariables>(\r\n\t\t\tPROMO_BY_CODE_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_QUESTS_QUERY,\r\n\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\tCLAIM_REWARD_MUTATION,\r\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\tMARK_MESSAGE_AS_READ_MUTATION,\r\n\tMESSAGES_QUERY,\r\n\tUNREAD_MESSAGES_COUNT_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailableQuestsQuery,\r\n\tCheckInDailyQuestMutation,\r\n\tCheckInDailyQuestVariables,\r\n\tClaimRewardError,\r\n\tClaimRewardMutation,\r\n\tClaimRewardMutationVariables,\r\n\tClaimRewardQueryVariables,\r\n\tMarkAllMessageAsReadMutation,\r\n\tMarkMessageAsReadMutation,\r\n\tMarkMessageAsReadMutationVariables,\r\n\tMessage,\r\n\tMessagesQuery,\r\n\tMessagesQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tQuest,\r\n\tUnreadMessagesCountQuery,\r\n\tUnreadMessagesCountQueryVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class TriggerService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync messages(\r\n\t\tvariables?: MessagesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\r\n\t\tconst res = await this.client.request<MessagesQuery, MessagesQueryVariables>(\r\n\t\t\tMESSAGES_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages } : res;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(\r\n\t\tvariables?: UnreadMessagesCountQueryVariables,\r\n\t): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<UnreadMessagesCountQuery, MessagesQueryVariables>(\r\n\t\t\tUNREAD_MESSAGES_COUNT_QUERY,\r\n\t\t\t{\r\n\t\t\t\t...variables,\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...variables?.filter,\r\n\t\t\t\t\tmarkedAsRead: {\r\n\t\t\t\t\t\tequal: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\r\n\t}\r\n\r\n\tasync markMessageAsRead(variables: MarkMessageAsReadMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tMarkMessageAsReadMutation,\r\n\t\t\tMarkMessageAsReadMutationVariables\r\n\t\t>(MARK_MESSAGE_AS_READ_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync markAllMessageAsRead(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<MarkAllMessageAsReadMutation>(\r\n\t\t\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markAllMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimReward(\r\n\t\tvariables: ClaimRewardMutationVariables,\r\n\t): Promise<OperationResult<ClaimRewardError>> {\r\n\t\tconst res = await this.client.request<ClaimRewardMutation, ClaimRewardQueryVariables>(\r\n\t\t\tCLAIM_REWARD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.claimReward) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimReward.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync availableQuests(): Promise<OperationResult<never, Quest[]>> {\r\n\t\tconst res = await this.client.request<AvailableQuestsQuery>(AVAILABLE_QUESTS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.availableQuests,\r\n\t\t};\r\n\t}\r\n\tasync checkInDailyQuest(\r\n\t\tvariables: CheckInDailyQuestVariables,\r\n\t): Promise<OperationResult<never, boolean>> {\r\n\t\tconst res = await this.client.request<CheckInDailyQuestMutation>(\r\n\t\t\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.checkInDailyQuest,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_PROMOS_QUERY,\r\n\tBONUSES_QUERY,\r\n\tBONUS_QUERY,\r\n\tCASHBACKS_QUERY,\r\n\tCASHBACK_BONUSES_QUERY,\r\n\tCLAIM_CASHBACK_BONUS_MUTATION,\r\n\tCLAIM_SPOT_BONUS,\r\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\r\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\r\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\r\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tCREATE_GCASH_DEPOSIT_MUTATION,\r\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\r\n\tDEPOSIT_QUERY,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tGAME_SESSION_QUERY,\r\n\tINSTAPAY_BANK_LIST_QUERY,\r\n\tMAYA_SESSION_QUERY,\r\n\tPOINTS_WALLET_QUERY,\r\n\tPROMOS_QUERY,\r\n\tREDEEM_POINTS_TO_CASH_MUTATION,\r\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\r\n\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\tWALLET_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailablePromosQuery,\r\n\tAvailablePromosQueryVariables,\r\n\tBonus,\r\n\tBonusQuery,\r\n\tBonusesQuery,\r\n\tCashback,\r\n\tCashbackBonus,\r\n\tCashbackBonusesQuery,\r\n\tCashbacksQuery,\r\n\tClaimCashbackBonusError,\r\n\tClaimCashbackBonusMutation,\r\n\tClaimCashbackBonusMutationVariables,\r\n\tClaimSpotBonusError,\r\n\tClaimSpotBonusMutation,\r\n\tClaimSpotBonusMutationVariable,\r\n\tCreateAIOInstapayWithdrawalMutation,\r\n\tCreateAIOInstapayWithdrawalMutationVariables,\r\n\tCreateAIOOnlineBankDepositMutation,\r\n\tCreateAIOOnlineBankDepositMutationVariables,\r\n\tCreateAIOQRPHDepositMutation,\r\n\tCreateAIOQRPHDepositMutationVariables,\r\n\tCreateBankWithdrawalMutation,\r\n\tCreateBankWithdrawalMutationVariables,\r\n\tCreateDepositError,\r\n\tCreateGCashDepositMutation,\r\n\tCreateGCashDepositMutationVariables,\r\n\tCreateGCashWithdrawalMutation,\r\n\tCreateGCashWithdrawalMutationVariables,\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tCreateMayaAppDepositMutation,\r\n\tCreateMayaAppDepositMutationVariables,\r\n\tCreateMayaAppWithdrawalMutation,\r\n\tCreateMayaAppWithdrawalMutationVariables,\r\n\tCreateMayaDepositMutation,\r\n\tCreateMayaDepositMutationVariables,\r\n\tCreateMayaWithdrawalMutation,\r\n\tCreateMayaWithdrawalMutationVariables,\r\n\tCreateWithdrawalError,\r\n\tDeposit,\r\n\tDepositQuery,\r\n\tDepositQueryVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n\tInstapayBank,\r\n\tInstapayBankListQuery,\r\n\tMayaSession,\r\n\tMayaSessionQuery,\r\n\tMayaSessionQueryVariables,\r\n\tPointsWallet,\r\n\tPointsWalletQuery,\r\n\tPromo,\r\n\tPromosQuery,\r\n\tRedeemPointsToCashError,\r\n\tRedeemPointsToCashMutation,\r\n\tRedeemPointsToCashMutationVariables,\r\n\tRemainingDailyWithdrawalsCountQuery,\r\n\tTouchGCashDepositMutation,\r\n\tTouchGCashDepositMutationVariables,\r\n\tValidateMayaSessionMutation,\r\n\tWallet,\r\n\tWalletQuery,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class WalletService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\r\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\r\n\t}\r\n\r\n\tasync availablePromos(\r\n\t\tvariables?: AvailablePromosQueryVariables,\r\n\t): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<AvailablePromosQuery, AvailablePromosQueryVariables>(\r\n\t\t\tAVAILABLE_PROMOS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\r\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(CASHBACK_BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\r\n\t}\r\n\r\n\tasync claimCashbackBonus(\r\n\t\tvariables: ClaimCashbackBonusMutationVariables,\r\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tClaimCashbackBonusMutation,\r\n\t\t\tClaimCashbackBonusMutationVariables\r\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimCashbackBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\r\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\r\n\t}\r\n\r\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\r\n\t}\r\n\r\n\tasync deposit(\r\n\t\tvariables: DepositQueryVariables,\r\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\r\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\r\n\t\t\tDEPOSIT_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGCashDeposit(\r\n\t\tvariables: CreateGCashDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashDepositMutation,\r\n\t\t\tCreateGCashDepositMutationVariables\r\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaDeposit(\r\n\t\tvariables: CreateMayaDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaDepositMutation,\r\n\t\t\tCreateMayaDepositMutationVariables\r\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOQRPHDeposit(\r\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOQRPHDepositMutation,\r\n\t\t\tCreateAIOQRPHDepositMutationVariables\r\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOQRPHDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOOnlineBankDeposit(\r\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOOnlineBankDepositMutation,\r\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\r\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOOnlineBankDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOOnlineBankDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppDeposit(\r\n\t\tvariables: CreateMayaAppDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppDepositMutation,\r\n\t\t\tCreateMayaAppDepositMutationVariables\r\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGCashWithdrawal(\r\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashWithdrawalMutation,\r\n\t\t\tCreateGCashWithdrawalMutationVariables\r\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaWithdrawal(\r\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaWithdrawalMutation,\r\n\t\t\tCreateMayaWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppWithdrawal(\r\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppWithdrawalMutation,\r\n\t\t\tCreateMayaAppWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createBankWithdrawal(\r\n\t\tvariables: CreateBankWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateBankWithdrawalMutation,\r\n\t\t\tCreateBankWithdrawalMutationVariables\r\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createBankWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOInstapayWithdrawal(\r\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOInstapayWithdrawalMutation,\r\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\r\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOInstapayWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOInstapayWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\r\n\t\tconst res = await this.client.request<InstapayBankListQuery>(INSTAPAY_BANK_LIST_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\r\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWallet(): Promise<OperationResult<never, PointsWallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\r\n\t}\r\n\r\n\tasync redeemPointsToCash(\r\n\t\tvariables: RedeemPointsToCashMutationVariables,\r\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRedeemPointsToCashMutation,\r\n\t\t\tRedeemPointsToCashMutationVariables\r\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.redeemPointsToCash) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync mayaSession(\r\n\t\tvariables: MayaSessionQueryVariables,\r\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<MayaSessionQuery, MayaSessionQueryVariables>(\r\n\t\t\tMAYA_SESSION_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<EndGameSessionMutation, EndGameSessionMutationVariables>(\r\n\t\t\tEND_GAME_SESSION_MUTATION.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\r\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.validateMayaSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\r\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\r\n\t}\r\n\r\n\tasync claimSpotBonus(\r\n\t\tvariables: ClaimSpotBonusMutationVariable,\r\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\r\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariable>(\r\n\t\t\tCLAIM_SPOT_BONUS,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimSpotBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync touchGCashDeposit(variables: TouchGCashDepositMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTouchGCashDepositMutation,\r\n\t\t\tTouchGCashDepositMutationVariables\r\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.touchGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","export function cloneDate(date: Date) {\r\n\treturn new Date(date.getTime());\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addMinutes(date: Date, minutes: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() + minutes);\r\n\treturn result;\r\n}\r\n","/**\r\n * is `date1` after `date2`?\r\n */\r\nexport function isAfter(date1: Date, date2: Date) {\r\n\treturn date1.getTime() > date2.getTime();\r\n}\r\n","import { addMinutes } from './add-minutes.js';\r\nimport { isAfter } from './is-after.js';\r\n\r\ninterface CacheValue<T> {\r\n\tvalue: T;\r\n\tvalidUntil: Date;\r\n}\r\n\r\ninterface CacheConfig {\r\n\t/**\r\n\t * @description The number in minutes the cache is valid\r\n\t * @default 5\r\n\t */\r\n\tcacheTime: number;\r\n}\r\n\r\nexport class Cache<T = unknown> {\r\n\tprivate config: CacheConfig;\r\n\tprivate cache: Record<string, CacheValue<T>>;\r\n\r\n\tconstructor(config?: CacheConfig) {\r\n\t\tthis.cache = {};\r\n\t\tthis.config = {\r\n\t\t\tcacheTime: 5,\r\n\t\t\t...config,\r\n\t\t};\r\n\t}\r\n\r\n\tset(key: string, value: T) {\r\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\r\n\r\n\t\tthis.cache[key] = {\r\n\t\t\tvalue,\r\n\t\t\tvalidUntil,\r\n\t\t};\r\n\t}\r\n\r\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\r\n\t\tconst o = this.cache[key];\r\n\t\tif (!o) return null;\r\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\r\n\t\treturn o.value as any;\r\n\t}\r\n}\r\n","export function clamp(value: number, min: number, max: number) {\r\n\tif (value < min) return min;\r\n\tif (value > max) return max;\r\n\treturn value;\r\n}\r\n","export function isPlainObject(value: unknown): value is Record<string, any> {\r\n\treturn Object.prototype.toString.call(value) === '[object Object]' && Object(value) === value;\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function flatten(value: Record<string, any> | any[]) {\r\n\tconst result: {\r\n\t\tkey: string[];\r\n\t\tvalue: any;\r\n\t}[] = [];\r\n\r\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\r\n\t\tfor (const k in o) {\r\n\t\t\tconst v = o[k];\r\n\r\n\t\t\tif (isPlainObject(v)) {\r\n\t\t\t\tfn(v, [...parentKeys, k]);\r\n\t\t\t} else if (Array.isArray(v)) {\r\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\r\n\t\t\t} else {\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tkey: [...parentKeys, k],\r\n\t\t\t\t\tvalue: v,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfn(value);\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction arrayToObject(array: unknown[]) {\r\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\r\n\t\to[i] = v;\r\n\t\treturn o;\r\n\t}, {});\r\n}\r\n","import type { GenericObject, OperationResult } from '../types/index.js';\r\nimport { flatten } from './flatten.js';\r\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\r\n\r\ntype ModifiableKey =\r\n\t| 'mode'\r\n\t| 'cache'\r\n\t| 'signal'\r\n\t| 'headers'\r\n\t| 'integrity'\r\n\t| 'keepalive'\r\n\t| 'credentials';\r\n\r\ntype Modifiable = {\r\n\t[K in ModifiableKey]: Request[K];\r\n};\r\n\r\nexport interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {}\r\n\r\nexport type GraphQLClientMiddleware = (\r\n\trequest: ModifiedRequest,\r\n) => ModifiedRequest | Promise<ModifiedRequest>;\r\n\r\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {}\r\n\r\nexport interface GraphQLClientConfig {\r\n\tmiddlewares?: GraphQLClientMiddleware[];\r\n\tfetchOptions?: GraphQLClientFetchOptions;\r\n}\r\n\r\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\r\ntype GraphQLErrorExtensionCode =\r\n\t| 'FORBIDDEN'\r\n\t| 'UNAUTHORIZED'\r\n\t| 'BAD_REQUEST'\r\n\t| 'BAD_USER_INPUT'\r\n\t| 'INTERNAL_SERVER_ERROR'\r\n\t| 'ACCESS_TOKEN_EXPIRED';\r\n\r\ninterface GraphQLErrorExtensions {\r\n\tcode: GraphQLErrorExtensionCode;\r\n\tstacktrace: string[];\r\n}\r\n\r\ninterface GraphQLErrorLocation {\r\n\tline: number;\r\n\tcolumn: number;\r\n}\r\n\r\ninterface GraphQLError {\r\n\tpath: string[];\r\n\tmessage?: string;\r\n\textensions?: GraphQLErrorExtensions;\r\n\tlocations: GraphQLErrorLocation[];\r\n}\r\n\r\nexport class GraphQLClient {\r\n\tprivate url: string;\r\n\tprivate options: GraphQLClientFetchOptions;\r\n\tprivate middlewares: GraphQLClientMiddleware[];\r\n\r\n\tconstructor(url: string, config?: GraphQLClientConfig) {\r\n\t\tconst headers = new Headers(config?.fetchOptions?.headers);\r\n\r\n\t\tthis.url = url;\r\n\t\tthis.options = { ...config?.fetchOptions, headers };\r\n\t\tthis.middlewares = config?.middlewares ?? [];\r\n\t}\r\n\r\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables?: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst opts = mergeFetchOptions(this.options, options);\r\n\t\tconst body = JSON.stringify({\r\n\t\t\tquery,\r\n\t\t\tvariables,\r\n\t\t});\r\n\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.set('Content-Type', 'application/json');\r\n\t\theaders.set('Accept', 'application/json');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\t/** Single file upload */\r\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst opts = mergeFetchOptions(this.options, options);\r\n\t\tconst body = this.createUploadBody(query, variables);\r\n\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.delete('Content-Type');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(request);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t\t}\r\n\r\n\t\t\tconst json = await res.json();\r\n\t\t\tconst data = json.data;\r\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\r\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(403, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(401, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\r\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(400, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Fallback for unknown error codes */\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async runMiddlewares(req: ModifiedRequest): Promise<ModifiedRequest> {\r\n\t\tlet result = req.clone();\r\n\r\n\t\tfor (const middleware of this.middlewares) {\r\n\t\t\tresult = await middleware(result);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t) {\r\n\t\tconst files = flatten(variables).filter(\r\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\r\n\t\t);\r\n\r\n\t\tconst body = new FormData();\r\n\r\n\t\tbody.append(\r\n\t\t\t'operations',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tconst map: GenericObject = {};\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\r\n\t\t});\r\n\r\n\t\tbody.append('map', JSON.stringify(map));\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tbody.append(i.toString(), o.value);\r\n\t\t});\r\n\r\n\t\treturn body;\r\n\t}\r\n}\r\n\r\nfunction getOperationInfo(query: string) {\r\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\r\n\r\n\tif (!l) return null;\r\n\r\n\tconst k = l.at(1);\r\n\tconst v = l.at(2);\r\n\r\n\treturn k && v ? { type: k, name: v } : null;\r\n}\r\n\r\nfunction mergeFetchOptions(\r\n\ti: GraphQLClientFetchOptions | undefined,\r\n\tj: GraphQLClientFetchOptions | undefined,\r\n): GraphQLClientFetchOptions {\r\n\tif (!i) return j ?? {};\r\n\tif (!j) return i ?? {};\r\n\r\n\treturn {\r\n\t\t...i,\r\n\t\t...j,\r\n\r\n\t\theaders: mergeHeaders(i.headers, j.headers),\r\n\t};\r\n}\r\n\r\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\r\n\tif (!i) return j;\r\n\tif (!j) return i;\r\n\r\n\tconst h = new Headers();\r\n\r\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\r\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\r\n\r\n\treturn h;\r\n}\r\n","export async function sha256(input: string) {\r\n\tconst msgUint8 = new TextEncoder().encode(input);\r\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\tconst hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\r\n\treturn hashHex;\r\n}\r\n","interface LoggerConfig {\r\n\t/**\r\n\t * @default true\r\n\t */\r\n\tenabled?: boolean;\r\n}\r\n\r\nexport class Logger {\r\n\tprivate enabled: boolean;\r\n\r\n\tconstructor(config?: LoggerConfig) {\r\n\t\tthis.enabled = config?.enabled ?? true;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\r\n\t}\r\n\r\n\twarn(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\r\n\t}\r\n\r\n\terror(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\r\n\t}\r\n\r\n\tsuccess(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\r\n\t}\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addDays(date: Date, days: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setDate(result.getDate() + days);\r\n\treturn result;\r\n}\r\n","export function sleep(ms: number) {\r\n\treturn new Promise<void>((resolve) => {\r\n\t\tsetTimeout(resolve, ms);\r\n\t});\r\n}\r\n","import { sleep } from './sleep.js';\r\n\r\ninterface Config<T> {\r\n\tuntil(response: T): boolean;\r\n\t/**\r\n\t * @default 1000\r\n\t */\r\n\tinterval?: number;\r\n\t/**\r\n\t * @default 3\r\n\t */\r\n\tmaxAttempt?: number;\r\n}\r\n\r\n/**\r\n * @example\r\n * ```ts\r\n * const poll = pollable(\r\n * fn,\r\n * {\r\n * until: (r) => r.ok,\r\n * interval: 1000,\r\n * maxAttempt: 5,\r\n * }\r\n * );\r\n *\r\n * poll()\r\n * ```\r\n */\r\nexport function pollable<Return, Args = never>(\r\n\tfunc: (...args: Args[]) => Promise<Return>,\r\n\tconfig: Config<Return>,\r\n) {\r\n\tconst {\r\n\t\tuntil,\r\n\t\tinterval = 1000,\r\n\t\tmaxAttempt = 3,\r\n\t\t/**/\r\n\t} = config;\r\n\r\n\tasync function repeater(args: Args[], max?: number) {\r\n\t\tconst m = max ?? maxAttempt;\r\n\t\tconst r = await func(...args);\r\n\t\tconst k = until(r);\r\n\r\n\t\tif (k) return r;\r\n\r\n\t\tif (m > 1) {\r\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\r\n\t\t\treturn repeater(args, m - 1);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\treturn async (...args: Args[]): Promise<Return> => {\r\n\t\treturn await repeater(args);\r\n\t};\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function subMinutes(date: Date, minutes: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() - minutes);\r\n\treturn result;\r\n}\r\n","import type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogs?: boolean;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManager {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\r\n\t\tthis.logger = new Logger({\r\n\t\t\tenabled: config.logs ?? false,\r\n\t\t});\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tlocalStorage.setItem(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tlocalStorage.setItem(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tlocalStorage.removeItem(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function compact<T>(obj: Record<string, any>) {\r\n\tconst output: Record<string, any> = {};\r\n\r\n\tfor (const k in obj) {\r\n\t\tconst v = obj[k];\r\n\r\n\t\tif (v === null) continue;\r\n\t\tif (v === undefined) continue;\r\n\r\n\t\tif (isPlainObject(v)) {\r\n\t\t\toutput[k] = compact(v);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(v)) {\r\n\t\t\toutput[k] = v.map((i) => {\r\n\t\t\t\tif (isPlainObject(i)) {\r\n\t\t\t\t\treturn compact(i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\toutput[k] = v;\r\n\t}\r\n\r\n\treturn output as T;\r\n}\r\n","export function invariant(condition: unknown, message?: string): asserts condition {\r\n\tif (!condition) {\r\n\t\tconst error = new Error();\r\n\t\terror.name = 'Invariant Violation';\r\n\t\terror.message = message ?? 'Invariant failed';\r\n\t\tError.captureStackTrace?.(error, invariant);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n","type MaybeNumber = number | string | undefined | null;\r\n\r\nexport function parseDecimal(value: MaybeNumber): number | undefined;\r\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\r\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\r\n\tif (typeof value === 'number') {\r\n\t\tif (!Number.isNaN(value)) return value;\r\n\t}\r\n\r\n\tif (typeof value === 'string') {\r\n\t\tconst parsed = Number.parseFloat(value);\r\n\r\n\t\tif (!Number.isNaN(parsed)) {\r\n\t\t\treturn parsed;\r\n\t\t}\r\n\t}\r\n\r\n\treturn fallback;\r\n}\r\n","import type { Currency, Locale } from './types.js';\r\n\r\nexport function getLocaleByCurrency(currency: Currency): Locale {\r\n\tif (currency === 'INR') return 'en-IN';\r\n\tif (currency === 'MYR') return 'en-MY';\r\n\tif (currency === 'IDR') return 'en-ID';\r\n\tif (currency === 'USD') return 'en-US';\r\n\treturn 'en-PH';\r\n}\r\n\r\n/*\r\n * +63 (Philippines)\r\n * +91 (India)\r\n * +60 (Malaysia)\r\n * +62 (Indonesia)\r\n * +1 (UnitedStates)\r\n */\r\nexport function getAreaCodeByLocale(locale: Locale) {\r\n\tif (locale === 'en-IN') return '+91';\r\n\tif (locale === 'en-MY') return '+60';\r\n\tif (locale === 'en-ID') return '+62';\r\n\tif (locale === 'en-US') return '+1';\r\n\treturn '+63';\r\n}\r\n\r\n/**\r\n * @description Ensures mobile number has complete area code\r\n * @example\r\n * ```ts\r\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\r\n * ```\r\n */\r\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\r\n\tconst areaCode = getAreaCodeByLocale(locale);\r\n\r\n\t/* starts with area code */\r\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\r\n\t/* starts with area code without \"+\" */\r\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\r\n\t/* starts with zero */\r\n\tif (mobileNumber.startsWith('0')) return `${areaCode}${mobileNumber.substring(1)}`;\r\n\r\n\treturn `${areaCode}${mobileNumber}`;\r\n}\r\n","import type * as Internal from '../services/index.js';\r\nimport type { Assign } from '../types/index.js';\r\nimport { compact } from '../utils/compact.js';\r\nimport { invariant } from '../utils/invariant.js';\r\nimport { parseDecimal } from '../utils/parse-decimal.js';\r\nimport type * as External from './types.js';\r\nimport { getLocaleByCurrency } from './utils.js';\r\n\r\nconst IMAGE_CACHE_ID = '1'.padStart(8, '0');\r\n\r\nexport class Transformer {\r\n\tget transform() {\r\n\t\treturn {\r\n\t\t\tsite: this.site.bind(this),\r\n\t\t\tplatform: this.platform.bind(this),\r\n\t\t\taccount: this.account.bind(this),\r\n\t\t\twallet: this.wallet.bind(this),\r\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\r\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\r\n\t\t\tannouncement: this.announcement.bind(this),\r\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\r\n\t\t\tdeposit: this.deposit.bind(this),\r\n\t\t\tdepositRecord: this.depositRecord.bind(this),\r\n\t\t\tbetRecord: this.betRecord.bind(this),\r\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\r\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\r\n\t\t\tgame: this.game.bind(this),\r\n\t\t\tgameSession: this.gameSession.bind(this),\r\n\t\t\tpromo: this.promo.bind(this),\r\n\t\t\tcashback: this.cashback.bind(this),\r\n\t\t\tbonus: this.bonus.bind(this),\r\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\r\n\t\t\tfile: this.file.bind(this),\r\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\r\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\r\n\t\t\tactivityRecord: this.activityRecord.bind(this),\r\n\t\t\treferral: this.referral.bind(this),\r\n\t\t\treferralCommission: this.referralCommission.bind(this),\r\n\t\t\tplatform__next: this.platform__next.bind(this),\r\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\r\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\r\n\t\t\tmessage: this.message.bind(this),\r\n\t\t\tinstapayBank: this.instapayBank.bind(this),\r\n\t\t\tpromoByCode: this.promoByCode.bind(this),\r\n\t\t\tquest: this.quest.bind(this),\r\n\t\t\ttopWin: this.topWin.bind(this),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate site(data: Internal.Site): External.Site {\r\n\t\tconst o: External.Site = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tlogo: data.logo ?? undefined,\r\n\t\t\tfields: data.config.fields,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tprivate platform(data: Internal.Platform): External.Platform {\r\n\t\treturn {\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tpaymentSettings: {\r\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\t\tdepositGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonlineBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tqrph: {\r\n\t\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\twithdrawalGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinstapay: {\r\n\t\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpointsClubSettings: {\r\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate platform__next(data: Internal.Platform__Next): External.Platform__Next {\r\n\t\treturn {\r\n\t\t\tcurrency: data.currency,\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tlocale: getLocaleByCurrency(data.currency),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate pointsClubSettings(data: Internal.PointsClubSettings): External.PointsClubSettings {\r\n\t\treturn {\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate paymentSettings(data: Internal.PaymentSettings): External.PaymentSettings {\r\n\t\treturn {\r\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\tdepositGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tonlineBank: {\r\n\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tqrph: {\r\n\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\twithdrawalGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.maximumAmount, 1000000),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tinstapay: {\r\n\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate account(data: Internal.MemberAccount): External.Account {\r\n\t\tconst o: External.Account = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tverified: data.verified,\r\n\t\t\tnickName: data.nickName ?? undefined,\r\n\t\t\trealName: data.realName ?? undefined,\r\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\r\n\t\t\temailAddress: data.emailAddress ?? undefined,\r\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\r\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\r\n\t\t\tmobileNumberVerificationRequired: data.mobileNumberVerificationRequired ?? false,\r\n\t\t\tvalidId: data.validId || undefined,\r\n\t\t\tverificationStatus: data.verificationStatus,\r\n\t\t\ttransactionPassword: data.transactionPassword,\r\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\r\n\t\tconst o: External.Wallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate verificationDetails(data: Internal.MemberVerification): External.VerificationDetails {\r\n\t\tconst o: External.VerificationDetails = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\taddress: data.address,\r\n\t\t\tpermanentAddress: data.permanentAddress,\r\n\t\t\tnationality: data.nationality,\r\n\t\t\tnatureOfWork: data.natureOfWork,\r\n\t\t\tplaceOfBirth: data.placeOfBirth,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome,\r\n\t\t\tselfieImage: this.file(data.selfieImage) as External.File,\r\n\t\t\tidFrontImage: this.file(data.idFrontImage) as External.File,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate profileCompletion(data: Internal.ProfileCompletion): External.ProfileCompletion {\r\n\t\tconst o: External.ProfileCompletion = {\r\n\t\t\taccountPassword: data.accountPassword ?? false,\r\n\t\t\taccountVerification: data.accountVerification ?? false,\r\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\r\n\t\t\tpersonalInformation: data.personalInformation ?? false,\r\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\r\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\r\n\t\tconst o: External.Announcement = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttitle: data.title,\r\n\t\t\tstatus: data.status,\r\n\t\t\tmessage: data.message,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate withdrawalRecord(data: Internal.WithdrawalRecord): External.WithdrawalRecord {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tbank: data.bank!,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t\twithdrawalNumber: data.withdrawalNumber,\r\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\r\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed ? new Date(data.dateTimeConfirmed) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.WithdrawalRecord;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tvca: data.vca ?? undefined,\r\n\t\t\tqrCode: data.qrCode ?? undefined,\r\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\r\n\t\tconst o: External.DepositRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\tdeposit: data.deposit,\r\n\t\t\tdepositNumber: data.depositNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate betRecord(\r\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\r\n\t): External.BetRecord {\r\n\t\tconst o: External.BetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\r\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\r\n\t\t\twinloss: parseDecimal(data.winloss),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\tdateTimeSettled: data.dateTimeSettled ? new Date(data.dateTimeSettled) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tbetContent: data.betContent ?? undefined,\r\n\t\t\tcontestName: data.contestName ?? undefined,\r\n\t\t\texternalCategory: data.externalCategory ?? undefined,\r\n\t\t\tmetadata: {\r\n\t\t\t\todds: data.metadata?.odds ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate latestBetRecord(\r\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\r\n\t): External.LatestBetRecord {\r\n\t\tconst o: External.LatestBetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: data.member,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate transactionRecord(data: Internal.TransactionRecord): External.TransactionRecord {\r\n\t\tconst o: External.TransactionRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tcontent: data.content ?? undefined,\r\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\r\n\t\t\treferenceNumber: data.referenceNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate game(data: Internal.Game): External.Game {\r\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\r\n\t\t\tinvariant(url);\r\n\r\n\t\t\treturn url.includes('?')\r\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\r\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\r\n\t\t});\r\n\r\n\t\tconst o: External.Game = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttags: data.tags ?? [],\r\n\t\t\tname: data.name,\r\n\t\t\timages,\r\n\t\t\tprovider: data.provider,\r\n\t\t\treference: data.reference,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.GameSession;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate promo(data: Internal.Promo): External.Promo {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdescription: data.description,\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\r\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\r\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\r\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\r\n\t\tconst o: External.Cashback = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\r\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\r\n\t\tconst o: External.Bonus = {\r\n\t\t\tid: data.id,\r\n\t\t\tpromo: this.promo(data.promo),\r\n\t\t\tdeposit: !data.deposit\r\n\t\t\t\t? undefined\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttype: data.deposit.type,\r\n\t\t\t\t\t\tstatus: data.deposit.status,\r\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\r\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\r\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\r\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\r\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\r\n\t\t\t\t\t},\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\texpiration: new Date(data.expiration),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\r\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContribution,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\r\n\t\tconst o: External.CashbackBonus = {\r\n\t\t\tid: data.id,\r\n\t\t\ttotal: parseDecimal(data.total, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcashback: this.cashback(data.cashback),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate file(data: Internal.File): External.File {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\turl: data.url ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t} as External.File;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\r\n\t\tconst o: External.PointsWallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\taccount: data.account,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate pointsWalletTransaction(\r\n\t\tdata: Internal.PointsWalletTransaction,\r\n\t): External.PointsWalletTransaction {\r\n\t\tconst o: External.PointsWalletTransaction = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate activityRecord(data: Internal.ActivityRecord): External.ActivityRecord {\r\n\t\tconst o: External.ActivityRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\r\n\t\t\tdomain: data.domain ?? undefined,\r\n\t\t\tdetails: data.details,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate referral(data: Internal.Referral): External.Referral {\r\n\t\tconst o: External.Referral = {\r\n\t\t\tid: data.id,\r\n\t\t\tlevel: data.level,\r\n\t\t\tupline: data.upline,\r\n\t\t\tdownline: data.downline,\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate referralCommission(data: Internal.ReferralCommission): External.ReferralCommission {\r\n\t\tconst o: External.ReferralCommission = {\r\n\t\t\tid: data.id,\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\r\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\r\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\r\n\t\t\treferralsCount: data.referralsCount,\r\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\r\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\r\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\r\n\t\t\treferralCode: data.referralCode,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate message(data: Internal.Message): External.Message {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ticon: data.icon,\r\n\t\t\tlogo: data.logo,\r\n\t\t\timage: data.image,\r\n\t\t\ttitle: data.title,\r\n\t\t\tpopup: data.popup,\r\n\t\t\tcontent: data.content,\r\n\t\t\tactions: data.actions,\r\n\t\t\tmarkedAsRead: data.markedAsRead,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\r\n\t\treturn data;\r\n\t}\r\n\r\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\r\n\t\treturn {\r\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\r\n\t\t\tbonusesCount: data.bonusesCount,\r\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\r\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\r\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\r\n\t\t\tclosedBonusesCountPercentage: parseDecimal(data.closedBonusesCountPercentage, 0),\r\n\t\t\tcode: data.code,\r\n\t\t\tdaysToClear: data.daysToClear,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tid: data.id,\r\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\r\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\r\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\r\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\r\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\r\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\r\n\t\t\tturnoverRequirementMultiplier: parseDecimal(data.turnoverRequirementMultiplier, 0),\r\n\t\t\ttype: data.type,\r\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\r\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\r\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\r\n\t\t\tdescription: data.description,\r\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\r\n\t\t\tactivationEndDateTime: data.activationEndDateTime\r\n\t\t\t\t? new Date(data.activationEndDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tactivationStartDateTime: data.activationStartDateTime\r\n\t\t\t\t? new Date(data.activationStartDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClosed: data.dateTimeClosed ? new Date(data.dateTimeClosed) : undefined,\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\r\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tbanner: data.banner,\r\n\t\t};\r\n\t}\r\n\r\n\tquest(data: Internal.Quest): External.Quest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbonus: parseDecimal(data.bonus, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tendDateTime: new Date(data.endDateTime),\r\n\t\t\tprogram: {\r\n\t\t\t\ttype: data.program.type,\r\n\t\t\t\tname: data.program.name,\r\n\t\t\t\tdescription: data.program.description,\r\n\t\t\t\ttotalBonus: parseDecimal(data.program.totalBonus, 0),\r\n\t\t\t\tstatus: data.program.status,\r\n\t\t\t\tactivationDate: new Date(data.program.activationDate),\r\n\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\r\n\t\t\t\t\tdata.program.bonusTurnoverRequirementMultiplier,\r\n\t\t\t\t\t0,\r\n\t\t\t\t),\r\n\t\t\t\tcompletedQuestsCount: parseDecimal(data.program.completedQuestsCount, 0),\r\n\t\t\t\tfailedQuestsCount: parseDecimal(data.program.failedQuestsCount, 0),\r\n\t\t\t\tmaximumQuestsPerMember: parseDecimal(data.program.failedQuestsCount, 0),\r\n\t\t\t\tquestsCount: parseDecimal(data.program.questsCount, 0),\r\n\t\t\t\tmemberGroups: data.program.memberGroups,\r\n\t\t\t\tpromo: data.program.promo,\r\n\r\n\t\t\t\t...(data.program.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\t\tseventhDayBonusAmount: parseDecimal(data.program.seventhDayBonusAmount, 0),\r\n\t\t\t\t\tsixthDayBonusAmount: parseDecimal(data.program.sixthDayBonusAmount, 0),\r\n\t\t\t\t\tthirdDayBonusAmount: parseDecimal(data.program.thirdDayBonusAmount, 0),\r\n\t\t\t\t}),\r\n\t\t\t\t...(data.program.type === 'WAGERING' && {\r\n\t\t\t\t\ttargetTurnover: parseDecimal(data.program.targetTurnover, 0),\r\n\t\t\t\t\tdaysToClear: parseDecimal(data.program.daysToClear, 0),\r\n\t\t\t\t\tbonusAmount: parseDecimal(data.program.bonusAmount, 0),\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\ttargetTurnover: data?.targetTurnover ? parseDecimal(data.targetTurnover, 0) : undefined,\r\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\r\n\t\t\tlastCheckInDate: data?.lastCheckInDate ? new Date(data.lastCheckInDate) : undefined,\r\n\t\t\tmember: data.member,\r\n\t\t\tstartDateTime: data?.startDateTime ? new Date(data.startDateTime) : undefined,\r\n\t\t\ttype: data.type,\r\n\r\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\r\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\r\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'ONBOARDING' && {\r\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\r\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate topWin(data: Internal.TopWin): External.TopWin {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tgame: {\r\n\t\t\t\tid: data.game.id,\r\n\t\t\t\tname: data.game.name,\r\n\t\t\t},\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t};\r\n\t}\r\n}\r\n","import {\r\n\tAccountService,\r\n\tAuthService,\r\n\tCmsPortalService,\r\n\tFileService,\r\n\tGameService,\r\n\tPortalService,\r\n\tReportService,\r\n\tTriggerService,\r\n\tWalletService,\r\n} from '../services/index.js';\r\nimport { Cache } from '../utils/cache.js';\r\nimport { clamp } from '../utils/clamp.js';\r\nimport {\r\n\tGraphQLClient,\r\n\ttype GraphQLClientConfig,\r\n\ttype GraphQLClientMiddleware,\r\n} from '../utils/graphql-client.js';\r\nimport { sha256 } from '../utils/sha256.js';\r\nimport { Logger } from './logger.js';\r\nimport { ObjectId } from './object-id.js';\r\nimport { ObjectType } from './object-type.js';\r\nimport { SessionManager } from './session-manager.js';\r\nimport { Transformer } from './transformer.js';\r\nimport type {\r\n\tAccountReturn,\r\n\tActivityRecordsInput,\r\n\tActivityRecordsReturn,\r\n\tAnnouncementsInput,\r\n\tAnnouncementsReturn,\r\n\tAuthenticateInput,\r\n\tAuthenticateReturn,\r\n\tAvailablePromosReturn,\r\n\tAvailableQuestsReturn,\r\n\tBetRecordsInput,\r\n\tBetRecordsReturn,\r\n\tBonusReturn,\r\n\tBonusesReturn,\r\n\tCabinetSignInInput,\r\n\tCabinetSignInReturn,\r\n\tCashbackBonusReturn,\r\n\tCashbacksReturn,\r\n\tCheckInDailyQuestReturn,\r\n\tClaimCashbackBonusReturn,\r\n\tClaimRewardReturn,\r\n\tClaimSpotBonusReturn,\r\n\tCompleteOnboardingInput,\r\n\tCompleteOnboardingReturn,\r\n\tCreateAccountInput,\r\n\tCreateAccountInput__Next,\r\n\tCreateAccountReturn,\r\n\tCreateDepositInput,\r\n\tCreateDepositReturn,\r\n\tCreateGameSessionInput,\r\n\tCreateGameSessionReturn,\r\n\tCreateWithdrawalInput,\r\n\tCreateWithdrawalReturn,\r\n\tDeleteAccountReturn,\r\n\tDepositRecordsInput,\r\n\tDepositRecordsReturn,\r\n\tDepositReturn,\r\n\tDepositsCountReturn,\r\n\tDownlinesByNameInput,\r\n\tDownlinesByNameReturn,\r\n\tEndGameSessionReturn,\r\n\tFileReturn,\r\n\tGameProvider,\r\n\tGameReturn,\r\n\tGameSessionReturn,\r\n\tGamesInput,\r\n\tGamesInput__Next,\r\n\tGamesReturn,\r\n\tInstapayBankListReturn,\r\n\tLatestBetRecordsReturn,\r\n\tLocale,\r\n\tMarkAllMessagesAsReadReturn,\r\n\tMarkMessageAsReadReturn,\r\n\tMayaSignInInput,\r\n\tMayaSignInReturn,\r\n\tMessagesInput,\r\n\tMessagesReturn,\r\n\tMobileNumberSignInInput,\r\n\tMobileNumberSignInReturn,\r\n\tNameAndPasswordSignInInput,\r\n\tNameAndPasswordSignInReturn,\r\n\tOnboardingStatusReturn,\r\n\tPaymentSettingsReturn,\r\n\tPlatformReturn,\r\n\tPlatformReturn__Next,\r\n\tPointsClubSettingsReturn,\r\n\tPointsWalletReturn,\r\n\tPointsWalletTransactionsInput,\r\n\tPointsWalletTransactionsReturn,\r\n\tProfileCompletionReturn,\r\n\tPromoByCodeReturn,\r\n\tPromosReturn,\r\n\tRecommendedGamesInput,\r\n\tRecommendedGamesReturn,\r\n\tRedeemPointsInput,\r\n\tRedeemPointsReturn,\r\n\tReferralCodeReturn,\r\n\tReferralCommissionReturn,\r\n\tReferralsInput,\r\n\tReferralsReturn,\r\n\tRegisterMayaAccountInput,\r\n\tRegisterMayaAccountReturn,\r\n\tRemainingDailyWithdrawalsCountReturn,\r\n\tResetPasswordInput,\r\n\tResetPasswordReturn,\r\n\tSendVerificationCodeInput__Next,\r\n\tSendVerificationCodeReturn,\r\n\tSendVerificationCodeReturn__Next,\r\n\tSessionReturn,\r\n\tSignInInput,\r\n\tSignInReturn,\r\n\tSiteReturn,\r\n\tSkipOnboardingReturn,\r\n\tSocialsSignInInput,\r\n\tSocialsSignInReturn,\r\n\tSubmitVerificationDetailsInput,\r\n\tSubmitVerificationDetailsReturn,\r\n\tTokenSignInInput,\r\n\tTokenSignInReturn,\r\n\tTopWinsReturn,\r\n\tTouchDepositInput,\r\n\tTouchDepositReturn,\r\n\tTransactionRecordsInput,\r\n\tTransactionRecordsReturn,\r\n\tUnreadMessagesCountInput,\r\n\tUnreadMessagesCountReturn,\r\n\tUpdateAccountInput,\r\n\tUpdateAccountReturn,\r\n\tUpdateReferralCodeInput,\r\n\tUpdateReferralCodeReturn,\r\n\tUpdateVerificationDetailsInput,\r\n\tUpdateVerificationDetailsReturn,\r\n\tUplinesByNameInput,\r\n\tUplinesByNameReturn,\r\n\tUploadImageFileInput,\r\n\tUploadImageFileReturn,\r\n\tValidateMayaSessionReturn,\r\n\tVerificationDetailsReturn,\r\n\tVerifyMobileNumberReturn,\r\n\tWalletReturn,\r\n\tWatchSessionInput,\r\n\tWithdrawalRecordsInput,\r\n\tWithdrawalRecordsReturn,\r\n} from './types.js';\r\nimport { addAreaCode } from './utils.js';\r\n\r\nexport interface SdkConfig {\r\n\t/**\r\n\t * @default 'development'\r\n\t */\r\n\tenvironment?: 'production' | 'development';\r\n\tsite: string;\r\n\tsitePlatform: string;\r\n\tplatform: string;\r\n\tlogs?: boolean;\r\n}\r\n\r\nexport class Sdk {\r\n\tprivate cmsPortalService: CmsPortalService;\r\n\tprivate authService: AuthService;\r\n\tprivate gameService: GameService;\r\n\tprivate fileService: FileService;\r\n\tprivate walletService: WalletService;\r\n\tprivate accountService: AccountService;\r\n\tprivate reportService: ReportService;\r\n\tprivate portalService: PortalService;\r\n\tprivate triggerService: TriggerService;\r\n\tprivate sessionManager: SessionManager;\r\n\tprivate transformer: Transformer;\r\n\tprivate logger: Logger;\r\n\r\n\tprivate cache: Cache;\r\n\r\n\tconstructor(config: SdkConfig) {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tsite,\r\n\t\t\tsitePlatform,\r\n\t\t\tplatform,\r\n\t\t\tenvironment = 'development',\r\n\t\t\tlogs,\r\n\t\t} = config;\r\n\r\n\t\tconst production = environment === 'production';\r\n\r\n\t\tthis.transformer = new Transformer();\r\n\t\tthis.logger = new Logger({\r\n\t\t\tenabled: logs ?? false,\r\n\t\t});\r\n\r\n\t\tconst authUrl = ENDPOINTS[environment].auth;\r\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\r\n\t\tconst reportUrl = ENDPOINTS[environment].report;\r\n\t\tconst accountUrl = ENDPOINTS[environment].account;\r\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\r\n\t\tconst fileUrl = ENDPOINTS[environment].file;\r\n\t\tconst gameUrl = ENDPOINTS[environment].game;\r\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\r\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\r\n\r\n\t\tconst cmsPortalService = new CmsPortalService({\r\n\t\t\turl: cmsPortalUrl,\r\n\t\t\tsite,\r\n\t\t\tplatform: sitePlatform,\r\n\t\t});\r\n\r\n\t\tconst graphqlClientConfig: GraphQLClientConfig = {\r\n\t\t\tmiddlewares: [this.authMiddleware],\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst gameService = new GameService(new GraphQLClient(gameUrl, graphqlClientConfig));\r\n\t\tconst fileService = new FileService(new GraphQLClient(fileUrl, graphqlClientConfig));\r\n\t\tconst walletService = new WalletService(new GraphQLClient(walletUrl, graphqlClientConfig));\r\n\t\tconst accountService = new AccountService(new GraphQLClient(accountUrl, graphqlClientConfig));\r\n\t\tconst reportService = new ReportService(new GraphQLClient(reportUrl, graphqlClientConfig));\r\n\t\tconst portalService = new PortalService(new GraphQLClient(portalUrl, graphqlClientConfig));\r\n\t\tconst triggerService = new TriggerService(new GraphQLClient(triggerUrl, graphqlClientConfig));\r\n\r\n\t\tconst authService = new AuthService({\r\n\t\t\turl: authUrl,\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\r\n\t\t\t\t\t...(!production && {\r\n\t\t\t\t\t\t'Test-Pass': '',\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tconst sessionManager = new SessionManager({\r\n\t\t\tlogs,\r\n\t\t\tauthService,\r\n\t\t\twalletService,\r\n\t\t});\r\n\r\n\t\tthis.authService = authService;\r\n\t\tthis.gameService = gameService;\r\n\t\tthis.fileService = fileService;\r\n\t\tthis.walletService = walletService;\r\n\t\tthis.accountService = accountService;\r\n\t\tthis.reportService = reportService;\r\n\t\tthis.portalService = portalService;\r\n\t\tthis.triggerService = triggerService;\r\n\t\tthis.sessionManager = sessionManager;\r\n\t\tthis.cmsPortalService = cmsPortalService;\r\n\r\n\t\tthis.cache = new Cache();\r\n\t}\r\n\r\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tthis.logger.info('Checking for session');\r\n\r\n\t\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\t\tif (res.data) {\r\n\t\t\t\trequest.headers.append('Authorization', `Bearer ${res.data.accessToken}`);\r\n\r\n\t\t\t\tthis.logger.info('Session found');\r\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.info('No session found');\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tprivate get locale() {\r\n\t\treturn new Promise<Locale>((resolve) => {\r\n\t\t\tconst cacheKey = 'locale';\r\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\r\n\r\n\t\t\tif (cacheValue) return resolve(cacheValue);\r\n\r\n\t\t\tthis.platform__next().then((res) => {\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\r\n\t\t\t\t\tresolve(res.data.locale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\r\n\t\t\t\t\tresolve('en-PH');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tasync signIn(input: NameAndPasswordSignInInput): Promise<NameAndPasswordSignInReturn>;\r\n\tasync signIn(input: MobileNumberSignInInput): Promise<MobileNumberSignInReturn>;\r\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\r\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\r\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\r\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\r\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'NAME_AND_PASSWORD': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!res.ok) return res;\r\n\t\t\t\tif (res.data) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t'2FAEnabled': true,\r\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t'2FAEnabled': false,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SOCIALS':\r\n\t\t\tcase 'TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'CABINET': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'CABINET',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'MOBILE_NUMBER': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\tconst res = await this.sessionManager.create(input);\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'SECURITY_QUESTION': {\r\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\r\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpBadRequest',\r\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync signOut() {\r\n\t\tawait this.sessionManager.destroy();\r\n\t}\r\n\r\n\twatchSession(input: WatchSessionInput) {\r\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\r\n\r\n\t\tlet timeout: NodeJS.Timeout | null = null;\r\n\r\n\t\tconst assignTimeout = () => {\r\n\t\t\treturn setTimeout(async () => {\r\n\t\t\t\tconst v = await this.sessionManager.verify();\r\n\r\n\t\t\t\tif (!v) {\r\n\t\t\t\t\tawait input.onInvalid();\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = assignTimeout();\r\n\t\t\t}, interval);\r\n\t\t};\r\n\r\n\t\ttimeout = assignTimeout();\r\n\r\n\t\treturn function unsubscribe() {\r\n\t\t\tif (timeout) {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tasync session(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\r\n\t\treturn await this.walletService.validateMayaSession();\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ SITE +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync site(): Promise<SiteReturn> {\r\n\t\tconst res = await this.cmsPortalService.self();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.site(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ PLATFORM +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<PlatformReturn> {\r\n\t\tconst res = await this.accountService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform__next(): Promise<PlatformReturn__Next> {\r\n\t\tconst res = await this.portalService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\r\n\t\tconst res = await this.accountService.paymentSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ ACCOUNT +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync account(): Promise<AccountReturn> {\r\n\t\tconst r = await this.accountService.memberAccount();\r\n\r\n\t\tif (!r.ok) return r;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.account(r.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `createAccount__next`\r\n\t */\r\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tbirthDay:\r\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\r\n\t\t\t\t\t\t? input.dateOfBirth\r\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t\treferralCode: input.referralCode,\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync createAccount__next(input: CreateAccountInput__Next): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount__next({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: input.mobileNumber\r\n\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\r\n\t\t\t\t\t: undefined,\r\n\t\t\t},\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync registerMayaAccount(input: RegisterMayaAccountInput): Promise<RegisterMayaAccountReturn> {\r\n\t\treturn await this.accountService.registerMayaMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateAccount(id: string, input: UpdateAccountInput): Promise<UpdateAccountReturn> {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tpassword,\r\n\t\t\tdateOfBirth,\r\n\t\t\tmobileNumber,\r\n\t\t\tsecretAnswer,\r\n\t\t\ttransactionPassword,\r\n\t\t\t...others\r\n\t\t} = input;\r\n\r\n\t\treturn await this.accountService.updateMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...others,\r\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\r\n\t\t\t\t\ttransactionPassword: transactionPassword ? await sha256(transactionPassword) : undefined,\r\n\t\t\t\t\tmobileNumber: mobileNumber ? addAreaCode(mobileNumber, await this.locale) : undefined,\r\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\r\n\t\t\t\t\tbirthDay: dateOfBirth\r\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\r\n\t\t\t\t\t\t\t? dateOfBirth\r\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.deleteMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\r\n\t\tconst res = await this.accountService.memberVerification();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.verificationDetails(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitVerificationDetails(\r\n\t\tinput: SubmitVerificationDetailsInput,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync updateVerificationDetails(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\r\n\t\treturn await this.accountService.resetPassword({\r\n\t\t\tinput: {\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tnewPassword: await sha256(input.newPassword),\r\n\t\t\t},\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t});\r\n\t}\r\n\r\n\tasync verifyMobileNumber(verificationCode: string): Promise<VerifyMobileNumberReturn> {\r\n\t\treturn await this.accountService.verifyMobileNumber({\r\n\t\t\tinput: {\r\n\t\t\t\tverificationCode,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\r\n\t\tconst res = await this.accountService.profileCompletion();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `sendVerificationCode__next`\r\n\t */\r\n\tasync sendVerificationCode(mobileNumber: string): Promise<SendVerificationCodeReturn> {\r\n\t\treturn await this.accountService.sendVerificationCode({\r\n\t\t\tinput: {\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync sendVerificationCode__next(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<SendVerificationCodeReturn__Next> {\r\n\t\tif (input.type === 'SMS') {\r\n\t\t\treturn this.authService.sendVerificationCode({\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t...(input.strict && {\r\n\t\t\t\t\tverificationType: 'MEMBER',\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\r\n\t}\r\n\r\n\tasync wallet(): Promise<WalletReturn> {\r\n\t\tconst res = await this.walletService.wallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ ANNOUNCEMENT +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync announcements(input?: AnnouncementsInput): Promise<AnnouncementsReturn> {\r\n\t\tconst res = await this.accountService.announcements({\r\n\t\t\t...input,\r\n\t\t\tfilter: {\r\n\t\t\t\t...input?.filter,\r\n\t\t\t\tvisibility: {\r\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.announcement(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as AnnouncementsReturn;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ WITHDRAWAL +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync createWithdrawal(input: CreateWithdrawalInput): Promise<CreateWithdrawalReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\r\n\r\n\t\tif (input.type === 'BANK') {\r\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_INSTAPAY') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync withdrawalRecords(input?: WithdrawalRecordsInput): Promise<WithdrawalRecordsReturn> {\r\n\t\tconst res = await this.reportService.withdrawalRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as WithdrawalRecordsReturn;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\r\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\r\n\t\tconst res = await this.walletService.instapayBankList();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ DEPOSIT +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\r\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_QRPH') {\r\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync deposit(id: string): Promise<DepositReturn> {\r\n\t\tconst res = await this.walletService.deposit({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync depositRecords(input?: DepositRecordsInput): Promise<DepositRecordsReturn> {\r\n\t\tconst res = await this.reportService.depositRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as DepositRecordsReturn;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<DepositsCountReturn> {\r\n\t\treturn await this.reportService.depositsCount();\r\n\t}\r\n\r\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'GCASH':\r\n\t\t\t\treturn await this.walletService.touchGCashDeposit({ input: { id: input.id } });\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ BET +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\r\n\t\tconst res0 = await this.reportService.betRecords({\r\n\t\t\t...input,\r\n\t\t\t...(input?.filter && {\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...(input.filter.status && {\r\n\t\t\t\t\t\tstatus: input.filter.status,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.serialCode && {\r\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.vendorRoundId && {\r\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameType && {\r\n\t\t\t\t\t\tgame__type: input.filter.gameType,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameProvider && {\r\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\r\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbetRecords: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\r\n\t\t\t\t\tconst game = res1.data.edges.find((e) => node.game.id === e.node.reference)?.node;\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\r\n\t\t\t\t\t\t\t...node,\r\n\t\t\t\t\t\t\tgame,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t};\r\n\t\t\t\t}),\r\n\t\t\t\ttotalCount: res0.data.totalCount,\r\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as BetRecordsReturn;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\r\n\t\tconst res0 = await this.portalService.latestBetRecords();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0.data.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ TRANSACTION +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync transactionRecords(input?: TransactionRecordsInput): Promise<TransactionRecordsReturn> {\r\n\t\tconst res = await this.reportService.transactionRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as TransactionRecordsReturn;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ PROMO +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync promos(): Promise<PromosReturn> {\r\n\t\tconst res = await this.walletService.promos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync availablePromos(): Promise<AvailablePromosReturn> {\r\n\t\tconst res = await this.walletService.availablePromos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<CashbacksReturn> {\r\n\t\tconst res = await this.walletService.cashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync bonus(): Promise<BonusReturn> {\r\n\t\tconst res = await this.walletService.bonus();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\r\n\t\tconst res = await this.walletService.cashbackBonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\r\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\r\n\t}\r\n\r\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\r\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\r\n\t}\r\n\r\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\r\n\t\tconst res = await this.reportService.promoByCode({ code: code });\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ GAME +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync game(id: string): Promise<GameReturn> {\r\n\t\tconst res = await this.cmsPortalService.game(id);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games__next(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync recommendedGames(input?: RecommendedGamesInput): Promise<RecommendedGamesReturn> {\r\n\t\tconst res0 = await this.portalService.recommendedGames();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfirst: input?.first,\r\n\t\t\tafter: input?.after,\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res1.data.totalCount,\r\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as RecommendedGamesReturn;\r\n\t}\r\n\r\n\tasync gameSession(id: string, gameProvider?: GameProvider): Promise<GameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.gameSession({ id })\r\n\t\t\t\t: await this.gameService.gameSession({ id });\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: res.data ? this.transformer.transform.gameSession(res.data) : null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.gameSession({ id });\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tif (res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.gameService.gameSession({ id });\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res1.data ? this.transformer.transform.gameSession(res1.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\r\n\r\n\t\tif (input.provider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\r\n\t\t\t\t? await this.walletService.createGameSession({ input: { id, game: input.reference } })\r\n\t\t\t\t: await this.gameService.createGameSession({ input: { id, game: input.reference } });\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst isSports = input.game.startsWith('SPORTS:');\r\n\r\n\t\tif (isSports) {\r\n\t\t\tconst game = await ObjectId.generateFromKey(ObjectType.Game, input.game).then(\r\n\t\t\t\t(generatedId) => {\r\n\t\t\t\t\treturn generatedId.toString();\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\tconst res0 = await this.gameService.createGameSession({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.game(input.game);\r\n\r\n\t\tif (!res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'GameDoesNotExistError',\r\n\t\t\t\t\tmessage: 'Game does not exist',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst { provider, reference } = res0.data;\r\n\r\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\r\n\t\t\t? await this.walletService.createGameSession({ input: { id, game: reference } })\r\n\t\t\t: await this.gameService.createGameSession({ input: { id, game: reference } });\r\n\r\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\r\n\t}\r\n\r\n\tasync endGameSession(id: string, gameProvider?: GameProvider): Promise<EndGameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\r\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\r\n\t\tif (res0.ok) return res0;\r\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\r\n\t\treturn res1;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ FILE +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.fileService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadImageFile(input: UploadImageFileInput): Promise<UploadImageFileReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\r\n\r\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tfile: input.file,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ POINTS +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\r\n\t\tconst res = await this.walletService.pointsWallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\r\n\t\treturn await this.walletService.redeemPointsToCash({\r\n\t\t\tinput: {\r\n\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tinput?: PointsWalletTransactionsInput,\r\n\t): Promise<PointsWalletTransactionsReturn> {\r\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PointsWalletTransactionsReturn;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ ACTIVITY +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync activityRecords(input?: ActivityRecordsInput): Promise<ActivityRecordsReturn> {\r\n\t\tconst res = await this.reportService.activityRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ActivityRecordsReturn;\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ REFERRAL +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync referralCode(): Promise<ReferralCodeReturn> {\r\n\t\tconst res = await this.accountService.referralCode();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(input: UpdateReferralCodeInput): Promise<UpdateReferralCodeReturn> {\r\n\t\treturn await this.accountService.updateReferralCode({ input });\r\n\t}\r\n\r\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\r\n\t\tconst res = await this.reportService.referrals(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.referral(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ReferralsReturn;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\r\n\t\tconst res = await this.reportService.referralCommission();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.referralCommission(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\r\n\t\tconst res = await this.reportService.uplinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync downlinesByName(input: DownlinesByNameInput): Promise<DownlinesByNameReturn> {\r\n\t\tconst res = await this.reportService.downlinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\r\n\t\tconst res = await this.accountService.pointsClubSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsClubSettings(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ MESSAGES +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\r\n\t\tconst res = await this.triggerService.messages(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.message(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as MessagesReturn;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(input?: UnreadMessagesCountInput): Promise<UnreadMessagesCountReturn> {\r\n\t\treturn await this.triggerService.unreadMessagesCount(input);\r\n\t}\r\n\r\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\r\n\t\treturn await this.triggerService.markMessageAsRead({ id });\r\n\t}\r\n\r\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessageAsRead();\r\n\t}\r\n\r\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\r\n\t\treturn await this.triggerService.claimReward({ id });\r\n\t}\r\n\r\n\tasync bonuses(): Promise<BonusesReturn> {\r\n\t\tconst res = await this.walletService.bonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ ONBOARDING +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\r\n\t\tconst res = await this.portalService.onboardingStatus();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync completeOnboarding(input: CompleteOnboardingInput): Promise<CompleteOnboardingReturn> {\r\n\t\treturn await this.portalService.completeOnboarding({\r\n\t\t\tinput: {\r\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\r\n\t\t\t\tplayerExperience: input.playerExperience,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\r\n\t\treturn await this.portalService.skipOnboarding();\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ QUEST +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\r\n\t\tconst res = await this.triggerService.availableQuests();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\r\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ TOP WINS +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tasync topWins(): Promise<TopWinsReturn> {\r\n\t\tconst res = await this.portalService.topWins();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.topWin),\r\n\t\t};\r\n\t}\r\n\r\n\t/**/\r\n\t/*+----------------------------------------+*/\r\n\t/*+ HELPERS +*/\r\n\t/*+----------------------------------------+*/\r\n\t/**/\r\n\r\n\tprivate formatYmd(date: Date): string {\r\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\r\n\r\n\t\tconst y = date.getFullYear();\r\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\r\n\t\tconst d = ensure2Digits(date.getDate());\r\n\r\n\t\treturn `${y}-${m}-${d}`;\r\n\t}\r\n}\r\n\r\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\r\n\t/**/\r\n\t'RTG',\r\n\t'DARWIN',\r\n\t'DRBINGO',\r\n\t'MEGABALL',\r\n\t'EVOLUTION',\r\n\t'EVOLUTION_NETENT',\r\n\t'EVOLUTION_REDTIGER',\r\n\t'HOLLYWOODTV',\r\n];\r\n\r\nconst ENDPOINTS = {\r\n\tdevelopment: {\r\n\t\tauth: 'https://auth.development.opexa.io',\r\n\t\tgame: 'https://game.development.opexa.io/graphql',\r\n\t\tfile: 'https://file.development.opexa.io/graphql',\r\n\t\treport: 'https://report.development.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\r\n\t\taccount: 'https://account.development.opexa.io/graphql',\r\n\t\tportal: 'https://portal.development.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\r\n\t\tstatic: 'https://static.development.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n\tproduction: {\r\n\t\tauth: 'https://auth.opexa.io',\r\n\t\tgame: 'https://game.opexa.io/graphql',\r\n\t\tfile: 'https://file.opexa.io/graphql',\r\n\t\treport: 'https://report.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.opexa.io/graphql',\r\n\t\taccount: 'https://account.opexa.io/graphql',\r\n\t\tportal: 'https://portal.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\r\n\t\tstatic: 'https://static.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n};\r\n\r\nexport default Sdk;\r\n"]}
1
+ {"version":3,"sources":["../src/sdk/object-id.ts","../src/sdk/object-type.ts","../src/utils/gql.ts","../src/services/queries.ts","../src/services/utils.ts","../src/services/account.service.ts","../src/utils/status-code-to-operation-error.ts","../src/services/auth.service.ts","../src/services/cms-portal.service.ts","../src/services/file.service.ts","../src/services/game.service.ts","../src/services/portal.service.ts","../src/services/report.service.ts","../src/services/trigger.service.ts","../src/services/wallet.service.ts","../src/utils/clone-date.ts","../src/utils/add-minutes.ts","../src/utils/is-after.ts","../src/utils/cache.ts","../src/utils/clamp.ts","../src/utils/is-plain-object.ts","../src/utils/flatten.ts","../src/utils/graphql-client.ts","../src/utils/sha256.ts","../src/sdk/logger.ts","../src/utils/add-days.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/utils/sub-minutes.ts","../src/sdk/session-manager.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/utils.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":"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","sourcesContent":["export { ObjectId } from '@opexa/object-id';\n","/*\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\n */\n\nexport const ObjectType = {\n\tAccount: 8,\n\tDeposit: 9,\n\tWithdrawal: 14,\n\tVerification: 15,\n\tFile: 16,\n\tGame: 203,\n\tGameSession: 204,\n\tMayaSession: 230,\n};\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\n\tlet result = '';\n\n\tfor (const [index, string] of strings.entries()) {\n\t\tconst value = values.at(index) ?? '';\n\n\t\tresult = `${result}${string}${value}`;\n\t}\n\n\treturn result.trim();\n}\n","import { gql } from '../utils/gql.js';\n\n/**/\n/*+----------------------------------------+*/\n/*+ FILE +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const FILE_FRAGMENT = gql`\n\tfragment FileFragment on File {\n\t\tid\n\t\turl\n\t\tstatus\n\t\tdateTimeCreated\n\t}\n`;\n\nexport const FILE_QUERY = gql`\n\t${FILE_FRAGMENT}\n\n\tquery File($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on File {\n\t\t\t\t...FileFragment\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\n\tmutation UploadPrivateImageFile($input: UploadFileInput!) {\n\t\tuploadPrivateImageFile(input: $input) {\n\t\t\t... on FileFormatNotSupportedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on FileNameTooLongError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on FileSizeTooBigError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WALLET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WALLET_QUERY = gql`\n\tquery Wallet {\n\t\twallet {\n\t\t\tid\n\t\t\tbalance\n\t\t\tcurrency\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ POINTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const POINTS_WALLET_QUERY = gql`\n\tquery PointsWallet {\n\t\tpointsWallet {\n\t\t\tid\n\t\t\tpoints\n\t\t\taccount\n\t\t\tdateTimeCreated\n\t\t}\n\t}\n`;\n\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\n\tmutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\n\t\tredeemPointsToCash(input: $input) {\n\t\t\t... on InsufficientPointsError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PointsNotDivisibleBy100Error {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\n\tquery PointsWalletTransactions(\n\t\t$first: Int\n\t\t$after: Cursor\n\t\t$filter: MemberPointsWalletTransactionFilterInput\n\t) {\n\t\tmember {\n\t\t\tpointsWalletTransactions(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on PointsWalletTransaction {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tbalance\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const GAME_SESSION_QUERY = {\n\tcurrent: gql`\n\t\tquery GameSession($id: ObjectId!) {\n\t\t\tnode(id: $id) {\n\t\t\t\t... on GameSession {\n\t\t\t\t\tid\n\t\t\t\t\tgame\n\t\t\t\t\tstatus\n\t\t\t\t\tlaunchUrl\n\t\t\t\t\tdateTimeCreated\n\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`,\n\tlegacy: gql`\n\t\tquery GameSession($id: ObjectId!) {\n\t\t\tnode(id: $id) {\n\t\t\t\t... on GameSession {\n\t\t\t\t\tid\n\t\t\t\t\tgame {\n\t\t\t\t\t\tid\n\t\t\t\t\t}\n\t\t\t\t\tstatus\n\t\t\t\t\tlaunchUrl\n\t\t\t\t\tdateTimeCreated\n\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`,\n};\n\nexport const CREATE_GAME_SESSION_MUTATION = gql`\n\tmutation CreateGameSession($input: CreateGameSessionInput!) {\n\t\tcreateGameSession(input: $input) {\n\t\t\t... on GameDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const END_GAME_SESSION_MUTATION = {\n\tcurrent: gql`\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\n\t\t\tendGameSession(input: $input)\n\t\t}\n\t`,\n\tlegacy: gql`\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\n\t\t\tendGameSession(input: $input) {\n\t\t\t\t... on GameSessionDoesNotExistError {\n\t\t\t\t\t__typename\n\t\t\t\t}\n\t\t\t\t... on GameSessionAlreadyClosedError {\n\t\t\t\t\t__typename\n\t\t\t\t}\n\t\t\t\t... on GameProviderError {\n\t\t\t\t\t__typename\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`,\n};\n\nexport const RECOMMENDED_GAMES_QUERY = gql`\n\tquery RecommendedGames {\n\t\trecommendedGames {\n\t\t\tid\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ANNOUNCEMENT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ANNOUNCEMENTS_QUERY = gql`\n\tquery Announcements($first: Int, $after: Cursor, $filter: AnnouncementFilterInput) {\n\t\tannouncements(first: $first, after: $after, filter: $filter) {\n\t\t\tedges {\n\t\t\t\tcursor\n\t\t\t\tnode {\n\t\t\t\t\t... on Announcement {\n\t\t\t\t\t\tid\n\t\t\t\t\t\ttype\n\t\t\t\t\t\ttitle\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\tmessage\n\t\t\t\t\t\tactivationStartDateTime\n\t\t\t\t\t\tactivationEndDateTime\n\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttotalCount\n\t\t\tpageInfo {\n\t\t\t\thasNextPage\n\t\t\t\tendCursor\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ WITHDRAWAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\n\tquery WithdrawalRecords($first: Int, $after: Cursor, $filter: WithdrawalRecordFilterInput) {\n\t\tmember {\n\t\t\twithdrawalRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on BankWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tbank\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on GCashWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\trecipientMobileNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on ManualWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on MayaAppWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t\t... on InstapayWithdrawalRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\twithdrawalNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\n\t\tcreateGCashWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\n\t\tcreateMayaWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\n\t\tcreateMayaAppWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\n\t\tcreateBankWithdrawal(input: $input) {\n\t\t\t... on MobileNumberNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateAIOInstapayWithdrawal($input: CreateAIOInstapayWithdrawalInput!) {\n\t\tcreateAIOInstapayWithdrawal(input: $input) {\n\t\t\t... on AccountNotVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidWithdrawalAmountError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WithdrawalDailyLimitExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NotEnoughBalanceError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\n\tquery InstapayBankList {\n\t\tinstapayBankList {\n\t\t\tid\n\t\t\tcode\n\t\t\tname\n\t\t}\n\t}\n`;\n\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\n\tquery RemainingDailyWithdrawalsCount {\n\t\tremainingDailyWithdrawalsCount\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ DEPOSIT +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const DEPOSIT_RECORDS_QUERY = gql`\n\tquery DepositRecords($after: Cursor, $first: Int, $filter: DepositRecordFilterInput) {\n\t\tmember {\n\t\t\tdepositRecords(after: $after, first: $first, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on DepositRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tnetAmount\n\t\t\t\t\t\t\tfee\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\tdeposit\n\t\t\t\t\t\t\treference\n\t\t\t\t\t\t\tdepositNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\n\tmutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\n\t\tcreateGCashDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\n\tmutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\n\t\tcreateMayaDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\n\tmutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\n\t\tcreateMayaAppDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\n\tmutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\n\t\tcreateAIOQRPHDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\n\tmutation CreateAIOOnlineBankDeposit($input: CreateAIOOnlineBankDepositInput!) {\n\t\tcreateAIOOnlineBankDeposit(input: $input) {\n\t\t\t... on DepositPromoMaximumAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on HasActiveBonusError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumDepositAmountExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on PromoNotEnabledError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const DEPOSIT_QUERY = gql`\n\tquery Deposit($id: ObjectId!) {\n\t\tnode(id: $id) {\n\t\t\t... on GCashDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\tcheckoutUrl\n\t\t\t\terror\n\t\t\t}\n\t\t\t... on MayaDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\tcheckoutUrl\n\t\t\t}\n\t\t\t... on MayaAppDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\terror\n\t\t\t}\n\t\t\t... on BankDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\terror\n\t\t\t}\n\t\t\t... on ManualDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\terror\n\t\t\t}\n\t\t\t... on QRPHDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\tqrCode\n\t\t\t\terror\n\t\t\t}\n\t\t\t... on OnlineBankDeposit {\n\t\t\t\tid\n\t\t\t\ttype\n\t\t\t\tstatus\n\t\t\t\tvca\n\t\t\t\terror\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const DEPOSITS_COUNT_QUERY = gql`\n\tquery DepositsCount {\n\t\tmember {\n\t\t\tdepositsCount\n\t\t}\n\t}\n`;\n\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\n\tmutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\n\t\ttouchGCashDeposit(input: $input)\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BET +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BET_RECORDS_QUERY = gql`\n\tquery BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\n\t\tmember {\n\t\t\tbetRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\ttotalCount\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on BetRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tserialCode\n\t\t\t\t\t\t\tgame {\n\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbet\n\t\t\t\t\t\t\tpayout\n\t\t\t\t\t\t\twinloss\n\t\t\t\t\t\t\tjackpotPayout\n\t\t\t\t\t\t\tjackpotContribution\n\t\t\t\t\t\t\tstatus\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\tdateTimeSettled\n\t\t\t\t\t\t\tdateTimeLastUpdated\n\t\t\t\t\t\t\tmetadata\n\t\t\t\t\t\t\tvendorRoundId\n\t\t\t\t\t\t\tbetContent\n\t\t\t\t\t\t\tcontestName\n\t\t\t\t\t\t\texternalCategory\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const LATEST_BET_RECORDS_QUERY = gql`\n\tquery LatestBetRecords {\n\t\tlatestBetRecords {\n\t\t\tid\n\t\t\tmember {\n\t\t\t\tname\n\t\t\t}\n\t\t\tgame {\n\t\t\t\tid\n\t\t\t}\n\t\t\tbet\n\t\t\tpayout\n\t\t\tvalidBet\n\t\t\tdateTimeSettled\n\t\t\tdateTimeCreated\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TRANSACTIONS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TRANSACTION_RECORDS_QUERY = gql`\n\tquery TransactionRecords($first: Int, $after: Cursor, $filter: TransactionRecordFilter) {\n\t\tmember {\n\t\t\ttransactionRecords(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on TransactionRecord {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\tcurrentBalance\n\t\t\t\t\t\t\treferenceNumber\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PROMO +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const PROMO_FRAGMENT = gql`\n\t${FILE_FRAGMENT}\n\n\tfragment PromoFragment on Promo {\n\t\tid\n\t\ttype\n\t\tname\n\t\tbanner {\n\t\t\t...FileFragment\n\t\t}\n\t\tstatus\n\t\tdescription\n\t\tmaximumBonusAmount\n\t\tminimumBonusAmount\n\t\tmaximumDepositAmount\n\t\tminimumDepositAmount\n\t\tactivationStartDateTime\n\t\tactivationEndDateTime\n\t\tdateTimeCreated\n\t\tdateTimeLastUpdated\n\t}\n`;\n\nexport const PROMOS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery Promos {\n\t\tpromos {\n\t\t\t...PromoFragment\n\t\t}\n\t}\n`;\n\nexport const AVAILABLE_PROMOS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery AvailablePromos($filter: PromoFilterInput) {\n\t\tavailablePromos(filter: $filter) {\n\t\t\t...PromoFragment\n\t\t}\n\t}\n`;\n\nexport const SPOT_BONUS_FRAGMENT = gql`\n\tfragment SpotBonusFragment on SpotBonusPromo {\n\t\tid\n\t\tname\n\t\ttype\n\t\tstatus\n\t\tdaysToClear\n\t\tzeroOutThreshold\n\t\tturnoverRequirementMultiplier\n\t\tturnoverRequirementType\n\t\tminimumTicketOddFactorPerSportsGameProvider\n\t\tturnoverRequirementContributionPercentagePerGameProvider\n\t\tbonusAmount\n\t\tenabledGameProviders\n\t\tactivationStartDateTime\n\t\tactivationEndDateTime\n\t\tbanner {\n\t\t\tid\n\t\t\turl\n\t\t}\n\t\tdescription\n\t\tdateTimeCreated\n\t\tdateTimeLastUpdated\n\t\tdateTimeClosed\n\t\ttotalBonus\n\t\ttotalDeposit\n\t\ttotalBonusBalance\n\t\ttotalBet\n\t\ttotalBonusCashedOut\n\t\tbonusesCount\n\t\tclosedBonusesCount\n\t\tclosedBonusesCountPercentage\n\t\tactiveBonusesCount\n\t\tclearedBonusesCount\n\t\tzeroedOutBonusesCount\n\t\tcancelledBonusesCount\n\t\texpiredBonusesCount\n\t\tcode\n\t\tmaximumBonusesCountLimit\n\t}\n`;\n\nexport const PROMO_BY_CODE_QUERY = gql`\n\t${SPOT_BONUS_FRAGMENT}\n\n\tquery PromoByCode($code: String!) {\n\t\tpromoByCode(code: $code) {\n\t\t\t...SpotBonusFragment\n\t\t}\n\t}\n`;\n\nexport const CASHBACK_FRAGMENT = gql`\n\t${FILE_FRAGMENT}\n\n\tfragment CashbackFragment on Cashback {\n\t\tid\n\t\tname\n\t\tbanner {\n\t\t\t...FileFragment\n\t\t}\n\t\tminimumCashback\n\t\tmaximumMonthlyCashback\n\t\tstatus\n\t\tdescription\n\t\tactivationStartDateTime\n\t\tactivationEndDateTime\n\t\tturnoverContributionPercentagePerGameProvider\n\t\tdateTimeCreated\n\t\tdateTimeLastUpdated\n\t}\n`;\n\nexport const CASHBACKS_QUERY = gql`\n\t${CASHBACK_FRAGMENT}\n\n\tquery Cashbacks {\n\t\tcashbacks {\n\t\t\t...CashbackFragment\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ BONUS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const BONUS_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery Bonus {\n\t\tbonus {\n\t\t\tid\n\t\t\tpromo {\n\t\t\t\t...PromoFragment\n\t\t\t}\n\t\t\tdeposit {\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t\tamount\n\t\t\tbalance\n\t\t\tturnoverRequirement\n\t\t\tcurrentTurnoverRequirementContribution\n\t\t\tcurrentTurnoverRequirementContributionPercentage\n\t\t\texpiration\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\nexport const BONUSES_QUERY = gql`\n\t${PROMO_FRAGMENT}\n\n\tquery Bonuses {\n\t\tbonuses {\n\t\t\tid\n\t\t\tpromo {\n\t\t\t\t...PromoFragment\n\t\t\t}\n\t\t\tdeposit {\n\t\t\t\ttype\n\t\t\t\tamount\n\t\t\t\tnetAmount\n\t\t\t\tfee\n\t\t\t\tstatus\n\t\t\t\treference\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t\tamount\n\t\t\tbalance\n\t\t\tturnoverRequirement\n\t\t\tcurrentTurnoverRequirementContribution\n\t\t\tcurrentTurnoverRequirementContributionPercentage\n\t\t\texpiration\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\nexport const CASHBACK_BONUSES_QUERY = gql`\n\t${CASHBACK_FRAGMENT}\n\n\tquery CashbackBonuses {\n\t\tcashbackBonuses {\n\t\t\tid\n\t\t\tbalance\n\t\t\ttotal\n\t\t\tcashback {\n\t\t\t\t...CashbackFragment\n\t\t\t}\n\t\t\tdateTimeCreated\n\t\t\tdateTimeLastUpdated\n\t\t}\n\t}\n`;\n\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\n\tmutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\n\t\tclaimCashbackBonus(input: $input) {\n\t\t\t... on CashbackBonusDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MEMBER +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MEMBER_QUERY = gql`\n\tquery Member {\n\t\tmember {\n\t\t\tdateTimeLastActive\n\t\t}\n\t}\n`;\n\n/**\n * _aka_ `Query.self`\n */\nexport const MEMBER_ACCOUNT_QUERY = gql`\n\tquery MemberAccount {\n\t\tmemberAccount: self {\n\t\t\t... on MemberAccount {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tstatus\n\t\t\t\trealName\n\t\t\t\temailAddress\n\t\t\t\tmobileNumber\n\t\t\t\tbirthDay\n\t\t\t\tverified\n\t\t\t\tverificationStatus\n\t\t\t\tnickName\n\t\t\t\tvalidId\n\t\t\t\tmobileNumberVerified\n\t\t\t\tmobileNumberVerificationRequired\n\t\t\t\ttransactionPassword\n\t\t\t\tsecretAnswerSubmitted\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const MEMBER_VERIFICATION_QUERY = gql`\n\t${FILE_FRAGMENT}\n\n\tquery MemberVerification {\n\t\tmemberAccount: self {\n\t\t\t... on MemberAccount {\n\t\t\t\tverification {\n\t\t\t\t\tid\n\t\t\t\t\tstatus\n\t\t\t\t\taddress\n\t\t\t\t\tpermanentAddress\n\t\t\t\t\tsourceOfIncome\n\t\t\t\t\tnatureOfWork\n\t\t\t\t\tnationality\n\t\t\t\t\tplaceOfBirth\n\t\t\t\t\tidFrontImage {\n\t\t\t\t\t\t...FileFragment\n\t\t\t\t\t}\n\t\t\t\t\tselfieImage {\n\t\t\t\t\t\t...FileFragment\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation RegisterMemberAccount(\n\t\t$input: RegisterMemberAccountInput!\n\t\t$referralCode: String\n\t\t$verificationCode: String\n\t\t$reCAPTCHAResponse: String\n\t) {\n\t\tregisterMemberAccount(\n\t\t\tinput: $input\n\t\t\treferralCode: $referralCode\n\t\t\tverificationCode: $verificationCode\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\n\t\t) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidPlatformError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidPlatformError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidReCAPTCHAResponseError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumAgeRequirementError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\n\tmutation RegisterMemberAccountViaMobile(\n\t\t$input: RegisterMemberAccountViaMobileInput!\n\t\t$referralCode: String\n\t\t$reCAPTCHAResponse: String\n\t\t$verificationCode: String\n\t) {\n\t\tregisterMemberAccountViaMobile(\n\t\t\tinput: $input\n\t\t\treferralCode: $referralCode\n\t\t\tverificationCode: $verificationCode\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\n\t\t) {\n\t\t\t... on InvalidPlatformError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidReCAPTCHAResponseError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\n\tmutation RegisterMemberAccount(\n\t\t$input: RegisterMemberAccountInput_next!\n\t\t$reCAPTCHAResponse: String\n\t) {\n\t\tregisterMemberAccount: registerMemberAccount_next(\n\t\t\tinput: $input\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\n\t\t) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidPlatformError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidReCAPTCHAResponseError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MinimumAgeRequirementError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ReCAPTCHAVerificationFailedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\n\t\tregisterMayaMemberAccount(input: $input) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\n\t\tupdateMemberAccount(input: $input) {\n\t\t\t... on AccountNameNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on EmailAddressNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidTransactionPasswordError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NickNameNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on RealNameAlreadySetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on ValidIdAlreadySetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const RESET_PASSWORD_MUTATION = gql`\n\tmutation ResetPassword($input: ResetPasswordInput!, $verificationCode: String) {\n\t\tresetPassword(input: $input, verificationCode: $verificationCode) {\n\t\t\t... on AccountNotFoundError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on InvalidVerificationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\n\tmutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\n\t\tdeleteMemberAccount(input: $input)\n\t}\n`;\n\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\n\tmutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\n\t\tverifyMobileNumber(input: $input) {\n\t\t\t... on InvalidSMSVerificationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MobileNumberAlreadyVerifiedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\n\tmutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\n\t\tcreateMemberVerification(input: $input) {\n\t\t\t... on FileDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on FileNotReadyError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MemberVerificationAlreadyExistsError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\n\tmutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\n\t\tupdateMemberVerification(input: $input) {\n\t\t\t... on FileDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on FileNotReadyError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MemberVerificationAlreadyApprovedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MemberVerificationDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const PROFILE_COMPLETION_QUERY = gql`\n\tquery ProfileCompletion {\n\t\tprofileCompletion {\n\t\t\tcompletionPercentage\n\t\t\tpersonalInformation\n\t\t\taccountVerification\n\t\t\tmobileNumberVerification\n\t\t\ttransactionPassword\n\t\t\taccountPassword\n\t\t}\n\t}\n`;\n\n/** @deprecated */\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\n\tmutation SendVerificationCode($input: SendVerificationCodeInput!) {\n\t\tsendVerificationCode(input: $input) {\n\t\t\t... on InvalidPlatformError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on NotReadyToSendVerficationCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ PLATFORM +*/\n/*+----------------------------------------+*/\n/**/\n\n/** @deprecated */\nexport const PLATFORM_QUERY = gql`\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tquery Platform {\n\t\ttimezone\n\t\tcurrency\n\t\tminimumFirstDepositAmount\n\t\trestrictWithdrawalsToVerifiedMembers\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tpointsClubSettings {\n\t\t\tmultiplier\n\t\t}\n\t}\n`;\n\nexport const PLATFORM_QUERY__NEXT = gql`\n\tquery Platform {\n\t\ttimezone\n\t\tcurrency\n\t}\n`;\n\nexport const PAYMENT_SETTINGS_QUERY = gql`\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\n\t\tfixedFee\n\t\tpercentageFee\n\t\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t}\n\n\tquery PaymentSettings {\n\t\tminimumFirstDepositAmount\n\t\trestrictWithdrawalsToVerifiedMembers\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ SESSION +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MAYA_SESSION_QUERY = gql`\n\tquery MayaSession($id: ObjectId!) {\n\t\tmayaSession(id: $id) {\n\t\t\tid\n\t\t\tmember\n\t\t\tdateTimeCreated\n\t\t}\n\t}\n`;\n\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\n\tmutation ValidateMayaSession {\n\t\tvalidateMayaSession: validMayaSession\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ACTIVITY +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ACTIVITY_RECORDS_QUERY = gql`\n\tquery ActivityRecords($after: Cursor, $first: Int, $filter: ActivityRecordsFilterInput) {\n\t\tmember {\n\t\t\tactivityRecords(after: $after, first: $first, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on MemberActivity {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\tdomain\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tdetails\n\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ REFERRAL +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REFERRAL_CODE_QUERY = gql`\n\tquery ReferralCode {\n\t\treferralCode\n\t}\n`;\n\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\n\tmutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\n\t\tupdateReferralCode(input: $input) {\n\t\t\t... on ReferralCodeNotAvailableError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const REFERRAL_FRAGMENT = gql`\n\tfragment ReferralFragment on Referral {\n\t\tid\n\t\tupline {\n\t\t\tid\n\t\t\tname\n\t\t\trealName\n\t\t}\n\t\tdownline {\n\t\t\tid\n\t\t\tname\n\t\t\trealName\n\t\t}\n\t\tlevel\n\t\tturnover\n\t\tcommission\n\t\tdateTimeCreated\n\t}\n`;\n\nexport const REFERRALS_QUERY = gql`\n\tquery Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\n\t\tmember {\n\t\t\treferrals(first: $first, after: $after, filter: $filter) {\n\t\t\t\tedges {\n\t\t\t\t\tcursor\n\t\t\t\t\tnode {\n\t\t\t\t\t\t... on Referral {\n\t\t\t\t\t\t\t...ReferralFragment\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttotalCount\n\t\t\t\tpageInfo {\n\t\t\t\t\thasNextPage\n\t\t\t\t\tendCursor\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t${REFERRAL_FRAGMENT}\n`;\n\nexport const UPLINES_BY_NAME_QUERY = gql`\n\tquery UplinesByName($search: String!, $first: Int) {\n\t\tuplinesByName(search: $search, first: $first) {\n\t\t\t...ReferralFragment\n\t\t}\n\t}\n\n\t${REFERRAL_FRAGMENT}\n`;\n\nexport const DOWNLINES_BY_NAME_QUERY = gql`\n\tquery DownlinesByName($search: String!, $first: Int) {\n\t\tdownlinesByName(search: $search, first: $first) {\n\t\t\t...ReferralFragment\n\t\t}\n\t}\n\n\t${REFERRAL_FRAGMENT}\n`;\n\nexport const REFERRAL_COMMISSION_QUERY = gql`\n\tquery ReferralCommission {\n\t\tmember {\n\t\t\treferralCommission {\n\t\t\t\tid\n\t\t\t\tcommission\n\t\t\t\tdateTimeCreated\n\t\t\t\tdateTimeLastUpdated\n\t\t\t\tlevel1Commission\n\t\t\t\tlevel1ReferralsCount\n\t\t\t\tlevel2Commission\n\t\t\t\tlevel2ReferralsCount\n\t\t\t\tlevel3Commission\n\t\t\t\tlevel3ReferralsCount\n\t\t\t\treferralCode\n\t\t\t\treferralsCount\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\n\tquery PointsClubSettings {\n\t\tpointsClubSettings {\n\t\t\tmultiplier\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ MESSAGES +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MESSAGES_QUERY = gql`\n\tquery Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\n\t\tmessages(first: $first, after: $after, filter: $filter) {\n\t\t\tedges {\n\t\t\t\tcursor\n\t\t\t\tnode {\n\t\t\t\t\t... on Message {\n\t\t\t\t\t\tid\n\t\t\t\t\t\ticon\n\t\t\t\t\t\tlogo\n\t\t\t\t\t\timage\n\t\t\t\t\t\ttitle\n\t\t\t\t\t\tcontent\n\t\t\t\t\t\tpopup\n\t\t\t\t\t\tactions {\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\turl\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmarkedAsRead\n\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttotalCount\n\t\t\tpageInfo {\n\t\t\t\thasNextPage\n\t\t\t\tendCursor\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\n\tquery UnreadMessagesCount($filter: MessageFilterInput) {\n\t\tmessages(filter: $filter) {\n\t\t\ttotalCount\n\t\t}\n\t}\n`;\n\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\n\tmutation MarkMessageAsRead($id: ObjectId!) {\n\t\tmarkMessageAsRead(id: $id)\n\t}\n`;\n\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\n\tmutation MarkAllMessageAsRead {\n\t\tmarkAllMessageAsRead\n\t}\n`;\n\nexport const CLAIM_REWARD_MUTATION = gql`\n\tmutation ClaimReward($id: ObjectId!) {\n\t\tclaimReward(id: $id) {\n\t\t\t... on RewardAlreadyClaimedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on RewardAlreadyExpiredError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CLAIM_SPOT_BONUS = gql`\n\tmutation ClaimSpotBonus($code: String!) {\n\t\tclaimSpotBonus(code: $code) {\n\t\t\t... on InvalidPromoCodeError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on MaximumBonusesCountLimitExceededError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on SpotBonusAlreadyClaimedError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ ONBOARDING +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const ONBOARDING_STATUS_QUERY = gql`\n\tquery OnboardingStatus {\n\t\tonboardingStatus\n\t}\n`;\n\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\n\tmutation CompleteOnboarding($input: CompleteOnboardingInput!) {\n\t\tcompleteOnboarding(input: $input)\n\t}\n`;\n\nexport const SKIP_ONBOARDING_MUTATION = gql`\n\tmutation SkipOnboarding {\n\t\tskipOnboarding\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ QUEST +*/\n/*+----------------------------------------+*/\n/**/\nexport const QUEST_PROGRAM_FRAGMENT = gql`\n\tfragment QuestProgramFragment on QuestProgram {\n\t\tstatus\n\t\ttype\n\t\tname\n\t\tdescription\n\t\tpromo\n\t\tquestsCount\n\t\tcompletedQuestsCount\n\t\tfailedQuestsCount\n\t\ttotalBonus\n\t\tactivationDate\n\n\t\tbonusTurnoverRequirementMultiplier\n\t}\n`;\n\nexport const DAILY_CHECKIN_FRAGMENT = gql`\n\t${QUEST_PROGRAM_FRAGMENT}\n\tfragment DailyCheckinQuestFragment on DailyCheckInQuest {\n\t\tid\n\t\tname\n\t\tdescription\n\t\ttype\n\t\tprogram {\n\t\t\t...QuestProgramFragment\n\t\t\t... on DailyCheckInQuestProgram {\n\t\t\t\tthirdDayBonusAmount\n\t\t\t\tsixthDayBonusAmount\n\t\t\t\tseventhDayBonusAmount\n\t\t\t\t...QuestProgramFragment\n\t\t\t}\n\n\t\t\t... on WageringQuestProgram {\n\t\t\t\tdaysToClear\n\t\t\t\ttargetTurnover\n\t\t\t\tbonusAmount\n\t\t\t\t...QuestProgramFragment\n\t\t\t}\n\t\t}\n\t\tmember {\n\t\t\tid\n\t\t\tname\n\t\t}\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\tendDateTime\n\t\tdateTimeCreated\n\t\tbonusAwarded\n\t\tlastCheckInDate\n\t\tstartDateTime\n\t\tcheckInStreak\n\n\t\tthirdDayBonusAmount\n\t\tseventhDayBonusAmount\n\t\tsixthDayBonusAmount\n\t}\n`;\nexport const WAGERING_FRAGMENT = gql`\n\tfragment WageringQuestFragment on WageringQuest {\n\t\tbonus\n\t\tid\n\t\tname\n\t\ttype\n\t\tdescription\n\t\tprogram {\n\t\t\t...QuestProgramFragment\n\t\t\t... on DailyCheckInQuestProgram {\n\t\t\t\tthirdDayBonusAmount\n\t\t\t\tsixthDayBonusAmount\n\t\t\t\tseventhDayBonusAmount\n\t\t\t\t...QuestProgramFragment\n\t\t\t}\n\n\t\t\t... on WageringQuestProgram {\n\t\t\t\tdaysToClear\n\t\t\t\ttargetTurnover\n\t\t\t\tbonusAmount\n\t\t\t\t...QuestProgramFragment\n\t\t\t}\n\t\t}\n\t\tmember {\n\t\t\tid\n\t\t\tname\n\t\t}\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\ttargetTurnover\n\t\tendDateTime\n\t\tdateTimeCreated\n\t\tbonusAwarded\n\t}\n`;\n\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\n\tfragment OnboardingQuestFragment on OnboardingQuest {\n\t\tid\n\t\tname\n\t\tdescription\n\t\tprogram {\n\t\t\t...QuestProgramFragment\n\t\t}\n\t\tmember {\n\t\t\tid\n\t\t\tname\n\t\t}\n\t\tstatus\n\t\ttype\n\t\tprogressPercentage\n\t\tbonus\n\t\tbonusAwarded\n\t\tendDateTime\n\t\tdateTimeCreated\n\t\tfirstDepositCompleted\n\t\taccountVerificationCompleted\n\t}\n`;\n\nexport const AVAILABLE_QUESTS_QUERY = gql`\n\t${WAGERING_FRAGMENT}\n\t${DAILY_CHECKIN_FRAGMENT}\n\t${ONBOARDING_QUEST_FRAGMENT}\n\n\tquery AvailableQuests {\n\t\tavailableQuests {\n\t\t\t... on Quest {\n\t\t\t\t... on WageringQuest {\n\t\t\t\t\t...WageringQuestFragment\n\t\t\t\t}\n\t\t\t\t... on DailyCheckInQuest {\n\t\t\t\t\t...DailyCheckinQuestFragment\n\t\t\t\t}\n\t\t\t\t... on OnboardingQuest {\n\t\t\t\t\t...OnboardingQuestFragment\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\n\tmutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\n\t\tcheckInDailyCheckInQuest(input: $input)\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOP WIN +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOP_WINS_QUERY = gql`\n\tquery TopWins($first: Int) {\n\t\ttopWins(first: $first) {\n\t\t\tid\n\t\t\tgame {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\ttype\n\t\t\t\tprovider\n\t\t\t\treference\n\t\t\t}\n\t\t\tmember {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t}\n\t\t\tmultiplier\n\t\t\tpayout\n\t\t}\n\t}\n`;\n","import type { OperationError } from '../types/index.js';\nimport type {\n\tAuthenticateError,\n\tClaimCashbackBonusError,\n\tClaimRewardError,\n\tClaimSpotBonusError,\n\tCreateDepositError,\n\tCreateGameSessionError,\n\tCreateMemberVerificationError,\n\tCreateSessionError,\n\tCreateWithdrawalError,\n\tEndGameSessionError,\n\tRedeemPointsToCashError,\n\tRefreshSessionError,\n\tRegisterMayaMemberAccountError,\n\tRegisterMemberAccountError,\n\tResetPasswordError,\n\tSendVerificationCodeError,\n\tSendVerificationCodeError__Next,\n\tUpdateMemberAccountError,\n\tUpdateMemberVerificationError,\n\tUpdateReferralCodeError,\n\tUploadPrivateImageFileError,\n\tVerifyMobileNumberError,\n} from './types.js';\n\ntype E =\n\t| ClaimCashbackBonusError\n\t| CreateDepositError\n\t| UploadPrivateImageFileError\n\t| CreateGameSessionError\n\t| EndGameSessionError\n\t| RegisterMemberAccountError\n\t| RegisterMayaMemberAccountError\n\t| UpdateMemberAccountError\n\t| ResetPasswordError\n\t| SendVerificationCodeError\n\t| VerifyMobileNumberError\n\t| CreateMemberVerificationError\n\t| UpdateMemberVerificationError\n\t| RedeemPointsToCashError\n\t| CreateWithdrawalError\n\t| CreateSessionError\n\t| RefreshSessionError\n\t| AuthenticateError\n\t| UpdateReferralCodeError\n\t| SendVerificationCodeError__Next\n\t| ClaimRewardError\n\t| ClaimSpotBonusError;\n\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\n\tconst messages: Record<E, string> = {\n\t\tPointsNotDivisibleBy100Error: 'Please input points that are multiples of 100.',\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\n\t\tSpotBonusAlreadyClaimedError:\n\t\t\t'This promo code has already been redeemed and cannot be used again',\n\t\tRewardAlreadyExpiredError: 'Reward is either expired or no longer available',\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\n\t\tAccountNotFoundError: 'Account does not exist',\n\t\tAccountNotVerifiedError: 'Account is not verified',\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\n\t\tDepositPromoMaximumAmountExceededError: 'Deposit amount exceeds maximum amount',\n\t\tDepositPromoMinimumAmountNotMetError: 'Deposit amount does not meet minimum amount',\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\n\t\tFileDoesNotExistError: 'File does not exist',\n\t\tFileFormatNotSupportedError: 'File format is not supported',\n\t\tFileNameTooLongError: 'File name is too long',\n\t\tFileNotReadyError: 'File is not yet ready',\n\t\tFileSizeTooBigError: 'File size is too big',\n\t\tGameDoesNotExistError: 'Game does not exist',\n\t\tHasActiveBonusError: 'Account has active bonus',\n\t\tInsufficientPointsError: 'Insufficient points',\n\t\tInvalidPlatformError: 'Invalid platform',\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\n\t\tMemberVerificationAlreadyApprovedError: 'Member verification is already approved',\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\n\t\tMinimumFirstDepositAmountNotMetError: 'Minimum first deposit amount not met',\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\n\t\tNotEnoughBalanceError: 'Insufficient balance',\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\n\t\tPromoNotEnabledError: 'Promo is not enabled',\n\t\tRealNameAlreadySetError: 'Real name is already set',\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\n\t\tGameProviderError: 'Game provider error',\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\n\t\tAccountBlacklistedError: 'Account is blacklisted',\n\t\tInvalidTokenError: 'Invalid token',\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\n\t\tSessionExpiredError: 'Session expired',\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\n\t\tAccountSuspendedError: 'Account is suspended',\n\t};\n\n\treturn {\n\t\tname: code,\n\t\tmessage: messages[code],\n\t};\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tANNOUNCEMENTS_QUERY,\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\n\tMEMBER_ACCOUNT_QUERY,\n\tMEMBER_VERIFICATION_QUERY,\n\tPAYMENT_SETTINGS_QUERY,\n\tPLATFORM_QUERY,\n\tPOINTS_CLUB_SETTINGS_QUERY,\n\tPROFILE_COMPLETION_QUERY,\n\tREFERRAL_CODE_QUERY,\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\n\tRESET_PASSWORD_MUTATION,\n\tSEND_VERIFICATION_CODE_MUTATION,\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\n\tUPDATE_REFERRAL_CODE_MUTATION,\n\tVERIFY_MOBILE_NUMBER_MUTATION,\n} from './queries.js';\nimport type {\n\tAnnouncement,\n\tAnnouncementsQuery,\n\tAnnouncementsQueryVariables,\n\tCreateMemberVerificationError,\n\tCreateMemberVerificationMutation,\n\tCreateMemberVerificationMutationVariables,\n\tDeleteMemberAccountMutation,\n\tDeleteMemberAccountMutationVariables,\n\tMemberAccount,\n\tMemberAccountQuery,\n\tMemberVerification,\n\tMemberVerificationQuery,\n\tPaginatedQueryResult,\n\tPaymentSettings,\n\tPaymentSettingsQuery,\n\tPlatform,\n\tPlatformQuery,\n\tPointsClubSettings,\n\tPointsClubSettingsQuery,\n\tProfileCompletion,\n\tProfileCompletionQuery,\n\tReferralCodeQuery,\n\tRegisterMayaMemberAccountError,\n\tRegisterMayaMemberAccountMutation,\n\tRegisterMayaMemberAccountMutationVariables,\n\tRegisterMemberAccountError,\n\tRegisterMemberAccountMutation,\n\tRegisterMemberAccountMutationVariables,\n\tRegisterMemberAccountMutationVariables__Next,\n\tRegisterMemberAccountViaMobileMutation,\n\tRegisterMemberAccountViaMobileMutationVariables,\n\tResetPasswordError,\n\tResetPasswordMutation,\n\tResetPasswordMutationVariables,\n\tSendVerificationCodeError,\n\tSendVerificationCodeMutation,\n\tSendVerificationCodeMutationVariables,\n\tUpdateMemberAccountError,\n\tUpdateMemberAccountMutation,\n\tUpdateMemberAccountMutationVariables,\n\tUpdateMemberVerificationError,\n\tUpdateMemberVerificationMutation,\n\tUpdateMemberVerificationMutationVariables,\n\tUpdateReferralCodeError,\n\tUpdateReferralCodeMutation,\n\tUpdateReferralCodeMutationVariables,\n\tVerifyMobileNumberError,\n\tVerifyMobileNumberMutation,\n\tVerifyMobileNumberMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class AccountService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\t/** aka `Query.self` */\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\n\t\tconst res = await this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount,\n\t\t};\n\t}\n\n\tasync registerMemberAccount(\n\t\tvariables: RegisterMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccountViaMobile(\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountViaMobileMutation,\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccountViaMobile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountViaMobile.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync registerMemberAccount__next(\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountMutation,\n\t\t\tRegisterMemberAccountMutationVariables__Next\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberAccount(\n\t\tvariables: UpdateMemberAccountMutationVariables,\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberAccountMutation,\n\t\t\tUpdateMemberAccountMutationVariables\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync deleteMemberAccount(\n\t\tvariables: DeleteMemberAccountMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tDeleteMemberAccountMutation,\n\t\t\tDeleteMemberAccountMutationVariables\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.deleteMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync resetPassword(\n\t\tvariables: ResetPasswordMutationVariables,\n\t): Promise<OperationResult<ResetPasswordError>> {\n\t\tconst res = await this.client.request<ResetPasswordMutation, ResetPasswordMutationVariables>(\n\t\t\tRESET_PASSWORD_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.resetPassword) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync profileCompletion(): Promise<OperationResult<never, ProfileCompletion>> {\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(PROFILE_COMPLETION_QUERY);\n\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\n\t}\n\n\t/** @deprecated */\n\tasync platform(): Promise<OperationResult<never, Platform>> {\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\n\t}\n\n\t/** @deprecated */\n\tasync sendVerificationCode(\n\t\tvariables: SendVerificationCodeMutationVariables,\n\t): Promise<OperationResult<SendVerificationCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tSendVerificationCodeMutation,\n\t\t\tSendVerificationCodeMutationVariables\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.sendVerificationCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\n\t\treturn await this.client.request<PaymentSettingsQuery>(PAYMENT_SETTINGS_QUERY);\n\t}\n\n\tasync verifyMobileNumber(\n\t\tvariables: VerifyMobileNumberMutationVariables,\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\n\t\tconst res = await this.client.request<\n\t\t\tVerifyMobileNumberMutation,\n\t\t\tVerifyMobileNumberMutationVariables\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.verifyMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMemberVerification(\n\t\tvariables: CreateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateMemberVerificationMutation,\n\t\t\tCreateMemberVerificationMutationVariables\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMemberVerification.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync updateMemberVerification(\n\t\tvariables: UpdateMemberVerificationMutationVariables,\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateMemberVerificationMutation,\n\t\t\tUpdateMemberVerificationMutationVariables\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateMemberVerification) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateMemberVerification.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync memberVerification(): Promise<\n\t\tOperationResult<never, MemberVerification | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<MemberVerificationQuery>(MEMBER_VERIFICATION_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.memberAccount.verification,\n\t\t};\n\t}\n\n\tasync announcements(\n\t\tvariables?: AnnouncementsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\n\t\tconst res = await this.client.request<AnnouncementsQuery, AnnouncementsQueryVariables>(\n\t\t\tANNOUNCEMENTS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.announcements,\n\t\t};\n\t}\n\n\tasync registerMayaMemberAccount(\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMayaMemberAccountMutation,\n\t\t\tRegisterMayaMemberAccountMutationVariables\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.registerMayaMemberAccount) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMayaMemberAccount.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync referralCode(): Promise<OperationResult<never, string | null | undefined>> {\n\t\tconst res = await this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.referralCode,\n\t\t};\n\t}\n\n\tasync updateReferralCode(\n\t\tvariables: UpdateReferralCodeMutationVariables,\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\n\t\tconst res = await this.client.request<\n\t\t\tUpdateReferralCodeMutation,\n\t\t\tUpdateReferralCodeMutationVariables\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.updateReferralCode) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(POINTS_CLUB_SETTINGS_QUERY);\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\n\t}\n}\n","import type { HttpError, OperationError } from '../types/index.js';\n\nexport function statusCodeToOperationError(\n\tvalue: number,\n\tmessage?: string,\n): OperationError<HttpError> {\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\n\n\treturn {\n\t\tname: e.name,\n\t\tmessage: message ?? e.message,\n\t};\n}\n\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\n};\n","import type { OperationResult } from '../types/index.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticateMutation,\n\tCreateSessionError,\n\tCreateSessionInput,\n\tCreateSessionMutation,\n\tRefreshSessionError,\n\tRefreshSessionMutation,\n\tSendVerificationCodeError__Next,\n\tSendVerificationCodeInput__Next,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\ninterface FetchOptions {\n\theaders?: HeadersInit;\n}\n\nexport interface AuthServiceConfig {\n\turl: string;\n\tfetchOptions?: FetchOptions;\n}\n\nexport class AuthService {\n\tprivate url: string;\n\tprivate options: FetchOptions;\n\n\tconstructor(config: AuthServiceConfig) {\n\t\tthis.url = config.url;\n\t\tthis.options = config.fetchOptions ?? {};\n\t}\n\n\tprivate get headers() {\n\t\tconst headers = new Headers(this.options.headers);\n\t\theaders.append('Accept', 'application/json, text/plain');\n\t\theaders.append('Content-Type', 'application/json');\n\t\treturn headers;\n\t}\n\n\tasync createSession(\n\t\tinput: CreateSessionInput,\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst data = `${input.name}:${input.password}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `Basic ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\n\t\t\tconst token = Buffer.from(data).toString('base64');\n\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\n\t\t}\n\n\t\tif (input.type === 'SOCIALS') {\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\n\t\t}\n\n\t\tif (input.type === 'CABINET') {\n\t\t\theaders.set('Authorization', `OPEXA-CABINET-TOKEN ${input.token}`);\n\t\t}\n\n\t\tif (input.reCAPTCHAResponse) {\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync authenticate(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\tif (input.type === 'SECURITY_QUESTION') {\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\n\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(`${this.url}/session/${input.token}/authenticate`, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders,\n\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\n\t\t\t\t\t}),\n\t\t\t\t});\n\n\t\t\t\tconst data = await res.json();\n\n\t\t\t\tif (res.ok) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (res.status === 401 || res.status === 403) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Invalid input 'type'\");\n\t}\n\n\tasync refreshSession(\n\t\trefreshToken: string,\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\tconst data = await res.json();\n\n\t\t\tif (res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (res.status === 403 || res.status === 401) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true } : { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t} catch {\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\n\t\t}\n\t}\n\n\tasync verifySession(accessToken: string) {\n\t\tconst headers = new Headers(this.headers);\n\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/session`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders,\n\t\t\t});\n\n\t\t\treturn res.ok;\n\t\t} catch {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tasync sendVerificationCode(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\n\t\tif (input.channel === 'EMAIL') throw new Error('Email channel is not yet supported');\n\n\t\tfunction getErrorCode(message: string): SendVerificationCodeError__Next | null {\n\t\t\tswitch (message) {\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\n\t\t\t\t\treturn 'AccountNotFoundError';\n\t\t\t\tcase 'RATE_LIMIT_REACH':\n\t\t\t\t\treturn 'RateLimitExceededError';\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: this.headers,\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t});\n\n\t\t\tif (res.status === 403) {\n\t\t\t\tconst data = await res.json();\n\t\t\t\tconst code = getErrorCode(data.message);\n\n\t\t\t\tif (code) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: createOperationError(code),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\nimport type {\n\tGame,\n\tGameQuery,\n\tGamesQuery,\n\tGamesQueryVariables,\n\tGamesQueryVariables__Next,\n\tPaginatedQueryResult,\n\tSite,\n\tSiteQuery,\n} from './types.js';\n\nexport interface CmsPortalServiceConfig {\n\turl: string;\n\tsite: string;\n\tplatform: string;\n}\n\nexport class CmsPortalService {\n\tprivate url: string;\n\tprivate siteId: string;\n\tprivate platformId: string;\n\n\tconstructor(config: CmsPortalServiceConfig) {\n\t\tthis.url = config.url;\n\t\tthis.siteId = config.site;\n\t\tthis.platformId = config.platform;\n\t}\n\n\tasync self(): Promise<OperationResult<never, Site>> {\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${this.siteId}`);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tasync games(\n\t\tvariables?: GamesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\n\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\n\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync games__next(\n\t\tvariables?: GamesQueryVariables__Next,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\n\t\tconst search = new URLSearchParams();\n\n\t\tif (variables?.first) search.set('first', variables.first.toString());\n\t\tif (variables?.after) search.set('after', variables.after);\n\t\tif (variables?.search) search.set('search', variables.search);\n\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\n\t\tif (variables?.filter?.type?.notEqual)\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\n\t\tif (variables?.filter?.type?.in)\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\n\t\tif (variables?.filter?.type?.notIn)\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\n\n\t\tif (variables?.filter?.provider?.equal)\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\n\t\tif (variables?.filter?.provider?.notEqual)\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\n\t\tif (variables?.filter?.provider?.in)\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\n\t\tif (variables?.filter?.provider?.notIn)\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\n\n\t\tif (variables?.filter?.tags?.equal)\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\n\t\tif (variables?.filter?.tags?.notEqual)\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\n\t\tif (variables?.filter?.tags?.in)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][in]',\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\t\tif (variables?.filter?.tags?.notIn)\n\t\t\tsearch.set(\n\t\t\t\t'filter[tags][nin]',\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\n\t\t\t);\n\n\t\tif (variables?.filter?.reference?.equal)\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\n\t\tif (variables?.filter?.reference?.notEqual)\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\n\t\tif (variables?.filter?.reference?.in)\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\n\t\tif (variables?.filter?.reference?.notIn)\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\n\n\t\tif (variables?.sort) {\n\t\t\tsearch.set('sort[order]', variables.sort.order);\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\n\t\t}\n\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tedges: res.data.data.map((node) => ({\n\t\t\t\t\tnode,\n\t\t\t\t\tcursor: node.cursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\n\t\t\t\tpageInfo: {\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\n\t\t\t\t\tendCursor: res.data.next,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync game(id: string): Promise<OperationResult<never, Game | null | undefined>> {\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\n\n\t\tif (res.error?.name === 'HttpNotFound') {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.data,\n\t\t};\n\t}\n\n\tprivate async getJson<T>(\n\t\tpath: string,\n\t\tparams?: URLSearchParams,\n\t): Promise<OperationResult<never, T>> {\n\t\tconst req = new Request(`${this.url}${path}?${params?.toString() ?? ''}`, {\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Site-ID': this.siteId,\n\t\t\t\t'Platform-ID': this.platformId,\n\t\t\t},\n\t\t});\n\n\t\ttry {\n\t\t\tconst res = await fetch(req);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await res.json(),\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\nimport type {\n\tFile,\n\tFileQuery,\n\tFileQueryVariables,\n\tUploadPrivateImageFileError,\n\tUploadPrivateImageFileMutation,\n\tUploadPrivateImageFileMutationVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class FileService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync file(\n\t\tvariables: FileQueryVariables,\n\t): Promise<OperationResult<never, File | null | undefined>> {\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(FILE_QUERY, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.node,\n\t\t};\n\t}\n\n\tasync uploadPrivateImageFile(\n\t\tvariables: UploadPrivateImageFileMutationVariables,\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\n\t\tconst res = await this.client.upload<\n\t\t\tUploadPrivateImageFileMutation,\n\t\t\tUploadPrivateImageFileMutationVariables\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.uploadPrivateImageFile) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCREATE_GAME_SESSION_MUTATION,\n\tEND_GAME_SESSION_MUTATION,\n\tGAME_SESSION_QUERY,\n} from './queries.js';\nimport type {\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class GameService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<GameSessionQuery<true>, GameSessionQueryVariables>(\n\t\t\tGAME_SESSION_QUERY.legacy,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tconst data = !res.data.node ? null : { ...res.data.node, game: res.data.node.game.id };\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tEndGameSessionMutation<true>,\n\t\t\tEndGameSessionMutationVariables\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tCOMPLETE_ONBOARDING_MUTATION,\n\tLATEST_BET_RECORDS_QUERY,\n\tONBOARDING_STATUS_QUERY,\n\tPLATFORM_QUERY__NEXT,\n\tRECOMMENDED_GAMES_QUERY,\n\tSKIP_ONBOARDING_MUTATION,\n\tTOP_WINS_QUERY,\n} from './queries.js';\nimport type {\n\tCompleteOnboardingMutation,\n\tCompleteOnboardingMutationVariables,\n\tLatestBetRecord,\n\tLatestBetRecordsQuery,\n\tOnboardingStatus,\n\tOnboardingStatusQuery,\n\tPlatformQuery__Next,\n\tRecommendedGame,\n\tRecommendedGamesQuery,\n\tSkipOnboardingMutation,\n\tTopWin,\n\tTopWinsQuery,\n} from './types.js';\n\nexport class PortalService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(LATEST_BET_RECORDS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.latestBetRecords,\n\t\t};\n\t}\n\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\n\t\tconst res = await this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(RECOMMENDED_GAMES_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.recommendedGames,\n\t\t};\n\t}\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(ONBOARDING_STATUS_QUERY);\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\n\t}\n\n\tasync completeOnboarding(\n\t\tvariables: CompleteOnboardingMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tCompleteOnboardingMutation,\n\t\t\tCompleteOnboardingMutationVariables\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.completeOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync skipOnboarding(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(SKIP_ONBOARDING_MUTATION);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.skipOnboarding) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.topWins,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tACTIVITY_RECORDS_QUERY,\n\tBET_RECORDS_QUERY,\n\tDEPOSITS_COUNT_QUERY,\n\tDEPOSIT_RECORDS_QUERY,\n\tDOWNLINES_BY_NAME_QUERY,\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\n\tPROMO_BY_CODE_QUERY,\n\tREFERRALS_QUERY,\n\tREFERRAL_COMMISSION_QUERY,\n\tTRANSACTION_RECORDS_QUERY,\n\tUPLINES_BY_NAME_QUERY,\n\tWITHDRAWAL_RECORDS_QUERY,\n} from './queries.js';\nimport type {\n\tActivityRecord,\n\tActivityRecordsQuery,\n\tActivityRecordsQueryVariables,\n\tBetRecord,\n\tBetRecordsQuery,\n\tBetRecordsQueryVariables,\n\tDepositRecord,\n\tDepositRecordsQuery,\n\tDepositRecordsQueryVariables,\n\tDepositsCountQuery,\n\tDownlinesByNameQuery,\n\tDownlinesByNameQueryVariables,\n\tPaginatedQueryResult,\n\tPointsWalletTransaction,\n\tPointsWalletTransactionsQuery,\n\tPointsWalletTransactionsQueryVariables,\n\tPromoByCodeQuery,\n\tPromoByCodeQueryVariables,\n\tReferral,\n\tReferralCommission,\n\tReferralCommissionQuery,\n\tReferralsQuery,\n\tReferralsQueryVariables,\n\tSpotBonusPromo,\n\tTransactionRecord,\n\tTransactionRecordsQuery,\n\tTransactionRecordsQueryVariables,\n\tUplinesByNameQuery,\n\tUplinesByNameQueryVariables,\n\tWithdrawalRecord,\n\tWithdrawalRecordsQuery,\n\tWithdrawalRecordsQueryVariables,\n} from './types.js';\n\nexport class ReportService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync betRecords(\n\t\tvariables?: BetRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\n\t\tconst res = await this.client.request<BetRecordsQuery, BetRecordsQueryVariables>(\n\t\t\tBET_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\n\t}\n\n\tasync transactionRecords(\n\t\tvariables?: TransactionRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\n\t\tconst res = await this.client.request<\n\t\t\tTransactionRecordsQuery,\n\t\t\tTransactionRecordsQueryVariables\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.transactionRecords } : res;\n\t}\n\n\tasync withdrawalRecords(\n\t\tvariables?: WithdrawalRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\n\t\tconst res = await this.client.request<WithdrawalRecordsQuery, WithdrawalRecordsQueryVariables>(\n\t\t\tWITHDRAWAL_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.withdrawalRecords } : res;\n\t}\n\n\tasync depositRecords(\n\t\tvariables?: DepositRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\n\t\tconst res = await this.client.request<DepositRecordsQuery, DepositRecordsQueryVariables>(\n\t\t\tDEPOSIT_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\n\t}\n\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\n\t\tconst res = await this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>> {\n\t\tconst res = await this.client.request<\n\t\t\tPointsWalletTransactionsQuery,\n\t\t\tPointsWalletTransactionsQueryVariables\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.pointsWalletTransactions } : res;\n\t}\n\n\tasync activityRecords(\n\t\tvariables?: ActivityRecordsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\n\t\tconst res = await this.client.request<ActivityRecordsQuery, ActivityRecordsQueryVariables>(\n\t\t\tACTIVITY_RECORDS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\n\t}\n\n\tasync referrals(\n\t\tvariables?: ReferralsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\n\t\tconst res = await this.client.request<ReferralsQuery, ReferralsQueryVariables>(\n\t\t\tREFERRALS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\n\t}\n\n\tasync referralCommission(): Promise<\n\t\tOperationResult<never, ReferralCommission | null | undefined>\n\t> {\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(REFERRAL_COMMISSION_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referralCommission } : res;\n\t}\n\n\tasync uplinesByName(\n\t\tvariables: UplinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<UplinesByNameQuery, UplinesByNameQueryVariables>(\n\t\t\tUPLINES_BY_NAME_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\n\t}\n\tasync downlinesByName(\n\t\tvariables: DownlinesByNameQueryVariables,\n\t): Promise<OperationResult<never, Referral[]>> {\n\t\tconst res = await this.client.request<DownlinesByNameQuery, DownlinesByNameQueryVariables>(\n\t\t\tDOWNLINES_BY_NAME_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\n\t}\n\n\tasync promoByCode(\n\t\tvariables: PromoByCodeQueryVariables,\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\n\t\tconst res = await this.client.request<PromoByCodeQuery, PromoByCodeQueryVariables>(\n\t\t\tPROMO_BY_CODE_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tAVAILABLE_QUESTS_QUERY,\n\tCHECK_IN_DAILY_QUEST_MUTATION,\n\tCLAIM_REWARD_MUTATION,\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\n\tMARK_MESSAGE_AS_READ_MUTATION,\n\tMESSAGES_QUERY,\n\tUNREAD_MESSAGES_COUNT_QUERY,\n} from './queries.js';\nimport type {\n\tAvailableQuestsQuery,\n\tCheckInDailyQuestMutation,\n\tCheckInDailyQuestVariables,\n\tClaimRewardError,\n\tClaimRewardMutation,\n\tClaimRewardMutationVariables,\n\tClaimRewardQueryVariables,\n\tMarkAllMessageAsReadMutation,\n\tMarkMessageAsReadMutation,\n\tMarkMessageAsReadMutationVariables,\n\tMessage,\n\tMessagesQuery,\n\tMessagesQueryVariables,\n\tPaginatedQueryResult,\n\tQuest,\n\tUnreadMessagesCountQuery,\n\tUnreadMessagesCountQueryVariables,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class TriggerService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync messages(\n\t\tvariables?: MessagesQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\n\t\tconst res = await this.client.request<MessagesQuery, MessagesQueryVariables>(\n\t\t\tMESSAGES_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages } : res;\n\t}\n\n\tasync unreadMessagesCount(\n\t\tvariables?: UnreadMessagesCountQueryVariables,\n\t): Promise<OperationResult<never, number>> {\n\t\tconst res = await this.client.request<UnreadMessagesCountQuery, MessagesQueryVariables>(\n\t\t\tUNREAD_MESSAGES_COUNT_QUERY,\n\t\t\t{\n\t\t\t\t...variables,\n\t\t\t\tfilter: {\n\t\t\t\t\t...variables?.filter,\n\t\t\t\t\tmarkedAsRead: {\n\t\t\t\t\t\tequal: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\n\t}\n\n\tasync markMessageAsRead(variables: MarkMessageAsReadMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tMarkMessageAsReadMutation,\n\t\t\tMarkMessageAsReadMutationVariables\n\t\t>(MARK_MESSAGE_AS_READ_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markMessageAsRead) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync markAllMessageAsRead(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<MarkAllMessageAsReadMutation>(\n\t\t\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markAllMessageAsRead) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync claimReward(\n\t\tvariables: ClaimRewardMutationVariables,\n\t): Promise<OperationResult<ClaimRewardError>> {\n\t\tconst res = await this.client.request<ClaimRewardMutation, ClaimRewardQueryVariables>(\n\t\t\tCLAIM_REWARD_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.claimReward) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimReward.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync availableQuests(): Promise<OperationResult<never, Quest[]>> {\n\t\tconst res = await this.client.request<AvailableQuestsQuery>(AVAILABLE_QUESTS_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.availableQuests,\n\t\t};\n\t}\n\tasync checkInDailyQuest(\n\t\tvariables: CheckInDailyQuestVariables,\n\t): Promise<OperationResult<never, boolean>> {\n\t\tconst res = await this.client.request<CheckInDailyQuestMutation>(\n\t\t\tCHECK_IN_DAILY_QUEST_MUTATION,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.checkInDailyQuest,\n\t\t};\n\t}\n}\n","import type { OperationResult } from '../types/index.js';\nimport type { GraphQLClient } from '../utils/graphql-client.js';\nimport {\n\tAVAILABLE_PROMOS_QUERY,\n\tBONUSES_QUERY,\n\tBONUS_QUERY,\n\tCASHBACKS_QUERY,\n\tCASHBACK_BONUSES_QUERY,\n\tCLAIM_CASHBACK_BONUS_MUTATION,\n\tCLAIM_SPOT_BONUS,\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_GAME_SESSION_MUTATION,\n\tCREATE_GCASH_DEPOSIT_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\n\tCREATE_MAYA_DEPOSIT_MUTATION,\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\n\tDEPOSIT_QUERY,\n\tEND_GAME_SESSION_MUTATION,\n\tGAME_SESSION_QUERY,\n\tINSTAPAY_BANK_LIST_QUERY,\n\tMAYA_SESSION_QUERY,\n\tPOINTS_WALLET_QUERY,\n\tPROMOS_QUERY,\n\tREDEEM_POINTS_TO_CASH_MUTATION,\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\n\tVALIDATE_MAYA_SESSION_MUTATION,\n\tWALLET_QUERY,\n} from './queries.js';\nimport type {\n\tAvailablePromosQuery,\n\tAvailablePromosQueryVariables,\n\tBonus,\n\tBonusQuery,\n\tBonusesQuery,\n\tCashback,\n\tCashbackBonus,\n\tCashbackBonusesQuery,\n\tCashbacksQuery,\n\tClaimCashbackBonusError,\n\tClaimCashbackBonusMutation,\n\tClaimCashbackBonusMutationVariables,\n\tClaimSpotBonusError,\n\tClaimSpotBonusMutation,\n\tClaimSpotBonusMutationVariable,\n\tCreateAIOInstapayWithdrawalMutation,\n\tCreateAIOInstapayWithdrawalMutationVariables,\n\tCreateAIOOnlineBankDepositMutation,\n\tCreateAIOOnlineBankDepositMutationVariables,\n\tCreateAIOQRPHDepositMutation,\n\tCreateAIOQRPHDepositMutationVariables,\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateDepositError,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tCreateMayaAppDepositMutation,\n\tCreateMayaAppDepositMutationVariables,\n\tCreateMayaAppWithdrawalMutation,\n\tCreateMayaAppWithdrawalMutationVariables,\n\tCreateMayaDepositMutation,\n\tCreateMayaDepositMutationVariables,\n\tCreateMayaWithdrawalMutation,\n\tCreateMayaWithdrawalMutationVariables,\n\tCreateWithdrawalError,\n\tDeposit,\n\tDepositQuery,\n\tDepositQueryVariables,\n\tEndGameSessionMutation,\n\tEndGameSessionMutationVariables,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tInstapayBank,\n\tInstapayBankListQuery,\n\tMayaSession,\n\tMayaSessionQuery,\n\tMayaSessionQueryVariables,\n\tPointsWallet,\n\tPointsWalletQuery,\n\tPromo,\n\tPromosQuery,\n\tRedeemPointsToCashError,\n\tRedeemPointsToCashMutation,\n\tRedeemPointsToCashMutationVariables,\n\tRemainingDailyWithdrawalsCountQuery,\n\tTouchGCashDepositMutation,\n\tTouchGCashDepositMutationVariables,\n\tValidateMayaSessionMutation,\n\tWallet,\n\tWalletQuery,\n} from './types.js';\nimport { createOperationError } from './utils.js';\n\nexport class WalletService {\n\tprivate client: GraphQLClient;\n\n\tconstructor(client: GraphQLClient) {\n\t\tthis.client = client;\n\t}\n\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\n\t}\n\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\n\t}\n\n\tasync availablePromos(\n\t\tvariables?: AvailablePromosQueryVariables,\n\t): Promise<OperationResult<never, Promo[]>> {\n\t\tconst res = await this.client.request<AvailablePromosQuery, AvailablePromosQueryVariables>(\n\t\t\tAVAILABLE_PROMOS_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\n\t}\n\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(CASHBACK_BONUSES_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\n\t}\n\n\tasync claimCashbackBonus(\n\t\tvariables: ClaimCashbackBonusMutationVariables,\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\n\t\tconst res = await this.client.request<\n\t\t\tClaimCashbackBonusMutation,\n\t\t\tClaimCashbackBonusMutationVariables\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimCashbackBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\n\t}\n\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\n\t}\n\n\tasync deposit(\n\t\tvariables: DepositQueryVariables,\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\n\t\t\tDEPOSIT_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\n\t}\n\n\tasync createGCashDeposit(\n\t\tvariables: CreateGCashDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashDepositMutation,\n\t\t\tCreateGCashDepositMutationVariables\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaDeposit(\n\t\tvariables: CreateMayaDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaDepositMutation,\n\t\t\tCreateMayaDepositMutationVariables\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOQRPHDeposit(\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOQRPHDepositMutation,\n\t\t\tCreateAIOQRPHDepositMutationVariables\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOQRPHDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOOnlineBankDeposit(\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOOnlineBankDepositMutation,\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOOnlineBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAIOOnlineBankDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppDeposit(\n\t\tvariables: CreateMayaAppDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppDepositMutation,\n\t\t\tCreateMayaAppDepositMutationVariables\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createGCashWithdrawal(\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashWithdrawalMutation,\n\t\t\tCreateGCashWithdrawalMutationVariables\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGCashWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaWithdrawal(\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaWithdrawalMutation,\n\t\t\tCreateMayaWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createMayaAppWithdrawal(\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateMayaAppWithdrawalMutation,\n\t\t\tCreateMayaAppWithdrawalMutationVariables\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createMayaAppWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createMayaAppWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createBankWithdrawal(\n\t\tvariables: CreateBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateBankWithdrawalMutation,\n\t\t\tCreateBankWithdrawalMutationVariables\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync createAIOInstapayWithdrawal(\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateAIOInstapayWithdrawalMutation,\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createAIOInstapayWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createAIOInstapayWithdrawal.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\n\t\tconst res = await this.client.request<InstapayBankListQuery>(INSTAPAY_BANK_LIST_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<OperationResult<never, number>> {\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount } : res;\n\t}\n\n\tasync pointsWallet(): Promise<OperationResult<never, PointsWallet | null | undefined>> {\n\t\tconst res = await this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\n\t}\n\n\tasync redeemPointsToCash(\n\t\tvariables: RedeemPointsToCashMutationVariables,\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRedeemPointsToCashMutation,\n\t\t\tRedeemPointsToCashMutationVariables\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.redeemPointsToCash) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync mayaSession(\n\t\tvariables: MayaSessionQueryVariables,\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\n\t\tconst res = await this.client.request<MayaSessionQuery, MayaSessionQueryVariables>(\n\t\t\tMAYA_SESSION_QUERY,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\n\t}\n\n\tasync gameSession(\n\t\tvariables: GameSessionQueryVariables,\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\n\t\tconst res = await this.client.request<GameSessionQuery, GameSessionQueryVariables>(\n\t\t\tGAME_SESSION_QUERY.current,\n\t\t\tvariables,\n\t\t);\n\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\n\t}\n\n\tasync createGameSession(\n\t\tvariables: CreateGameSessionMutationVariables,\n\t): Promise<OperationResult<CreateGameSessionError>> {\n\t\tconst res = await this.client.request<\n\t\t\tCreateGameSessionMutation,\n\t\t\tCreateGameSessionMutationVariables\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (res.data.createGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<EndGameSessionMutation, EndGameSessionMutationVariables>(\n\t\t\tEND_GAME_SESSION_MUTATION.current,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.endGameSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\n\t\tif (!res.data.validateMayaSession) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\n\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\n\t}\n\n\tasync claimSpotBonus(\n\t\tvariables: ClaimSpotBonusMutationVariable,\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariable>(\n\t\t\tCLAIM_SPOT_BONUS,\n\t\t\tvariables,\n\t\t);\n\n\t\tif (!res.ok) {\n\t\t\treturn {\n\t\t\t\tok: res.ok,\n\t\t\t\terror: res.error,\n\t\t\t};\n\t\t}\n\n\t\tif (res.data.claimSpotBonus) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\n\tasync touchGCashDeposit(variables: TouchGCashDepositMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchGCashDepositMutation,\n\t\t\tTouchGCashDepositMutationVariables\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchGCashDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n}\n","export function cloneDate(date: Date) {\n\treturn new Date(date.getTime());\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addMinutes(date: Date, minutes: number): Date {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() + minutes);\n\treturn result;\n}\n","/**\n * is `date1` after `date2`?\n */\nexport function isAfter(date1: Date, date2: Date) {\n\treturn date1.getTime() > date2.getTime();\n}\n","import { addMinutes } from './add-minutes.js';\nimport { isAfter } from './is-after.js';\n\ninterface CacheValue<T> {\n\tvalue: T;\n\tvalidUntil: Date;\n}\n\ninterface CacheConfig {\n\t/**\n\t * @description The number in minutes the cache is valid\n\t * @default 5\n\t */\n\tcacheTime: number;\n}\n\nexport class Cache<T = unknown> {\n\tprivate config: CacheConfig;\n\tprivate cache: Record<string, CacheValue<T>>;\n\n\tconstructor(config?: CacheConfig) {\n\t\tthis.cache = {};\n\t\tthis.config = {\n\t\t\tcacheTime: 5,\n\t\t\t...config,\n\t\t};\n\t}\n\n\tset(key: string, value: T) {\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\n\n\t\tthis.cache[key] = {\n\t\t\tvalue,\n\t\t\tvalidUntil,\n\t\t};\n\t}\n\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\n\t\tconst o = this.cache[key];\n\t\tif (!o) return null;\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\n\t\treturn o.value as any;\n\t}\n}\n","export function clamp(value: number, min: number, max: number) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n","export function isPlainObject(value: unknown): value is Record<string, any> {\n\treturn Object.prototype.toString.call(value) === '[object Object]' && Object(value) === value;\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function flatten(value: Record<string, any> | any[]) {\n\tconst result: {\n\t\tkey: string[];\n\t\tvalue: any;\n\t}[] = [];\n\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\n\t\tfor (const k in o) {\n\t\t\tconst v = o[k];\n\n\t\t\tif (isPlainObject(v)) {\n\t\t\t\tfn(v, [...parentKeys, k]);\n\t\t\t} else if (Array.isArray(v)) {\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\n\t\t\t} else {\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: [...parentKeys, k],\n\t\t\t\t\tvalue: v,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfn(value);\n\n\treturn result;\n}\n\nfunction arrayToObject(array: unknown[]) {\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\n\t\to[i] = v;\n\t\treturn o;\n\t}, {});\n}\n","import type { GenericObject, OperationResult } from '../types/index.js';\nimport { flatten } from './flatten.js';\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\n\ntype ModifiableKey =\n\t| 'mode'\n\t| 'cache'\n\t| 'signal'\n\t| 'headers'\n\t| 'integrity'\n\t| 'keepalive'\n\t| 'credentials';\n\ntype Modifiable = {\n\t[K in ModifiableKey]: Request[K];\n};\n\nexport interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {}\n\nexport type GraphQLClientMiddleware = (\n\trequest: ModifiedRequest,\n) => ModifiedRequest | Promise<ModifiedRequest>;\n\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {}\n\nexport interface GraphQLClientConfig {\n\tmiddlewares?: GraphQLClientMiddleware[];\n\tfetchOptions?: GraphQLClientFetchOptions;\n}\n\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\ntype GraphQLErrorExtensionCode =\n\t| 'FORBIDDEN'\n\t| 'UNAUTHORIZED'\n\t| 'BAD_REQUEST'\n\t| 'BAD_USER_INPUT'\n\t| 'INTERNAL_SERVER_ERROR'\n\t| 'ACCESS_TOKEN_EXPIRED';\n\ninterface GraphQLErrorExtensions {\n\tcode: GraphQLErrorExtensionCode;\n\tstacktrace: string[];\n}\n\ninterface GraphQLErrorLocation {\n\tline: number;\n\tcolumn: number;\n}\n\ninterface GraphQLError {\n\tpath: string[];\n\tmessage?: string;\n\textensions?: GraphQLErrorExtensions;\n\tlocations: GraphQLErrorLocation[];\n}\n\nexport class GraphQLClient {\n\tprivate url: string;\n\tprivate options: GraphQLClientFetchOptions;\n\tprivate middlewares: GraphQLClientMiddleware[];\n\n\tconstructor(url: string, config?: GraphQLClientConfig) {\n\t\tconst headers = new Headers(config?.fetchOptions?.headers);\n\n\t\tthis.url = url;\n\t\tthis.options = { ...config?.fetchOptions, headers };\n\t\tthis.middlewares = config?.middlewares ?? [];\n\t}\n\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables?: Variables,\n\t\toptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst opts = mergeFetchOptions(this.options, options);\n\t\tconst body = JSON.stringify({\n\t\t\tquery,\n\t\t\tvariables,\n\t\t});\n\n\t\tconst headers = new Headers(opts.headers);\n\n\t\theaders.set('Content-Type', 'application/json');\n\t\theaders.set('Accept', 'application/json');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...opts,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\t/** Single file upload */\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t\toptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst opts = mergeFetchOptions(this.options, options);\n\t\tconst body = this.createUploadBody(query, variables);\n\n\t\tconst headers = new Headers(opts.headers);\n\n\t\theaders.delete('Content-Type');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...opts,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\n\t\ttry {\n\t\t\tconst res = await fetch(request);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t\t}\n\n\t\t\tconst json = await res.json();\n\t\t\tconst data = json.data;\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\t\tif (error) {\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\n\t\t\t\t) {\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(403, error.message) };\n\t\t\t\t}\n\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(401, error.message) };\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\n\t\t\t\t) {\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(400, error.message) };\n\t\t\t\t}\n\n\t\t\t\t/* Fallback for unknown error codes */\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async runMiddlewares(req: ModifiedRequest): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tresult = await middleware(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t) {\n\t\tconst files = flatten(variables).filter(\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\n\t\t);\n\n\t\tconst body = new FormData();\n\n\t\tbody.append(\n\t\t\t'operations',\n\t\t\tJSON.stringify({\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t}),\n\t\t);\n\n\t\tconst map: GenericObject = {};\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\n\t\t});\n\n\t\tbody.append('map', JSON.stringify(map));\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tbody.append(i.toString(), o.value);\n\t\t});\n\n\t\treturn body;\n\t}\n}\n\nfunction getOperationInfo(query: string) {\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\n\n\tif (!l) return null;\n\n\tconst k = l.at(1);\n\tconst v = l.at(2);\n\n\treturn k && v ? { type: k, name: v } : null;\n}\n\nfunction mergeFetchOptions(\n\ti: GraphQLClientFetchOptions | undefined,\n\tj: GraphQLClientFetchOptions | undefined,\n): GraphQLClientFetchOptions {\n\tif (!i) return j ?? {};\n\tif (!j) return i ?? {};\n\n\treturn {\n\t\t...i,\n\t\t...j,\n\n\t\theaders: mergeHeaders(i.headers, j.headers),\n\t};\n}\n\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\n\tif (!i) return j;\n\tif (!j) return i;\n\n\tconst h = new Headers();\n\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\n\n\treturn h;\n}\n","export async function sha256(input: string) {\n\tconst msgUint8 = new TextEncoder().encode(input);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n\treturn hashHex;\n}\n","interface LoggerConfig {\n\t/**\n\t * @default true\n\t */\n\tenabled?: boolean;\n}\n\nexport class Logger {\n\tprivate enabled: boolean;\n\n\tconstructor(config?: LoggerConfig) {\n\t\tthis.enabled = config?.enabled ?? true;\n\t}\n\n\tinfo(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\n\t}\n\n\twarn(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\n\t}\n\n\terror(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\n\t}\n\n\tsuccess(message: string) {\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\n\t}\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function addDays(date: Date, days: number) {\n\tconst result = cloneDate(date);\n\tresult.setDate(result.getDate() + days);\n\treturn result;\n}\n","export function sleep(ms: number) {\n\treturn new Promise<void>((resolve) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n","import { sleep } from './sleep.js';\n\ninterface Config<T> {\n\tuntil(response: T): boolean;\n\t/**\n\t * @default 1000\n\t */\n\tinterval?: number;\n\t/**\n\t * @default 3\n\t */\n\tmaxAttempt?: number;\n}\n\n/**\n * @example\n * ```ts\n * const poll = pollable(\n * fn,\n * {\n * until: (r) => r.ok,\n * interval: 1000,\n * maxAttempt: 5,\n * }\n * );\n *\n * poll()\n * ```\n */\nexport function pollable<Return, Args = never>(\n\tfunc: (...args: Args[]) => Promise<Return>,\n\tconfig: Config<Return>,\n) {\n\tconst {\n\t\tuntil,\n\t\tinterval = 1000,\n\t\tmaxAttempt = 3,\n\t\t/**/\n\t} = config;\n\n\tasync function repeater(args: Args[], max?: number) {\n\t\tconst m = max ?? maxAttempt;\n\t\tconst r = await func(...args);\n\t\tconst k = until(r);\n\n\t\tif (k) return r;\n\n\t\tif (m > 1) {\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\n\t\t\treturn repeater(args, m - 1);\n\t\t}\n\n\t\treturn r;\n\t}\n\n\treturn async (...args: Args[]): Promise<Return> => {\n\t\treturn await repeater(args);\n\t};\n}\n","import { cloneDate } from './clone-date.js';\n\nexport function subMinutes(date: Date, minutes: number) {\n\tconst result = cloneDate(date);\n\tresult.setMinutes(result.getMinutes() - minutes);\n\treturn result;\n}\n","import type { AuthService, WalletService } from '../services/index.js';\nimport type { OperationResult } from '../types/index.js';\nimport { addDays } from '../utils/add-days.js';\nimport { addMinutes } from '../utils/add-minutes.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { pollable } from '../utils/pollable.js';\nimport { sleep } from '../utils/sleep.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport { Logger } from './logger.js';\nimport type {\n\tAuthenticateError,\n\tAuthenticateInput,\n\tAuthenticator,\n\tRefreshSessionError,\n\tSession,\n\tSignInError,\n\tSignInInput,\n} from './types.js';\n\ninterface Data {\n\tsession: Session;\n\taccessToken: string;\n\taccessTokenExpiresAt: number;\n\trefreshToken: string;\n\trefreshTokenExpiresAt: number;\n}\n\ninterface SessionManagerConfig {\n\tlogs?: boolean;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManager {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate authService: AuthService;\n\tprivate walletService: WalletService;\n\tprivate _refreshing = false;\n\n\tconstructor(config: SessionManagerConfig) {\n\t\tthis.authService = config.authService;\n\t\tthis.walletService = config.walletService;\n\n\t\tthis.logger = new Logger({\n\t\t\tenabled: config.logs ?? false,\n\t\t});\n\t}\n\n\tget refreshing() {\n\t\treturn this._refreshing;\n\t}\n\n\tset refreshing(value: boolean) {\n\t\tthis._refreshing = value;\n\t}\n\n\tasync create(\n\t\tinput: SignInInput,\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\n\t\t\tconst r0 = await pollable(f0, {\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r0.ok) return r0;\n\t\t\tif (!r0.data?.member) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpForbidden',\n\t\t\t\t\t\tmessage: 'Forbidden',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst f1 = () => this.authService.createSession(input);\n\t\t\tconst r1 = await pollable(f1, {\n\t\t\t\tuntil: (r) => r.ok,\n\t\t\t\tinterval: 1000,\n\t\t\t\tmaxAttempt: 5,\n\t\t\t})();\n\n\t\t\tif (!r1.ok) return r1;\n\n\t\t\tconst now = new Date();\n\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\t...r1.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * Mobile Number Sign In\n\t\t */\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Token sign up (for 3rd party sign in)\n\t\t */\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\n\t\t\tconst res = await this.authService.createSession({\n\t\t\t\ttype: 'SOCIALS',\n\t\t\t\ttoken: input.token,\n\t\t\t});\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/**\n\t\t * Cabinet sign in\n\t\t */\n\t\tif (input.type === 'CABINET') {\n\t\t\tconst res = await this.authService.createSession(input);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst now = new Date();\n\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\t/*\n\t\t * Name and Password Sign In\n\t\t */\n\t\tconst res = await this.authService.createSession(input);\n\n\t\tif (!res.ok) return res;\n\n\t\t/*\n\t\t * 2FA enabled\n\t\t */\n\t\tif (res.data.authenticator) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tlocalStorage.setItem(\n\t\t\tthis.storageKey,\n\t\t\tJSON.stringify({\n\t\t\t\t...res.data,\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: null,\n\t\t};\n\t}\n\n\tasync createFromAuthenticator(\n\t\tinput: AuthenticateInput,\n\t): Promise<OperationResult<AuthenticateError>> {\n\t\tconst res = await this.authService.authenticate(input);\n\n\t\tif (res.ok) {\n\t\t\tconst now = new Date();\n\n\t\t\tif (this.isServer) {\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.storageKey,\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...res.data,\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn { ok: true };\n\t\t} else {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\tif (this.refreshing) {\n\t\t\tawait sleep(1000);\n\t\t\treturn await this.get();\n\t\t}\n\n\t\tconst val = localStorage.getItem(this.storageKey);\n\n\t\tif (!val) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: null,\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tlet obj: {\n\t\t\t\tsession: Session;\n\t\t\t\taccessToken: string;\n\t\t\t\taccessTokenExpiresAt: number;\n\t\t\t\trefreshToken: string;\n\t\t\t\trefreshTokenExpiresAt: number;\n\t\t\t} = JSON.parse(val);\n\n\t\t\tlet now = new Date();\n\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\n\n\t\t\t/* is refresh token expired? */\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\n\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'SessionExpiredError',\n\t\t\t\t\t\tmessage: 'Session expired.',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/* is access token expired? */\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\n\t\t\t\tthis.logger.info('Refreshing session...');\n\n\t\t\t\tthis.refreshing = true;\n\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\n\n\t\t\t\tthis.refreshing = false;\n\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\n\n\t\t\t\t\t/*\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\n\t\t\t\t\t) {\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: false,\n\t\t\t\t\t\t\terror: res.error,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tok: true,\n\t\t\t\t\t\t\tdata: obj,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.logger.success('Session refreshed!');\n\n\t\t\t\tnow = new Date();\n\t\t\t\tobj = {\n\t\t\t\t\t...obj,\n\t\t\t\t\t...res.data,\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\n\t\t\t\t};\n\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in localStorage? */\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'UnknownError',\n\t\t\t\t\tmessage: 'Something went wrong.',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tasync destroy() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst res = await this.get();\n\n\t\tif (res.data?.accessToken) {\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\n\t\t}\n\n\t\tlocalStorage.removeItem(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn true;\n\t\t}\n\n\t\tconst s = await this.get();\n\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\n\n\t\t/* Not logged in or session is not expired */\n\t\tif (!s.data) return true;\n\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\n\n\t\t/* log out if session is no longer valid */\n\t\tif (!v) {\n\t\t\tlocalStorage.removeItem(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function compact<T>(obj: Record<string, any>) {\n\tconst output: Record<string, any> = {};\n\n\tfor (const k in obj) {\n\t\tconst v = obj[k];\n\n\t\tif (v === null) continue;\n\t\tif (v === undefined) continue;\n\n\t\tif (isPlainObject(v)) {\n\t\t\toutput[k] = compact(v);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (Array.isArray(v)) {\n\t\t\toutput[k] = v.map((i) => {\n\t\t\t\tif (isPlainObject(i)) {\n\t\t\t\t\treturn compact(i);\n\t\t\t\t} else {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcontinue;\n\t\t}\n\n\t\toutput[k] = v;\n\t}\n\n\treturn output as T;\n}\n","export function invariant(condition: unknown, message?: string): asserts condition {\n\tif (!condition) {\n\t\tconst error = new Error();\n\t\terror.name = 'Invariant Violation';\n\t\terror.message = message ?? 'Invariant failed';\n\t\tError.captureStackTrace?.(error, invariant);\n\t\tthrow error;\n\t}\n}\n","type MaybeNumber = number | string | undefined | null;\n\nexport function parseDecimal(value: MaybeNumber): number | undefined;\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\n\tif (typeof value === 'number') {\n\t\tif (!Number.isNaN(value)) return value;\n\t}\n\n\tif (typeof value === 'string') {\n\t\tconst parsed = Number.parseFloat(value);\n\n\t\tif (!Number.isNaN(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\t}\n\n\treturn fallback;\n}\n","import type { Currency, Locale } from './types.js';\n\nexport function getLocaleByCurrency(currency: Currency): Locale {\n\tif (currency === 'INR') return 'en-IN';\n\tif (currency === 'MYR') return 'en-MY';\n\tif (currency === 'IDR') return 'en-ID';\n\tif (currency === 'USD') return 'en-US';\n\treturn 'en-PH';\n}\n\n/*\n * +63 (Philippines)\n * +91 (India)\n * +60 (Malaysia)\n * +62 (Indonesia)\n * +1 (UnitedStates)\n */\nexport function getAreaCodeByLocale(locale: Locale) {\n\tif (locale === 'en-IN') return '+91';\n\tif (locale === 'en-MY') return '+60';\n\tif (locale === 'en-ID') return '+62';\n\tif (locale === 'en-US') return '+1';\n\treturn '+63';\n}\n\n/**\n * @description Ensures mobile number has complete area code\n * @example\n * ```ts\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\n * ```\n */\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\n\tconst areaCode = getAreaCodeByLocale(locale);\n\n\t/* starts with area code */\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\n\t/* starts with area code without \"+\" */\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\n\t/* starts with zero */\n\tif (mobileNumber.startsWith('0')) return `${areaCode}${mobileNumber.substring(1)}`;\n\n\treturn `${areaCode}${mobileNumber}`;\n}\n","import type * as Internal from '../services/index.js';\nimport type { Assign } from '../types/index.js';\nimport { compact } from '../utils/compact.js';\nimport { invariant } from '../utils/invariant.js';\nimport { parseDecimal } from '../utils/parse-decimal.js';\nimport type * as External from './types.js';\nimport { getLocaleByCurrency } from './utils.js';\n\nconst IMAGE_CACHE_ID = '1'.padStart(8, '0');\n\nexport class Transformer {\n\tget transform() {\n\t\treturn {\n\t\t\tsite: this.site.bind(this),\n\t\t\tplatform: this.platform.bind(this),\n\t\t\taccount: this.account.bind(this),\n\t\t\twallet: this.wallet.bind(this),\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\n\t\t\tannouncement: this.announcement.bind(this),\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\n\t\t\tdeposit: this.deposit.bind(this),\n\t\t\tdepositRecord: this.depositRecord.bind(this),\n\t\t\tbetRecord: this.betRecord.bind(this),\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\n\t\t\tgame: this.game.bind(this),\n\t\t\tgameSession: this.gameSession.bind(this),\n\t\t\tpromo: this.promo.bind(this),\n\t\t\tcashback: this.cashback.bind(this),\n\t\t\tbonus: this.bonus.bind(this),\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\n\t\t\tfile: this.file.bind(this),\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\n\t\t\tactivityRecord: this.activityRecord.bind(this),\n\t\t\treferral: this.referral.bind(this),\n\t\t\treferralCommission: this.referralCommission.bind(this),\n\t\t\tplatform__next: this.platform__next.bind(this),\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\n\t\t\tmessage: this.message.bind(this),\n\t\t\tinstapayBank: this.instapayBank.bind(this),\n\t\t\tpromoByCode: this.promoByCode.bind(this),\n\t\t\tquest: this.quest.bind(this),\n\t\t\ttopWin: this.topWin.bind(this),\n\t\t};\n\t}\n\n\tprivate site(data: Internal.Site): External.Site {\n\t\tconst o: External.Site = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tlogo: data.logo ?? undefined,\n\t\t\tfields: data.config.fields,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\t/** @deprecated */\n\tprivate platform(data: Internal.Platform): External.Platform {\n\t\treturn {\n\t\t\ttimezone: data.timezone,\n\t\t\tcurrency: data.currency,\n\t\t\tpaymentSettings: {\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\n\t\t\t\tdepositGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tonlineBank: {\n\t\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tqrph: {\n\t\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\twithdrawalGateway: {\n\t\t\t\t\tbank: {\n\t\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tgcash: {\n\t\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmaya: {\n\t\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t\t},\n\t\t\t\t\tmayaApp: {\n\t\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tinstapay: {\n\t\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t\t1000000,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpointsClubSettings: {\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate platform__next(data: Internal.Platform__Next): External.Platform__Next {\n\t\treturn {\n\t\t\tcurrency: data.currency,\n\t\t\ttimezone: data.timezone,\n\t\t\tlocale: getLocaleByCurrency(data.currency),\n\t\t};\n\t}\n\n\tprivate pointsClubSettings(data: Internal.PointsClubSettings): External.PointsClubSettings {\n\t\treturn {\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t};\n\t}\n\n\tprivate paymentSettings(data: Internal.PaymentSettings): External.PaymentSettings {\n\t\treturn {\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\n\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\n\t\t\tdepositGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tonlineBank: {\n\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tqrph: {\n\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t},\n\t\t\twithdrawalGateway: {\n\t\t\t\tbank: {\n\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tgcash: {\n\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.maximumAmount, 1000000),\n\t\t\t\t},\n\t\t\t\tmaya: {\n\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\n\t\t\t\t},\n\t\t\t\tmayaApp: {\n\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tinstapay: {\n\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate account(data: Internal.MemberAccount): External.Account {\n\t\tconst o: External.Account = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tverified: data.verified,\n\t\t\tnickName: data.nickName ?? undefined,\n\t\t\trealName: data.realName ?? undefined,\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\n\t\t\temailAddress: data.emailAddress ?? undefined,\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\n\t\t\tmobileNumberVerificationRequired: data.mobileNumberVerificationRequired ?? false,\n\t\t\tvalidId: data.validId || undefined,\n\t\t\tverificationStatus: data.verificationStatus,\n\t\t\ttransactionPassword: data.transactionPassword,\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\n\t\tconst o: External.Wallet = {\n\t\t\tid: data.id,\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tcurrency: data.currency,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate verificationDetails(data: Internal.MemberVerification): External.VerificationDetails {\n\t\tconst o: External.VerificationDetails = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\taddress: data.address,\n\t\t\tpermanentAddress: data.permanentAddress,\n\t\t\tnationality: data.nationality,\n\t\t\tnatureOfWork: data.natureOfWork,\n\t\t\tplaceOfBirth: data.placeOfBirth,\n\t\t\tsourceOfIncome: data.sourceOfIncome,\n\t\t\tselfieImage: this.file(data.selfieImage) as External.File,\n\t\t\tidFrontImage: this.file(data.idFrontImage) as External.File,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate profileCompletion(data: Internal.ProfileCompletion): External.ProfileCompletion {\n\t\tconst o: External.ProfileCompletion = {\n\t\t\taccountPassword: data.accountPassword ?? false,\n\t\t\taccountVerification: data.accountVerification ?? false,\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\n\t\t\tpersonalInformation: data.personalInformation ?? false,\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\n\t\tconst o: External.Announcement = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttitle: data.title,\n\t\t\tstatus: data.status,\n\t\t\tmessage: data.message,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate withdrawalRecord(data: Internal.WithdrawalRecord): External.WithdrawalRecord {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tbank: data.bank!,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t\twithdrawalNumber: data.withdrawalNumber,\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed ? new Date(data.dateTimeConfirmed) : undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as External.WithdrawalRecord;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\n\t\tconst o: External.Deposit = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tvca: data.vca ?? undefined,\n\t\t\tqrCode: data.qrCode ?? undefined,\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\n\t\t\terror: data.error ?? undefined,\n\t\t} as External.Deposit;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\n\t\tconst o: External.DepositRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tstatus: data.status,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tfee: parseDecimal(data.fee, 0),\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\n\t\t\treference: data.reference ?? undefined,\n\t\t\tdeposit: data.deposit,\n\t\t\tdepositNumber: data.depositNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\terror: data.error ?? undefined,\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate betRecord(\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\n\t): External.BetRecord {\n\t\tconst o: External.BetRecord = {\n\t\t\tid: data.id,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\tstatus: data.status,\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\n\t\t\twinloss: parseDecimal(data.winloss),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tserialCode: data.serialCode,\n\t\t\tdateTimeSettled: data.dateTimeSettled ? new Date(data.dateTimeSettled) : undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tbetContent: data.betContent ?? undefined,\n\t\t\tcontestName: data.contestName ?? undefined,\n\t\t\texternalCategory: data.externalCategory ?? undefined,\n\t\t\tmetadata: {\n\t\t\t\todds: data.metadata?.odds ?? undefined,\n\t\t\t},\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate latestBetRecord(\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\n\t): External.LatestBetRecord {\n\t\tconst o: External.LatestBetRecord = {\n\t\t\tid: data.id,\n\t\t\tmember: data.member,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate transactionRecord(data: Internal.TransactionRecord): External.TransactionRecord {\n\t\tconst o: External.TransactionRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tcontent: data.content ?? undefined,\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\n\t\t\treferenceNumber: data.referenceNumber,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate game(data: Internal.Game): External.Game {\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\n\t\t\tinvariant(url);\n\n\t\t\treturn url.includes('?')\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\n\t\t});\n\n\t\tconst o: External.Game = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\ttags: data.tags ?? [],\n\t\t\tname: data.name,\n\t\t\timages,\n\t\t\tprovider: data.provider,\n\t\t\treference: data.reference,\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\tstatus: data.status,\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t} as External.GameSession;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate promo(data: Internal.Promo): External.Promo {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\tdescription: data.description,\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\t}\n\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\n\t\tconst o: External.Cashback = {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\n\t\t\tbanner: !data.banner\n\t\t\t\t? null\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\n\t\tconst o: External.Bonus = {\n\t\t\tid: data.id,\n\t\t\tpromo: this.promo(data.promo),\n\t\t\tdeposit: !data.deposit\n\t\t\t\t? undefined\n\t\t\t\t: {\n\t\t\t\t\t\ttype: data.deposit.type,\n\t\t\t\t\t\tstatus: data.deposit.status,\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\n\t\t\t\t\t},\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\texpiration: new Date(data.expiration),\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContribution,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\n\t\t\t\t0,\n\t\t\t),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\n\t\tconst o: External.CashbackBonus = {\n\t\t\tid: data.id,\n\t\t\ttotal: parseDecimal(data.total, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tcashback: this.cashback(data.cashback),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate file(data: Internal.File): External.File {\n\t\tconst o = {\n\t\t\tid: data.id,\n\t\t\turl: data.url ?? undefined,\n\t\t\tstatus: data.status,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t} as External.File;\n\n\t\treturn compact(o);\n\t}\n\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\n\t\tconst o: External.PointsWallet = {\n\t\t\tid: data.id,\n\t\t\tpoints: parseDecimal(data.points, 0),\n\t\t\taccount: data.account,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate pointsWalletTransaction(\n\t\tdata: Internal.PointsWalletTransaction,\n\t): External.PointsWalletTransaction {\n\t\tconst o: External.PointsWalletTransaction = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t\tbalance: parseDecimal(data.balance, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate activityRecord(data: Internal.ActivityRecord): External.ActivityRecord {\n\t\tconst o: External.ActivityRecord = {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\n\t\t\tdomain: data.domain ?? undefined,\n\t\t\tdetails: data.details,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn compact(o);\n\t}\n\n\tprivate referral(data: Internal.Referral): External.Referral {\n\t\tconst o: External.Referral = {\n\t\t\tid: data.id,\n\t\t\tlevel: data.level,\n\t\t\tupline: data.upline,\n\t\t\tdownline: data.downline,\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate referralCommission(data: Internal.ReferralCommission): External.ReferralCommission {\n\t\tconst o: External.ReferralCommission = {\n\t\t\tid: data.id,\n\t\t\tcommission: parseDecimal(data.commission, 0),\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\n\t\t\treferralsCount: data.referralsCount,\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\n\t\t\treferralCode: data.referralCode,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t};\n\n\t\treturn o;\n\t}\n\n\tprivate message(data: Internal.Message): External.Message {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ticon: data.icon,\n\t\t\tlogo: data.logo,\n\t\t\timage: data.image,\n\t\t\ttitle: data.title,\n\t\t\tpopup: data.popup,\n\t\t\tcontent: data.content,\n\t\t\tactions: data.actions,\n\t\t\tmarkedAsRead: data.markedAsRead,\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t};\n\t}\n\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\n\t\treturn data;\n\t}\n\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\n\t\treturn {\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\n\t\t\tbonusesCount: data.bonusesCount,\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\n\t\t\tclosedBonusesCountPercentage: parseDecimal(data.closedBonusesCountPercentage, 0),\n\t\t\tcode: data.code,\n\t\t\tdaysToClear: data.daysToClear,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tid: data.id,\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\n\t\t\tname: data.name,\n\t\t\tstatus: data.status,\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\n\t\t\tturnoverRequirementMultiplier: parseDecimal(data.turnoverRequirementMultiplier, 0),\n\t\t\ttype: data.type,\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\n\t\t\tdescription: data.description,\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\n\t\t\tactivationEndDateTime: data.activationEndDateTime\n\t\t\t\t? new Date(data.activationEndDateTime)\n\t\t\t\t: undefined,\n\t\t\tactivationStartDateTime: data.activationStartDateTime\n\t\t\t\t? new Date(data.activationStartDateTime)\n\t\t\t\t: undefined,\n\t\t\tdateTimeClosed: data.dateTimeClosed ? new Date(data.dateTimeClosed) : undefined,\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\n\t\t\t\treturn o;\n\t\t\t}, {}),\n\t\t\tbanner: data.banner,\n\t\t};\n\t}\n\n\tquest(data: Internal.Quest): External.Quest {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tstatus: data.status,\n\t\t\tbonus: parseDecimal(data.bonus, 0),\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\n\t\t\tendDateTime: new Date(data.endDateTime),\n\t\t\tprogram: {\n\t\t\t\ttype: data.program.type,\n\t\t\t\tname: data.program.name,\n\t\t\t\tdescription: data.program.description,\n\t\t\t\ttotalBonus: parseDecimal(data.program.totalBonus, 0),\n\t\t\t\tstatus: data.program.status,\n\t\t\t\tactivationDate: new Date(data.program.activationDate),\n\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\n\t\t\t\t\tdata.program.bonusTurnoverRequirementMultiplier,\n\t\t\t\t\t0,\n\t\t\t\t),\n\t\t\t\tcompletedQuestsCount: parseDecimal(data.program.completedQuestsCount, 0),\n\t\t\t\tfailedQuestsCount: parseDecimal(data.program.failedQuestsCount, 0),\n\t\t\t\tmaximumQuestsPerMember: parseDecimal(data.program.failedQuestsCount, 0),\n\t\t\t\tquestsCount: parseDecimal(data.program.questsCount, 0),\n\t\t\t\tmemberGroups: data.program.memberGroups,\n\t\t\t\tpromo: data.program.promo,\n\n\t\t\t\t...(data.program.type === 'DAILY_CHECKIN' && {\n\t\t\t\t\tseventhDayBonusAmount: parseDecimal(data.program.seventhDayBonusAmount, 0),\n\t\t\t\t\tsixthDayBonusAmount: parseDecimal(data.program.sixthDayBonusAmount, 0),\n\t\t\t\t\tthirdDayBonusAmount: parseDecimal(data.program.thirdDayBonusAmount, 0),\n\t\t\t\t}),\n\t\t\t\t...(data.program.type === 'WAGERING' && {\n\t\t\t\t\ttargetTurnover: parseDecimal(data.program.targetTurnover, 0),\n\t\t\t\t\tdaysToClear: parseDecimal(data.program.daysToClear, 0),\n\t\t\t\t\tbonusAmount: parseDecimal(data.program.bonusAmount, 0),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\n\t\t\tturnover: parseDecimal(data.turnover, 0),\n\t\t\ttargetTurnover: data?.targetTurnover ? parseDecimal(data.targetTurnover, 0) : undefined,\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\n\t\t\tlastCheckInDate: data?.lastCheckInDate ? new Date(data.lastCheckInDate) : undefined,\n\t\t\tmember: data.member,\n\t\t\tstartDateTime: data?.startDateTime ? new Date(data.startDateTime) : undefined,\n\t\t\ttype: data.type,\n\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\n\t\t\t}),\n\n\t\t\t...(data.type === 'ONBOARDING' && {\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\n\t\t\t}),\n\t\t};\n\t}\n\n\tprivate topWin(data: Internal.TopWin): External.TopWin {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tgame: {\n\t\t\t\tid: data.game.id,\n\t\t\t\tname: data.game.name,\n\t\t\t\ttype: data.game.type,\n\t\t\t\tprovider: data.game.provider,\n\t\t\t\treference: data.game.reference\n\t\t\t},\n\t\t\tmember: {\n\t\t\t\tid: data.member.id,\n\t\t\t\tname: data.member.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tpayout: parseDecimal(data.payout, 0),\n\t\t};\n\t}\n}\n","import {\n\tAccountService,\n\tAuthService,\n\tCmsPortalService,\n\tFileService,\n\tGameService,\n\tPortalService,\n\tReportService,\n\tTriggerService,\n\tWalletService,\n} from '../services/index.js';\nimport { Cache } from '../utils/cache.js';\nimport { clamp } from '../utils/clamp.js';\nimport {\n\tGraphQLClient,\n\ttype GraphQLClientConfig,\n\ttype GraphQLClientMiddleware,\n} from '../utils/graphql-client.js';\nimport { sha256 } from '../utils/sha256.js';\nimport { Logger } from './logger.js';\nimport { ObjectId } from './object-id.js';\nimport { ObjectType } from './object-type.js';\nimport { SessionManager } from './session-manager.js';\nimport { Transformer } from './transformer.js';\nimport type {\n\tAccountReturn,\n\tActivityRecordsInput,\n\tActivityRecordsReturn,\n\tAnnouncementsInput,\n\tAnnouncementsReturn,\n\tAuthenticateInput,\n\tAuthenticateReturn,\n\tAvailablePromosReturn,\n\tAvailableQuestsReturn,\n\tBetRecordsInput,\n\tBetRecordsReturn,\n\tBonusReturn,\n\tBonusesReturn,\n\tCabinetSignInInput,\n\tCabinetSignInReturn,\n\tCashbackBonusReturn,\n\tCashbacksReturn,\n\tCheckInDailyQuestReturn,\n\tClaimCashbackBonusReturn,\n\tClaimRewardReturn,\n\tClaimSpotBonusReturn,\n\tCompleteOnboardingInput,\n\tCompleteOnboardingReturn,\n\tCreateAccountInput,\n\tCreateAccountInput__Next,\n\tCreateAccountReturn,\n\tCreateDepositInput,\n\tCreateDepositReturn,\n\tCreateGameSessionInput,\n\tCreateGameSessionReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tDownlinesByNameInput,\n\tDownlinesByNameReturn,\n\tEndGameSessionReturn,\n\tFileReturn,\n\tGameProvider,\n\tGameReturn,\n\tGameSessionReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tInstapayBankListReturn,\n\tLatestBetRecordsReturn,\n\tLocale,\n\tMarkAllMessagesAsReadReturn,\n\tMarkMessageAsReadReturn,\n\tMayaSignInInput,\n\tMayaSignInReturn,\n\tMessagesInput,\n\tMessagesReturn,\n\tMobileNumberSignInInput,\n\tMobileNumberSignInReturn,\n\tNameAndPasswordSignInInput,\n\tNameAndPasswordSignInReturn,\n\tOnboardingStatusReturn,\n\tPaymentSettingsReturn,\n\tPlatformReturn,\n\tPlatformReturn__Next,\n\tPointsClubSettingsReturn,\n\tPointsWalletReturn,\n\tPointsWalletTransactionsInput,\n\tPointsWalletTransactionsReturn,\n\tProfileCompletionReturn,\n\tPromoByCodeReturn,\n\tPromosReturn,\n\tRecommendedGamesInput,\n\tRecommendedGamesReturn,\n\tRedeemPointsInput,\n\tRedeemPointsReturn,\n\tReferralCodeReturn,\n\tReferralCommissionReturn,\n\tReferralsInput,\n\tReferralsReturn,\n\tRegisterMayaAccountInput,\n\tRegisterMayaAccountReturn,\n\tRemainingDailyWithdrawalsCountReturn,\n\tResetPasswordInput,\n\tResetPasswordReturn,\n\tSendVerificationCodeInput__Next,\n\tSendVerificationCodeReturn,\n\tSendVerificationCodeReturn__Next,\n\tSessionReturn,\n\tSignInInput,\n\tSignInReturn,\n\tSiteReturn,\n\tSkipOnboardingReturn,\n\tSocialsSignInInput,\n\tSocialsSignInReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsReturn,\n\tTokenSignInInput,\n\tTokenSignInReturn,\n\tTopWinsReturn,\n\tTouchDepositInput,\n\tTouchDepositReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUnreadMessagesCountInput,\n\tUnreadMessagesCountReturn,\n\tUpdateAccountInput,\n\tUpdateAccountReturn,\n\tUpdateReferralCodeInput,\n\tUpdateReferralCodeReturn,\n\tUpdateVerificationDetailsInput,\n\tUpdateVerificationDetailsReturn,\n\tUplinesByNameInput,\n\tUplinesByNameReturn,\n\tUploadImageFileInput,\n\tUploadImageFileReturn,\n\tValidateMayaSessionReturn,\n\tVerificationDetailsReturn,\n\tVerifyMobileNumberReturn,\n\tWalletReturn,\n\tWatchSessionInput,\n\tWithdrawalRecordsInput,\n\tWithdrawalRecordsReturn,\n} from './types.js';\nimport { addAreaCode } from './utils.js';\n\nexport interface SdkConfig {\n\t/**\n\t * @default 'development'\n\t */\n\tenvironment?: 'production' | 'development';\n\tsite: string;\n\tsitePlatform: string;\n\tplatform: string;\n\tlogs?: boolean;\n}\n\nexport class Sdk {\n\tprivate cmsPortalService: CmsPortalService;\n\tprivate authService: AuthService;\n\tprivate gameService: GameService;\n\tprivate fileService: FileService;\n\tprivate walletService: WalletService;\n\tprivate accountService: AccountService;\n\tprivate reportService: ReportService;\n\tprivate portalService: PortalService;\n\tprivate triggerService: TriggerService;\n\tprivate sessionManager: SessionManager;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\n\tprivate cache: Cache;\n\n\tconstructor(config: SdkConfig) {\n\t\tconst {\n\t\t\t/**/\n\t\t\tsite,\n\t\t\tsitePlatform,\n\t\t\tplatform,\n\t\t\tenvironment = 'development',\n\t\t\tlogs,\n\t\t} = config;\n\n\t\tconst production = environment === 'production';\n\n\t\tthis.transformer = new Transformer();\n\t\tthis.logger = new Logger({\n\t\t\tenabled: logs ?? false,\n\t\t});\n\n\t\tconst authUrl = ENDPOINTS[environment].auth;\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\n\t\tconst reportUrl = ENDPOINTS[environment].report;\n\t\tconst accountUrl = ENDPOINTS[environment].account;\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\n\t\tconst fileUrl = ENDPOINTS[environment].file;\n\t\tconst gameUrl = ENDPOINTS[environment].game;\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\n\n\t\tconst cmsPortalService = new CmsPortalService({\n\t\t\turl: cmsPortalUrl,\n\t\t\tsite,\n\t\t\tplatform: sitePlatform,\n\t\t});\n\n\t\tconst graphqlClientConfig: GraphQLClientConfig = {\n\t\t\tmiddlewares: [this.authMiddleware],\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t'Platform-Code': platform,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst gameService = new GameService(new GraphQLClient(gameUrl, graphqlClientConfig));\n\t\tconst fileService = new FileService(new GraphQLClient(fileUrl, graphqlClientConfig));\n\t\tconst walletService = new WalletService(new GraphQLClient(walletUrl, graphqlClientConfig));\n\t\tconst accountService = new AccountService(new GraphQLClient(accountUrl, graphqlClientConfig));\n\t\tconst reportService = new ReportService(new GraphQLClient(reportUrl, graphqlClientConfig));\n\t\tconst portalService = new PortalService(new GraphQLClient(portalUrl, graphqlClientConfig));\n\t\tconst triggerService = new TriggerService(new GraphQLClient(triggerUrl, graphqlClientConfig));\n\n\t\tconst authService = new AuthService({\n\t\t\turl: authUrl,\n\t\t\tfetchOptions: {\n\t\t\t\theaders: {\n\t\t\t\t\tRole: 'MEMBER',\n\t\t\t\t\t'Platform-Code': platform,\n\n\t\t\t\t\t...(!production && {\n\t\t\t\t\t\t'Test-Pass': '',\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst sessionManager = new SessionManager({\n\t\t\tlogs,\n\t\t\tauthService,\n\t\t\twalletService,\n\t\t});\n\n\t\tthis.authService = authService;\n\t\tthis.gameService = gameService;\n\t\tthis.fileService = fileService;\n\t\tthis.walletService = walletService;\n\t\tthis.accountService = accountService;\n\t\tthis.reportService = reportService;\n\t\tthis.portalService = portalService;\n\t\tthis.triggerService = triggerService;\n\t\tthis.sessionManager = sessionManager;\n\t\tthis.cmsPortalService = cmsPortalService;\n\n\t\tthis.cache = new Cache();\n\t}\n\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tthis.logger.info('Checking for session');\n\n\t\t\tconst res = await this.sessionManager.get();\n\n\t\t\tif (res.data) {\n\t\t\t\trequest.headers.append('Authorization', `Bearer ${res.data.accessToken}`);\n\n\t\t\t\tthis.logger.info('Session found');\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\n\t\t\t} else {\n\t\t\t\tthis.logger.info('No session found');\n\t\t\t}\n\n\t\t\treturn request;\n\t\t};\n\t}\n\n\tprivate get locale() {\n\t\treturn new Promise<Locale>((resolve) => {\n\t\t\tconst cacheKey = 'locale';\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\n\n\t\t\tif (cacheValue) return resolve(cacheValue);\n\n\t\t\tthis.platform__next().then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\n\t\t\t\t\tresolve(res.data.locale);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\n\t\t\t\t\tresolve('en-PH');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync signIn(input: NameAndPasswordSignInInput): Promise<NameAndPasswordSignInReturn>;\n\tasync signIn(input: MobileNumberSignInInput): Promise<MobileNumberSignInReturn>;\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'NAME_AND_PASSWORD': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\t...input,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t});\n\n\t\t\t\tif (!res.ok) return res;\n\t\t\t\tif (res.data) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t'2FAEnabled': true,\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'2FAEnabled': false,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase 'SOCIALS':\n\t\t\tcase 'TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SOCIALS',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'CABINET': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'CABINET',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tcase 'MOBILE_NUMBER': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t\t});\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tconst res = await this.sessionManager.create(input);\n\n\t\t\t\treturn res.ok ? { ok: true } : res;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'SECURITY_QUESTION': {\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\n\t\t\t\t\ttoken: input.token,\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: 'HttpBadRequest',\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync signOut() {\n\t\tawait this.sessionManager.destroy();\n\t}\n\n\twatchSession(input: WatchSessionInput) {\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\n\n\t\tlet timeout: NodeJS.Timeout | null = null;\n\n\t\tconst assignTimeout = () => {\n\t\t\treturn setTimeout(async () => {\n\t\t\t\tconst v = await this.sessionManager.verify();\n\n\t\t\t\tif (!v) {\n\t\t\t\t\tawait input.onInvalid();\n\t\t\t\t}\n\n\t\t\t\ttimeout = assignTimeout();\n\t\t\t}, interval);\n\t\t};\n\n\t\ttimeout = assignTimeout();\n\n\t\treturn function unsubscribe() {\n\t\t\tif (timeout) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\t\t};\n\t}\n\n\tasync session(): Promise<SessionReturn> {\n\t\tconst res = await this.sessionManager.get();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data\n\t\t\t\t? {\n\t\t\t\t\t\tid: res.data.session.id,\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t};\n\t}\n\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\n\t\treturn await this.walletService.validateMayaSession();\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ SITE +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync site(): Promise<SiteReturn> {\n\t\tconst res = await this.cmsPortalService.self();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.site(res.data),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ PLATFORM +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\t/** @deprecated */\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconst res = await this.accountService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform(res.data),\n\t\t};\n\t}\n\n\tasync platform__next(): Promise<PlatformReturn__Next> {\n\t\tconst res = await this.portalService.platform();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\n\t\t};\n\t}\n\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\n\t\tconst res = await this.accountService.paymentSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ ACCOUNT +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync account(): Promise<AccountReturn> {\n\t\tconst r = await this.accountService.memberAccount();\n\n\t\tif (!r.ok) return r;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.account(r.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `createAccount__next`\n\t */\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tconst res = await this.accountService.registerMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tbtag: input.btag,\n\t\t\t\tname: input.name,\n\t\t\t\tdomain: input.domain,\n\t\t\t\tbirthDay:\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\n\t\t\t\t\t\t? input.dateOfBirth\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t},\n\t\t\treferralCode: input.referralCode,\n\t\t\tverificationCode: input.verificationCode,\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync createAccount__next(input: CreateAccountInput__Next): Promise<CreateAccountReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\n\n\t\tif (input.type === 'MOBILE_NUMBER') {\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t},\n\t\t\t\treferralCode: input.referralCode,\n\t\t\t\tverificationCode: input.verificationCode,\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst res = await this.accountService.registerMemberAccount__next({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\n\t\t\t\tbtag: input.btag,\n\t\t\t\tdomain: input.domain,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tmobileNumber: input.mobileNumber\n\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\n\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync registerMayaAccount(input: RegisterMayaAccountInput): Promise<RegisterMayaAccountReturn> {\n\t\treturn await this.accountService.registerMayaMemberAccount({\n\t\t\tinput: {\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\tdomain: input.domain,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync updateAccount(id: string, input: UpdateAccountInput): Promise<UpdateAccountReturn> {\n\t\tconst {\n\t\t\t/**/\n\t\t\tpassword,\n\t\t\tdateOfBirth,\n\t\t\tmobileNumber,\n\t\t\tsecretAnswer,\n\t\t\ttransactionPassword,\n\t\t\t...others\n\t\t} = input;\n\n\t\treturn await this.accountService.updateMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...others,\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\n\t\t\t\t\ttransactionPassword: transactionPassword ? await sha256(transactionPassword) : undefined,\n\t\t\t\t\tmobileNumber: mobileNumber ? addAreaCode(mobileNumber, await this.locale) : undefined,\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\n\t\t\t\t\tbirthDay: dateOfBirth\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\n\t\t\t\t\t\t\t? dateOfBirth\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\n\t\treturn await this.accountService.deleteMemberAccount({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\n\t\tconst res = await this.accountService.memberVerification();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.verificationDetails(res.data) : null,\n\t\t};\n\t}\n\n\tasync submitVerificationDetails(\n\t\tinput: SubmitVerificationDetailsInput,\n\t): Promise<SubmitVerificationDetailsReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Verification).toString();\n\n\t\tconst res = await this.accountService.createMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\t...input,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\tasync updateVerificationDetails(\n\t\tid: string,\n\t\tinput: UpdateVerificationDetailsInput,\n\t): Promise<UpdateVerificationDetailsReturn> {\n\t\treturn await this.accountService.updateMemberVerification({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tdata: {\n\t\t\t\t\t...input,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\n\t\treturn await this.accountService.resetPassword({\n\t\t\tinput: {\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\tnewPassword: await sha256(input.newPassword),\n\t\t\t},\n\t\t\tverificationCode: input.verificationCode,\n\t\t});\n\t}\n\n\tasync verifyMobileNumber(verificationCode: string): Promise<VerifyMobileNumberReturn> {\n\t\treturn await this.accountService.verifyMobileNumber({\n\t\t\tinput: {\n\t\t\t\tverificationCode,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\n\t\tconst res = await this.accountService.profileCompletion();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated use `sendVerificationCode__next`\n\t */\n\tasync sendVerificationCode(mobileNumber: string): Promise<SendVerificationCodeReturn> {\n\t\treturn await this.accountService.sendVerificationCode({\n\t\t\tinput: {\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync sendVerificationCode__next(\n\t\tinput: SendVerificationCodeInput__Next,\n\t): Promise<SendVerificationCodeReturn__Next> {\n\t\tif (input.type === 'SMS') {\n\t\t\treturn this.authService.sendVerificationCode({\n\t\t\t\tchannel: 'SMS',\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t...(input.strict && {\n\t\t\t\t\tverificationType: 'MEMBER',\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\n\t}\n\n\tasync wallet(): Promise<WalletReturn> {\n\t\tconst res = await this.walletService.wallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ ANNOUNCEMENT +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync announcements(input?: AnnouncementsInput): Promise<AnnouncementsReturn> {\n\t\tconst res = await this.accountService.announcements({\n\t\t\t...input,\n\t\t\tfilter: {\n\t\t\t\t...input?.filter,\n\t\t\t\tvisibility: {\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.announcement(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as AnnouncementsReturn;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ WITHDRAWAL +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync createWithdrawal(input: CreateWithdrawalInput): Promise<CreateWithdrawalReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\n\n\t\tif (input.type === 'BANK') {\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_INSTAPAY') {\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tbankCode: input.bankCode,\n\t\t\t\t\taccountNumber: input.accountNumber,\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync withdrawalRecords(input?: WithdrawalRecordsInput): Promise<WithdrawalRecordsReturn> {\n\t\tconst res = await this.reportService.withdrawalRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as WithdrawalRecordsReturn;\n\t}\n\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\n\t}\n\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\n\t\tconst res = await this.walletService.instapayBankList();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ DEPOSIT +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\n\n\t\tif (input.type === 'MAYA') {\n\t\t\tconst res = await this.walletService.createMayaDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'MAYA_APP') {\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'GCASH') {\n\t\t\tconst res = await this.walletService.createGCashDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\tif (input.type === 'AIO_QRPH') {\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tamount: input.amount.toString(),\n\t\t\t\t\tpromo: input.promo,\n\t\t\t\t},\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\n\t\t\t});\n\n\t\t\tif (!res.ok) return res;\n\t\t}\n\n\t\treturn { ok: true, data: { id } };\n\t}\n\n\tasync deposit(id: string): Promise<DepositReturn> {\n\t\tconst res = await this.walletService.deposit({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\n\t\t};\n\t}\n\n\tasync depositRecords(input?: DepositRecordsInput): Promise<DepositRecordsReturn> {\n\t\tconst res = await this.reportService.depositRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as DepositRecordsReturn;\n\t}\n\n\tasync depositsCount(): Promise<DepositsCountReturn> {\n\t\treturn await this.reportService.depositsCount();\n\t}\n\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\n\t\tswitch (input.type) {\n\t\t\tcase 'GCASH':\n\t\t\t\treturn await this.walletService.touchGCashDeposit({ input: { id: input.id } });\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\n\t\t}\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ BET +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\n\t\tconst res0 = await this.reportService.betRecords({\n\t\t\t...input,\n\t\t\t...(input?.filter && {\n\t\t\t\tfilter: {\n\t\t\t\t\t...(input.filter.status && {\n\t\t\t\t\t\tstatus: input.filter.status,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.serialCode && {\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.vendorRoundId && {\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameType && {\n\t\t\t\t\t\tgame__type: input.filter.gameType,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.gameProvider && {\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\n\t\t\t\t\t}),\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t});\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tbetRecords: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\n\t\t\t\t\tconst game = res1.data.edges.find((e) => node.game.id === e.node.reference)?.node;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\n\t\t\t\t\t\t\t...node,\n\t\t\t\t\t\t\tgame,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\ttotalCount: res0.data.totalCount,\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as BetRecordsReturn;\n\t}\n\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\n\t\tconst res0 = await this.portalService.latestBetRecords();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: [],\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res0.data.map((o) => {\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\n\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\n\t\t\t\t\t...o,\n\t\t\t\t\tgame,\n\t\t\t\t});\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ TRANSACTION +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync transactionRecords(input?: TransactionRecordsInput): Promise<TransactionRecordsReturn> {\n\t\tconst res = await this.reportService.transactionRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t},\n\t\t} as TransactionRecordsReturn;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ PROMO +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync promos(): Promise<PromosReturn> {\n\t\tconst res = await this.walletService.promos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync availablePromos(): Promise<AvailablePromosReturn> {\n\t\tconst res = await this.walletService.availablePromos();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\n\t\t};\n\t}\n\n\tasync cashbacks(): Promise<CashbacksReturn> {\n\t\tconst res = await this.walletService.cashbacks();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\n\t\t};\n\t}\n\n\t/** @deprecated */\n\tasync bonus(): Promise<BonusReturn> {\n\t\tconst res = await this.walletService.bonus();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\n\t\t};\n\t}\n\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\n\t\tconst res = await this.walletService.cashbackBonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\n\t\t};\n\t}\n\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\n\t}\n\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\n\t}\n\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\n\t\tconst res = await this.reportService.promoByCode({ code: code });\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ GAME +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync game(id: string): Promise<GameReturn> {\n\t\tconst res = await this.cmsPortalService.game(id);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\n\t\t};\n\t}\n\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconst res = await this.cmsPortalService.games(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\n\t\tconst res = await this.cmsPortalService.games__next(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as GamesReturn;\n\t}\n\n\tasync recommendedGames(input?: RecommendedGamesInput): Promise<RecommendedGamesReturn> {\n\t\tconst res0 = await this.portalService.recommendedGames();\n\n\t\tif (!res0.ok) return res0;\n\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\n\n\t\tif (ids.length <= 0) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: {\n\t\t\t\t\tgames: [],\n\t\t\t\t\ttotalCount: 0,\n\t\t\t\t\thasNextPage: false,\n\t\t\t\t\tendCursor: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.cmsPortalService.games({\n\t\t\tfirst: input?.first,\n\t\t\tafter: input?.after,\n\t\t\tfilter: {\n\t\t\t\treference: {\n\t\t\t\t\tin: ids,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.game(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res1.data.totalCount,\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as RecommendedGamesReturn;\n\t}\n\n\tasync gameSession(id: string, gameProvider?: GameProvider): Promise<GameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.gameSession({ id })\n\t\t\t\t: await this.gameService.gameSession({ id });\n\n\t\t\tif (!res.ok) return res;\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: res.data ? this.transformer.transform.gameSession(res.data) : null,\n\t\t\t};\n\t\t}\n\n\t\tconst res0 = await this.walletService.gameSession({ id });\n\n\t\tif (!res0.ok) return res0;\n\n\t\tif (res0.data) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\n\t\t\t};\n\t\t}\n\n\t\tconst res1 = await this.gameService.gameSession({ id });\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res1.data ? this.transformer.transform.gameSession(res1.data) : null,\n\t\t};\n\t}\n\n\tasync createGameSession(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\n\n\t\tif (input.provider) {\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\n\t\t\t\t? await this.walletService.createGameSession({ input: { id, game: input.reference } })\n\t\t\t\t: await this.gameService.createGameSession({ input: { id, game: input.reference } });\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tconst isSports = input.game.startsWith('SPORTS:');\n\n\t\tif (isSports) {\n\t\t\tconst game = await ObjectId.generateFromKey(ObjectType.Game, input.game).then(\n\t\t\t\t(generatedId) => {\n\t\t\t\t\treturn generatedId.toString();\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tconst res0 = await this.gameService.createGameSession({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tgame,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\n\t\t}\n\n\t\tconst res0 = await this.game(input.game);\n\n\t\tif (!res0.data) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: {\n\t\t\t\t\tname: 'GameDoesNotExistError',\n\t\t\t\t\tmessage: 'Game does not exist',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst { provider, reference } = res0.data;\n\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\n\t\t\t? await this.walletService.createGameSession({ input: { id, game: reference } })\n\t\t\t: await this.gameService.createGameSession({ input: { id, game: reference } });\n\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\n\t}\n\n\tasync endGameSession(id: string, gameProvider?: GameProvider): Promise<EndGameSessionReturn> {\n\t\tif (gameProvider) {\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\n\t\t}\n\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\n\t\tif (res0.ok) return res0;\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\n\t\treturn res1;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ FILE +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync file(id: string): Promise<FileReturn> {\n\t\tconst res = await this.fileService.file({ id });\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\n\t\t};\n\t}\n\n\tasync uploadImageFile(input: UploadImageFileInput): Promise<UploadImageFileReturn> {\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\n\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tfile: input.file,\n\t\t\t},\n\t\t});\n\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ POINTS +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\n\t\tconst res = await this.walletService.pointsWallet();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\n\t\t};\n\t}\n\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\n\t\treturn await this.walletService.redeemPointsToCash({\n\t\t\tinput: {\n\t\t\t\tamount: input.amount.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tasync pointsWalletTransactions(\n\t\tinput?: PointsWalletTransactionsInput,\n\t): Promise<PointsWalletTransactionsReturn> {\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as PointsWalletTransactionsReturn;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ ACTIVITY +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync activityRecords(input?: ActivityRecordsInput): Promise<ActivityRecordsReturn> {\n\t\tconst res = await this.reportService.activityRecords(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ActivityRecordsReturn;\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ REFERRAL +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync referralCode(): Promise<ReferralCodeReturn> {\n\t\tconst res = await this.accountService.referralCode();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\tasync updateReferralCode(input: UpdateReferralCodeInput): Promise<UpdateReferralCodeReturn> {\n\t\treturn await this.accountService.updateReferralCode({ input });\n\t}\n\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\n\t\tconst res = await this.reportService.referrals(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.referral(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as ReferralsReturn;\n\t}\n\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\n\t\tconst res = await this.reportService.referralCommission();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.referralCommission(res.data) : null,\n\t\t};\n\t}\n\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\n\t\tconst res = await this.reportService.uplinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync downlinesByName(input: DownlinesByNameInput): Promise<DownlinesByNameReturn> {\n\t\tconst res = await this.reportService.downlinesByName(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\n\t\t};\n\t}\n\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\n\t\tconst res = await this.accountService.pointsClubSettings();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ? this.transformer.transform.pointsClubSettings(res.data) : null,\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ MESSAGES +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\n\t\tconst res = await this.triggerService.messages(input);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: {\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.message(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as MessagesReturn;\n\t}\n\n\tasync unreadMessagesCount(input?: UnreadMessagesCountInput): Promise<UnreadMessagesCountReturn> {\n\t\treturn await this.triggerService.unreadMessagesCount(input);\n\t}\n\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\n\t\treturn await this.triggerService.markMessageAsRead({ id });\n\t}\n\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessageAsRead();\n\t}\n\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\n\t\treturn await this.triggerService.claimReward({ id });\n\t}\n\n\tasync bonuses(): Promise<BonusesReturn> {\n\t\tconst res = await this.walletService.bonuses();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ ONBOARDING +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\n\t\tconst res = await this.portalService.onboardingStatus();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data,\n\t\t};\n\t}\n\n\tasync completeOnboarding(input: CompleteOnboardingInput): Promise<CompleteOnboardingReturn> {\n\t\treturn await this.portalService.completeOnboarding({\n\t\t\tinput: {\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\n\t\t\t\tplayerExperience: input.playerExperience,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\n\t\treturn await this.portalService.skipOnboarding();\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ QUEST +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\n\t\tconst res = await this.triggerService.availableQuests();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\n\t\t};\n\t}\n\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ TOP WINS +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tasync topWins(): Promise<TopWinsReturn> {\n\t\tconst res = await this.portalService.topWins();\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.map(this.transformer.transform.topWin),\n\t\t};\n\t}\n\n\t/**/\n\t/*+----------------------------------------+*/\n\t/*+ HELPERS +*/\n\t/*+----------------------------------------+*/\n\t/**/\n\n\tprivate formatYmd(date: Date): string {\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\n\n\t\tconst y = date.getFullYear();\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\n\t\tconst d = ensure2Digits(date.getDate());\n\n\t\treturn `${y}-${m}-${d}`;\n\t}\n}\n\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\n\t/**/\n\t'RTG',\n\t'DARWIN',\n\t'DRBINGO',\n\t'MEGABALL',\n\t'EVOLUTION',\n\t'EVOLUTION_NETENT',\n\t'EVOLUTION_REDTIGER',\n\t'HOLLYWOODTV',\n];\n\nconst ENDPOINTS = {\n\tdevelopment: {\n\t\tauth: 'https://auth.development.opexa.io',\n\t\tgame: 'https://game.development.opexa.io/graphql',\n\t\tfile: 'https://file.development.opexa.io/graphql',\n\t\treport: 'https://report.development.opexa.io/graphql',\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\n\t\taccount: 'https://account.development.opexa.io/graphql',\n\t\tportal: 'https://portal.development.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\n\t\tstatic: 'https://static.development.opexa.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t},\n\tproduction: {\n\t\tauth: 'https://auth.opexa.io',\n\t\tgame: 'https://game.opexa.io/graphql',\n\t\tfile: 'https://file.opexa.io/graphql',\n\t\treport: 'https://report.opexa.io/graphql',\n\t\twallet: 'https://wallet.opexa.io/graphql',\n\t\taccount: 'https://account.opexa.io/graphql',\n\t\tportal: 'https://portal.opexa.io/graphql',\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\n\t\tstatic: 'https://static.opexa.io',\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\n\t},\n};\n\nexport default Sdk;\n"]}