@opexa/portal-sdk 0.35.8 → 0.35.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +33 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.js +33 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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/utils/add-days.ts","../src/utils/sub-minutes.ts","../src/sdk/ad-manager.ts","../src/sdk/domain-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager-cookie.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","cookies","res","o","ObjectId","res0"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\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}\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}\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}\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\t... on ManualUPIWithdrawalRecord {\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 ManualBankWithdrawalRecord {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\n\t\tcreateManualUPIWithdrawal(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 NotEnoughBalanceError {\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_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateManualBankWithdrawal($input: CreateManualBankWithdrawalInput!) {\n\t\tcreateManualBankWithdrawal(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 NotEnoughBalanceError {\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 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 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_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION = gql`\n\tmutation CreateGCashDirectWebpayDeposit($input: CreateGCashDirectWebpayDepositInput!) {\n\t\tcreateGCashDirectWebpayDeposit(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 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_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 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 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 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 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`;\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\n\tmutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\n\t\tcreateManualBankDeposit(input: $input) {\n\t\t\t... on WalletDoesNotExistError {\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 MinimumDepositAmountNotMetError {\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 DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMaximumAmountExceededError {\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 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}\n\t}\n`;\n\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\n\tmutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\n\t\tcreateManualUPIDeposit(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 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 UPIReferenceNotAvailableError {\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\t... on GCashDirectWebpayDeposit {\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}\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\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\n\tmutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\n\t\ttouchQRPHDeposit(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\tcurrentBonusBalance\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\tturnoverRequirementContributionPercentagePerGameProvider\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\tturnoverRequirementContributionPercentagePerGameProvider\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\tturnoverRequirementContributionPercentagePerGameProvider\n\t\t\tenabledGameProviders\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_BY_NAME_MUTATION = gql`\n\tmutation RegisterMemberAccountByName(\n\t\t$input: RegisterMemberAccountByNameInput!\n\t\t$reCAPTCHAResponse: String!\n\t) {\n\t\tregisterMemberAccountByName(input: $input, reCAPTCHAResponse: $reCAPTCHAResponse) {\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}\n\t}\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\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\n\tmutation RegisterMemberAccountByMobileNumber(\n\t\t$input: RegisterMemberAccountByMobileNumberInput!\n\t\t$mobileNumberVerificationCode: String!\n\t) {\n\t\tregisterMemberAccountByMobileNumber(\n\t\t\tinput: $input\n\t\t\tmobileNumberVerificationCode: $mobileNumberVerificationCode\n\t\t) {\n\t\t\t... on MobileNumberNotAvailableError {\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 InvalidPlatformError {\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\tbankAccountName\n\t\tbankAccountNumber\n\t\tbankIFSCCode\n\t\tupiId\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\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\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\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\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\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t\tbankAccountName\n\t\tbankAccountNumber\n\t\tbankIFSCCode\n\t\tupiId\n\t\tupiQRCode {\n\t\t\tid\n\t\t\turl\n\t\t}\n\t}\n\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\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\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\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\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\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\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\n/**\n * @deprecated\n */\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\n\tmutation MarkAllMessageAsRead {\n\t\tmarkAllMessageAsRead\n\t}\n`;\n\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\n\tmutation MarkAllMessagesAsRead {\n\t\tmarkAllMessagesAsRead\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}\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}\n\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\tendDateTime\n\t\tdateTimeCreated\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}\n\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\ttargetTurnover\n\t\tendDateTime\n\t\tdateTimeCreated\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\n\t\tstatus\n\t\ttype\n\t\tprogressPercentage\n\t\tbonus\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}\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\n/**/\n/*+----------------------------------------+*/\n/*+ Jackpots +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const JACKPOTS_QUERY = gql`\n\tquery Jackpots(\n\t\t$first: Int\n\t\t$after: Cursor\n\t\t$sort: JackpotSortInput\n\t\t$filter: JackpotFilterInput\n\t) {\n\t\tjackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on Jackpot {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tname\n\t\t\t\t\t\tdescription\n\t\t\t\t\t\tpool\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\tminimumJackpotPoolDrawingLimit\n\t\t\t\t\t\tmaximumJackpotPoolLimit\n\t\t\t\t\t\tdrawing\n\t\t\t\t\t\tminimumMultiplier\n\t\t\t\t\t\tminimumBet\n\t\t\t\t\t\tjackpotPayoutPercentage\n\t\t\t\t\t\tjackpotTurnoverContributionPercentagePerGameProvider\n\t\t\t\t\t\ttotalPayout\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const JACKPOT_PAYOUTS_QUERY = gql`\n\tquery JackpotPayouts(\n\t\t$first: Int\n\t\t$after: Cursor\n\t\t$sort: JackpotPayoutSortInput\n\t\t$filter: JackpotPayoutFilterInput\n\t) {\n\t\tjackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on JackpotPayout {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tmember {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t}\n\t\t\t\t\t\tserialCode\n\t\t\t\t\t\tjackpot {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\tbet\n\t\t\t\t\t\tamount\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FMC Device +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REGISTER_FCM_DEVICE = gql`\n\tmutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\n\t\tregisterFCMDevice(input: $input)\n\t}\n`;\n\nexport const UNREGISTER_FCM_DEVICE = gql`\n\tmutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\n\t\tunregisterFCMDevice(input: $input)\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FAVORITE GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MARK_GAME_AS_FAVORITE = gql`\n\tmutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\n\t\tmarkGameAsFavorite(input: $input)\n\t}\n`;\nexport const UNMARK_GAME_AS_FAVORITE = gql`\n\tmutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\n\t\tunmarkGameAsFavorite(input: $input)\n\t}\n`;\n\nexport const FAVORITE_GAMES_QUERY = gql`\n\tquery FavoriteGames {\n\t\tfavoriteGames {\n\t\t\tid\n\t\t}\n\t}\n`;\n\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\n\tquery GoogleClientId {\n\t\tgoogleClientId\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOURNAMENTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOURNAMENTS_QUERY = gql`\n\tquery Tournaments($first: Int, $after: Cursor, $filter: TournamentFilterInput) {\n\t\ttournaments(first: $first, after: $after, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on MultiplierTournament {\n\t\t\t\t\t\tid\n\t\t\t\t\t\ttype\n\t\t\t\t\t\tname\n\t\t\t\t\t\twinnersCount\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\treward\n\t\t\t\t\t\tactivationStartDateTime\n\t\t\t\t\t\tactivationEndDateTime\n\t\t\t\t\t\ttopPayouts {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tmember {\n\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentLeaderboard {\n\t\t\t\t\t\t\ttotalCount\n\t\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\n\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\tusername\n\t\t\t\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpreviousLeaderboard {\n\t\t\t\t\t\t\ttotalCount\n\t\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\n\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\tusername\n\t\t\t\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\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\tTransactionPasswordNotSetError,\n\tUpdateMemberAccountError,\n\tUpdateMemberVerificationError,\n\tUpdateReferralCodeError,\n\tUPIReferenceNotAvailableError,\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\t| TransactionPasswordNotSetError\n\t| UPIReferenceNotAvailableError;\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:\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\n\t\tDepositPromoMinimumAmountNotMetError:\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\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\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\tTransactionPasswordNotSetError: 'Transaction password is not set',\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\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\tGOOGLE_CLIEND_ID_QUERY,\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_BY_MOBILE_NUMBER_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_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\tGoogleClientIdQuery,\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\tRegisterMemberAccountByMobileNumberError,\n\tRegisterMemberAccountByMobileNumberMutation,\n\tRegisterMemberAccountByMobileNumberMutationVariables,\n\tRegisterMemberAccountByNameMutation,\n\tRegisterMemberAccountByNameMutationVariables,\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, testPass, ...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\t...(testPass && {\n\t\t\t\t\t'test-pass': testPass,\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 registerMemberAccountByName(\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByNameMutation,\n\t\t\tRegisterMemberAccountByNameMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': variables.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.registerMemberAccountByName) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByName.__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\tasync registerMemberAccountByMobileNumber(\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(variables.testPass && {\n\t\t\t\t\t'test-pass': 'true',\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.registerMemberAccountByMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByMobileNumber.__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 googleClientId(): Promise<OperationResult<never, string | null | undefined>> {\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(GOOGLE_CLIEND_ID_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.googleClientId,\n\t\t};\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\tCreateSignleUseTokenError,\n\tCreateSingleUseTokenMutation,\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.type === 'SINGLE_USE_TOKEN') {\n\t\t\theaders.set('Authorization', `Single-Use-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\tif (input.testPass) {\n\t\t\theaders.set('test-pass', input.testPass);\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\tasync createSingleUseToken(\n\t\taccessToken: string,\n\t): Promise<OperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>> {\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}/token`, {\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 (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","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\tJACKPOTS_QUERY,\n\tJACKPOT_PAYOUTS_QUERY,\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\n\tPROMO_BY_CODE_QUERY,\n\tREFERRALS_QUERY,\n\tREFERRAL_COMMISSION_QUERY,\n\tTOURNAMENTS_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\tJackpot,\n\tJackpotPayout,\n\tJackpotPayoutsQuery,\n\tJackpotPayoutsQueryVariables,\n\tJackpotsQuery,\n\tJackpotsQueryVariables,\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\tTournament,\n\tTournamentsQuery,\n\tTournamentsQueryVariables,\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\tasync jackpots(\n\t\tvariables?: JackpotsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\n\t\tconst res = await this.client.request<JackpotsQuery, JackpotsQueryVariables>(\n\t\t\tJACKPOTS_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.jackpots,\n\t\t};\n\t}\n\n\tasync jackpotPayouts(\n\t\tvariables?: JackpotPayoutsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\n\t\tconst res = await this.client.request<JackpotPayoutsQuery, JackpotPayoutsQueryVariables>(\n\t\t\tJACKPOT_PAYOUTS_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.jackpotPayouts,\n\t\t};\n\t}\n\n\tasync tournaments(\n\t\tvariables?: TournamentsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\n\t\tconst res = await this.client.request<TournamentsQuery, TournamentsQueryVariables>(\n\t\t\tTOURNAMENTS_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.tournaments,\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_QUESTS_QUERY,\n\tCHECK_IN_DAILY_QUEST_MUTATION,\n\tCLAIM_REWARD_MUTATION,\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\n\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\n\tMARK_MESSAGE_AS_READ_MUTATION,\n\tMESSAGES_QUERY,\n\tREGISTER_FCM_DEVICE,\n\tUNREAD_MESSAGES_COUNT_QUERY,\n\tUNREGISTER_FCM_DEVICE,\n} from './queries.js';\nimport type {\n\tAvailableQuestsQuery,\n\tCheckInDailyQuestMutation,\n\tCheckInDailyQuestQueryVariables,\n\tClaimRewardError,\n\tClaimRewardMutation,\n\tClaimRewardMutationVariables,\n\tMarkAllMessageAsReadMutation,\n\tMarkAllMessagesAsReadMutation,\n\tMarkMessageAsReadMutation,\n\tMarkMessageAsReadMutationVariables,\n\tMessage,\n\tMessagesQuery,\n\tMessagesQueryVariables,\n\tPaginatedQueryResult,\n\tQuest,\n\tRegisterFCMDeviceMutation,\n\tRegisterFCMDeviceMutationVariables,\n\tUnreadMessagesCountQuery,\n\tUnreadMessagesCountQueryVariables,\n\tUnregisterFCMDeviceMutation,\n\tUnregisterFCMDeviceMutationVariables,\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\t/**\n\t * @deprecated\n\t */\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 markAllMessagesAsRead(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<MarkAllMessagesAsReadMutation>(\n\t\t\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markAllMessagesAsRead) {\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, ClaimRewardMutationVariables>(\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\n\tasync checkInDailyQuest(\n\t\tvariables: CheckInDailyQuestQueryVariables,\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\tasync registerFCMDevice(variables: RegisterFCMDeviceMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterFCMDeviceMutation,\n\t\t\tRegisterFCMDeviceMutationVariables\n\t\t>(REGISTER_FCM_DEVICE, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.registerFCMDevice) {\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 unregisterFCMDevice(\n\t\tvariables: UnregisterFCMDeviceMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnregisterFCMDeviceMutation,\n\t\t\tUnregisterFCMDeviceMutationVariables\n\t\t>(UNREGISTER_FCM_DEVICE, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unregisterFCMDevice) {\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\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_DIRECT_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_UPI_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\tFAVORITE_GAMES_QUERY,\n\tGAME_SESSION_QUERY,\n\tINSTAPAY_BANK_LIST_QUERY,\n\tMARK_GAME_AS_FAVORITE,\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\tTOUCH_QRPH_DEPOSIT_MUTATION,\n\tUNMARK_GAME_AS_FAVORITE,\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\tClaimSpotBonusMutationVariables,\n\tCreateAIOInstapayWithdrawalMutation,\n\tCreateAIOInstapayWithdrawalMutationVariables,\n\tCreateAIOOnlineBankDepositMutation,\n\tCreateAIOOnlineBankDepositMutationVariables,\n\tCreateAIOQRPHDepositMutation,\n\tCreateAIOQRPHDepositMutationVariables,\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateDepositError,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateGCashDirectWebpayDepositMutation,\n\tCreateGCashDirectWebpayDepositMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tCreateManualBankDeposiMutationVariables,\n\tCreateManualBankDepositMutation,\n\tCreateManualBankWithdrawalMutation,\n\tCreateManualBankWithdrawalMutationVariables,\n\tCreateManualUPIDepositMutation,\n\tCreateManualUPIDepositMutationVariables,\n\tCreateManualUpiDepositMutation,\n\tCreateManualUpiDepositMutationVariables,\n\tCreateManualUpiWithdrawalMutation,\n\tCreateManualUpiWithdrawalMutationVariables,\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\tFavoriteGame,\n\tFavoriteGamesQuery,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tInstapayBank,\n\tInstapayBankListQuery,\n\tMarkGameAsFavoriteMutation,\n\tMarkGameAsFavoriteMutationVariables,\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\tTouchQrphDepositMutation,\n\tTouchQrphDepositMutationVariables,\n\tUnmarkGameAsFavoriteMutation,\n\tUnmarkGameAsFavoriteMutationVariables,\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\tasync createGCashDirectWebpayDeposit(\n\t\tvariables: CreateGCashDirectWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashDirectWebpayDepositMutation,\n\t\t\tCreateGCashDirectWebpayDepositMutationVariables\n\t\t>(CREATE_GCASH_DIRECT_WEBPAY_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.createGCashDirectWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashDirectWebpayDeposit.__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 createManualBankDeposit(\n\t\tvariables: CreateManualBankDeposiMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankDepositMutation,\n\t\t\tCreateManualBankDeposiMutationVariables\n\t\t>(CREATE_MANUAL_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.createManualBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualBankDeposit.__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 createManualUPIDeposit(\n\t\tvariables: CreateManualUPIDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUPIDepositMutation,\n\t\t\tCreateManualUPIDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__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 createManualUpiDeposit(\n\t\tvariables: CreateManualUpiDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiDepositMutation,\n\t\t\tCreateManualUpiDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__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 createManualUpiWithdrawal(\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiWithdrawalMutation,\n\t\t\tCreateManualUpiWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUpiWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUpiWithdrawal.__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 createManualBankWithdrawal(\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankWithdrawalMutation,\n\t\t\tCreateManualBankWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_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.createManualBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualBankWithdrawal.__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: ClaimSpotBonusMutationVariables,\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariables>(\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\tasync touchQrphDeposit(variables: TouchQrphDepositMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchQrphDepositMutation,\n\t\t\tTouchQrphDepositMutationVariables\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchQRPHDeposit) {\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 markGameAsFavorite(\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tMarkGameAsFavoriteMutation,\n\t\t\tMarkGameAsFavoriteMutationVariables\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markGameAsFavorite) {\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\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync unmarkGameAsFavorite(\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnmarkGameAsFavoriteMutation,\n\t\t\tUnmarkGameAsFavoriteMutationVariables\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unmarkGameAsFavorite) {\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 favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\n\t\tconst res = await this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.favoriteGames) {\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\tdata: res.data.favoriteGames,\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 config: () => GraphQLClientConfig;\n\n\tconstructor(url: string, config?: () => GraphQLClientConfig) {\n\t\tthis.url = url;\n\t\tthis.config = config ?? (() => ({}));\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 cfg = this.config();\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\n\t\t\toptions,\n\t\t);\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\tcfg?.middlewares ?? [],\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 cfg = this.config();\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\n\t\t\toptions,\n\t\t);\n\n\t\tconst body = this.createUploadBody(query, variables);\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\tcfg?.middlewares ?? [],\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(\n\t\treq: ModifiedRequest,\n\t\tmiddlewares: GraphQLClientMiddleware[],\n\t): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of 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","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","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 { addDays } from '../utils/add-days.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\n\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\n\ninterface AdManagerConfig {\n\tlogger: Logger;\n}\n\nexport class AdManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: AdManagerConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset clickId(value: string | null) {\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\tif (value === null) {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue,\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\n\t}\n\n\tget clickId(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import type { Logger } from './logger.js';\nimport type { Environment } from './types.js';\n\ndeclare global {\n\tinterface Window {\n\t\tCapacitor?: {\n\t\t\tisNativePlatform?: () => boolean;\n\t\t};\n\t\tcordova?: unknown;\n\t}\n}\n\nexport interface DomainManagerConfig {\n\tlogger: Logger;\n\tplatform: string;\n\tenvironment: Environment;\n}\n\nexport class DomainManager {\n\tprivate logger: Logger;\n\tprivate platform: string;\n\tprivate environment: Environment;\n\n\tconstructor(config: DomainManagerConfig) {\n\t\tthis.logger = config.logger;\n\t\tthis.platform = config.platform;\n\t\tthis.environment = config.environment;\n\t}\n\n\tget domain() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn('Cannot determine domain on the server.');\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.isIOSApp) return `ios/${this.platform}`.toLowerCase();\n\t\tif (this.isAndroidApp) return `android/${this.platform}`.toLowerCase();\n\n\t\tconst url = new URL(window.location.href);\n\t\tconst rootDomain = url.hostname;\n\t\tconst mParam = url.searchParams.get('m');\n\n\t\treturn mParam ? `${rootDomain}/${mParam}` : rootDomain;\n\t}\n\n\tget metaPixelId() {\n\t\tconst url = new URL(window.location.href);\n\n\t\tconst map: Record<string, string> = {\n\t\t\t'crazywin.ph': '587374767622209',\n\t\t\t'crazywin.asia': '587374767622209',\n\t\t\t'happybingo.ph': '617045164450475',\n\t\t\t...(this.environment === 'production' && {\n\t\t\t\t'crazywinph.ph': '587374767622209',\n\t\t\t}),\n\t\t};\n\n\t\tconst metaPixelId = map[url.hostname] ? map[url.hostname] : url.hostname;\n\t\treturn metaPixelId.toLowerCase();\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n\n\tprivate get isNative(): boolean {\n\t\treturn !!(window.Capacitor?.isNativePlatform?.() || window.cordova !== undefined);\n\t}\n\n\tprivate get isIOSApp(): boolean {\n\t\treturn (\n\t\t\t(['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n\t\t\t\tnavigator.platform,\n\t\t\t) ||\n\t\t\t\t(navigator.userAgent.includes('Mac') && 'ontouchend' in window)) &&\n\t\t\tthis.isNative\n\t\t);\n\t}\n\n\tprivate get isAndroidApp(): boolean {\n\t\treturn (\n\t\t\tthis.isNative &&\n\t\t\t/Android/i.test(navigator.userAgent) &&\n\t\t\t(window.Capacitor?.isNativePlatform?.() ||\n\t\t\t\twindow.cordova !== undefined ||\n\t\t\t\t/(wv|Version\\/)/i.test(navigator.userAgent))\n\t\t);\n\t}\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","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 cookies from 'js-cookie';\nimport 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\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManagerCookie {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\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\t\tthis.logger = config.logger;\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\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tcookies.set(\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\t{\n\t\t\t\t\t\texpires: 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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tcookies.set(\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\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(\"'client cookies' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tcookies.set(\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\t{\n\t\t\t\t\t\texpires: 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(\"'client cookies' 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 = cookies.get(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\tcookies.remove(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\tcookies.remove(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\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\t\texpires: 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: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\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(\"'client cookies' 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\tcookies.remove(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' 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\tcookies.remove(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\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\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManager {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\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\t\tthis.logger = config.logger;\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\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\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\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\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\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\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 = '3'.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\tjackpots: this.jackpots.bind(this),\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\n\t\t\ttournaments: this.tournaments.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\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\n\t\t\t\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t\t\t\t>),\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\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.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\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.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\tmanualBank: {\n\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\n\t\t\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t\t\t>),\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\tmanualBank: {\n\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.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};\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\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 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\tfavorite: data.favorite,\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} 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\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\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\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\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} 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\tstatus: data.program.status,\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\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: Assign<Internal.TopWin, { game?: Internal.Game }>): External.TopWin {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\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\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tpool: parseDecimal(data.pool, 0),\n\t\t\tstatus: data.status,\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(data.minimumJackpotPoolDrawingLimit, 0),\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\n\t\t\tdrawing: data.drawing,\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider,\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\ttotalPayout: parseDecimal(data.totalPayout, 0),\n\t\t};\n\t}\n\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\n\t\treturn {\n\t\t\tid: data.id,\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\tjackpot: {\n\t\t\t\tid: data.jackpot.id,\n\t\t\t\tname: data.jackpot.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t};\n\t}\n\n\tprivate tournamentsLeaderboard(\n\t\tdata: Internal.TournamentLeaderboard,\n\t): External.TournamentLeaderboard {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tusername: data.username,\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t};\n\t}\n\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\n\t\t\tstatus: data.status,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\ttopPayouts: {\n\t\t\t\tid: data.topPayouts.id,\n\t\t\t\tmultiplier: parseDecimal(data.topPayouts.multiplier, 0),\n\t\t\t\tamount: parseDecimal(data.topPayouts.amount, 0),\n\t\t\t\tmember: {\n\t\t\t\t\tid: data.topPayouts.member.id,\n\t\t\t\t\tname: data.topPayouts.member.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\tcurrentLeaderboard: {\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard.edges.map(({ cursor, node }) => ({\n\t\t\t\t\tcursor,\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t})),\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo.hasNextPage as never,\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t\tpreviousLeaderboard: {\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(({ cursor, node }) => ({\n\t\t\t\t\tcursor,\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t})),\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo.hasNextPage as never,\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo.endCursor ?? undefined,\n\t\t\t},\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 { AdManager } from './ad-manager.js';\nimport { DomainManager } from './domain-manager.js';\nimport { Logger } from './logger.js';\nimport { ObjectId } from './object-id.js';\nimport { ObjectType } from './object-type.js';\nimport { SessionManagerCookie } from './session-manager-cookie.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\tCreateSingleUseTokenReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tDownlinesByNameInput,\n\tDownlinesByNameReturn,\n\tEndGameSessionReturn,\n\tEnvironment,\n\tFavoriteGamesReturn,\n\tFileReturn,\n\tGameProvider,\n\tGameReturn,\n\tGameSessionReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tGoogleClientIdReturn,\n\tInstapayBankListReturn,\n\tJackpotPayoutsInput,\n\tJackpotPayoutsReturn,\n\tJackpotsInput,\n\tJackpotsReturn,\n\tLatestBetRecordsReturn,\n\tLocale,\n\tMarkAllMessagesAsReadReturn,\n\tMarkGameAsFavoriteInput,\n\tMarkGameAsFavoriteReturn,\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\tRegisterFCMDeviceInput,\n\tRegisterFCMDeviceReturn,\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\tSingleUseTokenSignInInput,\n\tSingleUseTokenSignInReturn,\n\tSiteReturn,\n\tSkipOnboardingReturn,\n\tSocialsSignInInput,\n\tSocialsSignInReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsReturn,\n\tTokenSignInInput,\n\tTokenSignInReturn,\n\tTopWinsReturn,\n\tTouchDepositInput,\n\tTouchDepositReturn,\n\tTournamentsInput,\n\tTournamentsReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUnmarkGameAsFavoriteInput,\n\tUnmarkGameAsFavoriteReturn,\n\tUnreadMessagesCountInput,\n\tUnreadMessagesCountReturn,\n\tUnregisterFCMDeviceInput,\n\tUnregisterFCMDeviceReturn,\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?: Environment;\n\tsite: string;\n\tsitePlatform: string;\n\tplatform: string;\n\tlogs?: boolean;\n\tsessionStorage?: 'cookie' | 'localStorage';\n\tmiddleware?: GraphQLClientMiddleware;\n}\n\nconst defaultConfig = {\n\tenvironment: 'development' as Environment,\n\tlogs: false,\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 | SessionManagerCookie;\n\tprivate adManager: AdManager;\n\tprivate domainManager: DomainManager;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\tprivate config: SdkConfig;\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,\n\t\t\tlogs,\n\t\t} = Object.assign(defaultConfig, config);\n\n\t\tconst production = environment === 'production';\n\n\t\tconst logger = new Logger({\n\t\t\tenabled: logs,\n\t\t});\n\n\t\tconst adManager = new AdManager({ logger });\n\t\tconst domainManager = new DomainManager({\n\t\t\tlogger,\n\t\t\tplatform,\n\t\t\tenvironment,\n\t\t});\n\n\t\tconst transformer = new Transformer();\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\tthis._middleware = config.middleware ?? ((req) => req);\n\n\t\tconst graphqlClientConfig = (): GraphQLClientConfig => ({\n\t\t\tmiddlewares: [\n\t\t\t\t/**/\n\t\t\t\tthis.authMiddleware,\n\t\t\t\tthis.domainMiddleware,\n\t\t\t\tthis.miscMiddleware,\n\t\t\t\tthis.middleware,\n\t\t\t],\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 =\n\t\t\tconfig.sessionStorage === 'cookie'\n\t\t\t\t? new SessionManagerCookie({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t})\n\t\t\t\t: new SessionManager({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t});\n\n\t\tthis.logger = logger;\n\t\tthis.adManager = adManager;\n\t\tthis.domainManager = domainManager;\n\t\tthis.transformer = transformer;\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\t\tthis.cache = new Cache();\n\t\tthis.config = {\n\t\t\tenvironment,\n\t\t\tsite,\n\t\t\tplatform,\n\t\t\tsitePlatform,\n\t\t\tlogs,\n\t\t};\n\t}\n\n\tprivate _middleware: GraphQLClientMiddleware;\n\n\tset middleware(value: GraphQLClientMiddleware) {\n\t\tthis._middleware = value;\n\t}\n\n\tget middleware() {\n\t\treturn this._middleware;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tADS\n\t *=============================================\n\t */\n\n\tset adClickId(value: string | null) {\n\t\tthis.adManager.clickId = value;\n\t}\n\n\tget adClickId() {\n\t\treturn this.adManager.clickId;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tLOCALE\n\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\t/*\n\t *=============================================\n\t * \tAUTH MIDDLEWARE\n\t *=============================================\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\t/*\n\t *=============================================\n\t * \tDOMAIN MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tif (this.sessionManager.onMaya) {\n\t\t\t\trequest.headers.append('Domain', `maya/${this.config.platform}`);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tif (this.sessionManager.onCabinet) {\n\t\t\t\trequest.headers.delete('Domain');\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tconst domain = this.domainManager.domain;\n\t\t\tif (domain) request.headers.append('Domain', domain);\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMISCELLANEOUS MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tconst adClickId = this.adManager.clickId;\n\t\t\tif (adClickId) request.headers.append('Ad-Click-Id', adClickId);\n\t\t\treturn request;\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: SingleUseTokenSignInInput): Promise<SingleUseTokenSignInReturn>;\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tif (input.type === 'TOKEN') {\n\t\t\tconsole.warn(\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\");\n\t\t}\n\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\ttestPass: input.testPass,\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 'SINGLE_USE_TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\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\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\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\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\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\n\t\tconst res0 = await this.sessionManager.get();\n\n\t\tif (!res0.ok || !res0.data) {\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\tconst res1 = await this.authService.createSingleUseToken(res0.data.accessToken);\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn { ok: true, data: res1.data.token };\n\t}\n\n\t/*\n\t *=============================================\n\t * \tSITE\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 * \tPLATFORM\n\t *=============================================\n\t */\n\n\t/** @deprecated */\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconsole.warn(\"'platform' is deprecated. Please use 'platform__next' instead.\");\n\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 * \tACCOUNT\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\tconsole.warn(\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\");\n\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\ttestPass: input.testPass,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\trealName: input.realName,\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t},\n\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\n\t\t\t\ttestPass: input.testPass,\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\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tname: input.name,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\tmobileNumber: input.mobileNumber\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\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.registerMemberAccountByName({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\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\tconsole.warn(\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\n\t\t);\n\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 * \tANNOUNCEMENT\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 * \tWITHDRAWAL\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\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\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\tupiId: input.upiId,\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 === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\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\tbankAccountName: input.bankAccountName,\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\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 * \tDEPOSIT\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\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\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\treference: input.reference,\n\t\t\t\t\treferenceImage: input.referenceImage,\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 === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\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\treferenceImage: input.referenceId,\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_DIRECT_WEBPAY') {\n\t\t\tconst res = await this.walletService.createGCashDirectWebpayDeposit({\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\tcase 'QR_PH':\n\t\t\t\treturn await this.walletService.touchQrphDeposit({ 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 * \tBET RECORD\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 * \tTRANSACTION\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 * \tPROMO\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\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\n\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 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\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 * \tGAME\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\t/** @deprecated */\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\n\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\tasync markGameAsFavorite(input: MarkGameAsFavoriteInput): Promise<MarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.markGameAsFavorite({ input });\n\t}\n\n\tasync unmarkGameAsFavorite(\n\t\tinput: UnmarkGameAsFavoriteInput,\n\t): Promise<UnmarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\n\t}\n\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\n\t\tconst res0 = await this.walletService.favoriteGames();\n\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.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:\n\t\t\t\tres0.data\n\t\t\t\t\t?.map(({ id }) => {\n\t\t\t\t\t\tconst game = res1.data.edges.find((e) => id === e.node.reference)?.node;\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(Boolean) ?? [],\n\t\t} as FavoriteGamesReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFILE\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 * \tPOINTS\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 * \tACTIVITY RECORD\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 * \tREFERRAL\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 * \tMESSAGES\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\t/**\n\t * @deprecated\n\t */\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessageAsRead();\n\t}\n\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessagesAsRead();\n\t}\n\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\n\t\treturn await this.triggerService.claimReward({ id });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tONBOARDING\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 * \tQUEST\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 * \tTOP WINS\n\t *=============================================\n\t */\n\n\tasync topWins(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWins();\n\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.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.topWin({\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} as TopWinsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tJACKPOT\n\t *=============================================\n\t */\n\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\n\t\tconst res = await this.reportService.jackpots(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\tjackpots: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotsReturn;\n\t}\n\n\tasync jackpotPayouts(input?: JackpotPayoutsInput): Promise<JackpotPayoutsReturn> {\n\t\tconst res = await this.reportService.jackpotPayouts(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\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotPayoutsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOURNAMENTS\n\t *=============================================\n\t */\n\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\n\t\tconst res = await this.reportService.tournaments(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\ttournaments: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as TournamentsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFCM/FIREBASE\n\t *=============================================\n\t */\n\n\tasync registerFCMDevice(input: RegisterFCMDeviceInput): Promise<RegisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.registerFCMDevice({ input });\n\t}\n\n\tasync unregisterFCMDevice(input: UnregisterFCMDeviceInput): Promise<UnregisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTHIRD PARTY\n\t *=============================================\n\t */\n\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\n\t\tconst res = await this.accountService.googleClientId();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tUTILS\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'MEGA2SPIN',\n\t'EVOLUTION',\n\t'EVOLUTION_NETENT',\n\t'ETENGJUE',\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"]}
|
|
1
|
+
{"version":3,"sources":["../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/utils/add-days.ts","../src/utils/sub-minutes.ts","../src/sdk/ad-manager.ts","../src/sdk/domain-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager-cookie.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","cookies","res","o","ObjectId","res0"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\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}\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}\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}\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\t... on ManualUPIWithdrawalRecord {\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 ManualBankWithdrawalRecord {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\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\t... on WalletDoesNotExistError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on TransactionPasswordNotSetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\n\t\tcreateManualUPIWithdrawal(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 NotEnoughBalanceError {\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_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\n\tmutation CreateManualBankWithdrawal($input: CreateManualBankWithdrawalInput!) {\n\t\tcreateManualBankWithdrawal(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 NotEnoughBalanceError {\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 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 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_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION = gql`\n\tmutation CreateGCashDirectWebpayDeposit($input: CreateGCashDirectWebpayDepositInput!) {\n\t\tcreateGCashDirectWebpayDeposit(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 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_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 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 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 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 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`;\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\n\tmutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\n\t\tcreateManualBankDeposit(input: $input) {\n\t\t\t... on WalletDoesNotExistError {\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 MinimumDepositAmountNotMetError {\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 DepositPromoMinimumAmountNotMetError {\n\t\t\t\t__typename\n\t\t\t}\n\t\t\t... on DepositPromoMaximumAmountExceededError {\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 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}\n\t}\n`;\n\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\n\tmutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\n\t\tcreateManualUPIDeposit(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 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 UPIReferenceNotAvailableError {\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\t... on GCashDirectWebpayDeposit {\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}\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\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\n\tmutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\n\t\ttouchQRPHDeposit(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\tcurrentBonusBalance\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\tturnoverRequirementContributionPercentagePerGameProvider\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\tturnoverRequirementContributionPercentagePerGameProvider\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\tturnoverRequirementContributionPercentagePerGameProvider\n\t\t\tenabledGameProviders\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_BY_NAME_MUTATION = gql`\n\tmutation RegisterMemberAccountByName(\n\t\t$input: RegisterMemberAccountByNameInput!\n\t\t$reCAPTCHAResponse: String!\n\t) {\n\t\tregisterMemberAccountByName(input: $input, reCAPTCHAResponse: $reCAPTCHAResponse) {\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}\n\t}\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\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\n\tmutation RegisterMemberAccountByMobileNumber(\n\t\t$input: RegisterMemberAccountByMobileNumberInput!\n\t\t$mobileNumberVerificationCode: String!\n\t) {\n\t\tregisterMemberAccountByMobileNumber(\n\t\t\tinput: $input\n\t\t\tmobileNumberVerificationCode: $mobileNumberVerificationCode\n\t\t) {\n\t\t\t... on MobileNumberNotAvailableError {\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 InvalidPlatformError {\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\tbankAccountName\n\t\tbankAccountNumber\n\t\tbankIFSCCode\n\t\tupiId\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\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\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\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\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\twebEnabled\n\t\tmobileWebEnabled\n\t\tandroidEnabled\n\t\tiosEnabled\n\t\tbankAccountName\n\t\tbankAccountNumber\n\t\tbankIFSCCode\n\t\tupiId\n\t\tupiQRCode {\n\t\t\tid\n\t\t\turl\n\t\t}\n\t}\n\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\n\t\tminimumAmount\n\t\tmaximumAmount\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\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...DepositGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\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\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\n\t\t\t...WithdrawalGatewaySettingsCoreData\n\t\t}\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\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\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\n/**\n * @deprecated\n */\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\n\tmutation MarkAllMessageAsRead {\n\t\tmarkAllMessageAsRead\n\t}\n`;\n\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\n\tmutation MarkAllMessagesAsRead {\n\t\tmarkAllMessagesAsRead\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}\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}\n\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\tendDateTime\n\t\tdateTimeCreated\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}\n\n\t\tstatus\n\t\tprogressPercentage\n\t\tturnover\n\t\ttargetTurnover\n\t\tendDateTime\n\t\tdateTimeCreated\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\n\t\tstatus\n\t\ttype\n\t\tprogressPercentage\n\t\tbonus\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}\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\n/**/\n/*+----------------------------------------+*/\n/*+ Jackpots +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const JACKPOTS_QUERY = gql`\n\tquery Jackpots(\n\t\t$first: Int\n\t\t$after: Cursor\n\t\t$sort: JackpotSortInput\n\t\t$filter: JackpotFilterInput\n\t) {\n\t\tjackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on Jackpot {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tname\n\t\t\t\t\t\tdescription\n\t\t\t\t\t\tpool\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\tminimumJackpotPoolDrawingLimit\n\t\t\t\t\t\tmaximumJackpotPoolLimit\n\t\t\t\t\t\tdrawing\n\t\t\t\t\t\tminimumMultiplier\n\t\t\t\t\t\tminimumBet\n\t\t\t\t\t\tjackpotPayoutPercentage\n\t\t\t\t\t\tjackpotTurnoverContributionPercentagePerGameProvider\n\t\t\t\t\t\ttotalPayout\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const JACKPOT_PAYOUTS_QUERY = gql`\n\tquery JackpotPayouts(\n\t\t$first: Int\n\t\t$after: Cursor\n\t\t$sort: JackpotPayoutSortInput\n\t\t$filter: JackpotPayoutFilterInput\n\t) {\n\t\tjackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on JackpotPayout {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tmember {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t}\n\t\t\t\t\t\tserialCode\n\t\t\t\t\t\tjackpot {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\tbet\n\t\t\t\t\t\tamount\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FMC Device +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const REGISTER_FCM_DEVICE = gql`\n\tmutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\n\t\tregisterFCMDevice(input: $input)\n\t}\n`;\n\nexport const UNREGISTER_FCM_DEVICE = gql`\n\tmutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\n\t\tunregisterFCMDevice(input: $input)\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ FAVORITE GAME +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const MARK_GAME_AS_FAVORITE = gql`\n\tmutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\n\t\tmarkGameAsFavorite(input: $input)\n\t}\n`;\nexport const UNMARK_GAME_AS_FAVORITE = gql`\n\tmutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\n\t\tunmarkGameAsFavorite(input: $input)\n\t}\n`;\n\nexport const FAVORITE_GAMES_QUERY = gql`\n\tquery FavoriteGames {\n\t\tfavoriteGames {\n\t\t\tid\n\t\t}\n\t}\n`;\n\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\n\tquery GoogleClientId {\n\t\tgoogleClientId\n\t}\n`;\n\n/**/\n/*+----------------------------------------+*/\n/*+ TOURNAMENTS +*/\n/*+----------------------------------------+*/\n/**/\n\nexport const TOURNAMENTS_QUERY = gql`\n\tquery Tournaments($first: Int, $after: Cursor, $filter: TournamentFilterInput) {\n\t\ttournaments(first: $first, after: $after, filter: $filter) {\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\tedges {\n\t\t\t\tnode {\n\t\t\t\t\t... on MultiplierTournament {\n\t\t\t\t\t\tid\n\t\t\t\t\t\ttype\n\t\t\t\t\t\tname\n\t\t\t\t\t\twinnersCount\n\t\t\t\t\t\tstatus\n\t\t\t\t\t\treward\n\t\t\t\t\t\tactivationStartDateTime\n\t\t\t\t\t\tactivationEndDateTime\n\t\t\t\t\t\ttopPayouts {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\tamount\n\t\t\t\t\t\t\tmember {\n\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentLeaderboard {\n\t\t\t\t\t\t\ttotalCount\n\t\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\n\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\tusername\n\t\t\t\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpreviousLeaderboard {\n\t\t\t\t\t\t\ttotalCount\n\t\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\n\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\tusername\n\t\t\t\t\t\t\t\t\t\tmultiplier\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenabledGameProviders\n\t\t\t\t\t\tfrequency\n\t\t\t\t\t\tmode\n\t\t\t\t\t\tmobileBanner {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\turl\n\t\t\t\t\t\t\tmimeType\n\t\t\t\t\t\t}\n\t\t\t\t\t\twebBanner {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\turl\n\t\t\t\t\t\t\tmimeType\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\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\tTransactionPasswordNotSetError,\n\tUpdateMemberAccountError,\n\tUpdateMemberVerificationError,\n\tUpdateReferralCodeError,\n\tUPIReferenceNotAvailableError,\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\t| TransactionPasswordNotSetError\n\t| UPIReferenceNotAvailableError;\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:\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\n\t\tDepositPromoMinimumAmountNotMetError:\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\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\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\tTransactionPasswordNotSetError: 'Transaction password is not set',\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\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\tGOOGLE_CLIEND_ID_QUERY,\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_BY_MOBILE_NUMBER_MUTATION,\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_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\tGoogleClientIdQuery,\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\tRegisterMemberAccountByMobileNumberError,\n\tRegisterMemberAccountByMobileNumberMutation,\n\tRegisterMemberAccountByMobileNumberMutationVariables,\n\tRegisterMemberAccountByNameMutation,\n\tRegisterMemberAccountByNameMutationVariables,\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, testPass, ...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\t...(testPass && {\n\t\t\t\t\t'test-pass': testPass,\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 registerMemberAccountByName(\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByNameMutation,\n\t\t\tRegisterMemberAccountByNameMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': variables.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.registerMemberAccountByName) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByName.__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\tasync registerMemberAccountByMobileNumber(\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\t\tconst res = await this.client.request<\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\n\t\t\theaders: {\n\t\t\t\t...(variables.reCAPTCHAResponse && {\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\n\t\t\t\t}),\n\t\t\t\t...(variables.testPass && {\n\t\t\t\t\t'test-pass': 'true',\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.registerMemberAccountByMobileNumber) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByMobileNumber.__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 googleClientId(): Promise<OperationResult<never, string | null | undefined>> {\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(GOOGLE_CLIEND_ID_QUERY);\n\n\t\tif (!res.ok) return res;\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data.googleClientId,\n\t\t};\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\tCreateSignleUseTokenError,\n\tCreateSingleUseTokenMutation,\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.type === 'SINGLE_USE_TOKEN') {\n\t\t\theaders.set('Authorization', `Single-Use-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\tif (input.testPass) {\n\t\t\theaders.set('test-pass', input.testPass);\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\tasync createSingleUseToken(\n\t\taccessToken: string,\n\t): Promise<OperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>> {\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}/token`, {\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 (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","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\tJACKPOTS_QUERY,\n\tJACKPOT_PAYOUTS_QUERY,\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\n\tPROMO_BY_CODE_QUERY,\n\tREFERRALS_QUERY,\n\tREFERRAL_COMMISSION_QUERY,\n\tTOURNAMENTS_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\tJackpot,\n\tJackpotPayout,\n\tJackpotPayoutsQuery,\n\tJackpotPayoutsQueryVariables,\n\tJackpotsQuery,\n\tJackpotsQueryVariables,\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\tTournament,\n\tTournamentsQuery,\n\tTournamentsQueryVariables,\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\tasync jackpots(\n\t\tvariables?: JackpotsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\n\t\tconst res = await this.client.request<JackpotsQuery, JackpotsQueryVariables>(\n\t\t\tJACKPOTS_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.jackpots,\n\t\t};\n\t}\n\n\tasync jackpotPayouts(\n\t\tvariables?: JackpotPayoutsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\n\t\tconst res = await this.client.request<JackpotPayoutsQuery, JackpotPayoutsQueryVariables>(\n\t\t\tJACKPOT_PAYOUTS_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.jackpotPayouts,\n\t\t};\n\t}\n\n\tasync tournaments(\n\t\tvariables?: TournamentsQueryVariables,\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\n\t\tconst res = await this.client.request<TournamentsQuery, TournamentsQueryVariables>(\n\t\t\tTOURNAMENTS_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.tournaments,\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_QUESTS_QUERY,\n\tCHECK_IN_DAILY_QUEST_MUTATION,\n\tCLAIM_REWARD_MUTATION,\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\n\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\n\tMARK_MESSAGE_AS_READ_MUTATION,\n\tMESSAGES_QUERY,\n\tREGISTER_FCM_DEVICE,\n\tUNREAD_MESSAGES_COUNT_QUERY,\n\tUNREGISTER_FCM_DEVICE,\n} from './queries.js';\nimport type {\n\tAvailableQuestsQuery,\n\tCheckInDailyQuestMutation,\n\tCheckInDailyQuestQueryVariables,\n\tClaimRewardError,\n\tClaimRewardMutation,\n\tClaimRewardMutationVariables,\n\tMarkAllMessageAsReadMutation,\n\tMarkAllMessagesAsReadMutation,\n\tMarkMessageAsReadMutation,\n\tMarkMessageAsReadMutationVariables,\n\tMessage,\n\tMessagesQuery,\n\tMessagesQueryVariables,\n\tPaginatedQueryResult,\n\tQuest,\n\tRegisterFCMDeviceMutation,\n\tRegisterFCMDeviceMutationVariables,\n\tUnreadMessagesCountQuery,\n\tUnreadMessagesCountQueryVariables,\n\tUnregisterFCMDeviceMutation,\n\tUnregisterFCMDeviceMutationVariables,\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\t/**\n\t * @deprecated\n\t */\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 markAllMessagesAsRead(): Promise<OperationResult> {\n\t\tconst res = await this.client.request<MarkAllMessagesAsReadMutation>(\n\t\t\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\n\t\t);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markAllMessagesAsRead) {\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, ClaimRewardMutationVariables>(\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\n\tasync checkInDailyQuest(\n\t\tvariables: CheckInDailyQuestQueryVariables,\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\tasync registerFCMDevice(variables: RegisterFCMDeviceMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tRegisterFCMDeviceMutation,\n\t\t\tRegisterFCMDeviceMutationVariables\n\t\t>(REGISTER_FCM_DEVICE, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.registerFCMDevice) {\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 unregisterFCMDevice(\n\t\tvariables: UnregisterFCMDeviceMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnregisterFCMDeviceMutation,\n\t\t\tUnregisterFCMDeviceMutationVariables\n\t\t>(UNREGISTER_FCM_DEVICE, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unregisterFCMDevice) {\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\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_DIRECT_WEBPAY_DEPOSIT_MUTATION,\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\n\tCREATE_MANUAL_UPI_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\tFAVORITE_GAMES_QUERY,\n\tGAME_SESSION_QUERY,\n\tINSTAPAY_BANK_LIST_QUERY,\n\tMARK_GAME_AS_FAVORITE,\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\tTOUCH_QRPH_DEPOSIT_MUTATION,\n\tUNMARK_GAME_AS_FAVORITE,\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\tClaimSpotBonusMutationVariables,\n\tCreateAIOInstapayWithdrawalMutation,\n\tCreateAIOInstapayWithdrawalMutationVariables,\n\tCreateAIOOnlineBankDepositMutation,\n\tCreateAIOOnlineBankDepositMutationVariables,\n\tCreateAIOQRPHDepositMutation,\n\tCreateAIOQRPHDepositMutationVariables,\n\tCreateBankWithdrawalMutation,\n\tCreateBankWithdrawalMutationVariables,\n\tCreateDepositError,\n\tCreateGCashDepositMutation,\n\tCreateGCashDepositMutationVariables,\n\tCreateGCashDirectWebpayDepositMutation,\n\tCreateGCashDirectWebpayDepositMutationVariables,\n\tCreateGCashWithdrawalMutation,\n\tCreateGCashWithdrawalMutationVariables,\n\tCreateGameSessionError,\n\tCreateGameSessionMutation,\n\tCreateGameSessionMutationVariables,\n\tCreateManualBankDeposiMutationVariables,\n\tCreateManualBankDepositMutation,\n\tCreateManualBankWithdrawalMutation,\n\tCreateManualBankWithdrawalMutationVariables,\n\tCreateManualUPIDepositMutation,\n\tCreateManualUPIDepositMutationVariables,\n\tCreateManualUpiDepositMutation,\n\tCreateManualUpiDepositMutationVariables,\n\tCreateManualUpiWithdrawalMutation,\n\tCreateManualUpiWithdrawalMutationVariables,\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\tFavoriteGame,\n\tFavoriteGamesQuery,\n\tGameSession,\n\tGameSessionQuery,\n\tGameSessionQueryVariables,\n\tInstapayBank,\n\tInstapayBankListQuery,\n\tMarkGameAsFavoriteMutation,\n\tMarkGameAsFavoriteMutationVariables,\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\tTouchQrphDepositMutation,\n\tTouchQrphDepositMutationVariables,\n\tUnmarkGameAsFavoriteMutation,\n\tUnmarkGameAsFavoriteMutationVariables,\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\tasync createGCashDirectWebpayDeposit(\n\t\tvariables: CreateGCashDirectWebpayDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateGCashDirectWebpayDepositMutation,\n\t\t\tCreateGCashDirectWebpayDepositMutationVariables\n\t\t>(CREATE_GCASH_DIRECT_WEBPAY_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.createGCashDirectWebpayDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createGCashDirectWebpayDeposit.__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 createManualBankDeposit(\n\t\tvariables: CreateManualBankDeposiMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankDepositMutation,\n\t\t\tCreateManualBankDeposiMutationVariables\n\t\t>(CREATE_MANUAL_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.createManualBankDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualBankDeposit.__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 createManualUPIDeposit(\n\t\tvariables: CreateManualUPIDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUPIDepositMutation,\n\t\t\tCreateManualUPIDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__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 createManualUpiDeposit(\n\t\tvariables: CreateManualUpiDepositMutationVariables,\n\t): Promise<OperationResult<CreateDepositError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiDepositMutation,\n\t\t\tCreateManualUpiDepositMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUPIDeposit) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__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 createManualUpiWithdrawal(\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualUpiWithdrawalMutation,\n\t\t\tCreateManualUpiWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_UPI_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.createManualUpiWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualUpiWithdrawal.__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 createManualBankWithdrawal(\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\n\t): Promise<OperationResult<CreateWithdrawalError>> {\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\n\n\t\tconst res = await this.client.request<\n\t\t\tCreateManualBankWithdrawalMutation,\n\t\t\tCreateManualBankWithdrawalMutationVariables\n\t\t>(CREATE_MANUAL_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.createManualBankWithdrawal) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createOperationError(res.data.createManualBankWithdrawal.__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: ClaimSpotBonusMutationVariables,\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariables>(\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\tasync touchQrphDeposit(variables: TouchQrphDepositMutationVariables): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tTouchQrphDepositMutation,\n\t\t\tTouchQrphDepositMutationVariables\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.touchQRPHDeposit) {\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 markGameAsFavorite(\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tMarkGameAsFavoriteMutation,\n\t\t\tMarkGameAsFavoriteMutationVariables\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.markGameAsFavorite) {\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\treturn {\n\t\t\tok: true,\n\t\t};\n\t}\n\tasync unmarkGameAsFavorite(\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\n\t): Promise<OperationResult> {\n\t\tconst res = await this.client.request<\n\t\t\tUnmarkGameAsFavoriteMutation,\n\t\t\tUnmarkGameAsFavoriteMutationVariables\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.unmarkGameAsFavorite) {\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 favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\n\t\tconst res = await this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\n\n\t\tif (!res.ok) return res;\n\t\tif (!res.data.favoriteGames) {\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\tdata: res.data.favoriteGames,\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 config: () => GraphQLClientConfig;\n\n\tconstructor(url: string, config?: () => GraphQLClientConfig) {\n\t\tthis.url = url;\n\t\tthis.config = config ?? (() => ({}));\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 cfg = this.config();\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\n\t\t\toptions,\n\t\t);\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\tcfg?.middlewares ?? [],\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 cfg = this.config();\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\n\t\t\toptions,\n\t\t);\n\n\t\tconst body = this.createUploadBody(query, variables);\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\tcfg?.middlewares ?? [],\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(\n\t\treq: ModifiedRequest,\n\t\tmiddlewares: GraphQLClientMiddleware[],\n\t): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of 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","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","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 { addDays } from '../utils/add-days.js';\nimport { isAfter } from '../utils/is-after.js';\nimport { subMinutes } from '../utils/sub-minutes.js';\nimport type { Logger } from './logger.js';\n\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\n\ninterface AdManagerConfig {\n\tlogger: Logger;\n}\n\nexport class AdManager {\n\tprivate logger: Logger;\n\n\tconstructor(config: AdManagerConfig) {\n\t\tthis.logger = config.logger;\n\t}\n\n\tset clickId(value: string | null) {\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\tif (value === null) {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn;\n\t\t}\n\n\t\tconst n = new Date();\n\t\tconst o = JSON.stringify({\n\t\t\tvalue,\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\n\t\t});\n\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\n\t}\n\n\tget clickId(): string | null {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn null;\n\t\t}\n\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\n\n\t\tif (!v) return null;\n\n\t\ttry {\n\t\t\tconst o = JSON.parse(v);\n\n\t\t\tif (!o.value) return null;\n\t\t\tif (!o.expiresAt) return null;\n\n\t\t\tconst d = new Date(o.expiresAt);\n\t\t\tconst n = new Date();\n\n\t\t\tif (isAfter(n, d)) {\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn o.value;\n\t\t} catch {\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n}\n","import type { Logger } from './logger.js';\nimport type { Environment } from './types.js';\n\ndeclare global {\n\tinterface Window {\n\t\tCapacitor?: {\n\t\t\tisNativePlatform?: () => boolean;\n\t\t};\n\t\tcordova?: unknown;\n\t}\n}\n\nexport interface DomainManagerConfig {\n\tlogger: Logger;\n\tplatform: string;\n\tenvironment: Environment;\n}\n\nexport class DomainManager {\n\tprivate logger: Logger;\n\tprivate platform: string;\n\tprivate environment: Environment;\n\n\tconstructor(config: DomainManagerConfig) {\n\t\tthis.logger = config.logger;\n\t\tthis.platform = config.platform;\n\t\tthis.environment = config.environment;\n\t}\n\n\tget domain() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn('Cannot determine domain on the server.');\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.isIOSApp) return `ios/${this.platform}`.toLowerCase();\n\t\tif (this.isAndroidApp) return `android/${this.platform}`.toLowerCase();\n\n\t\tconst url = new URL(window.location.href);\n\t\tconst rootDomain = url.hostname;\n\t\tconst mParam = url.searchParams.get('m');\n\n\t\treturn mParam ? `${rootDomain}/${mParam}` : rootDomain;\n\t}\n\n\tget metaPixelId() {\n\t\tconst url = new URL(window.location.href);\n\n\t\tconst map: Record<string, string> = {\n\t\t\t'crazywin.ph': '587374767622209',\n\t\t\t'crazywin.asia': '587374767622209',\n\t\t\t'happybingo.ph': '617045164450475',\n\t\t\t...(this.environment === 'production' && {\n\t\t\t\t'crazywinph.ph': '587374767622209',\n\t\t\t}),\n\t\t};\n\n\t\tconst metaPixelId = map[url.hostname] ? map[url.hostname] : url.hostname;\n\t\treturn metaPixelId.toLowerCase();\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\n\n\tprivate get isNative(): boolean {\n\t\treturn !!(window.Capacitor?.isNativePlatform?.() || window.cordova !== undefined);\n\t}\n\n\tprivate get isIOSApp(): boolean {\n\t\treturn (\n\t\t\t(['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n\t\t\t\tnavigator.platform,\n\t\t\t) ||\n\t\t\t\t(navigator.userAgent.includes('Mac') && 'ontouchend' in window)) &&\n\t\t\tthis.isNative\n\t\t);\n\t}\n\n\tprivate get isAndroidApp(): boolean {\n\t\treturn (\n\t\t\tthis.isNative &&\n\t\t\t/Android/i.test(navigator.userAgent) &&\n\t\t\t(window.Capacitor?.isNativePlatform?.() ||\n\t\t\t\twindow.cordova !== undefined ||\n\t\t\t\t/(wv|Version\\/)/i.test(navigator.userAgent))\n\t\t);\n\t}\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","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 cookies from 'js-cookie';\nimport 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\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManagerCookie {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\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\t\tthis.logger = config.logger;\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\t/*\n\t\t * Maya Sign In\n\t\t */\n\t\tif (input.type === 'MAYA') {\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tcookies.set(\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\t{\n\t\t\t\t\t\texpires: 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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\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\tcookies.set(\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\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\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\tcookies.set(\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\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(\"'client cookies' is not available on the server.\");\n\t\t\t} else {\n\t\t\t\tcookies.set(\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\t{\n\t\t\t\t\t\texpires: 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(\"'client cookies' 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 = cookies.get(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\tcookies.remove(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\tcookies.remove(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\tcookies.set(this.storageKey, JSON.stringify(obj), {\n\t\t\t\t\texpires: 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: obj,\n\t\t\t};\n\t\t} catch {\n\t\t\t/* Did they modify session in cookies? */\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(\"'client cookies' 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\tcookies.remove(this.storageKey);\n\t}\n\n\tasync verify(): Promise<boolean> {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' 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\tcookies.remove(this.storageKey);\n\t\t}\n\n\t\treturn v;\n\t}\n\n\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\n\t}\n\n\tprivate get isServer() {\n\t\treturn typeof window === 'undefined';\n\t}\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\tlogger: Logger;\n\tauthService: AuthService;\n\twalletService: WalletService;\n}\n\nexport class SessionManager {\n\tprivate logger: Logger;\n\tprivate storageKey = 'session';\n\tprivate platformStorageKey = 'session/platform';\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\t\tthis.logger = config.logger;\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\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\n\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\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\n\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\tget onMaya() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\n\t}\n\n\tget onCabinet() {\n\t\tif (this.isServer) {\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\n\t\t\treturn false;\n\t\t}\n\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\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 = '3'.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\tjackpots: this.jackpots.bind(this),\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\n\t\t\ttournaments: this.tournaments.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\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t\t},\n\t\t\t\t\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\n\t\t\t\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t\t\t\t>),\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\tmanualBank: {\n\t\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.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\tmanualUPI: {\n\t\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.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\tmanualBank: {\n\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\n\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\n\t\t\t\t\t\t\t\tExternal.File,\n\t\t\t\t\t\t\t\t{ status: 'READY' }\n\t\t\t\t\t\t\t>),\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\tmanualBank: {\n\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\n\t\t\t\t\t\t1000000,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmanualUPI: {\n\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\n\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\n\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\n\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\n\t\t\t\t\tmaximumAmount: parseDecimal(\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.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};\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\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 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\tfavorite: data.favorite,\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} 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\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\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\tturnoverRequirementContributionPercentagePerGameProvider:\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\n\t\t\tenabledGameProviders: data.enabledGameProviders,\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} 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\tstatus: data.program.status,\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\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: Assign<Internal.TopWin, { game?: Internal.Game }>): External.TopWin {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\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\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tname: data.name,\n\t\t\tdescription: data.description,\n\t\t\tpool: parseDecimal(data.pool, 0),\n\t\t\tstatus: data.status,\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(data.minimumJackpotPoolDrawingLimit, 0),\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\n\t\t\tdrawing: data.drawing,\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider,\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\ttotalPayout: parseDecimal(data.totalPayout, 0),\n\t\t};\n\t}\n\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\n\t\treturn {\n\t\t\tid: data.id,\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\tjackpot: {\n\t\t\t\tid: data.jackpot.id,\n\t\t\t\tname: data.jackpot.name,\n\t\t\t},\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tbet: parseDecimal(data.bet, 0),\n\t\t\tamount: parseDecimal(data.amount, 0),\n\t\t};\n\t}\n\n\tprivate tournamentsLeaderboard(\n\t\tdata: Internal.TournamentLeaderboard,\n\t): External.TournamentLeaderboard {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\tusername: data.username,\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\n\t\t\tdateTimeCreated: data.dateTimeCreated,\n\t\t};\n\t}\n\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\n\t\treturn {\n\t\t\tid: data.id,\n\t\t\ttype: data.type,\n\t\t\tname: data.name,\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\n\t\t\tstatus: data.status,\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\n\t\t\ttopPayouts: {\n\t\t\t\tid: data.topPayouts.id,\n\t\t\t\tmultiplier: parseDecimal(data.topPayouts.multiplier, 0),\n\t\t\t\tamount: parseDecimal(data.topPayouts.amount, 0),\n\t\t\t\tmember: {\n\t\t\t\t\tid: data.topPayouts.member?.id,\n\t\t\t\t\tname: data.topPayouts.member?.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\tenabledGameProviders: data.enabledGameProviders,\n\t\t\tfrequency: data.frequency,\n\t\t\tmode: data.mode,\n\t\t\tmobileBanner: {\n\t\t\t\tid: data.mobileBanner?.id,\n\t\t\t\turl: data.mobileBanner?.url,\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\n\t\t\t},\n\t\t\twebBanner: {\n\t\t\t\tid: data.webBanner?.id,\n\t\t\t\turl: data.webBanner?.url,\n\t\t\t\tmimeType: data.webBanner?.mimeType,\n\t\t\t},\n\n\t\t\tcurrentLeaderboard: {\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(({ cursor, node }) => ({\n\t\t\t\t\tcursor,\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t})),\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\n\t\t\tpreviousLeaderboard: {\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(({ cursor, node }) => ({\n\t\t\t\t\tcursor,\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\n\t\t\t\t})),\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\n\t\t\t},\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 { AdManager } from './ad-manager.js';\nimport { DomainManager } from './domain-manager.js';\nimport { Logger } from './logger.js';\nimport { ObjectId } from './object-id.js';\nimport { ObjectType } from './object-type.js';\nimport { SessionManagerCookie } from './session-manager-cookie.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\tCreateSingleUseTokenReturn,\n\tCreateWithdrawalInput,\n\tCreateWithdrawalReturn,\n\tDeleteAccountReturn,\n\tDepositRecordsInput,\n\tDepositRecordsReturn,\n\tDepositReturn,\n\tDepositsCountReturn,\n\tDownlinesByNameInput,\n\tDownlinesByNameReturn,\n\tEndGameSessionReturn,\n\tEnvironment,\n\tFavoriteGamesReturn,\n\tFileReturn,\n\tGameProvider,\n\tGameReturn,\n\tGameSessionReturn,\n\tGamesInput,\n\tGamesInput__Next,\n\tGamesReturn,\n\tGoogleClientIdReturn,\n\tInstapayBankListReturn,\n\tJackpotPayoutsInput,\n\tJackpotPayoutsReturn,\n\tJackpotsInput,\n\tJackpotsReturn,\n\tLatestBetRecordsReturn,\n\tLocale,\n\tMarkAllMessagesAsReadReturn,\n\tMarkGameAsFavoriteInput,\n\tMarkGameAsFavoriteReturn,\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\tRegisterFCMDeviceInput,\n\tRegisterFCMDeviceReturn,\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\tSingleUseTokenSignInInput,\n\tSingleUseTokenSignInReturn,\n\tSiteReturn,\n\tSkipOnboardingReturn,\n\tSocialsSignInInput,\n\tSocialsSignInReturn,\n\tSubmitVerificationDetailsInput,\n\tSubmitVerificationDetailsReturn,\n\tTokenSignInInput,\n\tTokenSignInReturn,\n\tTopWinsReturn,\n\tTouchDepositInput,\n\tTouchDepositReturn,\n\tTournamentsInput,\n\tTournamentsReturn,\n\tTransactionRecordsInput,\n\tTransactionRecordsReturn,\n\tUnmarkGameAsFavoriteInput,\n\tUnmarkGameAsFavoriteReturn,\n\tUnreadMessagesCountInput,\n\tUnreadMessagesCountReturn,\n\tUnregisterFCMDeviceInput,\n\tUnregisterFCMDeviceReturn,\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?: Environment;\n\tsite: string;\n\tsitePlatform: string;\n\tplatform: string;\n\tlogs?: boolean;\n\tsessionStorage?: 'cookie' | 'localStorage';\n\tmiddleware?: GraphQLClientMiddleware;\n}\n\nconst defaultConfig = {\n\tenvironment: 'development' as Environment,\n\tlogs: false,\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 | SessionManagerCookie;\n\tprivate adManager: AdManager;\n\tprivate domainManager: DomainManager;\n\tprivate transformer: Transformer;\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\tprivate config: SdkConfig;\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,\n\t\t\tlogs,\n\t\t} = Object.assign(defaultConfig, config);\n\n\t\tconst production = environment === 'production';\n\n\t\tconst logger = new Logger({\n\t\t\tenabled: logs,\n\t\t});\n\n\t\tconst adManager = new AdManager({ logger });\n\t\tconst domainManager = new DomainManager({\n\t\t\tlogger,\n\t\t\tplatform,\n\t\t\tenvironment,\n\t\t});\n\n\t\tconst transformer = new Transformer();\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\tthis._middleware = config.middleware ?? ((req) => req);\n\n\t\tconst graphqlClientConfig = (): GraphQLClientConfig => ({\n\t\t\tmiddlewares: [\n\t\t\t\t/**/\n\t\t\t\tthis.authMiddleware,\n\t\t\t\tthis.domainMiddleware,\n\t\t\t\tthis.miscMiddleware,\n\t\t\t\tthis.middleware,\n\t\t\t],\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 =\n\t\t\tconfig.sessionStorage === 'cookie'\n\t\t\t\t? new SessionManagerCookie({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t})\n\t\t\t\t: new SessionManager({\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t\tauthService,\n\t\t\t\t\t\twalletService,\n\t\t\t\t\t});\n\n\t\tthis.logger = logger;\n\t\tthis.adManager = adManager;\n\t\tthis.domainManager = domainManager;\n\t\tthis.transformer = transformer;\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\t\tthis.cache = new Cache();\n\t\tthis.config = {\n\t\t\tenvironment,\n\t\t\tsite,\n\t\t\tplatform,\n\t\t\tsitePlatform,\n\t\t\tlogs,\n\t\t};\n\t}\n\n\tprivate _middleware: GraphQLClientMiddleware;\n\n\tset middleware(value: GraphQLClientMiddleware) {\n\t\tthis._middleware = value;\n\t}\n\n\tget middleware() {\n\t\treturn this._middleware;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tADS\n\t *=============================================\n\t */\n\n\tset adClickId(value: string | null) {\n\t\tthis.adManager.clickId = value;\n\t}\n\n\tget adClickId() {\n\t\treturn this.adManager.clickId;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tLOCALE\n\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\t/*\n\t *=============================================\n\t * \tAUTH MIDDLEWARE\n\t *=============================================\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\t/*\n\t *=============================================\n\t * \tDOMAIN MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tif (this.sessionManager.onMaya) {\n\t\t\t\trequest.headers.append('Domain', `maya/${this.config.platform}`);\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tif (this.sessionManager.onCabinet) {\n\t\t\t\trequest.headers.delete('Domain');\n\t\t\t\treturn request;\n\t\t\t}\n\n\t\t\tconst domain = this.domainManager.domain;\n\t\t\tif (domain) request.headers.append('Domain', domain);\n\t\t\treturn request;\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tMISCELLANEOUS MIDDLEWARE\n\t *=============================================\n\t */\n\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\n\t\treturn async (request) => {\n\t\t\tconst adClickId = this.adManager.clickId;\n\t\t\tif (adClickId) request.headers.append('Ad-Click-Id', adClickId);\n\t\t\treturn request;\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: SingleUseTokenSignInInput): Promise<SingleUseTokenSignInReturn>;\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\n\t\tif (input.type === 'TOKEN') {\n\t\t\tconsole.warn(\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\");\n\t\t}\n\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\ttestPass: input.testPass,\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 'SINGLE_USE_TOKEN': {\n\t\t\t\tconst res = await this.sessionManager.create({\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\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\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\tmaya: this.sessionManager.onMaya,\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\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\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\n\t\tconst res0 = await this.sessionManager.get();\n\n\t\tif (!res0.ok || !res0.data) {\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\tconst res1 = await this.authService.createSingleUseToken(res0.data.accessToken);\n\n\t\tif (!res1.ok) return res1;\n\n\t\treturn { ok: true, data: res1.data.token };\n\t}\n\n\t/*\n\t *=============================================\n\t * \tSITE\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 * \tPLATFORM\n\t *=============================================\n\t */\n\n\t/** @deprecated */\n\tasync platform(): Promise<PlatformReturn> {\n\t\tconsole.warn(\"'platform' is deprecated. Please use 'platform__next' instead.\");\n\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 * \tACCOUNT\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\tconsole.warn(\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\");\n\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\ttestPass: input.testPass,\n\t\t\t});\n\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\n\t\t}\n\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\trealName: input.realName,\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\n\t\t\t\t},\n\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\n\t\t\t\ttestPass: input.testPass,\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\tif (input.type === 'NAME_AND_PASSWORD') {\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\n\t\t\t\tinput: {\n\t\t\t\t\tid,\n\t\t\t\t\tname: input.name,\n\t\t\t\t\tbtag: input.btag,\n\t\t\t\t\tdomain: input.domain,\n\t\t\t\t\tpassword: await sha256(input.password),\n\t\t\t\t\tmobileNumber: input.mobileNumber\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\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.registerMemberAccountByName({\n\t\t\tinput: {\n\t\t\t\tid,\n\t\t\t\tname: input.name,\n\t\t\t\tpassword: await sha256(input.password),\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\tconsole.warn(\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\n\t\t);\n\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 * \tANNOUNCEMENT\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 * \tWITHDRAWAL\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\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\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\tupiId: input.upiId,\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 === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\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\tbankAccountName: input.bankAccountName,\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\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 * \tDEPOSIT\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\t\tif (input.type === 'MANUAL_UPI') {\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\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\treference: input.reference,\n\t\t\t\t\treferenceImage: input.referenceImage,\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 === 'MANUAL_BANK') {\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\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\treferenceImage: input.referenceId,\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_DIRECT_WEBPAY') {\n\t\t\tconst res = await this.walletService.createGCashDirectWebpayDeposit({\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\tcase 'QR_PH':\n\t\t\t\treturn await this.walletService.touchQrphDeposit({ 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 * \tBET RECORD\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 * \tTRANSACTION\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 * \tPROMO\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\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\n\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 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\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 * \tGAME\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\t/** @deprecated */\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\n\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\tasync markGameAsFavorite(input: MarkGameAsFavoriteInput): Promise<MarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.markGameAsFavorite({ input });\n\t}\n\n\tasync unmarkGameAsFavorite(\n\t\tinput: UnmarkGameAsFavoriteInput,\n\t): Promise<UnmarkGameAsFavoriteReturn> {\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\n\t}\n\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\n\t\tconst res0 = await this.walletService.favoriteGames();\n\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.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:\n\t\t\t\tres0.data\n\t\t\t\t\t?.map(({ id }) => {\n\t\t\t\t\t\tconst game = res1.data.edges.find((e) => id === e.node.reference)?.node;\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(Boolean) ?? [],\n\t\t} as FavoriteGamesReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFILE\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 * \tPOINTS\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 * \tACTIVITY RECORD\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 * \tREFERRAL\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 * \tMESSAGES\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\t/**\n\t * @deprecated\n\t */\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessageAsRead();\n\t}\n\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\n\t\treturn await this.triggerService.markAllMessagesAsRead();\n\t}\n\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\n\t\treturn await this.triggerService.claimReward({ id });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tONBOARDING\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 * \tQUEST\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 * \tTOP WINS\n\t *=============================================\n\t */\n\n\tasync topWins(): Promise<TopWinsReturn> {\n\t\tconst res0 = await this.portalService.topWins();\n\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.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.topWin({\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} as TopWinsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tJACKPOT\n\t *=============================================\n\t */\n\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\n\t\tconst res = await this.reportService.jackpots(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\tjackpots: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotsReturn;\n\t}\n\n\tasync jackpotPayouts(input?: JackpotPayoutsInput): Promise<JackpotPayoutsReturn> {\n\t\tconst res = await this.reportService.jackpotPayouts(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\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as JackpotPayoutsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTOURNAMENTS\n\t *=============================================\n\t */\n\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\n\t\tconst res = await this.reportService.tournaments(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\ttournaments: res.data.edges.map(({ cursor, node }) => ({\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\n\t\t\t\t\tcursor,\n\t\t\t\t})),\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\n\t\t\t\ttotalCount: res.data.totalCount,\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\n\t\t\t},\n\t\t} as TournamentsReturn;\n\t}\n\n\t/*\n\t *=============================================\n\t * \tFCM/FIREBASE\n\t *=============================================\n\t */\n\n\tasync registerFCMDevice(input: RegisterFCMDeviceInput): Promise<RegisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.registerFCMDevice({ input });\n\t}\n\n\tasync unregisterFCMDevice(input: UnregisterFCMDeviceInput): Promise<UnregisterFCMDeviceReturn> {\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\n\t}\n\n\t/*\n\t *=============================================\n\t * \tTHIRD PARTY\n\t *=============================================\n\t */\n\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\n\t\tconst res = await this.accountService.googleClientId();\n\t\tif (!res.ok) return res;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: res.data ?? null,\n\t\t};\n\t}\n\n\t/*\n\t *=============================================\n\t * \tUTILS\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'MEGA2SPIN',\n\t'EVOLUTION',\n\t'EVOLUTION_NETENT',\n\t'ETENGJUE',\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"]}
|