@opexa/portal-sdk 0.37.0 → 0.37.1
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 +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -0
- 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/utils/call-if-fn.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":["/*\r\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\r\n */\r\n\r\nexport const ObjectType = {\r\n\tAccount: 8,\r\n\tDeposit: 9,\r\n\tWithdrawal: 14,\r\n\tVerification: 15,\r\n\tFile: 16,\r\n\tGame: 203,\r\n\tGameSession: 204,\r\n\tMayaSession: 230,\r\n};\r\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\r\n\tlet result = '';\r\n\r\n\tfor (const [index, string] of strings.entries()) {\r\n\t\tconst value = values.at(index) ?? '';\r\n\r\n\t\tresult = `${result}${string}${value}`;\r\n\t}\r\n\r\n\treturn result.trim();\r\n}\r\n","import { gql } from '../utils/gql.js';\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FILE +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const FILE_FRAGMENT = gql`\r\n\tfragment FileFragment on File {\r\n\t\tid\r\n\t\turl\r\n\t\tstatus\r\n\t}\r\n`;\r\n\r\nexport const FILE_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery File($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on File {\r\n\t\t\t\t...FileFragment\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\r\n\tmutation UploadPrivateImageFile($input: UploadFileInput!) {\r\n\t\tuploadPrivateImageFile(input: $input) {\r\n\t\t\t... on FileFormatNotSupportedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNameTooLongError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileSizeTooBigError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WALLET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WALLET_QUERY = gql`\r\n\tquery Wallet {\r\n\t\twallet {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ POINTS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const POINTS_WALLET_QUERY = gql`\r\n\tquery PointsWallet {\r\n\t\tpointsWallet {\r\n\t\t\tid\r\n\t\t\tpoints\r\n\t\t\taccount\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\r\n\tmutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\r\n\t\tredeemPointsToCash(input: $input) {\r\n\t\t\t... on InsufficientPointsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PointsNotDivisibleBy100Error {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\r\n\tquery PointsWalletTransactions(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$filter: MemberPointsWalletTransactionFilterInput\r\n\t) {\r\n\t\tmember {\r\n\t\t\tpointsWalletTransactions(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on PointsWalletTransaction {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tbalance\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ GAME +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const GAME_SESSION_QUERY = {\r\n\tcurrent: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const CREATE_GAME_SESSION_MUTATION = gql`\r\n\tmutation CreateGameSession($input: CreateGameSessionInput!) {\r\n\t\tcreateGameSession(input: $input) {\r\n\t\t\t... on GameDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const END_GAME_SESSION_MUTATION = {\r\n\tcurrent: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input)\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input) {\r\n\t\t\t\t... on GameSessionDoesNotExistError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameSessionAlreadyClosedError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameProviderError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const RECOMMENDED_GAMES_QUERY = gql`\r\n\tquery RecommendedGames {\r\n\t\trecommendedGames {\r\n\t\t\tid\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ANNOUNCEMENT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ANNOUNCEMENTS_QUERY = gql`\r\n\tquery Announcements($first: Int, $after: Cursor, $filter: AnnouncementFilterInput) {\r\n\t\tannouncements(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Announcement {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tmessage\r\n\t\t\t\t\t\tactivationStartDateTime\r\n\t\t\t\t\t\tactivationEndDateTime\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WITHDRAWAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\r\n\tquery WithdrawalRecords($first: Int, $after: Cursor, $filter: WithdrawalRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\twithdrawalRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BankWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tbank\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on GCashWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\trecipientMobileNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on MayaAppWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on InstapayWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualUPIWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualBankWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\r\n\t\tcreateGCashWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\r\n\t\tcreateMayaWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\r\n\t\tcreateMayaAppWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\r\n\t\tcreateBankWithdrawal(input: $input) {\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateAIOInstapayWithdrawal($input: CreateAIOInstapayWithdrawalInput!) {\r\n\t\tcreateAIOInstapayWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\r\n\t\tcreateManualUPIWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateManualBankWithdrawal($input: CreateManualBankWithdrawalInput!) {\r\n\t\tcreateManualBankWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\r\n\tquery InstapayBankList {\r\n\t\tinstapayBankList {\r\n\t\t\tid\r\n\t\t\tcode\r\n\t\t\tname\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\r\n\tquery RemainingDailyWithdrawalsCount {\r\n\t\tremainingDailyWithdrawalsCount\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ DEPOSIT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const DEPOSIT_RECORDS_QUERY = gql`\r\n\tquery DepositRecords($after: Cursor, $first: Int, $filter: DepositRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tdepositRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on DepositRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdeposit\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tdepositNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\r\n\t\tcreateGCashDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateGCashDirectWebpayDeposit($input: CreateGCashDirectWebpayDepositInput!) {\r\n\t\tcreateGCashDirectWebpayDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\r\n\t\tcreateMayaDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\r\n\t\tcreateMayaAppDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\r\n\t\tcreateAIOQRPHDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOOnlineBankDeposit($input: CreateAIOOnlineBankDepositInput!) {\r\n\t\tcreateAIOOnlineBankDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\r\n\t\tcreateManualBankDeposit(input: $input) {\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\r\n\t\tcreateManualUPIDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on UPIReferenceNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSIT_QUERY = gql`\r\n\tquery Deposit($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on GCashDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on MayaDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t}\r\n\t\t\t... on MayaAppDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on BankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on ManualDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on QRPHDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tqrCode\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on OnlineBankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tvca\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on GCashDirectWebpayDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSITS_COUNT_QUERY = gql`\r\n\tquery DepositsCount {\r\n\t\tmember {\r\n\t\t\tdepositsCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\r\n\t\ttouchGCashDeposit(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\r\n\tmutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\r\n\t\ttouchQRPHDeposit(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BET_RECORDS_QUERY = gql`\r\n\tquery BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tbetRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\ttotalCount\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BetRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tserialCode\r\n\t\t\t\t\t\t\tgame {\r\n\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbet\r\n\t\t\t\t\t\t\tpayout\r\n\t\t\t\t\t\t\twinloss\r\n\t\t\t\t\t\t\tjackpotPayout\r\n\t\t\t\t\t\t\tjackpotContribution\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeSettled\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t\tmetadata\r\n\t\t\t\t\t\t\tvendorRoundId\r\n\t\t\t\t\t\t\tbetContent\r\n\t\t\t\t\t\t\tcontestName\r\n\t\t\t\t\t\t\texternalCategory\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const LATEST_BET_RECORDS_QUERY = gql`\r\n\tquery LatestBetRecords {\r\n\t\tlatestBetRecords {\r\n\t\t\tid\r\n\t\t\tmember {\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t}\r\n\t\t\tbet\r\n\t\t\tpayout\r\n\t\t\tvalidBet\r\n\t\t\tdateTimeSettled\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TRANSACTIONS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TRANSACTION_RECORDS_QUERY = gql`\r\n\tquery TransactionRecords($first: Int, $after: Cursor, $filter: TransactionRecordFilter) {\r\n\t\tmember {\r\n\t\t\ttransactionRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on TransactionRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\t\tcurrentBalance\r\n\t\t\t\t\t\t\tcurrentBonusBalance\r\n\t\t\t\t\t\t\treferenceNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PROMO +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const PROMO_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment PromoFragment on Promo {\r\n\t\tid\r\n\t\ttype\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tmaximumBonusAmount\r\n\t\tminimumBonusAmount\r\n\t\tmaximumDepositAmount\r\n\t\tminimumDepositAmount\r\n\t\tactivationStartDateTime\r\n\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\tactivationEndDateTime\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Promos {\r\n\t\tpromos {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery AvailablePromos($filter: PromoFilterInput) {\r\n\t\tavailablePromos(filter: $filter) {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const SPOT_BONUS_FRAGMENT = gql`\r\n\tfragment SpotBonusFragment on SpotBonusPromo {\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tstatus\r\n\t\tdaysToClear\r\n\t\tzeroOutThreshold\r\n\t\tturnoverRequirementMultiplier\r\n\t\tturnoverRequirementType\r\n\t\tminimumTicketOddFactorPerSportsGameProvider\r\n\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\tbonusAmount\r\n\t\tenabledGameProviders\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tbanner {\r\n\t\t\tid\r\n\t\t\turl\r\n\t\t}\r\n\t\tdescription\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t\tdateTimeClosed\r\n\t\ttotalBonus\r\n\t\ttotalDeposit\r\n\t\ttotalBonusBalance\r\n\t\ttotalBet\r\n\t\ttotalBonusCashedOut\r\n\t\tbonusesCount\r\n\t\tclosedBonusesCount\r\n\t\tclosedBonusesCountPercentage\r\n\t\tactiveBonusesCount\r\n\t\tclearedBonusesCount\r\n\t\tzeroedOutBonusesCount\r\n\t\tcancelledBonusesCount\r\n\t\texpiredBonusesCount\r\n\t\tcode\r\n\t\tmaximumBonusesCountLimit\r\n\t}\r\n`;\r\n\r\nexport const PROMO_BY_CODE_QUERY = gql`\r\n\t${SPOT_BONUS_FRAGMENT}\r\n\r\n\tquery PromoByCode($code: String!) {\r\n\t\tpromoByCode(code: $code) {\r\n\t\t\t...SpotBonusFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment CashbackFragment on Cashback {\r\n\t\tid\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tminimumCashback\r\n\t\tmaximumMonthlyCashback\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tturnoverContributionPercentagePerGameProvider\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const CASHBACKS_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery Cashbacks {\r\n\t\tcashbacks {\r\n\t\t\t...CashbackFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BONUS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BONUS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonus {\r\n\t\tbonus {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const BONUSES_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonuses {\r\n\t\tbonuses {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\t\tenabledGameProviders\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_BONUSES_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery CashbackBonuses {\r\n\t\tcashbackBonuses {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t\ttotal\r\n\t\t\tcashback {\r\n\t\t\t\t...CashbackFragment\r\n\t\t\t}\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\r\n\tmutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\r\n\t\tclaimCashbackBonus(input: $input) {\r\n\t\t\t... on CashbackBonusDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MEMBER +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MEMBER_QUERY = gql`\r\n\tquery Member {\r\n\t\tmember {\r\n\t\t\tdateTimeLastActive\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**\r\n * _aka_ `Query.self`\r\n */\r\nexport const MEMBER_ACCOUNT_QUERY = gql`\r\n\tquery MemberAccount {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t\tstatus\r\n\t\t\t\trealName\r\n\t\t\t\temailAddress\r\n\t\t\t\tmobileNumber\r\n\t\t\t\tbirthDay\r\n\t\t\t\tverified\r\n\t\t\t\tverificationStatus\r\n\t\t\t\tnickName\r\n\t\t\t\tvalidId\r\n\t\t\t\tmobileNumberVerified\r\n\t\t\t\tmobileNumberVerificationRequired\r\n\t\t\t\ttransactionPassword\r\n\t\t\t\tsecretAnswerSubmitted\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MEMBER_VERIFICATION_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery MemberVerification {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tverification {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\taddress\r\n\t\t\t\t\tpermanentAddress\r\n\t\t\t\t\tsourceOfIncome\r\n\t\t\t\t\tnatureOfWork\r\n\t\t\t\t\tnationality\r\n\t\t\t\t\tplaceOfBirth\r\n\t\t\t\t\tidFrontImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t\tselfieImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput!\r\n\t\t$referralCode: String\r\n\t\t$verificationCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION = gql`\r\n\tmutation RegisterMemberAccountByName(\r\n\t\t$input: RegisterMemberAccountByNameInput!\r\n\t\t$reCAPTCHAResponse: String!\r\n\t) {\r\n\t\tregisterMemberAccountByName(input: $input, reCAPTCHAResponse: $reCAPTCHAResponse) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\r\n\tmutation RegisterMemberAccountViaMobile(\r\n\t\t$input: RegisterMemberAccountViaMobileInput!\r\n\t\t$referralCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t\t$verificationCode: String\r\n\t) {\r\n\t\tregisterMemberAccountViaMobile(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput_next!\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount: registerMemberAccount_next(\r\n\t\t\tinput: $input\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\r\n\t\tregisterMayaMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\r\n\t\tupdateMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on EmailAddressNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NickNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RealNameAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ValidIdAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const RESET_PASSWORD_MUTATION = gql`\r\n\tmutation ResetPassword($input: ResetPasswordInput!, $verificationCode: String) {\r\n\t\tresetPassword(input: $input, verificationCode: $verificationCode) {\r\n\t\t\t... on AccountNotFoundError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\r\n\t\tdeleteMemberAccount(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\r\n\tmutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\r\n\t\tverifyMobileNumber(input: $input) {\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberAlreadyVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\r\n\t\tcreateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyExistsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\r\n\t\tupdateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyApprovedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PROFILE_COMPLETION_QUERY = gql`\r\n\tquery ProfileCompletion {\r\n\t\tprofileCompletion {\r\n\t\t\tcompletionPercentage\r\n\t\t\tpersonalInformation\r\n\t\t\taccountVerification\r\n\t\t\tmobileNumberVerification\r\n\t\t\ttransactionPassword\r\n\t\t\taccountPassword\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/** @deprecated */\r\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\r\n\tmutation SendVerificationCode($input: SendVerificationCodeInput!) {\r\n\t\tsendVerificationCode(input: $input) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotReadyToSendVerficationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\r\n\tmutation RegisterMemberAccountByMobileNumber(\r\n\t\t$input: RegisterMemberAccountByMobileNumberInput!\r\n\t\t$mobileNumberVerificationCode: String!\r\n\t) {\r\n\t\tregisterMemberAccountByMobileNumber(\r\n\t\t\tinput: $input\r\n\t\t\tmobileNumberVerificationCode: $mobileNumberVerificationCode\r\n\t\t) {\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PLATFORM +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\n/** @deprecated */\r\nexport const PLATFORM_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\tbankAccountName\r\n\t\tbankAccountNumber\r\n\t\tbankIFSCCode\r\n\t\tupiId\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PLATFORM_QUERY__NEXT = gql`\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t}\r\n`;\r\n\r\nexport const PAYMENT_SETTINGS_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t\tbankAccountName\r\n\t\tbankAccountNumber\r\n\t\tbankIFSCCode\r\n\t\tupiId\r\n\t\tupiQRCode {\r\n\t\t\tid\r\n\t\t\turl\r\n\t\t}\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery PaymentSettings {\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ SESSION +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MAYA_SESSION_QUERY = gql`\r\n\tquery MayaSession($id: ObjectId!) {\r\n\t\tmayaSession(id: $id) {\r\n\t\t\tid\r\n\t\t\tmember\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\r\n\tmutation ValidateMayaSession {\r\n\t\tvalidateMayaSession: validMayaSession\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ACTIVITY +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ACTIVITY_RECORDS_QUERY = gql`\r\n\tquery ActivityRecords($after: Cursor, $first: Int, $filter: ActivityRecordsFilterInput) {\r\n\t\tmember {\r\n\t\t\tactivityRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on MemberActivity {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tdomain\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tdetails\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ REFERRAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const REFERRAL_CODE_QUERY = gql`\r\n\tquery ReferralCode {\r\n\t\treferralCode\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\r\n\tmutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\r\n\t\tupdateReferralCode(input: $input) {\r\n\t\t\t... on ReferralCodeNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REFERRAL_FRAGMENT = gql`\r\n\tfragment ReferralFragment on Referral {\r\n\t\tid\r\n\t\tupline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tdownline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tlevel\r\n\t\tturnover\r\n\t\tcommission\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const REFERRALS_QUERY = gql`\r\n\tquery Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\r\n\t\tmember {\r\n\t\t\treferrals(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on Referral {\r\n\t\t\t\t\t\t\t...ReferralFragment\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const UPLINES_BY_NAME_QUERY = gql`\r\n\tquery UplinesByName($search: String!, $first: Int) {\r\n\t\tuplinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const DOWNLINES_BY_NAME_QUERY = gql`\r\n\tquery DownlinesByName($search: String!, $first: Int) {\r\n\t\tdownlinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const REFERRAL_COMMISSION_QUERY = gql`\r\n\tquery ReferralCommission {\r\n\t\tmember {\r\n\t\t\treferralCommission {\r\n\t\t\t\tid\r\n\t\t\t\tcommission\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\tlevel1Commission\r\n\t\t\t\tlevel1ReferralsCount\r\n\t\t\t\tlevel2Commission\r\n\t\t\t\tlevel2ReferralsCount\r\n\t\t\t\tlevel3Commission\r\n\t\t\t\tlevel3ReferralsCount\r\n\t\t\t\treferralCode\r\n\t\t\t\treferralsCount\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\r\n\tquery PointsClubSettings {\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MESSAGES +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MESSAGES_QUERY = gql`\r\n\tquery Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\r\n\t\tmessages(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Message {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ticon\r\n\t\t\t\t\t\timage\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\tpopup\r\n\t\t\t\t\t\tactions {\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmarkedAsRead\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\tmetadata {\r\n\t\t\t\t\t\t\t... on TournamentPayoutMessageMetadata {\r\n\t\t\t\t\t\t\t\ttournament {\r\n\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tpayout {\r\n\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\r\n\tquery UnreadMessagesCount($filter: MessageFilterInput) {\r\n\t\tmessages(filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkMessageAsRead($id: ObjectId!) {\r\n\t\tmarkMessageAsRead(id: $id)\r\n\t}\r\n`;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkAllMessageAsRead {\r\n\t\tmarkAllMessageAsRead\r\n\t}\r\n`;\r\n\r\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\r\n\tmutation MarkAllMessagesAsRead {\r\n\t\tmarkAllMessagesAsRead\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_REWARD_MUTATION = gql`\r\n\tmutation ClaimReward($id: ObjectId!) {\r\n\t\tclaimReward(id: $id) {\r\n\t\t\t... on RewardAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RewardAlreadyExpiredError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_SPOT_BONUS = gql`\r\n\tmutation ClaimSpotBonus($code: String!) {\r\n\t\tclaimSpotBonus(code: $code) {\r\n\t\t\t... on InvalidPromoCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumBonusesCountLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on SpotBonusAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ONBOARDING +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ONBOARDING_STATUS_QUERY = gql`\r\n\tquery OnboardingStatus {\r\n\t\tonboardingStatus\r\n\t}\r\n`;\r\n\r\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\r\n\tmutation CompleteOnboarding($input: CompleteOnboardingInput!) {\r\n\t\tcompleteOnboarding(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const SKIP_ONBOARDING_MUTATION = gql`\r\n\tmutation SkipOnboarding {\r\n\t\tskipOnboarding\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ QUEST +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\nexport const QUEST_PROGRAM_FRAGMENT = gql`\r\n\tfragment QuestProgramFragment on QuestProgram {\r\n\t\tstatus\r\n\t\ttype\r\n\t\tname\r\n\t\tdescription\r\n\t}\r\n`;\r\n\r\nexport const DAILY_CHECKIN_FRAGMENT = gql`\r\n\t${QUEST_PROGRAM_FRAGMENT}\r\n\tfragment DailyCheckinQuestFragment on DailyCheckInQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\ttype\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tlastCheckInDate\r\n\t\tstartDateTime\r\n\t\tcheckInStreak\r\n\r\n\t\tthirdDayBonusAmount\r\n\t\tseventhDayBonusAmount\r\n\t\tsixthDayBonusAmount\r\n\t}\r\n`;\r\nexport const WAGERING_FRAGMENT = gql`\r\n\tfragment WageringQuestFragment on WageringQuest {\r\n\t\tbonus\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\ttargetTurnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\r\n\tfragment OnboardingQuestFragment on OnboardingQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\ttype\r\n\t\tprogressPercentage\r\n\t\tbonus\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tfirstDepositCompleted\r\n\t\taccountVerificationCompleted\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_QUESTS_QUERY = gql`\r\n\t${WAGERING_FRAGMENT}\r\n\t${DAILY_CHECKIN_FRAGMENT}\r\n\t${ONBOARDING_QUEST_FRAGMENT}\r\n\r\n\tquery AvailableQuests {\r\n\t\tavailableQuests {\r\n\t\t\t... on Quest {\r\n\t\t\t\t... on WageringQuest {\r\n\t\t\t\t\t...WageringQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on DailyCheckInQuest {\r\n\t\t\t\t\t...DailyCheckinQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on OnboardingQuest {\r\n\t\t\t\t\t...OnboardingQuestFragment\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\r\n\tmutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\r\n\t\tcheckInDailyCheckInQuest(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TOP WIN +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TOP_WINS_QUERY = gql`\r\n\tquery TopWins($first: Int) {\r\n\t\ttopWins(first: $first) {\r\n\t\t\tid\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t}\r\n\t\t\tmember {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tmultiplier\r\n\t\t\tpayout\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ Jackpots +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const JACKPOTS_QUERY = gql`\r\n\tquery Jackpots(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$sort: JackpotSortInput\r\n\t\t$filter: JackpotFilterInput\r\n\t) {\r\n\t\tjackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Jackpot {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t\tdescription\r\n\t\t\t\t\t\tpool\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tminimumJackpotPoolDrawingLimit\r\n\t\t\t\t\t\tmaximumJackpotPoolLimit\r\n\t\t\t\t\t\tdrawing\r\n\t\t\t\t\t\tminimumMultiplier\r\n\t\t\t\t\t\tminimumBet\r\n\t\t\t\t\t\tjackpotPayoutPercentage\r\n\t\t\t\t\t\tjackpotTurnoverContributionPercentagePerGameProvider\r\n\t\t\t\t\t\ttotalPayout\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const JACKPOT_PAYOUTS_QUERY = gql`\r\n\tquery JackpotPayouts(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$sort: JackpotPayoutSortInput\r\n\t\t$filter: JackpotPayoutFilterInput\r\n\t) {\r\n\t\tjackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on JackpotPayout {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\tmember {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tserialCode\r\n\t\t\t\t\t\tjackpot {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\tbet\r\n\t\t\t\t\t\tamount\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FMC Device +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const REGISTER_FCM_DEVICE = gql`\r\n\tmutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\r\n\t\tregisterFCMDevice(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const UNREGISTER_FCM_DEVICE = gql`\r\n\tmutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\r\n\t\tunregisterFCMDevice(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FAVORITE GAME +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MARK_GAME_AS_FAVORITE = gql`\r\n\tmutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\r\n\t\tmarkGameAsFavorite(input: $input)\r\n\t}\r\n`;\r\nexport const UNMARK_GAME_AS_FAVORITE = gql`\r\n\tmutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\r\n\t\tunmarkGameAsFavorite(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const FAVORITE_GAMES_QUERY = gql`\r\n\tquery FavoriteGames {\r\n\t\tfavoriteGames {\r\n\t\t\tid\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\r\n\tquery GoogleClientId {\r\n\t\tgoogleClientId\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TOURNAMENTS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TOURNAMENTS_QUERY = gql`\r\n\tquery Tournaments($first: Int, $after: Cursor, $filter: TournamentFilterInput) {\r\n\t\ttournaments(first: $first, after: $after, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on MultiplierTournament {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t\twinnersCount\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tdescription\r\n\t\t\t\t\t\tactivationStartDateTime\r\n\t\t\t\t\t\tactivationEndDateTime\r\n\t\t\t\t\t\ttopPayouts {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tmember {\r\n\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurrentLeaderboard {\r\n\t\t\t\t\t\t\ttotalCount\r\n\t\t\t\t\t\t\tedges {\r\n\t\t\t\t\t\t\t\tnode {\r\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\r\n\t\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\t\tusername\r\n\t\t\t\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpreviousLeaderboard {\r\n\t\t\t\t\t\t\ttotalCount\r\n\t\t\t\t\t\t\tedges {\r\n\t\t\t\t\t\t\t\tnode {\r\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\r\n\t\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\t\tusername\r\n\t\t\t\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tenabledGameProviders\r\n\t\t\t\t\t\tfrequency\r\n\t\t\t\t\t\tmode\r\n\t\t\t\t\t\tmobileBanner {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t\tmimeType\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twebBanner {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t\tmimeType\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\trewardSettings\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n","import type { OperationError } from '../types/index.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tClaimCashbackBonusError,\r\n\tClaimRewardError,\r\n\tClaimSpotBonusError,\r\n\tCreateDepositError,\r\n\tCreateGameSessionError,\r\n\tCreateMemberVerificationError,\r\n\tCreateSessionError,\r\n\tCreateWithdrawalError,\r\n\tEndGameSessionError,\r\n\tRedeemPointsToCashError,\r\n\tRefreshSessionError,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMemberAccountError,\r\n\tResetPasswordError,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeError__Next,\r\n\tTransactionPasswordNotSetError,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateReferralCodeError,\r\n\tUPIReferenceNotAvailableError,\r\n\tUploadPrivateImageFileError,\r\n\tVerifyMobileNumberError,\r\n} from './types.js';\r\n\r\ntype E =\r\n\t| ClaimCashbackBonusError\r\n\t| CreateDepositError\r\n\t| UploadPrivateImageFileError\r\n\t| CreateGameSessionError\r\n\t| EndGameSessionError\r\n\t| RegisterMemberAccountError\r\n\t| RegisterMayaMemberAccountError\r\n\t| UpdateMemberAccountError\r\n\t| ResetPasswordError\r\n\t| SendVerificationCodeError\r\n\t| VerifyMobileNumberError\r\n\t| CreateMemberVerificationError\r\n\t| UpdateMemberVerificationError\r\n\t| RedeemPointsToCashError\r\n\t| CreateWithdrawalError\r\n\t| CreateSessionError\r\n\t| RefreshSessionError\r\n\t| AuthenticateError\r\n\t| UpdateReferralCodeError\r\n\t| SendVerificationCodeError__Next\r\n\t| ClaimRewardError\r\n\t| ClaimSpotBonusError\r\n\t| TransactionPasswordNotSetError\r\n\t| UPIReferenceNotAvailableError;\r\n\r\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\r\n\tconst messages: Record<E, string> = {\r\n\t\tPointsNotDivisibleBy100Error: 'Please input points that are multiples of 100.',\r\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\r\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\r\n\t\tSpotBonusAlreadyClaimedError:\r\n\t\t\t'This promo code has already been redeemed and cannot be used again',\r\n\t\tRewardAlreadyExpiredError: 'Reward is either expired or no longer available',\r\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\r\n\t\tAccountNotFoundError: 'Account does not exist',\r\n\t\tAccountNotVerifiedError: 'Account is not verified',\r\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\r\n\t\tDepositPromoMaximumAmountExceededError:\r\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\r\n\t\tDepositPromoMinimumAmountNotMetError:\r\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\r\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\r\n\t\tFileDoesNotExistError: 'File does not exist',\r\n\t\tFileFormatNotSupportedError: 'File format is not supported',\r\n\t\tFileNameTooLongError: 'File name is too long',\r\n\t\tFileNotReadyError: 'File is not yet ready',\r\n\t\tFileSizeTooBigError: 'File size is too big',\r\n\t\tGameDoesNotExistError: 'Game does not exist',\r\n\t\tInsufficientPointsError: 'Insufficient points',\r\n\t\tInvalidPlatformError: 'Invalid platform',\r\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\r\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\r\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\r\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\r\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\r\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\r\n\t\tMemberVerificationAlreadyApprovedError: 'Member verification is already approved',\r\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\r\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\r\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\r\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\r\n\t\tMinimumFirstDepositAmountNotMetError: 'Minimum first deposit amount not met',\r\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\r\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\r\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\r\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\r\n\t\tNotEnoughBalanceError: 'Insufficient balance',\r\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\r\n\t\tPromoNotEnabledError: 'Promo is not enabled',\r\n\t\tRealNameAlreadySetError: 'Real name is already set',\r\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\r\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\r\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\r\n\t\tGameProviderError: 'Game provider error',\r\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\r\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\r\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\r\n\t\tAccountBlacklistedError: 'Account is blacklisted',\r\n\t\tInvalidTokenError: 'Invalid token',\r\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\r\n\t\tSessionExpiredError: 'Session expired',\r\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\r\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\r\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\r\n\t\tAccountSuspendedError: 'Account is suspended',\r\n\t\tTransactionPasswordNotSetError: 'Transaction password is not set',\r\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\r\n\t};\r\n\r\n\treturn {\r\n\t\tname: code,\r\n\t\tmessage: messages[code],\r\n\t};\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tANNOUNCEMENTS_QUERY,\r\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\r\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\r\n\tGOOGLE_CLIEND_ID_QUERY,\r\n\tMEMBER_ACCOUNT_QUERY,\r\n\tMEMBER_VERIFICATION_QUERY,\r\n\tPAYMENT_SETTINGS_QUERY,\r\n\tPLATFORM_QUERY,\r\n\tPOINTS_CLUB_SETTINGS_QUERY,\r\n\tPROFILE_COMPLETION_QUERY,\r\n\tREFERRAL_CODE_QUERY,\r\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\r\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\r\n\tRESET_PASSWORD_MUTATION,\r\n\tSEND_VERIFICATION_CODE_MUTATION,\r\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\r\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\r\n\tUPDATE_REFERRAL_CODE_MUTATION,\r\n\tVERIFY_MOBILE_NUMBER_MUTATION,\r\n} from './queries.js';\r\nimport type {\r\n\tAnnouncement,\r\n\tAnnouncementsQuery,\r\n\tAnnouncementsQueryVariables,\r\n\tCreateMemberVerificationError,\r\n\tCreateMemberVerificationMutation,\r\n\tCreateMemberVerificationMutationVariables,\r\n\tDeleteMemberAccountMutation,\r\n\tDeleteMemberAccountMutationVariables,\r\n\tGoogleClientIdQuery,\r\n\tMemberAccount,\r\n\tMemberAccountQuery,\r\n\tMemberVerification,\r\n\tMemberVerificationQuery,\r\n\tPaginatedQueryResult,\r\n\tPaymentSettings,\r\n\tPaymentSettingsQuery,\r\n\tPlatform,\r\n\tPlatformQuery,\r\n\tPointsClubSettings,\r\n\tPointsClubSettingsQuery,\r\n\tProfileCompletion,\r\n\tProfileCompletionQuery,\r\n\tReferralCodeQuery,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMayaMemberAccountMutation,\r\n\tRegisterMayaMemberAccountMutationVariables,\r\n\tRegisterMemberAccountByMobileNumberError,\r\n\tRegisterMemberAccountByMobileNumberMutation,\r\n\tRegisterMemberAccountByMobileNumberMutationVariables,\r\n\tRegisterMemberAccountByNameMutation,\r\n\tRegisterMemberAccountByNameMutationVariables,\r\n\tRegisterMemberAccountError,\r\n\tRegisterMemberAccountMutation,\r\n\tRegisterMemberAccountMutationVariables,\r\n\tRegisterMemberAccountMutationVariables__Next,\r\n\tRegisterMemberAccountViaMobileMutation,\r\n\tRegisterMemberAccountViaMobileMutationVariables,\r\n\tResetPasswordError,\r\n\tResetPasswordMutation,\r\n\tResetPasswordMutationVariables,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeMutation,\r\n\tSendVerificationCodeMutationVariables,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberAccountMutation,\r\n\tUpdateMemberAccountMutationVariables,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateMemberVerificationMutation,\r\n\tUpdateMemberVerificationMutationVariables,\r\n\tUpdateReferralCodeError,\r\n\tUpdateReferralCodeMutation,\r\n\tUpdateReferralCodeMutationVariables,\r\n\tVerifyMobileNumberError,\r\n\tVerifyMobileNumberMutation,\r\n\tVerifyMobileNumberMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class AccountService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\t/** aka `Query.self` */\r\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\r\n\t\tconst res = await this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount(\r\n\t\tvariables: RegisterMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccountViaMobile(\r\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, testPass, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountViaMobileMutation,\r\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t\t...(testPass && {\r\n\t\t\t\t\t'test-pass': testPass,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountViaMobile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountViaMobile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount__next(\r\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables__Next\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccountByName(\r\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountByNameMutation,\r\n\t\t\tRegisterMemberAccountByNameMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(variables.reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': variables.reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountByName) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByName.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberAccount(\r\n\t\tvariables: UpdateMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberAccountMutation,\r\n\t\t\tUpdateMemberAccountMutationVariables\r\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync deleteMemberAccount(\r\n\t\tvariables: DeleteMemberAccountMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tDeleteMemberAccountMutation,\r\n\t\t\tDeleteMemberAccountMutationVariables\r\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.deleteMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync resetPassword(\r\n\t\tvariables: ResetPasswordMutationVariables,\r\n\t): Promise<OperationResult<ResetPasswordError>> {\r\n\t\tconst res = await this.client.request<ResetPasswordMutation, ResetPasswordMutationVariables>(\r\n\t\t\tRESET_PASSWORD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.resetPassword) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<OperationResult<never, ProfileCompletion>> {\r\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(PROFILE_COMPLETION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<OperationResult<never, Platform>> {\r\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync sendVerificationCode(\r\n\t\tvariables: SendVerificationCodeMutationVariables,\r\n\t): Promise<OperationResult<SendVerificationCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tSendVerificationCodeMutation,\r\n\t\t\tSendVerificationCodeMutationVariables\r\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.sendVerificationCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\r\n\t\treturn await this.client.request<PaymentSettingsQuery>(PAYMENT_SETTINGS_QUERY);\r\n\t}\r\n\r\n\tasync verifyMobileNumber(\r\n\t\tvariables: VerifyMobileNumberMutationVariables,\r\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tVerifyMobileNumberMutation,\r\n\t\t\tVerifyMobileNumberMutationVariables\r\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.verifyMobileNumber) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMemberVerification(\r\n\t\tvariables: CreateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMemberVerificationMutation,\r\n\t\t\tCreateMemberVerificationMutationVariables\r\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberVerification(\r\n\t\tvariables: UpdateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberVerificationMutation,\r\n\t\t\tUpdateMemberVerificationMutationVariables\r\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberVerification(): Promise<\r\n\t\tOperationResult<never, MemberVerification | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<MemberVerificationQuery>(MEMBER_VERIFICATION_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount.verification,\r\n\t\t};\r\n\t}\r\n\r\n\tasync announcements(\r\n\t\tvariables?: AnnouncementsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\r\n\t\tconst res = await this.client.request<AnnouncementsQuery, AnnouncementsQueryVariables>(\r\n\t\t\tANNOUNCEMENTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.announcements,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMayaMemberAccount(\r\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMayaMemberAccountMutation,\r\n\t\t\tRegisterMayaMemberAccountMutationVariables\r\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMayaMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMayaMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync referralCode(): Promise<OperationResult<never, string | null | undefined>> {\r\n\t\tconst res = await this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.referralCode,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(\r\n\t\tvariables: UpdateReferralCodeMutationVariables,\r\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateReferralCodeMutation,\r\n\t\t\tUpdateReferralCodeMutationVariables\r\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateReferralCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<\r\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(POINTS_CLUB_SETTINGS_QUERY);\r\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\r\n\t}\r\n\r\n\tasync registerMemberAccountByMobileNumber(\r\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\r\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(variables.reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t\t...(variables.testPass && {\r\n\t\t\t\t\t'test-pass': 'true',\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountByMobileNumber) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByMobileNumber.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync googleClientId(): Promise<OperationResult<never, string | null | undefined>> {\r\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(GOOGLE_CLIEND_ID_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.googleClientId,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { HttpError, OperationError } from '../types/index.js';\r\n\r\nexport function statusCodeToOperationError(\r\n\tvalue: number,\r\n\tmessage?: string,\r\n): OperationError<HttpError> {\r\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\r\n\r\n\treturn {\r\n\t\tname: e.name,\r\n\t\tmessage: message ?? e.message,\r\n\t};\r\n}\r\n\r\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\r\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\r\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\r\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\r\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\r\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\r\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\r\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\r\n};\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticateMutation,\r\n\tCreateSessionError,\r\n\tCreateSessionInput,\r\n\tCreateSessionMutation,\r\n\tCreateSignleUseTokenError,\r\n\tCreateSingleUseTokenMutation,\r\n\tRefreshSessionError,\r\n\tRefreshSessionMutation,\r\n\tSendVerificationCodeError__Next,\r\n\tSendVerificationCodeInput__Next,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\ninterface FetchOptions {\r\n\theaders?: HeadersInit;\r\n}\r\n\r\nexport interface AuthServiceConfig {\r\n\turl: string;\r\n\tfetchOptions?: FetchOptions;\r\n}\r\n\r\nexport class AuthService {\r\n\tprivate url: string;\r\n\tprivate options: FetchOptions;\r\n\r\n\tconstructor(config: AuthServiceConfig) {\r\n\t\tthis.url = config.url;\r\n\t\tthis.options = config.fetchOptions ?? {};\r\n\t}\r\n\r\n\tprivate get headers() {\r\n\t\tconst headers = new Headers(this.options.headers);\r\n\t\theaders.append('Accept', 'application/json, text/plain');\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\tasync createSession(\r\n\t\tinput: CreateSessionInput,\r\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst data = `${input.name}:${input.password}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `Basic ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'SOCIALS') {\r\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\theaders.set('Authorization', `Opexa-Cabinet-Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'SINGLE_USE_TOKEN') {\r\n\t\t\theaders.set('Authorization', `Single-Use-Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.reCAPTCHAResponse) {\r\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\r\n\t\t}\r\n\r\n\t\tif (input.testPass) {\r\n\t\t\theaders.set('test-pass', input.testPass);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'SECURITY_QUESTION') {\r\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await fetch(`${this.url}/session/${input.token}/authenticate`, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theaders,\r\n\t\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst data = await res.json();\r\n\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (res.status === 401 || res.status === 403) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t} catch {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Invalid input 'type'\");\r\n\t}\r\n\r\n\tasync refreshSession(\r\n\t\trefreshToken: string,\r\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (res.status === 403 || res.status === 401) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true } : { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t} catch {\r\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\r\n\t\t}\r\n\t}\r\n\r\n\tasync verifySession(accessToken: string) {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok;\r\n\t\t} catch {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tasync sendVerificationCode(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\r\n\t\tif (input.channel === 'EMAIL') throw new Error('Email channel is not yet supported');\r\n\r\n\t\tfunction getErrorCode(message: string): SendVerificationCodeError__Next | null {\r\n\t\t\tswitch (message) {\r\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\r\n\t\t\t\t\treturn 'AccountNotFoundError';\r\n\t\t\t\tcase 'RATE_LIMIT_REACH':\r\n\t\t\t\t\treturn 'RateLimitExceededError';\r\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\r\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: this.headers,\r\n\t\t\t\tbody: JSON.stringify(input),\r\n\t\t\t});\r\n\r\n\t\t\tif (res.status === 403) {\r\n\t\t\t\tconst data = await res.json();\r\n\t\t\t\tconst code = getErrorCode(data.message);\r\n\r\n\t\t\t\tif (code) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError(code),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync createSingleUseToken(\r\n\t\taccessToken: string,\r\n\t): Promise<OperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/token`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (res.status === 403 || res.status === 401) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","function isFunction<Return, Args = never>(\r\n\tvalue: unknown | ((...args: Args[]) => Return),\r\n): value is (...args: Args[]) => Return {\r\n\treturn typeof value === 'function';\r\n}\r\n\r\nexport function callIfFn<Return, Args = never>(\r\n\tvalue: Return | ((...args: Args[]) => Return),\r\n\t...args: Args[]\r\n) {\r\n\tif (isFunction<Return, Args>(value)) {\r\n\t\treturn value(...args);\r\n\t} else {\r\n\t\treturn value;\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { callIfFn } from '../utils/call-if-fn.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tGame,\r\n\tGameQuery,\r\n\tGamesQuery,\r\n\tGamesQueryVariables,\r\n\tGamesQueryVariables__Next,\r\n\tPaginatedQueryResult,\r\n\tSite,\r\n\tSiteQuery,\r\n} from './types.js';\r\n\r\nexport interface CmsPortalServiceConfig {\r\n\turl: string;\r\n\tsite: string;\r\n\tplatform: string;\r\n\tfetch?: typeof globalThis.fetch | null;\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class CmsPortalService {\r\n\tprivate config: Getter<CmsPortalServiceConfig> | CmsPortalServiceConfig;\r\n\r\n\tconstructor(config: CmsPortalServiceConfig | Getter<CmsPortalServiceConfig>) {\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync self(): Promise<OperationResult<never, Site>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${config.site}`);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync games(\r\n\t\tvariables?: GamesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync games__next(\r\n\t\tvariables?: GamesQueryVariables__Next,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) {\r\n\t\t\tsearch.set('sort[order]', variables.sort.order);\r\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\r\n\t\t}\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync game(id: string): Promise<OperationResult<never, Game | null | undefined>> {\r\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\r\n\r\n\t\tif (res.error?.name === 'HttpNotFound') {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate async getJson<T>(\r\n\t\tpath: string,\r\n\t\tparams?: URLSearchParams,\r\n\t): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\tconst req = new Request(`${config.url}${path}?${params?.toString() ?? ''}`, {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: {\r\n\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Site-ID': config.site,\r\n\t\t\t\t'Platform-ID': config.platform,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(req);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: await res.json(),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\r\nimport type {\r\n\tFile,\r\n\tFileQuery,\r\n\tFileQueryVariables,\r\n\tUploadPrivateImageFileError,\r\n\tUploadPrivateImageFileMutation,\r\n\tUploadPrivateImageFileMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class FileService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync file(\r\n\t\tvariables: FileQueryVariables,\r\n\t): Promise<OperationResult<never, File | null | undefined>> {\r\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(FILE_QUERY, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.node,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadPrivateImageFile(\r\n\t\tvariables: UploadPrivateImageFileMutationVariables,\r\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\r\n\t\tconst res = await this.client.upload<\r\n\t\t\tUploadPrivateImageFileMutation,\r\n\t\t\tUploadPrivateImageFileMutationVariables\r\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.uploadPrivateImageFile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tGAME_SESSION_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class GameService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery<true>, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.legacy,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tconst data = !res.data.node ? null : { ...res.data.node, game: res.data.node.game.id };\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tEndGameSessionMutation<true>,\r\n\t\t\tEndGameSessionMutationVariables\r\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCOMPLETE_ONBOARDING_MUTATION,\r\n\tLATEST_BET_RECORDS_QUERY,\r\n\tONBOARDING_STATUS_QUERY,\r\n\tPLATFORM_QUERY__NEXT,\r\n\tRECOMMENDED_GAMES_QUERY,\r\n\tSKIP_ONBOARDING_MUTATION,\r\n\tTOP_WINS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCompleteOnboardingMutation,\r\n\tCompleteOnboardingMutationVariables,\r\n\tLatestBetRecord,\r\n\tLatestBetRecordsQuery,\r\n\tOnboardingStatus,\r\n\tOnboardingStatusQuery,\r\n\tPlatformQuery__Next,\r\n\tRecommendedGame,\r\n\tRecommendedGamesQuery,\r\n\tSkipOnboardingMutation,\r\n\tTopWin,\r\n\tTopWinsQuery,\r\n} from './types.js';\r\n\r\nexport class PortalService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\r\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(LATEST_BET_RECORDS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.latestBetRecords,\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\r\n\t\tconst res = await this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\r\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(RECOMMENDED_GAMES_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.recommendedGames,\r\n\t\t};\r\n\t}\r\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\r\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(ONBOARDING_STATUS_QUERY);\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\r\n\t}\r\n\r\n\tasync completeOnboarding(\r\n\t\tvariables: CompleteOnboardingMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCompleteOnboardingMutation,\r\n\t\t\tCompleteOnboardingMutationVariables\r\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.completeOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(SKIP_ONBOARDING_MUTATION);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.skipOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\r\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.topWins,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tACTIVITY_RECORDS_QUERY,\r\n\tBET_RECORDS_QUERY,\r\n\tDEPOSITS_COUNT_QUERY,\r\n\tDEPOSIT_RECORDS_QUERY,\r\n\tDOWNLINES_BY_NAME_QUERY,\r\n\tJACKPOTS_QUERY,\r\n\tJACKPOT_PAYOUTS_QUERY,\r\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\r\n\tPROMO_BY_CODE_QUERY,\r\n\tREFERRALS_QUERY,\r\n\tREFERRAL_COMMISSION_QUERY,\r\n\tTOURNAMENTS_QUERY,\r\n\tTRANSACTION_RECORDS_QUERY,\r\n\tUPLINES_BY_NAME_QUERY,\r\n\tWITHDRAWAL_RECORDS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tActivityRecord,\r\n\tActivityRecordsQuery,\r\n\tActivityRecordsQueryVariables,\r\n\tBetRecord,\r\n\tBetRecordsQuery,\r\n\tBetRecordsQueryVariables,\r\n\tDepositRecord,\r\n\tDepositRecordsQuery,\r\n\tDepositRecordsQueryVariables,\r\n\tDepositsCountQuery,\r\n\tDownlinesByNameQuery,\r\n\tDownlinesByNameQueryVariables,\r\n\tJackpot,\r\n\tJackpotPayout,\r\n\tJackpotPayoutsQuery,\r\n\tJackpotPayoutsQueryVariables,\r\n\tJackpotsQuery,\r\n\tJackpotsQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tPointsWalletTransaction,\r\n\tPointsWalletTransactionsQuery,\r\n\tPointsWalletTransactionsQueryVariables,\r\n\tPromoByCodeQuery,\r\n\tPromoByCodeQueryVariables,\r\n\tReferral,\r\n\tReferralCommission,\r\n\tReferralCommissionQuery,\r\n\tReferralsQuery,\r\n\tReferralsQueryVariables,\r\n\tSpotBonusPromo,\r\n\tTournament,\r\n\tTournamentsQuery,\r\n\tTournamentsQueryVariables,\r\n\tTransactionRecord,\r\n\tTransactionRecordsQuery,\r\n\tTransactionRecordsQueryVariables,\r\n\tUplinesByNameQuery,\r\n\tUplinesByNameQueryVariables,\r\n\tWithdrawalRecord,\r\n\tWithdrawalRecordsQuery,\r\n\tWithdrawalRecordsQueryVariables,\r\n} from './types.js';\r\n\r\nexport class ReportService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync betRecords(\r\n\t\tvariables?: BetRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\r\n\t\tconst res = await this.client.request<BetRecordsQuery, BetRecordsQueryVariables>(\r\n\t\t\tBET_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\r\n\t}\r\n\r\n\tasync transactionRecords(\r\n\t\tvariables?: TransactionRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTransactionRecordsQuery,\r\n\t\t\tTransactionRecordsQueryVariables\r\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.transactionRecords } : res;\r\n\t}\r\n\r\n\tasync withdrawalRecords(\r\n\t\tvariables?: WithdrawalRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\r\n\t\tconst res = await this.client.request<WithdrawalRecordsQuery, WithdrawalRecordsQueryVariables>(\r\n\t\t\tWITHDRAWAL_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.withdrawalRecords } : res;\r\n\t}\r\n\r\n\tasync depositRecords(\r\n\t\tvariables?: DepositRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\r\n\t\tconst res = await this.client.request<DepositRecordsQuery, DepositRecordsQueryVariables>(\r\n\t\t\tDEPOSIT_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tPointsWalletTransactionsQuery,\r\n\t\t\tPointsWalletTransactionsQueryVariables\r\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.pointsWalletTransactions } : res;\r\n\t}\r\n\r\n\tasync activityRecords(\r\n\t\tvariables?: ActivityRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\r\n\t\tconst res = await this.client.request<ActivityRecordsQuery, ActivityRecordsQueryVariables>(\r\n\t\t\tACTIVITY_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\r\n\t}\r\n\r\n\tasync referrals(\r\n\t\tvariables?: ReferralsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\r\n\t\tconst res = await this.client.request<ReferralsQuery, ReferralsQueryVariables>(\r\n\t\t\tREFERRALS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<\r\n\t\tOperationResult<never, ReferralCommission | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(REFERRAL_COMMISSION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referralCommission } : res;\r\n\t}\r\n\r\n\tasync uplinesByName(\r\n\t\tvariables: UplinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<UplinesByNameQuery, UplinesByNameQueryVariables>(\r\n\t\t\tUPLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\r\n\t}\r\n\tasync downlinesByName(\r\n\t\tvariables: DownlinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<DownlinesByNameQuery, DownlinesByNameQueryVariables>(\r\n\t\t\tDOWNLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\r\n\t}\r\n\r\n\tasync promoByCode(\r\n\t\tvariables: PromoByCodeQueryVariables,\r\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\r\n\t\tconst res = await this.client.request<PromoByCodeQuery, PromoByCodeQueryVariables>(\r\n\t\t\tPROMO_BY_CODE_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\r\n\t}\r\n\r\n\tasync jackpots(\r\n\t\tvariables?: JackpotsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\r\n\t\tconst res = await this.client.request<JackpotsQuery, JackpotsQueryVariables>(\r\n\t\t\tJACKPOTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.jackpots,\r\n\t\t};\r\n\t}\r\n\r\n\tasync jackpotPayouts(\r\n\t\tvariables?: JackpotPayoutsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\r\n\t\tconst res = await this.client.request<JackpotPayoutsQuery, JackpotPayoutsQueryVariables>(\r\n\t\t\tJACKPOT_PAYOUTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.jackpotPayouts,\r\n\t\t};\r\n\t}\r\n\r\n\tasync tournaments(\r\n\t\tvariables?: TournamentsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\r\n\t\tconst res = await this.client.request<TournamentsQuery, TournamentsQueryVariables>(\r\n\t\t\tTOURNAMENTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.tournaments,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_QUESTS_QUERY,\r\n\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\tCLAIM_REWARD_MUTATION,\r\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\r\n\tMARK_MESSAGE_AS_READ_MUTATION,\r\n\tMESSAGES_QUERY,\r\n\tREGISTER_FCM_DEVICE,\r\n\tUNREAD_MESSAGES_COUNT_QUERY,\r\n\tUNREGISTER_FCM_DEVICE,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailableQuestsQuery,\r\n\tCheckInDailyQuestMutation,\r\n\tCheckInDailyQuestQueryVariables,\r\n\tClaimRewardError,\r\n\tClaimRewardMutation,\r\n\tClaimRewardMutationVariables,\r\n\tMarkAllMessageAsReadMutation,\r\n\tMarkAllMessagesAsReadMutation,\r\n\tMarkMessageAsReadMutation,\r\n\tMarkMessageAsReadMutationVariables,\r\n\tMessage,\r\n\tMessagesQuery,\r\n\tMessagesQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tQuest,\r\n\tRegisterFCMDeviceMutation,\r\n\tRegisterFCMDeviceMutationVariables,\r\n\tUnreadMessagesCountQuery,\r\n\tUnreadMessagesCountQueryVariables,\r\n\tUnregisterFCMDeviceMutation,\r\n\tUnregisterFCMDeviceMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class TriggerService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync messages(\r\n\t\tvariables?: MessagesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\r\n\t\tconst res = await this.client.request<MessagesQuery, MessagesQueryVariables>(\r\n\t\t\tMESSAGES_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages } : res;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(\r\n\t\tvariables?: UnreadMessagesCountQueryVariables,\r\n\t): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<UnreadMessagesCountQuery, MessagesQueryVariables>(\r\n\t\t\tUNREAD_MESSAGES_COUNT_QUERY,\r\n\t\t\t{\r\n\t\t\t\t...variables,\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...variables?.filter,\r\n\t\t\t\t\tmarkedAsRead: {\r\n\t\t\t\t\t\tequal: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\r\n\t}\r\n\r\n\tasync markMessageAsRead(variables: MarkMessageAsReadMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tMarkMessageAsReadMutation,\r\n\t\t\tMarkMessageAsReadMutationVariables\r\n\t\t>(MARK_MESSAGE_AS_READ_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<MarkAllMessageAsReadMutation>(\r\n\t\t\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markAllMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<MarkAllMessagesAsReadMutation>(\r\n\t\t\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markAllMessagesAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimReward(\r\n\t\tvariables: ClaimRewardMutationVariables,\r\n\t): Promise<OperationResult<ClaimRewardError>> {\r\n\t\tconst res = await this.client.request<ClaimRewardMutation, ClaimRewardMutationVariables>(\r\n\t\t\tCLAIM_REWARD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.claimReward) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimReward.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync availableQuests(): Promise<OperationResult<never, Quest[]>> {\r\n\t\tconst res = await this.client.request<AvailableQuestsQuery>(AVAILABLE_QUESTS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.availableQuests,\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(\r\n\t\tvariables: CheckInDailyQuestQueryVariables,\r\n\t): Promise<OperationResult<never, boolean>> {\r\n\t\tconst res = await this.client.request<CheckInDailyQuestMutation>(\r\n\t\t\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.checkInDailyQuest,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerFCMDevice(variables: RegisterFCMDeviceMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterFCMDeviceMutation,\r\n\t\t\tRegisterFCMDeviceMutationVariables\r\n\t\t>(REGISTER_FCM_DEVICE, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.registerFCMDevice) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(\r\n\t\tvariables: UnregisterFCMDeviceMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUnregisterFCMDeviceMutation,\r\n\t\t\tUnregisterFCMDeviceMutationVariables\r\n\t\t>(UNREGISTER_FCM_DEVICE, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.unregisterFCMDevice) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_PROMOS_QUERY,\r\n\tBONUSES_QUERY,\r\n\tBONUS_QUERY,\r\n\tCASHBACKS_QUERY,\r\n\tCASHBACK_BONUSES_QUERY,\r\n\tCLAIM_CASHBACK_BONUS_MUTATION,\r\n\tCLAIM_SPOT_BONUS,\r\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\r\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\r\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\r\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tCREATE_GCASH_DEPOSIT_MUTATION,\r\n\tCREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION,\r\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\r\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\r\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\r\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\r\n\tCREATE_MANUAL_UPI_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\r\n\tDEPOSIT_QUERY,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tFAVORITE_GAMES_QUERY,\r\n\tGAME_SESSION_QUERY,\r\n\tINSTAPAY_BANK_LIST_QUERY,\r\n\tMARK_GAME_AS_FAVORITE,\r\n\tMAYA_SESSION_QUERY,\r\n\tPOINTS_WALLET_QUERY,\r\n\tPROMOS_QUERY,\r\n\tREDEEM_POINTS_TO_CASH_MUTATION,\r\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\r\n\tTOUCH_QRPH_DEPOSIT_MUTATION,\r\n\tUNMARK_GAME_AS_FAVORITE,\r\n\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\tWALLET_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailablePromosQuery,\r\n\tAvailablePromosQueryVariables,\r\n\tBonus,\r\n\tBonusQuery,\r\n\tBonusesQuery,\r\n\tCashback,\r\n\tCashbackBonus,\r\n\tCashbackBonusesQuery,\r\n\tCashbacksQuery,\r\n\tClaimCashbackBonusError,\r\n\tClaimCashbackBonusMutation,\r\n\tClaimCashbackBonusMutationVariables,\r\n\tClaimSpotBonusError,\r\n\tClaimSpotBonusMutation,\r\n\tClaimSpotBonusMutationVariables,\r\n\tCreateAIOInstapayWithdrawalMutation,\r\n\tCreateAIOInstapayWithdrawalMutationVariables,\r\n\tCreateAIOOnlineBankDepositMutation,\r\n\tCreateAIOOnlineBankDepositMutationVariables,\r\n\tCreateAIOQRPHDepositMutation,\r\n\tCreateAIOQRPHDepositMutationVariables,\r\n\tCreateBankWithdrawalMutation,\r\n\tCreateBankWithdrawalMutationVariables,\r\n\tCreateDepositError,\r\n\tCreateGCashDepositMutation,\r\n\tCreateGCashDepositMutationVariables,\r\n\tCreateGCashDirectWebpayDepositMutation,\r\n\tCreateGCashDirectWebpayDepositMutationVariables,\r\n\tCreateGCashWithdrawalMutation,\r\n\tCreateGCashWithdrawalMutationVariables,\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tCreateManualBankDeposiMutationVariables,\r\n\tCreateManualBankDepositMutation,\r\n\tCreateManualBankWithdrawalMutation,\r\n\tCreateManualBankWithdrawalMutationVariables,\r\n\tCreateManualUPIDepositMutation,\r\n\tCreateManualUPIDepositMutationVariables,\r\n\tCreateManualUpiDepositMutation,\r\n\tCreateManualUpiDepositMutationVariables,\r\n\tCreateManualUpiWithdrawalMutation,\r\n\tCreateManualUpiWithdrawalMutationVariables,\r\n\tCreateMayaAppDepositMutation,\r\n\tCreateMayaAppDepositMutationVariables,\r\n\tCreateMayaAppWithdrawalMutation,\r\n\tCreateMayaAppWithdrawalMutationVariables,\r\n\tCreateMayaDepositMutation,\r\n\tCreateMayaDepositMutationVariables,\r\n\tCreateMayaWithdrawalMutation,\r\n\tCreateMayaWithdrawalMutationVariables,\r\n\tCreateWithdrawalError,\r\n\tDeposit,\r\n\tDepositQuery,\r\n\tDepositQueryVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tFavoriteGame,\r\n\tFavoriteGamesQuery,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n\tInstapayBank,\r\n\tInstapayBankListQuery,\r\n\tMarkGameAsFavoriteMutation,\r\n\tMarkGameAsFavoriteMutationVariables,\r\n\tMayaSession,\r\n\tMayaSessionQuery,\r\n\tMayaSessionQueryVariables,\r\n\tPointsWallet,\r\n\tPointsWalletQuery,\r\n\tPromo,\r\n\tPromosQuery,\r\n\tRedeemPointsToCashError,\r\n\tRedeemPointsToCashMutation,\r\n\tRedeemPointsToCashMutationVariables,\r\n\tRemainingDailyWithdrawalsCountQuery,\r\n\tTouchGCashDepositMutation,\r\n\tTouchGCashDepositMutationVariables,\r\n\tTouchQrphDepositMutation,\r\n\tTouchQrphDepositMutationVariables,\r\n\tUnmarkGameAsFavoriteMutation,\r\n\tUnmarkGameAsFavoriteMutationVariables,\r\n\tValidateMayaSessionMutation,\r\n\tWallet,\r\n\tWalletQuery,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class WalletService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\r\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\r\n\t}\r\n\r\n\tasync availablePromos(\r\n\t\tvariables?: AvailablePromosQueryVariables,\r\n\t): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<AvailablePromosQuery, AvailablePromosQueryVariables>(\r\n\t\t\tAVAILABLE_PROMOS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\r\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(CASHBACK_BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\r\n\t}\r\n\r\n\tasync claimCashbackBonus(\r\n\t\tvariables: ClaimCashbackBonusMutationVariables,\r\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tClaimCashbackBonusMutation,\r\n\t\t\tClaimCashbackBonusMutationVariables\r\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimCashbackBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\r\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\r\n\t}\r\n\r\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\r\n\t}\r\n\r\n\tasync deposit(\r\n\t\tvariables: DepositQueryVariables,\r\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\r\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\r\n\t\t\tDEPOSIT_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGCashDeposit(\r\n\t\tvariables: CreateGCashDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashDepositMutation,\r\n\t\t\tCreateGCashDepositMutationVariables\r\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\tasync createGCashDirectWebpayDeposit(\r\n\t\tvariables: CreateGCashDirectWebpayDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashDirectWebpayDepositMutation,\r\n\t\t\tCreateGCashDirectWebpayDepositMutationVariables\r\n\t\t>(CREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashDirectWebpayDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashDirectWebpayDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaDeposit(\r\n\t\tvariables: CreateMayaDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaDepositMutation,\r\n\t\t\tCreateMayaDepositMutationVariables\r\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOQRPHDeposit(\r\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOQRPHDepositMutation,\r\n\t\t\tCreateAIOQRPHDepositMutationVariables\r\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOQRPHDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOOnlineBankDeposit(\r\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOOnlineBankDepositMutation,\r\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\r\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOOnlineBankDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOOnlineBankDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualBankDeposit(\r\n\t\tvariables: CreateManualBankDeposiMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualBankDepositMutation,\r\n\t\t\tCreateManualBankDeposiMutationVariables\r\n\t\t>(CREATE_MANUAL_BANK_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualBankDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualBankDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUPIDeposit(\r\n\t\tvariables: CreateManualUPIDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUPIDepositMutation,\r\n\t\t\tCreateManualUPIDepositMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUPIDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppDeposit(\r\n\t\tvariables: CreateMayaAppDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppDepositMutation,\r\n\t\t\tCreateMayaAppDepositMutationVariables\r\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUpiDeposit(\r\n\t\tvariables: CreateManualUpiDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUpiDepositMutation,\r\n\t\t\tCreateManualUpiDepositMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUPIDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGCashWithdrawal(\r\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashWithdrawalMutation,\r\n\t\t\tCreateGCashWithdrawalMutationVariables\r\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaWithdrawal(\r\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaWithdrawalMutation,\r\n\t\t\tCreateMayaWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppWithdrawal(\r\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppWithdrawalMutation,\r\n\t\t\tCreateMayaAppWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createBankWithdrawal(\r\n\t\tvariables: CreateBankWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateBankWithdrawalMutation,\r\n\t\t\tCreateBankWithdrawalMutationVariables\r\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createBankWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOInstapayWithdrawal(\r\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOInstapayWithdrawalMutation,\r\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\r\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOInstapayWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOInstapayWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUpiWithdrawal(\r\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUpiWithdrawalMutation,\r\n\t\t\tCreateManualUpiWithdrawalMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUpiWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUpiWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualBankWithdrawal(\r\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualBankWithdrawalMutation,\r\n\t\t\tCreateManualBankWithdrawalMutationVariables\r\n\t\t>(CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualBankWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualBankWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\r\n\t\tconst res = await this.client.request<InstapayBankListQuery>(INSTAPAY_BANK_LIST_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\r\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWallet(): Promise<OperationResult<never, PointsWallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\r\n\t}\r\n\r\n\tasync redeemPointsToCash(\r\n\t\tvariables: RedeemPointsToCashMutationVariables,\r\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRedeemPointsToCashMutation,\r\n\t\t\tRedeemPointsToCashMutationVariables\r\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.redeemPointsToCash) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync mayaSession(\r\n\t\tvariables: MayaSessionQueryVariables,\r\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<MayaSessionQuery, MayaSessionQueryVariables>(\r\n\t\t\tMAYA_SESSION_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<EndGameSessionMutation, EndGameSessionMutationVariables>(\r\n\t\t\tEND_GAME_SESSION_MUTATION.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\r\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.validateMayaSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\r\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\r\n\t}\r\n\r\n\tasync claimSpotBonus(\r\n\t\tvariables: ClaimSpotBonusMutationVariables,\r\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\r\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariables>(\r\n\t\t\tCLAIM_SPOT_BONUS,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimSpotBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync touchGCashDeposit(variables: TouchGCashDepositMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTouchGCashDepositMutation,\r\n\t\t\tTouchGCashDepositMutationVariables\r\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.touchGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync touchQrphDeposit(variables: TouchQrphDepositMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTouchQrphDepositMutation,\r\n\t\t\tTouchQrphDepositMutationVariables\r\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.touchQRPHDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync markGameAsFavorite(\r\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tMarkGameAsFavoriteMutation,\r\n\t\t\tMarkGameAsFavoriteMutationVariables\r\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markGameAsFavorite) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\tasync unmarkGameAsFavorite(\r\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUnmarkGameAsFavoriteMutation,\r\n\t\t\tUnmarkGameAsFavoriteMutationVariables\r\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.unmarkGameAsFavorite) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\r\n\t\tconst res = await this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.favoriteGames) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.favoriteGames,\r\n\t\t};\r\n\t}\r\n}\r\n","export function cloneDate(date: Date) {\r\n\treturn new Date(date.getTime());\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addMinutes(date: Date, minutes: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() + minutes);\r\n\treturn result;\r\n}\r\n","/**\r\n * is `date1` after `date2`?\r\n */\r\nexport function isAfter(date1: Date, date2: Date) {\r\n\treturn date1.getTime() > date2.getTime();\r\n}\r\n","import { addMinutes } from './add-minutes.js';\r\nimport { isAfter } from './is-after.js';\r\n\r\ninterface CacheValue<T> {\r\n\tvalue: T;\r\n\tvalidUntil: Date;\r\n}\r\n\r\ninterface CacheConfig {\r\n\t/**\r\n\t * @description The number in minutes the cache is valid\r\n\t * @default 5\r\n\t */\r\n\tcacheTime: number;\r\n}\r\n\r\nexport class Cache<T = unknown> {\r\n\tprivate config: CacheConfig;\r\n\tprivate cache: Record<string, CacheValue<T>>;\r\n\r\n\tconstructor(config?: CacheConfig) {\r\n\t\tthis.cache = {};\r\n\t\tthis.config = {\r\n\t\t\tcacheTime: 5,\r\n\t\t\t...config,\r\n\t\t};\r\n\t}\r\n\r\n\tset(key: string, value: T) {\r\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\r\n\r\n\t\tthis.cache[key] = {\r\n\t\t\tvalue,\r\n\t\t\tvalidUntil,\r\n\t\t};\r\n\t}\r\n\r\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\r\n\t\tconst o = this.cache[key];\r\n\t\tif (!o) return null;\r\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\r\n\t\treturn o.value as any;\r\n\t}\r\n}\r\n","export function clamp(value: number, min: number, max: number) {\r\n\tif (value < min) return min;\r\n\tif (value > max) return max;\r\n\treturn value;\r\n}\r\n","export function isPlainObject(value: unknown): value is Record<string, any> {\r\n\treturn Object.prototype.toString.call(value) === '[object Object]' && Object(value) === value;\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function flatten(value: Record<string, any> | any[]) {\r\n\tconst result: {\r\n\t\tkey: string[];\r\n\t\tvalue: any;\r\n\t}[] = [];\r\n\r\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\r\n\t\tfor (const k in o) {\r\n\t\t\tconst v = o[k];\r\n\r\n\t\t\tif (isPlainObject(v)) {\r\n\t\t\t\tfn(v, [...parentKeys, k]);\r\n\t\t\t} else if (Array.isArray(v)) {\r\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\r\n\t\t\t} else {\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tkey: [...parentKeys, k],\r\n\t\t\t\t\tvalue: v,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfn(value);\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction arrayToObject(array: unknown[]) {\r\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\r\n\t\to[i] = v;\r\n\t\treturn o;\r\n\t}, {});\r\n}\r\n","import type { GenericObject, OperationResult } from '../types/index.js';\r\nimport { callIfFn } from './call-if-fn.js';\r\nimport { flatten } from './flatten.js';\r\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\r\n\r\ntype ModifiableKey =\r\n\t| 'mode'\r\n\t| 'cache'\r\n\t| 'signal'\r\n\t| 'headers'\r\n\t| 'integrity'\r\n\t| 'keepalive'\r\n\t| 'credentials';\r\n\r\ntype Modifiable = {\r\n\t[K in ModifiableKey]: Request[K];\r\n};\r\n\r\nexport interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {}\r\n\r\nexport type GraphQLClientMiddleware = (\r\n\trequest: ModifiedRequest,\r\n) => ModifiedRequest | Promise<ModifiedRequest>;\r\n\r\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {}\r\n\r\nexport interface GraphQLClientConfig {\r\n\tfetch?: typeof globalThis.fetch | null;\r\n\tfetchOptions?: GraphQLClientFetchOptions;\r\n\tmiddlewares?: GraphQLClientMiddleware[];\r\n}\r\n\r\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\r\ntype GraphQLErrorExtensionCode =\r\n\t| 'FORBIDDEN'\r\n\t| 'UNAUTHORIZED'\r\n\t| 'BAD_REQUEST'\r\n\t| 'BAD_USER_INPUT'\r\n\t| 'INTERNAL_SERVER_ERROR'\r\n\t| 'ACCESS_TOKEN_EXPIRED';\r\n\r\ninterface GraphQLErrorExtensions {\r\n\tcode: GraphQLErrorExtensionCode;\r\n\tstacktrace: string[];\r\n}\r\n\r\ninterface GraphQLErrorLocation {\r\n\tline: number;\r\n\tcolumn: number;\r\n}\r\n\r\ninterface GraphQLError {\r\n\tpath: string[];\r\n\tmessage?: string;\r\n\textensions?: GraphQLErrorExtensions;\r\n\tlocations: GraphQLErrorLocation[];\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class GraphQLClient {\r\n\tprivate url: string;\r\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\r\n\r\n\tconstructor(url: string, config: Getter<GraphQLClientConfig> | GraphQLClientConfig = {}) {\r\n\t\tthis.url = url;\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables?: Variables,\r\n\t\tuserOptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst options = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...config?.fetchOptions,\r\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\tuserOptions,\r\n\t\t);\r\n\r\n\t\tconst body = JSON.stringify({\r\n\t\t\tquery,\r\n\t\t\tvariables,\r\n\t\t});\r\n\r\n\t\tconst headers = new Headers(options.headers);\r\n\r\n\t\theaders.set('Content-Type', 'application/json');\r\n\t\theaders.set('Accept', 'application/json');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...options,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tconfig?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\t/** Single file upload */\r\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst cfg = callIfFn(this.config);\r\n\t\tconst opts = mergeFetchOptions(\r\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\r\n\t\t\toptions,\r\n\t\t);\r\n\r\n\t\tconst body = this.createUploadBody(query, variables);\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.delete('Content-Type');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tcfg?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(request);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t\t}\r\n\r\n\t\t\tconst json = await res.json();\r\n\t\t\tconst data = json.data;\r\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\r\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(403, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(401, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\r\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(400, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Fallback for unknown error codes */\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async runMiddlewares(\r\n\t\treq: ModifiedRequest,\r\n\t\tmiddlewares: GraphQLClientMiddleware[],\r\n\t): Promise<ModifiedRequest> {\r\n\t\tlet result = req.clone();\r\n\r\n\t\tfor (const middleware of middlewares) {\r\n\t\t\tresult = await middleware(result);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t) {\r\n\t\tconst files = flatten(variables).filter(\r\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\r\n\t\t);\r\n\r\n\t\tconst body = new FormData();\r\n\r\n\t\tbody.append(\r\n\t\t\t'operations',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tconst map: GenericObject = {};\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\r\n\t\t});\r\n\r\n\t\tbody.append('map', JSON.stringify(map));\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tbody.append(i.toString(), o.value);\r\n\t\t});\r\n\r\n\t\treturn body;\r\n\t}\r\n}\r\n\r\nfunction getOperationInfo(query: string) {\r\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\r\n\r\n\tif (!l) return null;\r\n\r\n\tconst k = l.at(1);\r\n\tconst v = l.at(2);\r\n\r\n\treturn k && v ? { type: k, name: v } : null;\r\n}\r\n\r\nfunction mergeFetchOptions(\r\n\ti: GraphQLClientFetchOptions | undefined,\r\n\tj: GraphQLClientFetchOptions | undefined,\r\n): GraphQLClientFetchOptions {\r\n\tif (!i) return j ?? {};\r\n\tif (!j) return i ?? {};\r\n\r\n\treturn {\r\n\t\t...i,\r\n\t\t...j,\r\n\r\n\t\theaders: mergeHeaders(i.headers, j.headers),\r\n\t};\r\n}\r\n\r\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\r\n\tif (!i) return j;\r\n\tif (!j) return i;\r\n\r\n\tconst h = new Headers();\r\n\r\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\r\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\r\n\r\n\treturn h;\r\n}\r\n","export async function sha256(input: string) {\r\n\tconst msgUint8 = new TextEncoder().encode(input);\r\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\tconst hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\r\n\treturn hashHex;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addDays(date: Date, days: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setDate(result.getDate() + days);\r\n\treturn result;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function subMinutes(date: Date, minutes: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() - minutes);\r\n\treturn result;\r\n}\r\n","import { addDays } from '../utils/add-days.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\n\r\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\r\n\r\ninterface AdManagerConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class AdManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: AdManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset clickId(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget clickId(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import type { Logger } from './logger.js';\r\nimport type { Environment } from './types.js';\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tCapacitor?: {\r\n\t\t\tisNativePlatform?: () => boolean;\r\n\t\t};\r\n\t\tcordova?: unknown;\r\n\t}\r\n}\r\n\r\nexport interface DomainManagerConfig {\r\n\tlogger: Logger;\r\n\tplatform: string;\r\n\tenvironment: Environment;\r\n}\r\n\r\nexport class DomainManager {\r\n\tprivate logger: Logger;\r\n\tprivate platform: string;\r\n\tprivate environment: Environment;\r\n\r\n\tconstructor(config: DomainManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t\tthis.platform = config.platform;\r\n\t\tthis.environment = config.environment;\r\n\t}\r\n\r\n\tget domain() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn('Cannot determine domain on the server.');\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (this.isIOSApp) return `ios/${this.platform}`.toLowerCase();\r\n\t\tif (this.isAndroidApp) return `android/${this.platform}`.toLowerCase();\r\n\r\n\t\tconst url = new URL(window.location.href);\r\n\t\tconst rootDomain = url.hostname;\r\n\t\tconst mParam = url.searchParams.get('m');\r\n\r\n\t\treturn mParam ? `${rootDomain}/${mParam}` : rootDomain;\r\n\t}\r\n\r\n\tget metaPixelId() {\r\n\t\tconst url = new URL(window.location.href);\r\n\r\n\t\tconst map: Record<string, string> = {\r\n\t\t\t'crazywin.ph': '587374767622209',\r\n\t\t\t'crazywin.asia': '587374767622209',\r\n\t\t\t'happybingo.ph': '617045164450475',\r\n\t\t\t...(this.environment === 'production' && {\r\n\t\t\t\t'crazywinph.ph': '587374767622209',\r\n\t\t\t}),\r\n\t\t};\r\n\r\n\t\tconst metaPixelId = map[url.hostname] ? map[url.hostname] : url.hostname;\r\n\t\treturn metaPixelId.toLowerCase();\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n\r\n\tprivate get isNative(): boolean {\r\n\t\treturn !!(window.Capacitor?.isNativePlatform?.() || window.cordova !== undefined);\r\n\t}\r\n\r\n\tprivate get isIOSApp(): boolean {\r\n\t\treturn (\r\n\t\t\t(['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\r\n\t\t\t\tnavigator.platform,\r\n\t\t\t) ||\r\n\t\t\t\t(navigator.userAgent.includes('Mac') && 'ontouchend' in window)) &&\r\n\t\t\tthis.isNative\r\n\t\t);\r\n\t}\r\n\r\n\tprivate get isAndroidApp(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.isNative &&\r\n\t\t\t/Android/i.test(navigator.userAgent) &&\r\n\t\t\t(window.Capacitor?.isNativePlatform?.() ||\r\n\t\t\t\twindow.cordova !== undefined ||\r\n\t\t\t\t/(wv|Version\\/)/i.test(navigator.userAgent))\r\n\t\t);\r\n\t}\r\n}\r\n","interface LoggerConfig {\r\n\t/**\r\n\t * @default true\r\n\t */\r\n\tenabled?: boolean;\r\n}\r\n\r\nexport class Logger {\r\n\tprivate enabled: boolean;\r\n\r\n\tconstructor(config?: LoggerConfig) {\r\n\t\tthis.enabled = config?.enabled ?? true;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\r\n\t}\r\n\r\n\twarn(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\r\n\t}\r\n\r\n\terror(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\r\n\t}\r\n\r\n\tsuccess(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\r\n\t}\r\n}\r\n","export function sleep(ms: number) {\r\n\treturn new Promise<void>((resolve) => {\r\n\t\tsetTimeout(resolve, ms);\r\n\t});\r\n}\r\n","import { sleep } from './sleep.js';\r\n\r\ninterface Config<T> {\r\n\tuntil(response: T): boolean;\r\n\t/**\r\n\t * @default 1000\r\n\t */\r\n\tinterval?: number;\r\n\t/**\r\n\t * @default 3\r\n\t */\r\n\tmaxAttempt?: number;\r\n}\r\n\r\n/**\r\n * @example\r\n * ```ts\r\n * const poll = pollable(\r\n * fn,\r\n * {\r\n * until: (r) => r.ok,\r\n * interval: 1000,\r\n * maxAttempt: 5,\r\n * }\r\n * );\r\n *\r\n * poll()\r\n * ```\r\n */\r\nexport function pollable<Return, Args = never>(\r\n\tfunc: (...args: Args[]) => Promise<Return>,\r\n\tconfig: Config<Return>,\r\n) {\r\n\tconst {\r\n\t\tuntil,\r\n\t\tinterval = 1000,\r\n\t\tmaxAttempt = 3,\r\n\t\t/**/\r\n\t} = config;\r\n\r\n\tasync function repeater(args: Args[], max?: number) {\r\n\t\tconst m = max ?? maxAttempt;\r\n\t\tconst r = await func(...args);\r\n\t\tconst k = until(r);\r\n\r\n\t\tif (k) return r;\r\n\r\n\t\tif (m > 1) {\r\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\r\n\t\t\treturn repeater(args, m - 1);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\treturn async (...args: Args[]): Promise<Return> => {\r\n\t\treturn await repeater(args);\r\n\t};\r\n}\r\n","import cookies from 'js-cookie';\r\nimport type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManagerCookie {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tcookies.set(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tcookies.set(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t\t{},\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tcookies.remove(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tcookies.remove(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManager {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tlocalStorage.setItem(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tlocalStorage.setItem(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tlocalStorage.removeItem(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function compact<T>(obj: Record<string, any>) {\r\n\tconst output: Record<string, any> = {};\r\n\r\n\tfor (const k in obj) {\r\n\t\tconst v = obj[k];\r\n\r\n\t\tif (v === null) continue;\r\n\t\tif (v === undefined) continue;\r\n\r\n\t\tif (isPlainObject(v)) {\r\n\t\t\toutput[k] = compact(v);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(v)) {\r\n\t\t\toutput[k] = v.map((i) => {\r\n\t\t\t\tif (isPlainObject(i)) {\r\n\t\t\t\t\treturn compact(i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\toutput[k] = v;\r\n\t}\r\n\r\n\treturn output as T;\r\n}\r\n","export function invariant(condition: unknown, message?: string): asserts condition {\r\n\tif (!condition) {\r\n\t\tconst error = new Error();\r\n\t\terror.name = 'Invariant Violation';\r\n\t\terror.message = message ?? 'Invariant failed';\r\n\t\tError.captureStackTrace?.(error, invariant);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n","type MaybeNumber = number | string | undefined | null;\r\n\r\nexport function parseDecimal(value: MaybeNumber): number | undefined;\r\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\r\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\r\n\tif (typeof value === 'number') {\r\n\t\tif (!Number.isNaN(value)) return value;\r\n\t}\r\n\r\n\tif (typeof value === 'string') {\r\n\t\tconst parsed = Number.parseFloat(value);\r\n\r\n\t\tif (!Number.isNaN(parsed)) {\r\n\t\t\treturn parsed;\r\n\t\t}\r\n\t}\r\n\r\n\treturn fallback;\r\n}\r\n","import type { Currency, Locale } from './types.js';\r\n\r\nexport function getLocaleByCurrency(currency: Currency): Locale {\r\n\tif (currency === 'INR') return 'en-IN';\r\n\tif (currency === 'MYR') return 'en-MY';\r\n\tif (currency === 'IDR') return 'en-ID';\r\n\tif (currency === 'USD') return 'en-US';\r\n\treturn 'en-PH';\r\n}\r\n\r\n/*\r\n * +63 (Philippines)\r\n * +91 (India)\r\n * +60 (Malaysia)\r\n * +62 (Indonesia)\r\n * +1 (UnitedStates)\r\n */\r\nexport function getAreaCodeByLocale(locale: Locale) {\r\n\tif (locale === 'en-IN') return '+91';\r\n\tif (locale === 'en-MY') return '+60';\r\n\tif (locale === 'en-ID') return '+62';\r\n\tif (locale === 'en-US') return '+1';\r\n\treturn '+63';\r\n}\r\n\r\n/**\r\n * @description Ensures mobile number has complete area code\r\n * @example\r\n * ```ts\r\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\r\n * ```\r\n */\r\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\r\n\tconst areaCode = getAreaCodeByLocale(locale);\r\n\r\n\t/* starts with area code */\r\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\r\n\t/* starts with area code without \"+\" */\r\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\r\n\t/* starts with zero */\r\n\tif (mobileNumber.startsWith('0')) return `${areaCode}${mobileNumber.substring(1)}`;\r\n\r\n\treturn `${areaCode}${mobileNumber}`;\r\n}\r\n","import type * as Internal from '../services/index.js';\r\nimport type { Assign } from '../types/index.js';\r\nimport { compact } from '../utils/compact.js';\r\nimport { invariant } from '../utils/invariant.js';\r\nimport { parseDecimal } from '../utils/parse-decimal.js';\r\nimport type * as External from './types.js';\r\nimport { getLocaleByCurrency } from './utils.js';\r\n\r\nconst IMAGE_CACHE_ID = '3'.padStart(8, '0');\r\n\r\nexport class Transformer {\r\n\tget transform() {\r\n\t\treturn {\r\n\t\t\tsite: this.site.bind(this),\r\n\t\t\tplatform: this.platform.bind(this),\r\n\t\t\taccount: this.account.bind(this),\r\n\t\t\twallet: this.wallet.bind(this),\r\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\r\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\r\n\t\t\tannouncement: this.announcement.bind(this),\r\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\r\n\t\t\tdeposit: this.deposit.bind(this),\r\n\t\t\tdepositRecord: this.depositRecord.bind(this),\r\n\t\t\tbetRecord: this.betRecord.bind(this),\r\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\r\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\r\n\t\t\tgame: this.game.bind(this),\r\n\t\t\tgameSession: this.gameSession.bind(this),\r\n\t\t\tpromo: this.promo.bind(this),\r\n\t\t\tcashback: this.cashback.bind(this),\r\n\t\t\tbonus: this.bonus.bind(this),\r\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\r\n\t\t\tfile: this.file.bind(this),\r\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\r\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\r\n\t\t\tactivityRecord: this.activityRecord.bind(this),\r\n\t\t\treferral: this.referral.bind(this),\r\n\t\t\treferralCommission: this.referralCommission.bind(this),\r\n\t\t\tplatform__next: this.platform__next.bind(this),\r\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\r\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\r\n\t\t\tmessage: this.message.bind(this),\r\n\t\t\tinstapayBank: this.instapayBank.bind(this),\r\n\t\t\tpromoByCode: this.promoByCode.bind(this),\r\n\t\t\tquest: this.quest.bind(this),\r\n\t\t\ttopWin: this.topWin.bind(this),\r\n\t\t\tjackpots: this.jackpots.bind(this),\r\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\r\n\t\t\ttournaments: this.tournaments.bind(this),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate site(data: Internal.Site): External.Site {\r\n\t\tconst o: External.Site = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tlogo: data.logo ?? undefined,\r\n\t\t\tfields: data.config.fields,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tprivate platform(data: Internal.Platform): External.Platform {\r\n\t\treturn {\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tpaymentSettings: {\r\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\t\tdepositGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonlineBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tqrph: {\r\n\t\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\r\n\t\t\t\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t\t\t\t>),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\twithdrawalGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinstapay: {\r\n\t\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpointsClubSettings: {\r\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate platform__next(data: Internal.Platform__Next): External.Platform__Next {\r\n\t\treturn {\r\n\t\t\tcurrency: data.currency,\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tlocale: getLocaleByCurrency(data.currency),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate pointsClubSettings(data: Internal.PointsClubSettings): External.PointsClubSettings {\r\n\t\treturn {\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate paymentSettings(data: Internal.PaymentSettings): External.PaymentSettings {\r\n\t\treturn {\r\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\tdepositGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tonlineBank: {\r\n\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tqrph: {\r\n\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\r\n\t\t\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t\t\t>),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\twithdrawalGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.maximumAmount, 1000000),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tinstapay: {\r\n\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate account(data: Internal.MemberAccount): External.Account {\r\n\t\tconst o: External.Account = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tverified: data.verified,\r\n\t\t\tnickName: data.nickName ?? undefined,\r\n\t\t\trealName: data.realName ?? undefined,\r\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\r\n\t\t\temailAddress: data.emailAddress ?? undefined,\r\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\r\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\r\n\t\t\tmobileNumberVerificationRequired: data.mobileNumberVerificationRequired ?? false,\r\n\t\t\tvalidId: data.validId || undefined,\r\n\t\t\tverificationStatus: data.verificationStatus,\r\n\t\t\ttransactionPassword: data.transactionPassword,\r\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\r\n\t\tconst o: External.Wallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate verificationDetails(data: Internal.MemberVerification): External.VerificationDetails {\r\n\t\tconst o: External.VerificationDetails = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\taddress: data.address,\r\n\t\t\tpermanentAddress: data.permanentAddress,\r\n\t\t\tnationality: data.nationality,\r\n\t\t\tnatureOfWork: data.natureOfWork,\r\n\t\t\tplaceOfBirth: data.placeOfBirth,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome,\r\n\t\t\tselfieImage: this.file(data.selfieImage) as External.File,\r\n\t\t\tidFrontImage: this.file(data.idFrontImage) as External.File,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate profileCompletion(data: Internal.ProfileCompletion): External.ProfileCompletion {\r\n\t\tconst o: External.ProfileCompletion = {\r\n\t\t\taccountPassword: data.accountPassword ?? false,\r\n\t\t\taccountVerification: data.accountVerification ?? false,\r\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\r\n\t\t\tpersonalInformation: data.personalInformation ?? false,\r\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\r\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\r\n\t\tconst o: External.Announcement = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttitle: data.title,\r\n\t\t\tstatus: data.status,\r\n\t\t\tmessage: data.message,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate withdrawalRecord(data: Internal.WithdrawalRecord): External.WithdrawalRecord {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tbank: data.bank!,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t\twithdrawalNumber: data.withdrawalNumber,\r\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\r\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed ? new Date(data.dateTimeConfirmed) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.WithdrawalRecord;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tvca: data.vca ?? undefined,\r\n\t\t\tqrCode: data.qrCode ?? undefined,\r\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\r\n\t\tconst o: External.DepositRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\tdeposit: data.deposit,\r\n\t\t\tdepositNumber: data.depositNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate betRecord(\r\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\r\n\t): External.BetRecord {\r\n\t\tconst o: External.BetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\r\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\r\n\t\t\twinloss: parseDecimal(data.winloss),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\tdateTimeSettled: data.dateTimeSettled ? new Date(data.dateTimeSettled) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tbetContent: data.betContent ?? undefined,\r\n\t\t\tcontestName: data.contestName ?? undefined,\r\n\t\t\texternalCategory: data.externalCategory ?? undefined,\r\n\t\t\tmetadata: {\r\n\t\t\t\todds: data.metadata?.odds ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate latestBetRecord(\r\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\r\n\t): External.LatestBetRecord {\r\n\t\tconst o: External.LatestBetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: data.member,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate transactionRecord(data: Internal.TransactionRecord): External.TransactionRecord {\r\n\t\tconst o: External.TransactionRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tcontent: data.content ?? undefined,\r\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\r\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\r\n\t\t\treferenceNumber: data.referenceNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate game(data: Internal.Game): External.Game {\r\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\r\n\t\t\tinvariant(url);\r\n\r\n\t\t\treturn url.includes('?')\r\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\r\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\r\n\t\t});\r\n\r\n\t\tconst o: External.Game = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttags: data.tags ?? [],\r\n\t\t\tname: data.name,\r\n\t\t\timages,\r\n\t\t\tprovider: data.provider,\r\n\t\t\treference: data.reference,\r\n\t\t\tfavorite: data.favorite,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\r\n\t\t} as External.GameSession;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate promo(data: Internal.Promo): External.Promo {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdescription: data.description,\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\r\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\r\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\r\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\r\n\t\tconst o: External.Cashback = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\r\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\r\n\t\tconst o: External.Bonus = {\r\n\t\t\tid: data.id,\r\n\t\t\tpromo: this.promo(data.promo),\r\n\t\t\tdeposit: !data.deposit\r\n\t\t\t\t? undefined\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttype: data.deposit.type,\r\n\t\t\t\t\t\tstatus: data.deposit.status,\r\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\r\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\r\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\r\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\r\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\r\n\t\t\t\t\t},\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\texpiration: new Date(data.expiration),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\r\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContribution,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\r\n\t\tconst o: External.CashbackBonus = {\r\n\t\t\tid: data.id,\r\n\t\t\ttotal: parseDecimal(data.total, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcashback: this.cashback(data.cashback),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate file(data: Internal.File): External.File {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\turl: data.url ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t} as External.File;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\r\n\t\tconst o: External.PointsWallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\taccount: data.account,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate pointsWalletTransaction(\r\n\t\tdata: Internal.PointsWalletTransaction,\r\n\t): External.PointsWalletTransaction {\r\n\t\tconst o: External.PointsWalletTransaction = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate activityRecord(data: Internal.ActivityRecord): External.ActivityRecord {\r\n\t\tconst o: External.ActivityRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\r\n\t\t\tdomain: data.domain ?? undefined,\r\n\t\t\tdetails: data.details,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate referral(data: Internal.Referral): External.Referral {\r\n\t\tconst o: External.Referral = {\r\n\t\t\tid: data.id,\r\n\t\t\tlevel: data.level,\r\n\t\t\tupline: data.upline,\r\n\t\t\tdownline: data.downline,\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate referralCommission(data: Internal.ReferralCommission): External.ReferralCommission {\r\n\t\tconst o: External.ReferralCommission = {\r\n\t\t\tid: data.id,\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\r\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\r\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\r\n\t\t\treferralsCount: data.referralsCount,\r\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\r\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\r\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\r\n\t\t\treferralCode: data.referralCode,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate message(data: Internal.Message): External.Message {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ticon: data.icon,\r\n\t\t\tlogo: data.logo,\r\n\t\t\timage: data.image,\r\n\t\t\ttitle: data.title,\r\n\t\t\tpopup: data.popup,\r\n\t\t\tcontent: data.content,\r\n\t\t\tactions: data.actions,\r\n\t\t\tmarkedAsRead: data.markedAsRead,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\ttype: data.type,\r\n\t\t\tmetadata: !data.metadata\r\n\t\t\t\t? null\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttournament: data.metadata.tournament,\r\n\t\t\t\t\t\tpayout: {\r\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\r\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\r\n\t\treturn data;\r\n\t}\r\n\r\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\r\n\t\treturn {\r\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\r\n\t\t\tbonusesCount: data.bonusesCount,\r\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\r\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\r\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\r\n\t\t\tclosedBonusesCountPercentage: parseDecimal(data.closedBonusesCountPercentage, 0),\r\n\t\t\tcode: data.code,\r\n\t\t\tdaysToClear: data.daysToClear,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tid: data.id,\r\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\r\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\r\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\r\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\r\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\r\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\r\n\t\t\tturnoverRequirementMultiplier: parseDecimal(data.turnoverRequirementMultiplier, 0),\r\n\t\t\ttype: data.type,\r\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\r\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\r\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\r\n\t\t\tdescription: data.description,\r\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\r\n\t\t\tactivationEndDateTime: data.activationEndDateTime\r\n\t\t\t\t? new Date(data.activationEndDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tactivationStartDateTime: data.activationStartDateTime\r\n\t\t\t\t? new Date(data.activationStartDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClosed: data.dateTimeClosed ? new Date(data.dateTimeClosed) : undefined,\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\r\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tbanner: data.banner,\r\n\t\t};\r\n\t}\r\n\r\n\tquest(data: Internal.Quest): External.Quest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbonus: parseDecimal(data.bonus, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tendDateTime: new Date(data.endDateTime),\r\n\t\t\tprogram: {\r\n\t\t\t\ttype: data.program.type,\r\n\t\t\t\tname: data.program.name,\r\n\t\t\t\tdescription: data.program.description,\r\n\t\t\t\tstatus: data.program.status,\r\n\t\t\t},\r\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\ttargetTurnover: data?.targetTurnover ? parseDecimal(data.targetTurnover, 0) : undefined,\r\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\r\n\t\t\tlastCheckInDate: data?.lastCheckInDate ? new Date(data.lastCheckInDate) : undefined,\r\n\t\t\tstartDateTime: data?.startDateTime ? new Date(data.startDateTime) : undefined,\r\n\t\t\ttype: data.type,\r\n\r\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\r\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\r\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'ONBOARDING' && {\r\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\r\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate topWin(data: Assign<Internal.TopWin, { game?: Internal.Game }>): External.TopWin {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tpool: parseDecimal(data.pool, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(data.minimumJackpotPoolDrawingLimit, 0),\r\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\r\n\t\t\tdrawing: data.drawing,\r\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\r\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\r\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\r\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tjackpot: {\r\n\t\t\t\tid: data.jackpot.id,\r\n\t\t\t\tname: data.jackpot.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournamentsLeaderboard(\r\n\t\tdata: Internal.TournamentLeaderboard,\r\n\t): External.TournamentLeaderboard {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tusername: data.username,\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\r\n\t\t\t\t...payout,\r\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\r\n\t\t\t})),\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tfrequency: data.frequency,\r\n\t\t\tmode: data.mode,\r\n\t\t\tmobileBanner: {\r\n\t\t\t\tid: data.mobileBanner?.id,\r\n\t\t\t\turl: data.mobileBanner?.url,\r\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\r\n\t\t\t},\r\n\t\t\twebBanner: {\r\n\t\t\t\tid: data.webBanner?.id,\r\n\t\t\t\turl: data.webBanner?.url,\r\n\t\t\t\tmimeType: data.webBanner?.mimeType,\r\n\t\t\t},\r\n\r\n\t\t\trewardSettings: data.rewardSettings,\r\n\r\n\t\t\tcurrentLeaderboard: {\r\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t\tpreviousLeaderboard: {\r\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n}\r\n","import {\r\n\tAccountService,\r\n\tAuthService,\r\n\tCmsPortalService,\r\n\tFileService,\r\n\tGameService,\r\n\tPortalService,\r\n\tReportService,\r\n\tTriggerService,\r\n\tWalletService,\r\n} from '../services/index.js';\r\nimport { Cache } from '../utils/cache.js';\r\nimport { clamp } from '../utils/clamp.js';\r\nimport {\r\n\tGraphQLClient,\r\n\ttype GraphQLClientConfig,\r\n\ttype GraphQLClientMiddleware,\r\n} from '../utils/graphql-client.js';\r\nimport { sha256 } from '../utils/sha256.js';\r\nimport { AdManager } from './ad-manager.js';\r\nimport { DomainManager } from './domain-manager.js';\r\nimport { Logger } from './logger.js';\r\nimport { ObjectId } from './object-id.js';\r\nimport { ObjectType } from './object-type.js';\r\nimport { SessionManagerCookie } from './session-manager-cookie.js';\r\nimport { SessionManager } from './session-manager.js';\r\nimport { Transformer } from './transformer.js';\r\nimport type {\r\n\tAccountReturn,\r\n\tActivityRecordsInput,\r\n\tActivityRecordsReturn,\r\n\tAnnouncementsInput,\r\n\tAnnouncementsReturn,\r\n\tAuthenticateInput,\r\n\tAuthenticateReturn,\r\n\tAvailablePromosReturn,\r\n\tAvailableQuestsReturn,\r\n\tBetRecordsInput,\r\n\tBetRecordsReturn,\r\n\tBonusReturn,\r\n\tBonusesReturn,\r\n\tCabinetSignInInput,\r\n\tCabinetSignInReturn,\r\n\tCashbackBonusReturn,\r\n\tCashbacksReturn,\r\n\tCheckInDailyQuestReturn,\r\n\tClaimCashbackBonusReturn,\r\n\tClaimRewardReturn,\r\n\tClaimSpotBonusReturn,\r\n\tCompleteOnboardingInput,\r\n\tCompleteOnboardingReturn,\r\n\tCreateAccountInput,\r\n\tCreateAccountInput__Next,\r\n\tCreateAccountReturn,\r\n\tCreateDepositInput,\r\n\tCreateDepositReturn,\r\n\tCreateGameSessionInput,\r\n\tCreateGameSessionReturn,\r\n\tCreateSingleUseTokenReturn,\r\n\tCreateWithdrawalInput,\r\n\tCreateWithdrawalReturn,\r\n\tDeleteAccountReturn,\r\n\tDepositRecordsInput,\r\n\tDepositRecordsReturn,\r\n\tDepositReturn,\r\n\tDepositsCountReturn,\r\n\tDownlinesByNameInput,\r\n\tDownlinesByNameReturn,\r\n\tEndGameSessionReturn,\r\n\tEnvironment,\r\n\tFavoriteGamesReturn,\r\n\tFileReturn,\r\n\tGameProvider,\r\n\tGameReturn,\r\n\tGameSessionReturn,\r\n\tGamesInput,\r\n\tGamesInput__Next,\r\n\tGamesReturn,\r\n\tGoogleClientIdReturn,\r\n\tInstapayBankListReturn,\r\n\tJackpotPayoutsInput,\r\n\tJackpotPayoutsReturn,\r\n\tJackpotsInput,\r\n\tJackpotsReturn,\r\n\tLatestBetRecordsReturn,\r\n\tLocale,\r\n\tMarkAllMessagesAsReadReturn,\r\n\tMarkGameAsFavoriteInput,\r\n\tMarkGameAsFavoriteReturn,\r\n\tMarkMessageAsReadReturn,\r\n\tMayaSignInInput,\r\n\tMayaSignInReturn,\r\n\tMessagesInput,\r\n\tMessagesReturn,\r\n\tMobileNumberSignInInput,\r\n\tMobileNumberSignInReturn,\r\n\tNameAndPasswordSignInInput,\r\n\tNameAndPasswordSignInReturn,\r\n\tOnboardingStatusReturn,\r\n\tPaymentSettingsReturn,\r\n\tPlatformReturn,\r\n\tPlatformReturn__Next,\r\n\tPointsClubSettingsReturn,\r\n\tPointsWalletReturn,\r\n\tPointsWalletTransactionsInput,\r\n\tPointsWalletTransactionsReturn,\r\n\tProfileCompletionReturn,\r\n\tPromoByCodeReturn,\r\n\tPromosReturn,\r\n\tRecommendedGamesInput,\r\n\tRecommendedGamesReturn,\r\n\tRedeemPointsInput,\r\n\tRedeemPointsReturn,\r\n\tReferralCodeReturn,\r\n\tReferralCommissionReturn,\r\n\tReferralsInput,\r\n\tReferralsReturn,\r\n\tRegisterFCMDeviceInput,\r\n\tRegisterFCMDeviceReturn,\r\n\tRegisterMayaAccountInput,\r\n\tRegisterMayaAccountReturn,\r\n\tRemainingDailyWithdrawalsCountReturn,\r\n\tResetPasswordInput,\r\n\tResetPasswordReturn,\r\n\tSendVerificationCodeInput__Next,\r\n\tSendVerificationCodeReturn,\r\n\tSendVerificationCodeReturn__Next,\r\n\tSessionReturn,\r\n\tSignInInput,\r\n\tSignInReturn,\r\n\tSingleUseTokenSignInInput,\r\n\tSingleUseTokenSignInReturn,\r\n\tSiteReturn,\r\n\tSkipOnboardingReturn,\r\n\tSocialsSignInInput,\r\n\tSocialsSignInReturn,\r\n\tSubmitVerificationDetailsInput,\r\n\tSubmitVerificationDetailsReturn,\r\n\tTokenSignInInput,\r\n\tTokenSignInReturn,\r\n\tTopWinsReturn,\r\n\tTouchDepositInput,\r\n\tTouchDepositReturn,\r\n\tTournamentsInput,\r\n\tTournamentsReturn,\r\n\tTransactionRecordsInput,\r\n\tTransactionRecordsReturn,\r\n\tUnmarkGameAsFavoriteInput,\r\n\tUnmarkGameAsFavoriteReturn,\r\n\tUnreadMessagesCountInput,\r\n\tUnreadMessagesCountReturn,\r\n\tUnregisterFCMDeviceInput,\r\n\tUnregisterFCMDeviceReturn,\r\n\tUpdateAccountInput,\r\n\tUpdateAccountReturn,\r\n\tUpdateReferralCodeInput,\r\n\tUpdateReferralCodeReturn,\r\n\tUpdateVerificationDetailsInput,\r\n\tUpdateVerificationDetailsReturn,\r\n\tUplinesByNameInput,\r\n\tUplinesByNameReturn,\r\n\tUploadImageFileInput,\r\n\tUploadImageFileReturn,\r\n\tValidateMayaSessionReturn,\r\n\tVerificationDetailsReturn,\r\n\tVerifyMobileNumberReturn,\r\n\tWalletReturn,\r\n\tWatchSessionInput,\r\n\tWithdrawalRecordsInput,\r\n\tWithdrawalRecordsReturn,\r\n} from './types.js';\r\nimport { addAreaCode } from './utils.js';\r\n\r\nexport interface SdkConfig {\r\n\t/**\r\n\t * @default 'development'\r\n\t */\r\n\tenvironment?: Environment;\r\n\tsite: string;\r\n\tsitePlatform: string;\r\n\tplatform: string;\r\n\tlogs?: boolean;\r\n\tsessionStorage?: 'cookie' | 'localStorage';\r\n\tmiddleware?: GraphQLClientMiddleware;\r\n\tfetch?: typeof globalThis.fetch;\r\n}\r\n\r\nconst defaultConfig = {\r\n\tenvironment: 'development' as Environment,\r\n\tlogs: false,\r\n};\r\n\r\nexport class Sdk {\r\n\tprivate cmsPortalService: CmsPortalService;\r\n\tprivate authService: AuthService;\r\n\tprivate gameService: GameService;\r\n\tprivate fileService: FileService;\r\n\tprivate walletService: WalletService;\r\n\tprivate accountService: AccountService;\r\n\tprivate reportService: ReportService;\r\n\tprivate portalService: PortalService;\r\n\tprivate triggerService: TriggerService;\r\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\r\n\tprivate adManager: AdManager;\r\n\tprivate domainManager: DomainManager;\r\n\tprivate transformer: Transformer;\r\n\tprivate logger: Logger;\r\n\tprivate cache: Cache;\r\n\tprivate config: SdkConfig;\r\n\r\n\tconstructor(config: SdkConfig) {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tsite,\r\n\t\t\tsitePlatform,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t\tlogs,\r\n\t\t} = Object.assign(defaultConfig, config);\r\n\r\n\t\tconst production = environment === 'production';\r\n\r\n\t\tconst logger = new Logger({\r\n\t\t\tenabled: logs,\r\n\t\t});\r\n\r\n\t\tconst adManager = new AdManager({ logger });\r\n\t\tconst domainManager = new DomainManager({\r\n\t\t\tlogger,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t});\r\n\r\n\t\tconst transformer = new Transformer();\r\n\r\n\t\tconst authUrl = ENDPOINTS[environment].auth;\r\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\r\n\t\tconst reportUrl = ENDPOINTS[environment].report;\r\n\t\tconst accountUrl = ENDPOINTS[environment].account;\r\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\r\n\t\tconst fileUrl = ENDPOINTS[environment].file;\r\n\t\tconst gameUrl = ENDPOINTS[environment].game;\r\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\r\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\r\n\r\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\r\n\t\t\turl: cmsPortalUrl,\r\n\t\t\tsite,\r\n\t\t\tplatform: sitePlatform,\r\n\t\t\tfetch: this.fetch,\r\n\t\t}));\r\n\r\n\t\tthis._fetch = config.fetch ?? null;\r\n\t\tthis._middleware = config.middleware ?? ((req) => req);\r\n\r\n\t\tconst graphqlClientConfig = () =>\r\n\t\t\t({\r\n\t\t\t\tmiddlewares: [\r\n\t\t\t\t\t/**/\r\n\t\t\t\t\tthis.authMiddleware,\r\n\t\t\t\t\tthis.domainMiddleware,\r\n\t\t\t\t\tthis.miscMiddleware,\r\n\t\t\t\t\tthis.middleware,\r\n\t\t\t\t],\r\n\t\t\t\tfetch: this.fetch,\r\n\t\t\t\tfetchOptions: {\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t\t'Platform-Code': platform,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t}) satisfies GraphQLClientConfig;\r\n\r\n\t\tconst gameService = new GameService(new GraphQLClient(gameUrl, graphqlClientConfig));\r\n\t\tconst fileService = new FileService(new GraphQLClient(fileUrl, graphqlClientConfig));\r\n\t\tconst walletService = new WalletService(new GraphQLClient(walletUrl, graphqlClientConfig));\r\n\t\tconst accountService = new AccountService(new GraphQLClient(accountUrl, graphqlClientConfig));\r\n\t\tconst reportService = new ReportService(new GraphQLClient(reportUrl, graphqlClientConfig));\r\n\t\tconst portalService = new PortalService(new GraphQLClient(portalUrl, graphqlClientConfig));\r\n\t\tconst triggerService = new TriggerService(new GraphQLClient(triggerUrl, graphqlClientConfig));\r\n\r\n\t\tconst authService = new AuthService({\r\n\t\t\turl: authUrl,\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\r\n\t\t\t\t\t...(!production && {\r\n\t\t\t\t\t\t'Test-Pass': '',\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tconst sessionManager =\r\n\t\t\tconfig.sessionStorage === 'cookie'\r\n\t\t\t\t? new SessionManagerCookie({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t})\r\n\t\t\t\t: new SessionManager({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t});\r\n\r\n\t\tthis.logger = logger;\r\n\t\tthis.adManager = adManager;\r\n\t\tthis.domainManager = domainManager;\r\n\t\tthis.transformer = transformer;\r\n\t\tthis.authService = authService;\r\n\t\tthis.gameService = gameService;\r\n\t\tthis.fileService = fileService;\r\n\t\tthis.walletService = walletService;\r\n\t\tthis.accountService = accountService;\r\n\t\tthis.reportService = reportService;\r\n\t\tthis.portalService = portalService;\r\n\t\tthis.triggerService = triggerService;\r\n\t\tthis.sessionManager = sessionManager;\r\n\t\tthis.cmsPortalService = cmsPortalService;\r\n\t\tthis.cache = new Cache();\r\n\t\tthis.config = {\r\n\t\t\tenvironment,\r\n\t\t\tsite,\r\n\t\t\tplatform,\r\n\t\t\tsitePlatform,\r\n\t\t\tlogs,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate _fetch: typeof globalThis.fetch | null = null;\r\n\tprivate _middleware: GraphQLClientMiddleware;\r\n\r\n\tset fetch(value: typeof globalThis.fetch | null) {\r\n\t\tthis._fetch = value;\r\n\t}\r\n\r\n\tget fetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tset middleware(value: GraphQLClientMiddleware) {\r\n\t\tthis._middleware = value;\r\n\t}\r\n\r\n\tget middleware() {\r\n\t\treturn this._middleware;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tADS\r\n\t *=============================================\r\n\t */\r\n\r\n\tset adClickId(value: string | null) {\r\n\t\tthis.adManager.clickId = value;\r\n\t}\r\n\r\n\tget adClickId() {\r\n\t\treturn this.adManager.clickId;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tLOCALE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get locale() {\r\n\t\treturn new Promise<Locale>((resolve) => {\r\n\t\t\tconst cacheKey = 'locale';\r\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\r\n\r\n\t\t\tif (cacheValue) return resolve(cacheValue);\r\n\r\n\t\t\tthis.platform__next().then((res) => {\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\r\n\t\t\t\t\tresolve(res.data.locale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\r\n\t\t\t\t\tresolve('en-PH');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tAUTH MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tthis.logger.info('Checking for session');\r\n\r\n\t\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\t\tif (res.data) {\r\n\t\t\t\trequest.headers.append('Authorization', `Bearer ${res.data.accessToken}`);\r\n\r\n\t\t\t\tthis.logger.info('Session found');\r\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.info('No session found');\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDOMAIN MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tif (this.sessionManager.onMaya) {\r\n\t\t\t\trequest.headers.append('Domain', `maya/${this.config.platform}`);\r\n\t\t\t\treturn request;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.sessionManager.onCabinet) {\r\n\t\t\t\trequest.headers.delete('Domain');\r\n\t\t\t\treturn request;\r\n\t\t\t}\r\n\r\n\t\t\tconst domain = this.domainManager.domain;\r\n\t\t\tif (domain) request.headers.append('Domain', domain);\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMISCELLANEOUS MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst adClickId = this.adManager.clickId;\r\n\t\t\tif (adClickId) request.headers.append('Ad-Click-Id', adClickId);\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tasync signIn(input: NameAndPasswordSignInInput): Promise<NameAndPasswordSignInReturn>;\r\n\tasync signIn(input: MobileNumberSignInInput): Promise<MobileNumberSignInReturn>;\r\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\r\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\r\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\r\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\r\n\tasync signIn(input: SingleUseTokenSignInInput): Promise<SingleUseTokenSignInReturn>;\r\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\r\n\t\tif (input.type === 'TOKEN') {\r\n\t\t\tconsole.warn(\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\");\r\n\t\t}\r\n\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'NAME_AND_PASSWORD': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!res.ok) return res;\r\n\t\t\t\tif (res.data) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t'2FAEnabled': true,\r\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t'2FAEnabled': false,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SOCIALS':\r\n\t\t\tcase 'TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'CABINET': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'CABINET',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'MOBILE_NUMBER': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SINGLE_USE_TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\tconst res = await this.sessionManager.create(input);\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'SECURITY_QUESTION': {\r\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\r\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpBadRequest',\r\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync signOut() {\r\n\t\tawait this.sessionManager.destroy();\r\n\t}\r\n\r\n\twatchSession(input: WatchSessionInput) {\r\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\r\n\r\n\t\tlet timeout: NodeJS.Timeout | null = null;\r\n\r\n\t\tconst assignTimeout = () => {\r\n\t\t\treturn setTimeout(async () => {\r\n\t\t\t\tconst v = await this.sessionManager.verify();\r\n\r\n\t\t\t\tif (!v) {\r\n\t\t\t\t\tawait input.onInvalid();\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = assignTimeout();\r\n\t\t\t}, interval);\r\n\t\t};\r\n\r\n\t\ttimeout = assignTimeout();\r\n\r\n\t\treturn function unsubscribe() {\r\n\t\t\tif (timeout) {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tasync session(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\r\n\t\treturn await this.walletService.validateMayaSession();\r\n\t}\r\n\r\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\r\n\t\tconst res0 = await this.sessionManager.get();\r\n\r\n\t\tif (!res0.ok || !res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.authService.createSingleUseToken(res0.data.accessToken);\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn { ok: true, data: res1.data.token };\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tSITE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync site(): Promise<SiteReturn> {\r\n\t\tconst res = await this.cmsPortalService.self();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.site(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPLATFORM\r\n\t *=============================================\r\n\t */\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<PlatformReturn> {\r\n\t\tconsole.warn(\"'platform' is deprecated. Please use 'platform__next' instead.\");\r\n\r\n\t\tconst res = await this.accountService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform__next(): Promise<PlatformReturn__Next> {\r\n\t\tconst res = await this.portalService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\r\n\t\tconst res = await this.accountService.paymentSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACCOUNT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync account(): Promise<AccountReturn> {\r\n\t\tconst r = await this.accountService.memberAccount();\r\n\r\n\t\tif (!r.ok) return r;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.account(r.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `createAccount__next`\r\n\t */\r\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\r\n\t\tconsole.warn(\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\");\r\n\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tbirthDay:\r\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\r\n\t\t\t\t\t\t? input.dateOfBirth\r\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t\treferralCode: input.referralCode,\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync createAccount__next(input: CreateAccountInput__Next): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tname: input.name,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\tmobileNumber: input.mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccountByName({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t},\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync registerMayaAccount(input: RegisterMayaAccountInput): Promise<RegisterMayaAccountReturn> {\r\n\t\treturn await this.accountService.registerMayaMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateAccount(id: string, input: UpdateAccountInput): Promise<UpdateAccountReturn> {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tpassword,\r\n\t\t\tdateOfBirth,\r\n\t\t\tmobileNumber,\r\n\t\t\tsecretAnswer,\r\n\t\t\ttransactionPassword,\r\n\t\t\t...others\r\n\t\t} = input;\r\n\r\n\t\treturn await this.accountService.updateMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...others,\r\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\r\n\t\t\t\t\ttransactionPassword: transactionPassword ? await sha256(transactionPassword) : undefined,\r\n\t\t\t\t\tmobileNumber: mobileNumber ? addAreaCode(mobileNumber, await this.locale) : undefined,\r\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\r\n\t\t\t\t\tbirthDay: dateOfBirth\r\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\r\n\t\t\t\t\t\t\t? dateOfBirth\r\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.deleteMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\r\n\t\tconst res = await this.accountService.memberVerification();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.verificationDetails(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitVerificationDetails(\r\n\t\tinput: SubmitVerificationDetailsInput,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync updateVerificationDetails(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\r\n\t\treturn await this.accountService.resetPassword({\r\n\t\t\tinput: {\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tnewPassword: await sha256(input.newPassword),\r\n\t\t\t},\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t});\r\n\t}\r\n\r\n\tasync verifyMobileNumber(verificationCode: string): Promise<VerifyMobileNumberReturn> {\r\n\t\treturn await this.accountService.verifyMobileNumber({\r\n\t\t\tinput: {\r\n\t\t\t\tverificationCode,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\r\n\t\tconst res = await this.accountService.profileCompletion();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `sendVerificationCode__next`\r\n\t */\r\n\tasync sendVerificationCode(mobileNumber: string): Promise<SendVerificationCodeReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\r\n\t\t);\r\n\r\n\t\treturn await this.accountService.sendVerificationCode({\r\n\t\t\tinput: {\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync sendVerificationCode__next(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<SendVerificationCodeReturn__Next> {\r\n\t\tif (input.type === 'SMS') {\r\n\t\t\treturn this.authService.sendVerificationCode({\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t...(input.strict && {\r\n\t\t\t\t\tverificationType: 'MEMBER',\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\r\n\t}\r\n\r\n\tasync wallet(): Promise<WalletReturn> {\r\n\t\tconst res = await this.walletService.wallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tANNOUNCEMENT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync announcements(input?: AnnouncementsInput): Promise<AnnouncementsReturn> {\r\n\t\tconst res = await this.accountService.announcements({\r\n\t\t\t...input,\r\n\t\t\tfilter: {\r\n\t\t\t\t...input?.filter,\r\n\t\t\t\tvisibility: {\r\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.announcement(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as AnnouncementsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tWITHDRAWAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createWithdrawal(input: CreateWithdrawalInput): Promise<CreateWithdrawalReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\r\n\r\n\t\tif (input.type === 'BANK') {\r\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_INSTAPAY') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tupiId: input.upiId,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankAccountName: input.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync withdrawalRecords(input?: WithdrawalRecordsInput): Promise<WithdrawalRecordsReturn> {\r\n\t\tconst res = await this.reportService.withdrawalRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as WithdrawalRecordsReturn;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\r\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\r\n\t\tconst res = await this.walletService.instapayBankList();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDEPOSIT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\r\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_QRPH') {\r\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treference: input.reference,\r\n\t\t\t\t\treferenceImage: input.referenceImage,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treferenceImage: input.referenceId,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_DIRECT_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createGCashDirectWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync deposit(id: string): Promise<DepositReturn> {\r\n\t\tconst res = await this.walletService.deposit({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync depositRecords(input?: DepositRecordsInput): Promise<DepositRecordsReturn> {\r\n\t\tconst res = await this.reportService.depositRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as DepositRecordsReturn;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<DepositsCountReturn> {\r\n\t\treturn await this.reportService.depositsCount();\r\n\t}\r\n\r\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'GCASH':\r\n\t\t\t\treturn await this.walletService.touchGCashDeposit({ input: { id: input.id } });\r\n\t\t\tcase 'QR_PH':\r\n\t\t\t\treturn await this.walletService.touchQrphDeposit({ input: { id: input.id } });\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\r\n\t\t}\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tBET RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\r\n\t\tconst res0 = await this.reportService.betRecords({\r\n\t\t\t...input,\r\n\t\t\t...(input?.filter && {\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...(input.filter.status && {\r\n\t\t\t\t\t\tstatus: input.filter.status,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.serialCode && {\r\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.vendorRoundId && {\r\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameType && {\r\n\t\t\t\t\t\tgame__type: input.filter.gameType,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameProvider && {\r\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\r\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbetRecords: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\r\n\t\t\t\t\tconst game = res1.data.edges.find((e) => node.game.id === e.node.reference)?.node;\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\r\n\t\t\t\t\t\t\t...node,\r\n\t\t\t\t\t\t\tgame,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t};\r\n\t\t\t\t}),\r\n\t\t\t\ttotalCount: res0.data.totalCount,\r\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as BetRecordsReturn;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\r\n\t\tconst res0 = await this.portalService.latestBetRecords();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0.data.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTRANSACTION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync transactionRecords(input?: TransactionRecordsInput): Promise<TransactionRecordsReturn> {\r\n\t\tconst res = await this.reportService.transactionRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as TransactionRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPROMO\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync promos(): Promise<PromosReturn> {\r\n\t\tconst res = await this.walletService.promos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync availablePromos(): Promise<AvailablePromosReturn> {\r\n\t\tconst res = await this.walletService.availablePromos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<CashbacksReturn> {\r\n\t\tconst res = await this.walletService.cashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync bonus(): Promise<BonusReturn> {\r\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\r\n\r\n\t\tconst res = await this.walletService.bonus();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<BonusesReturn> {\r\n\t\tconst res = await this.walletService.bonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\r\n\t\tconst res = await this.walletService.cashbackBonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\r\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\r\n\t}\r\n\r\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\r\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\r\n\t}\r\n\r\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\r\n\t\tconst res = await this.reportService.promoByCode({ code: code });\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tGAME\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync game(id: string): Promise<GameReturn> {\r\n\t\tconst res = await this.cmsPortalService.game(id);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\r\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\r\n\r\n\t\tconst res = await this.cmsPortalService.games(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games__next(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync recommendedGames(input?: RecommendedGamesInput): Promise<RecommendedGamesReturn> {\r\n\t\tconst res0 = await this.portalService.recommendedGames();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfirst: input?.first,\r\n\t\t\tafter: input?.after,\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res1.data.totalCount,\r\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as RecommendedGamesReturn;\r\n\t}\r\n\r\n\tasync gameSession(id: string, gameProvider?: GameProvider): Promise<GameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.gameSession({ id })\r\n\t\t\t\t: await this.gameService.gameSession({ id });\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: res.data ? this.transformer.transform.gameSession(res.data) : null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.gameSession({ id });\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tif (res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.gameService.gameSession({ id });\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res1.data ? this.transformer.transform.gameSession(res1.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\r\n\r\n\t\tif (input.provider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\r\n\t\t\t\t? await this.walletService.createGameSession({ input: { id, game: input.reference } })\r\n\t\t\t\t: await this.gameService.createGameSession({ input: { id, game: input.reference } });\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst isSports = input.game.startsWith('SPORTS:');\r\n\r\n\t\tif (isSports) {\r\n\t\t\tconst game = await ObjectId.generateFromKey(ObjectType.Game, input.game).then(\r\n\t\t\t\t(generatedId) => {\r\n\t\t\t\t\treturn generatedId.toString();\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\tconst res0 = await this.gameService.createGameSession({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.game(input.game);\r\n\r\n\t\tif (!res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'GameDoesNotExistError',\r\n\t\t\t\t\tmessage: 'Game does not exist',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst { provider, reference } = res0.data;\r\n\r\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\r\n\t\t\t? await this.walletService.createGameSession({ input: { id, game: reference } })\r\n\t\t\t: await this.gameService.createGameSession({ input: { id, game: reference } });\r\n\r\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\r\n\t}\r\n\r\n\tasync endGameSession(id: string, gameProvider?: GameProvider): Promise<EndGameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\r\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\r\n\t\tif (res0.ok) return res0;\r\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\r\n\t\treturn res1;\r\n\t}\r\n\r\n\tasync markGameAsFavorite(input: MarkGameAsFavoriteInput): Promise<MarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.markGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync unmarkGameAsFavorite(\r\n\t\tinput: UnmarkGameAsFavoriteInput,\r\n\t): Promise<UnmarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\r\n\t\tconst res0 = await this.walletService.favoriteGames();\r\n\r\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.id))] : [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata:\r\n\t\t\t\tres0.data\r\n\t\t\t\t\t?.map(({ id }) => {\r\n\t\t\t\t\t\tconst game = res1.data.edges.find((e) => id === e.node.reference)?.node;\r\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.filter(Boolean) ?? [],\r\n\t\t} as FavoriteGamesReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFILE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.fileService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadImageFile(input: UploadImageFileInput): Promise<UploadImageFileReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\r\n\r\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tfile: input.file,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPOINTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\r\n\t\tconst res = await this.walletService.pointsWallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\r\n\t\treturn await this.walletService.redeemPointsToCash({\r\n\t\t\tinput: {\r\n\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tinput?: PointsWalletTransactionsInput,\r\n\t): Promise<PointsWalletTransactionsReturn> {\r\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PointsWalletTransactionsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACTIVITY RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync activityRecords(input?: ActivityRecordsInput): Promise<ActivityRecordsReturn> {\r\n\t\tconst res = await this.reportService.activityRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ActivityRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tREFERRAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync referralCode(): Promise<ReferralCodeReturn> {\r\n\t\tconst res = await this.accountService.referralCode();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(input: UpdateReferralCodeInput): Promise<UpdateReferralCodeReturn> {\r\n\t\treturn await this.accountService.updateReferralCode({ input });\r\n\t}\r\n\r\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\r\n\t\tconst res = await this.reportService.referrals(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.referral(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ReferralsReturn;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\r\n\t\tconst res = await this.reportService.referralCommission();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.referralCommission(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\r\n\t\tconst res = await this.reportService.uplinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync downlinesByName(input: DownlinesByNameInput): Promise<DownlinesByNameReturn> {\r\n\t\tconst res = await this.reportService.downlinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\r\n\t\tconst res = await this.accountService.pointsClubSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsClubSettings(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMESSAGES\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\r\n\t\tconst res = await this.triggerService.messages(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.message(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as MessagesReturn;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(input?: UnreadMessagesCountInput): Promise<UnreadMessagesCountReturn> {\r\n\t\treturn await this.triggerService.unreadMessagesCount(input);\r\n\t}\r\n\r\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\r\n\t\treturn await this.triggerService.markMessageAsRead({ id });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessageAsRead();\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessagesAsRead();\r\n\t}\r\n\r\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\r\n\t\treturn await this.triggerService.claimReward({ id });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tONBOARDING\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\r\n\t\tconst res = await this.portalService.onboardingStatus();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync completeOnboarding(input: CompleteOnboardingInput): Promise<CompleteOnboardingReturn> {\r\n\t\treturn await this.portalService.completeOnboarding({\r\n\t\t\tinput: {\r\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\r\n\t\t\t\tplayerExperience: input.playerExperience,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\r\n\t\treturn await this.portalService.skipOnboarding();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\r\n\t\tconst res = await this.triggerService.availableQuests();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\r\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOP WINS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync topWins(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWins();\r\n\r\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.game.id))] : [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tJACKPOT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\r\n\t\tconst res = await this.reportService.jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotPayouts(input?: JackpotPayoutsInput): Promise<JackpotPayoutsReturn> {\r\n\t\tconst res = await this.reportService.jackpotPayouts(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotPayoutsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOURNAMENTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\r\n\t\tconst res = await this.reportService.tournaments(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as TournamentsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFCM/FIREBASE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync registerFCMDevice(input: RegisterFCMDeviceInput): Promise<RegisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.registerFCMDevice({ input });\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(input: UnregisterFCMDeviceInput): Promise<UnregisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTHIRD PARTY\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\r\n\t\tconst res = await this.accountService.googleClientId();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tUTILS\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate formatYmd(date: Date): string {\r\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\r\n\r\n\t\tconst y = date.getFullYear();\r\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\r\n\t\tconst d = ensure2Digits(date.getDate());\r\n\r\n\t\treturn `${y}-${m}-${d}`;\r\n\t}\r\n}\r\n\r\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\r\n\t/**/\r\n\t'RTG',\r\n\t'DARWIN',\r\n\t'DRBINGO',\r\n\t'MEGABALL',\r\n\t'MEGA2SPIN',\r\n\t'EVOLUTION',\r\n\t'EVOLUTION_NETENT',\r\n\t'ETENGJUE',\r\n\t'EVOLUTION_REDTIGER',\r\n\t'HOLLYWOODTV',\r\n];\r\n\r\nconst ENDPOINTS = {\r\n\tdevelopment: {\r\n\t\tauth: 'https://auth.development.opexa.io',\r\n\t\tgame: 'https://game.development.opexa.io/graphql',\r\n\t\tfile: 'https://file.development.opexa.io/graphql',\r\n\t\treport: 'https://report.development.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\r\n\t\taccount: 'https://account.development.opexa.io/graphql',\r\n\t\tportal: 'https://portal.development.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\r\n\t\tstatic: 'https://static.development.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n\tproduction: {\r\n\t\tauth: 'https://auth.opexa.io',\r\n\t\tgame: 'https://game.opexa.io/graphql',\r\n\t\tfile: 'https://file.opexa.io/graphql',\r\n\t\treport: 'https://report.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.opexa.io/graphql',\r\n\t\taccount: 'https://account.opexa.io/graphql',\r\n\t\tportal: 'https://portal.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\r\n\t\tstatic: 'https://static.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n};\r\n\r\nexport default Sdk;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/sdk/object-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/utils/call-if-fn.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":["/*\r\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\r\n */\r\n\r\nexport const ObjectType = {\r\n\tAccount: 8,\r\n\tDeposit: 9,\r\n\tWithdrawal: 14,\r\n\tVerification: 15,\r\n\tFile: 16,\r\n\tGame: 203,\r\n\tGameSession: 204,\r\n\tMayaSession: 230,\r\n};\r\n","export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\r\n\tlet result = '';\r\n\r\n\tfor (const [index, string] of strings.entries()) {\r\n\t\tconst value = values.at(index) ?? '';\r\n\r\n\t\tresult = `${result}${string}${value}`;\r\n\t}\r\n\r\n\treturn result.trim();\r\n}\r\n","import { gql } from '../utils/gql.js';\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FILE +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const FILE_FRAGMENT = gql`\r\n\tfragment FileFragment on File {\r\n\t\tid\r\n\t\turl\r\n\t\tstatus\r\n\t}\r\n`;\r\n\r\nexport const FILE_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery File($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on File {\r\n\t\t\t\t...FileFragment\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPLOAD_PRIVATE_IMAGE_FILE_MUTATION = gql`\r\n\tmutation UploadPrivateImageFile($input: UploadFileInput!) {\r\n\t\tuploadPrivateImageFile(input: $input) {\r\n\t\t\t... on FileFormatNotSupportedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNameTooLongError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileSizeTooBigError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WALLET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WALLET_QUERY = gql`\r\n\tquery Wallet {\r\n\t\twallet {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ POINTS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const POINTS_WALLET_QUERY = gql`\r\n\tquery PointsWallet {\r\n\t\tpointsWallet {\r\n\t\t\tid\r\n\t\t\tpoints\r\n\t\t\taccount\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REDEEM_POINTS_TO_CASH_MUTATION = gql`\r\n\tmutation RedeemPointsToCash($input: RedeemPointsToCashInput!) {\r\n\t\tredeemPointsToCash(input: $input) {\r\n\t\t\t... on InsufficientPointsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PointsNotDivisibleBy100Error {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_WALLET_TRANSACTIONS_QUERY = gql`\r\n\tquery PointsWalletTransactions(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$filter: MemberPointsWalletTransactionFilterInput\r\n\t) {\r\n\t\tmember {\r\n\t\t\tpointsWalletTransactions(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on PointsWalletTransaction {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tbalance\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ GAME +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const GAME_SESSION_QUERY = {\r\n\tcurrent: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tquery GameSession($id: ObjectId!) {\r\n\t\t\tnode(id: $id) {\r\n\t\t\t\t... on GameSession {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tgame {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\tlaunchUrl\r\n\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const CREATE_GAME_SESSION_MUTATION = gql`\r\n\tmutation CreateGameSession($input: CreateGameSessionInput!) {\r\n\t\tcreateGameSession(input: $input) {\r\n\t\t\t... on GameDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const END_GAME_SESSION_MUTATION = {\r\n\tcurrent: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input)\r\n\t\t}\r\n\t`,\r\n\tlegacy: gql`\r\n\t\tmutation EndGameSession($input: EndGameSessionInput!) {\r\n\t\t\tendGameSession(input: $input) {\r\n\t\t\t\t... on GameSessionDoesNotExistError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameSessionAlreadyClosedError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t\t... on GameProviderError {\r\n\t\t\t\t\t__typename\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t`,\r\n};\r\n\r\nexport const RECOMMENDED_GAMES_QUERY = gql`\r\n\tquery RecommendedGames {\r\n\t\trecommendedGames {\r\n\t\t\tid\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ANNOUNCEMENT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ANNOUNCEMENTS_QUERY = gql`\r\n\tquery Announcements($first: Int, $after: Cursor, $filter: AnnouncementFilterInput) {\r\n\t\tannouncements(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Announcement {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tmessage\r\n\t\t\t\t\t\tactivationStartDateTime\r\n\t\t\t\t\t\tactivationEndDateTime\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ WITHDRAWAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const WITHDRAWAL_RECORDS_QUERY = gql`\r\n\tquery WithdrawalRecords($first: Int, $after: Cursor, $filter: WithdrawalRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\twithdrawalRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BankWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tbank\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on GCashWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\trecipientMobileNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on MayaAppWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on InstapayWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualUPIWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t... on ManualBankWithdrawalRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\terror\r\n\t\t\t\t\t\t\twithdrawalNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateGCashWithdrawal($input: CreateGCashWithdrawalInput!) {\r\n\t\tcreateGCashWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaWithdrawal($input: CreateMayaWithdrawalInput!) {\r\n\t\tcreateMayaWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateMayaAppWithdrawal($input: CreateMayaAppWithdrawalInput!) {\r\n\t\tcreateMayaAppWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_BANK_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateBankWithdrawal($input: CreateBankWithdrawalInput!) {\r\n\t\tcreateBankWithdrawal(input: $input) {\r\n\t\t\t... on MobileNumberNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateAIOInstapayWithdrawal($input: CreateAIOInstapayWithdrawalInput!) {\r\n\t\tcreateAIOInstapayWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on TransactionPasswordNotSetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateManualUPIWithdrawal($input: CreateManualUPIWithdrawalInput!) {\r\n\t\tcreateManualUPIWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION = gql`\r\n\tmutation CreateManualBankWithdrawal($input: CreateManualBankWithdrawalInput!) {\r\n\t\tcreateManualBankWithdrawal(input: $input) {\r\n\t\t\t... on AccountNotVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidWithdrawalAmountError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WithdrawalDailyLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotEnoughBalanceError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const INSTAPAY_BANK_LIST_QUERY = gql`\r\n\tquery InstapayBankList {\r\n\t\tinstapayBankList {\r\n\t\t\tid\r\n\t\t\tcode\r\n\t\t\tname\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REMAINING_DAILY_WITHDRAWALS_COUNT_QUERY = gql`\r\n\tquery RemainingDailyWithdrawalsCount {\r\n\t\tremainingDailyWithdrawalsCount\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ DEPOSIT +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const DEPOSIT_RECORDS_QUERY = gql`\r\n\tquery DepositRecords($after: Cursor, $first: Int, $filter: DepositRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tdepositRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on DepositRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tnetAmount\r\n\t\t\t\t\t\t\tfee\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdeposit\r\n\t\t\t\t\t\t\treference\r\n\t\t\t\t\t\t\tdepositNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateGCashDeposit($input: CreateGCashDepositInput!) {\r\n\t\tcreateGCashDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateGCashDirectWebpayDeposit($input: CreateGCashDirectWebpayDepositInput!) {\r\n\t\tcreateGCashDirectWebpayDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaDeposit($input: CreateMayaDepositInput!) {\r\n\t\tcreateMayaDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MAYA_APP_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateMayaAppDeposit($input: CreateMayaAppDepositInput!) {\r\n\t\tcreateMayaAppDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_QRPH_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOQRPHDeposit($input: CreateAIOQRPHDepositInput!) {\r\n\t\tcreateAIOQRPHDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateAIOOnlineBankDeposit($input: CreateAIOOnlineBankDepositInput!) {\r\n\t\tcreateAIOOnlineBankDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\nexport const CREATE_MANUAL_BANK_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateManualBankDeposit($input: CreateManualBankDepositInput!) {\r\n\t\tcreateManualBankDeposit(input: $input) {\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MANUAL_UPI_DEPOSIT_MUTATION = gql`\r\n\tmutation CreateManualUPIDeposit($input: CreateManualUPIDepositInput!) {\r\n\t\tcreateManualUPIDeposit(input: $input) {\r\n\t\t\t... on DepositPromoMaximumAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on DepositPromoMinimumAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumDepositAmountExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumFirstDepositAmountNotMetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on PromoNotEnabledError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on WalletDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on UPIReferenceNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSIT_QUERY = gql`\r\n\tquery Deposit($id: ObjectId!) {\r\n\t\tnode(id: $id) {\r\n\t\t\t... on GCashDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on MayaDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t}\r\n\t\t\t... on MayaAppDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on BankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on ManualDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on QRPHDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tqrCode\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on OnlineBankDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tvca\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t\t... on GCashDirectWebpayDeposit {\r\n\t\t\t\tid\r\n\t\t\t\ttype\r\n\t\t\t\tstatus\r\n\t\t\t\tcheckoutUrl\r\n\t\t\t\terror\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DEPOSITS_COUNT_QUERY = gql`\r\n\tquery DepositsCount {\r\n\t\tmember {\r\n\t\t\tdepositsCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const TOUCH_GCASH_DEPOSIT_MUTATION = gql`\r\n\tmutation TouchGCashDeposit($input: TouchGCashDepositInput!) {\r\n\t\ttouchGCashDeposit(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const TOUCH_QRPH_DEPOSIT_MUTATION = gql`\r\n\tmutation TouchQRPHDeposit($input: TouchQRPHDepositInput!) {\r\n\t\ttouchQRPHDeposit(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BET +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BET_RECORDS_QUERY = gql`\r\n\tquery BetRecords($first: Int, $after: Cursor, $filter: BetRecordFilterInput) {\r\n\t\tmember {\r\n\t\t\tbetRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\ttotalCount\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on BetRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tserialCode\r\n\t\t\t\t\t\t\tgame {\r\n\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbet\r\n\t\t\t\t\t\t\tpayout\r\n\t\t\t\t\t\t\twinloss\r\n\t\t\t\t\t\t\tjackpotPayout\r\n\t\t\t\t\t\t\tjackpotContribution\r\n\t\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\tdateTimeSettled\r\n\t\t\t\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\t\t\t\tmetadata\r\n\t\t\t\t\t\t\tvendorRoundId\r\n\t\t\t\t\t\t\tbetContent\r\n\t\t\t\t\t\t\tcontestName\r\n\t\t\t\t\t\t\texternalCategory\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const LATEST_BET_RECORDS_QUERY = gql`\r\n\tquery LatestBetRecords {\r\n\t\tlatestBetRecords {\r\n\t\t\tid\r\n\t\t\tmember {\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t}\r\n\t\t\tbet\r\n\t\t\tpayout\r\n\t\t\tvalidBet\r\n\t\t\tdateTimeSettled\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TRANSACTIONS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TRANSACTION_RECORDS_QUERY = gql`\r\n\tquery TransactionRecords($first: Int, $after: Cursor, $filter: TransactionRecordFilter) {\r\n\t\tmember {\r\n\t\t\ttransactionRecords(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on TransactionRecord {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\t\tcurrentBalance\r\n\t\t\t\t\t\t\tcurrentBonusBalance\r\n\t\t\t\t\t\t\treferenceNumber\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PROMO +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const PROMO_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment PromoFragment on Promo {\r\n\t\tid\r\n\t\ttype\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tmaximumBonusAmount\r\n\t\tminimumBonusAmount\r\n\t\tmaximumDepositAmount\r\n\t\tminimumDepositAmount\r\n\t\tactivationStartDateTime\r\n\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\tactivationEndDateTime\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Promos {\r\n\t\tpromos {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_PROMOS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery AvailablePromos($filter: PromoFilterInput) {\r\n\t\tavailablePromos(filter: $filter) {\r\n\t\t\t...PromoFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const SPOT_BONUS_FRAGMENT = gql`\r\n\tfragment SpotBonusFragment on SpotBonusPromo {\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tstatus\r\n\t\tdaysToClear\r\n\t\tzeroOutThreshold\r\n\t\tturnoverRequirementMultiplier\r\n\t\tturnoverRequirementType\r\n\t\tminimumTicketOddFactorPerSportsGameProvider\r\n\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\tbonusAmount\r\n\t\tenabledGameProviders\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tbanner {\r\n\t\t\tid\r\n\t\t\turl\r\n\t\t}\r\n\t\tdescription\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t\tdateTimeClosed\r\n\t\ttotalBonus\r\n\t\ttotalDeposit\r\n\t\ttotalBonusBalance\r\n\t\ttotalBet\r\n\t\ttotalBonusCashedOut\r\n\t\tbonusesCount\r\n\t\tclosedBonusesCount\r\n\t\tclosedBonusesCountPercentage\r\n\t\tactiveBonusesCount\r\n\t\tclearedBonusesCount\r\n\t\tzeroedOutBonusesCount\r\n\t\tcancelledBonusesCount\r\n\t\texpiredBonusesCount\r\n\t\tcode\r\n\t\tmaximumBonusesCountLimit\r\n\t}\r\n`;\r\n\r\nexport const PROMO_BY_CODE_QUERY = gql`\r\n\t${SPOT_BONUS_FRAGMENT}\r\n\r\n\tquery PromoByCode($code: String!) {\r\n\t\tpromoByCode(code: $code) {\r\n\t\t\t...SpotBonusFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_FRAGMENT = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tfragment CashbackFragment on Cashback {\r\n\t\tid\r\n\t\tname\r\n\t\tbanner {\r\n\t\t\t...FileFragment\r\n\t\t}\r\n\t\tminimumCashback\r\n\t\tmaximumMonthlyCashback\r\n\t\tstatus\r\n\t\tdescription\r\n\t\tactivationStartDateTime\r\n\t\tactivationEndDateTime\r\n\t\tturnoverContributionPercentagePerGameProvider\r\n\t\tdateTimeCreated\r\n\t\tdateTimeLastUpdated\r\n\t}\r\n`;\r\n\r\nexport const CASHBACKS_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery Cashbacks {\r\n\t\tcashbacks {\r\n\t\t\t...CashbackFragment\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ BONUS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const BONUS_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonus {\r\n\t\tbonus {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const BONUSES_QUERY = gql`\r\n\t${PROMO_FRAGMENT}\r\n\r\n\tquery Bonuses {\r\n\t\tbonuses {\r\n\t\t\tid\r\n\t\t\tpromo {\r\n\t\t\t\t...PromoFragment\r\n\t\t\t}\r\n\t\t\tdeposit {\r\n\t\t\t\ttype\r\n\t\t\t\tamount\r\n\t\t\t\tnetAmount\r\n\t\t\t\tfee\r\n\t\t\t\tstatus\r\n\t\t\t\treference\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t\tamount\r\n\t\t\tbalance\r\n\t\t\tturnoverRequirement\r\n\t\t\tcurrentTurnoverRequirementContribution\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider\r\n\t\t\tenabledGameProviders\r\n\t\t\texpiration\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CASHBACK_BONUSES_QUERY = gql`\r\n\t${CASHBACK_FRAGMENT}\r\n\r\n\tquery CashbackBonuses {\r\n\t\tcashbackBonuses {\r\n\t\t\tid\r\n\t\t\tbalance\r\n\t\t\ttotal\r\n\t\t\tcashback {\r\n\t\t\t\t...CashbackFragment\r\n\t\t\t}\r\n\t\t\tdateTimeCreated\r\n\t\t\tdateTimeLastUpdated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_CASHBACK_BONUS_MUTATION = gql`\r\n\tmutation ClaimCashbackBonus($input: ClaimCashbackBonusInput!) {\r\n\t\tclaimCashbackBonus(input: $input) {\r\n\t\t\t... on CashbackBonusDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MEMBER +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MEMBER_QUERY = gql`\r\n\tquery Member {\r\n\t\tmember {\r\n\t\t\tdateTimeLastActive\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**\r\n * _aka_ `Query.self`\r\n */\r\nexport const MEMBER_ACCOUNT_QUERY = gql`\r\n\tquery MemberAccount {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t\tstatus\r\n\t\t\t\trealName\r\n\t\t\t\temailAddress\r\n\t\t\t\tmobileNumber\r\n\t\t\t\tbirthDay\r\n\t\t\t\tverified\r\n\t\t\t\tverificationStatus\r\n\t\t\t\tnickName\r\n\t\t\t\tvalidId\r\n\t\t\t\tmobileNumberVerified\r\n\t\t\t\tmobileNumberVerificationRequired\r\n\t\t\t\ttransactionPassword\r\n\t\t\t\tsecretAnswerSubmitted\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MEMBER_VERIFICATION_QUERY = gql`\r\n\t${FILE_FRAGMENT}\r\n\r\n\tquery MemberVerification {\r\n\t\tmemberAccount: self {\r\n\t\t\t... on MemberAccount {\r\n\t\t\t\tverification {\r\n\t\t\t\t\tid\r\n\t\t\t\t\tstatus\r\n\t\t\t\t\taddress\r\n\t\t\t\t\tpermanentAddress\r\n\t\t\t\t\tsourceOfIncome\r\n\t\t\t\t\tnatureOfWork\r\n\t\t\t\t\tnationality\r\n\t\t\t\t\tplaceOfBirth\r\n\t\t\t\t\tidFrontImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t\tselfieImage {\r\n\t\t\t\t\t\t...FileFragment\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput!\r\n\t\t$referralCode: String\r\n\t\t$verificationCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION = gql`\r\n\tmutation RegisterMemberAccountByName(\r\n\t\t$input: RegisterMemberAccountByNameInput!\r\n\t\t$reCAPTCHAResponse: String!\r\n\t) {\r\n\t\tregisterMemberAccountByName(input: $input, reCAPTCHAResponse: $reCAPTCHAResponse) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\nexport const REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION = gql`\r\n\tmutation RegisterMemberAccountViaMobile(\r\n\t\t$input: RegisterMemberAccountViaMobileInput!\r\n\t\t$referralCode: String\r\n\t\t$reCAPTCHAResponse: String\r\n\t\t$verificationCode: String\r\n\t) {\r\n\t\tregisterMemberAccountViaMobile(\r\n\t\t\tinput: $input\r\n\t\t\treferralCode: $referralCode\r\n\t\t\tverificationCode: $verificationCode\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT = gql`\r\n\tmutation RegisterMemberAccount(\r\n\t\t$input: RegisterMemberAccountInput_next!\r\n\t\t$reCAPTCHAResponse: String\r\n\t) {\r\n\t\tregisterMemberAccount: registerMemberAccount_next(\r\n\t\t\tinput: $input\r\n\t\t\treCAPTCHAResponse: $reCAPTCHAResponse\r\n\t\t) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidReCAPTCHAResponseError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MinimumAgeRequirementError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ReCAPTCHAVerificationFailedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation RegisterMayaMemberAccount($input: RegisterMayaMemberAccountInput!) {\r\n\t\tregisterMayaMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation UpdateMemberAccount($input: UpdateMemberAccountInput!) {\r\n\t\tupdateMemberAccount(input: $input) {\r\n\t\t\t... on AccountNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on EmailAddressNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidTransactionPasswordError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NickNameNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RealNameAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on ValidIdAlreadySetError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const RESET_PASSWORD_MUTATION = gql`\r\n\tmutation ResetPassword($input: ResetPasswordInput!, $verificationCode: String) {\r\n\t\tresetPassword(input: $input, verificationCode: $verificationCode) {\r\n\t\t\t... on AccountNotFoundError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const DELETE_MEMBER_ACCOUNT_MUTATION = gql`\r\n\tmutation DeleteMemberAccount($input: DeleteMemberAccountInput!) {\r\n\t\tdeleteMemberAccount(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const VERIFY_MOBILE_NUMBER_MUTATION = gql`\r\n\tmutation VerifyMobileNumber($input: VerifyMobileNumberInput!) {\r\n\t\tverifyMobileNumber(input: $input) {\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MobileNumberAlreadyVerifiedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CREATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation CreateMemberVerification($input: CreateMemberVerificationInput!) {\r\n\t\tcreateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyExistsError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_MEMBER_VERIFICATION_MUTATION = gql`\r\n\tmutation UpdateMemberVerification($input: UpdateMemberVerificationInput!) {\r\n\t\tupdateMemberVerification(input: $input) {\r\n\t\t\t... on FileDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on FileNotReadyError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationAlreadyApprovedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MemberVerificationDoesNotExistError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PROFILE_COMPLETION_QUERY = gql`\r\n\tquery ProfileCompletion {\r\n\t\tprofileCompletion {\r\n\t\t\tcompletionPercentage\r\n\t\t\tpersonalInformation\r\n\t\t\taccountVerification\r\n\t\t\tmobileNumberVerification\r\n\t\t\ttransactionPassword\r\n\t\t\taccountPassword\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/** @deprecated */\r\nexport const SEND_VERIFICATION_CODE_MUTATION = gql`\r\n\tmutation SendVerificationCode($input: SendVerificationCodeInput!) {\r\n\t\tsendVerificationCode(input: $input) {\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on NotReadyToSendVerficationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION = gql`\r\n\tmutation RegisterMemberAccountByMobileNumber(\r\n\t\t$input: RegisterMemberAccountByMobileNumberInput!\r\n\t\t$mobileNumberVerificationCode: String!\r\n\t) {\r\n\t\tregisterMemberAccountByMobileNumber(\r\n\t\t\tinput: $input\r\n\t\t\tmobileNumberVerificationCode: $mobileNumberVerificationCode\r\n\t\t) {\r\n\t\t\t... on MobileNumberNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidSMSVerificationCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on InvalidPlatformError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ PLATFORM +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\n/** @deprecated */\r\nexport const PLATFORM_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\tbankAccountName\r\n\t\tbankAccountNumber\r\n\t\tbankIFSCCode\r\n\t\tupiId\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\tfixedFee\r\n\t\tpercentageFee\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const PLATFORM_QUERY__NEXT = gql`\r\n\tquery Platform {\r\n\t\ttimezone\r\n\t\tcurrency\r\n\t}\r\n`;\r\n\r\nexport const PAYMENT_SETTINGS_QUERY = gql`\r\n\tfragment DepositGatewaySettingsCoreData on DepositGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t\tbankAccountName\r\n\t\tbankAccountNumber\r\n\t\tbankIFSCCode\r\n\t\tupiId\r\n\t\tupiQRCode {\r\n\t\t\tid\r\n\t\t\turl\r\n\t\t}\r\n\t}\r\n\r\n\tfragment WithdrawalGatewaySettingsCoreData on WithdrawalGatewaySettings {\r\n\t\tminimumAmount\r\n\t\tmaximumAmount\r\n\t\twebEnabled\r\n\t\tmobileWebEnabled\r\n\t\tandroidEnabled\r\n\t\tiosEnabled\r\n\t}\r\n\r\n\tquery PaymentSettings {\r\n\t\tminimumFirstDepositAmount\r\n\t\trestrictWithdrawalsToVerifiedMembers\r\n\t\tbankDepositGatewaySettings: depositGatewaySettings(gateway: BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashDepositGatewaySettings: depositGatewaySettings(gateway: GCASH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaDepositGatewaySettings: depositGatewaySettings(gateway: MAYA) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppDepositGatewaySettings: depositGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tonlineBankDepositGatewaySettings: depositGatewaySettings(gateway: ONLINE_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tqrphDepositGatewaySettings: depositGatewaySettings(gateway: QR_PH) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIDepositGatewaySettings: depositGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...DepositGatewaySettingsCoreData\r\n\t\t}\r\n\t\tbankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tgcashWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: GCASH) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmayaAppWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MAYA_APP) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tinstapayWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: INSTAPAY) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualBankWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_BANK) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t\tmanualUPIWithdrawalGatewaySettings: withdrawalGatewaySettings(gateway: MANUAL_UPI) {\r\n\t\t\t...WithdrawalGatewaySettingsCoreData\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ SESSION +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MAYA_SESSION_QUERY = gql`\r\n\tquery MayaSession($id: ObjectId!) {\r\n\t\tmayaSession(id: $id) {\r\n\t\t\tid\r\n\t\t\tmember\r\n\t\t\tdateTimeCreated\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const VALIDATE_MAYA_SESSION_MUTATION = gql`\r\n\tmutation ValidateMayaSession {\r\n\t\tvalidateMayaSession: validMayaSession\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ACTIVITY +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ACTIVITY_RECORDS_QUERY = gql`\r\n\tquery ActivityRecords($after: Cursor, $first: Int, $filter: ActivityRecordsFilterInput) {\r\n\t\tmember {\r\n\t\t\tactivityRecords(after: $after, first: $first, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on MemberActivity {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\ttype\r\n\t\t\t\t\t\t\tdomain\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tdetails\r\n\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ REFERRAL +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const REFERRAL_CODE_QUERY = gql`\r\n\tquery ReferralCode {\r\n\t\treferralCode\r\n\t}\r\n`;\r\n\r\nexport const UPDATE_REFERRAL_CODE_MUTATION = gql`\r\n\tmutation UpdateReferralCode($input: UpdateReferralCodeInput!) {\r\n\t\tupdateReferralCode(input: $input) {\r\n\t\t\t... on ReferralCodeNotAvailableError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const REFERRAL_FRAGMENT = gql`\r\n\tfragment ReferralFragment on Referral {\r\n\t\tid\r\n\t\tupline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tdownline {\r\n\t\t\tid\r\n\t\t\tname\r\n\t\t\trealName\r\n\t\t}\r\n\t\tlevel\r\n\t\tturnover\r\n\t\tcommission\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const REFERRALS_QUERY = gql`\r\n\tquery Referrals($first: Int, $after: Cursor, $filter: ReferralFilterInput) {\r\n\t\tmember {\r\n\t\t\treferrals(first: $first, after: $after, filter: $filter) {\r\n\t\t\t\tedges {\r\n\t\t\t\t\tcursor\r\n\t\t\t\t\tnode {\r\n\t\t\t\t\t\t... on Referral {\r\n\t\t\t\t\t\t\t...ReferralFragment\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttotalCount\r\n\t\t\t\tpageInfo {\r\n\t\t\t\t\thasNextPage\r\n\t\t\t\t\tendCursor\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const UPLINES_BY_NAME_QUERY = gql`\r\n\tquery UplinesByName($search: String!, $first: Int) {\r\n\t\tuplinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const DOWNLINES_BY_NAME_QUERY = gql`\r\n\tquery DownlinesByName($search: String!, $first: Int) {\r\n\t\tdownlinesByName(search: $search, first: $first) {\r\n\t\t\t...ReferralFragment\r\n\t\t}\r\n\t}\r\n\r\n\t${REFERRAL_FRAGMENT}\r\n`;\r\n\r\nexport const REFERRAL_COMMISSION_QUERY = gql`\r\n\tquery ReferralCommission {\r\n\t\tmember {\r\n\t\t\treferralCommission {\r\n\t\t\t\tid\r\n\t\t\t\tcommission\r\n\t\t\t\tdateTimeCreated\r\n\t\t\t\tdateTimeLastUpdated\r\n\t\t\t\tlevel1Commission\r\n\t\t\t\tlevel1ReferralsCount\r\n\t\t\t\tlevel2Commission\r\n\t\t\t\tlevel2ReferralsCount\r\n\t\t\t\tlevel3Commission\r\n\t\t\t\tlevel3ReferralsCount\r\n\t\t\t\treferralCode\r\n\t\t\t\treferralsCount\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const POINTS_CLUB_SETTINGS_QUERY = gql`\r\n\tquery PointsClubSettings {\r\n\t\tpointsClubSettings {\r\n\t\t\tmultiplier\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ MESSAGES +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MESSAGES_QUERY = gql`\r\n\tquery Messages($first: Int, $after: Cursor, $filter: MessageFilterInput) {\r\n\t\tmessages(first: $first, after: $after, filter: $filter) {\r\n\t\t\tedges {\r\n\t\t\t\tcursor\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Message {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ticon\r\n\t\t\t\t\t\timage\r\n\t\t\t\t\t\ttitle\r\n\t\t\t\t\t\tcontent\r\n\t\t\t\t\t\tpopup\r\n\t\t\t\t\t\tactions {\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmarkedAsRead\r\n\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\tmetadata {\r\n\t\t\t\t\t\t\t... on TournamentPayoutMessageMetadata {\r\n\t\t\t\t\t\t\t\ttournament {\r\n\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tpayout {\r\n\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const UNREAD_MESSAGES_COUNT_QUERY = gql`\r\n\tquery UnreadMessagesCount($filter: MessageFilterInput) {\r\n\t\tmessages(filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const MARK_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkMessageAsRead($id: ObjectId!) {\r\n\t\tmarkMessageAsRead(id: $id)\r\n\t}\r\n`;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const MARK_ALL_MESSAGE_AS_READ_MUTATION = gql`\r\n\tmutation MarkAllMessageAsRead {\r\n\t\tmarkAllMessageAsRead\r\n\t}\r\n`;\r\n\r\nexport const MARK_ALL_MESSAGES_AS_READ_MUTATION = gql`\r\n\tmutation MarkAllMessagesAsRead {\r\n\t\tmarkAllMessagesAsRead\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_REWARD_MUTATION = gql`\r\n\tmutation ClaimReward($id: ObjectId!) {\r\n\t\tclaimReward(id: $id) {\r\n\t\t\t... on RewardAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on RewardAlreadyExpiredError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CLAIM_SPOT_BONUS = gql`\r\n\tmutation ClaimSpotBonus($code: String!) {\r\n\t\tclaimSpotBonus(code: $code) {\r\n\t\t\t... on InvalidPromoCodeError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on MaximumBonusesCountLimitExceededError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t\t... on SpotBonusAlreadyClaimedError {\r\n\t\t\t\t__typename\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ ONBOARDING +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const ONBOARDING_STATUS_QUERY = gql`\r\n\tquery OnboardingStatus {\r\n\t\tonboardingStatus\r\n\t}\r\n`;\r\n\r\nexport const COMPLETE_ONBOARDING_MUTATION = gql`\r\n\tmutation CompleteOnboarding($input: CompleteOnboardingInput!) {\r\n\t\tcompleteOnboarding(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const SKIP_ONBOARDING_MUTATION = gql`\r\n\tmutation SkipOnboarding {\r\n\t\tskipOnboarding\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ QUEST +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\nexport const QUEST_PROGRAM_FRAGMENT = gql`\r\n\tfragment QuestProgramFragment on QuestProgram {\r\n\t\tstatus\r\n\t\ttype\r\n\t\tname\r\n\t\tdescription\r\n\t}\r\n`;\r\n\r\nexport const DAILY_CHECKIN_FRAGMENT = gql`\r\n\t${QUEST_PROGRAM_FRAGMENT}\r\n\tfragment DailyCheckinQuestFragment on DailyCheckInQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\ttype\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tlastCheckInDate\r\n\t\tstartDateTime\r\n\t\tcheckInStreak\r\n\r\n\t\tthirdDayBonusAmount\r\n\t\tseventhDayBonusAmount\r\n\t\tsixthDayBonusAmount\r\n\t}\r\n`;\r\nexport const WAGERING_FRAGMENT = gql`\r\n\tfragment WageringQuestFragment on WageringQuest {\r\n\t\tbonus\r\n\t\tid\r\n\t\tname\r\n\t\ttype\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\tprogressPercentage\r\n\t\tturnover\r\n\t\ttargetTurnover\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t}\r\n`;\r\n\r\nexport const ONBOARDING_QUEST_FRAGMENT = gql`\r\n\tfragment OnboardingQuestFragment on OnboardingQuest {\r\n\t\tid\r\n\t\tname\r\n\t\tdescription\r\n\t\tprogram {\r\n\t\t\t...QuestProgramFragment\r\n\t\t}\r\n\r\n\t\tstatus\r\n\t\ttype\r\n\t\tprogressPercentage\r\n\t\tbonus\r\n\t\tendDateTime\r\n\t\tdateTimeCreated\r\n\t\tfirstDepositCompleted\r\n\t\taccountVerificationCompleted\r\n\t}\r\n`;\r\n\r\nexport const AVAILABLE_QUESTS_QUERY = gql`\r\n\t${WAGERING_FRAGMENT}\r\n\t${DAILY_CHECKIN_FRAGMENT}\r\n\t${ONBOARDING_QUEST_FRAGMENT}\r\n\r\n\tquery AvailableQuests {\r\n\t\tavailableQuests {\r\n\t\t\t... on Quest {\r\n\t\t\t\t... on WageringQuest {\r\n\t\t\t\t\t...WageringQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on DailyCheckInQuest {\r\n\t\t\t\t\t...DailyCheckinQuestFragment\r\n\t\t\t\t}\r\n\t\t\t\t... on OnboardingQuest {\r\n\t\t\t\t\t...OnboardingQuestFragment\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const CHECK_IN_DAILY_QUEST_MUTATION = gql`\r\n\tmutation checkInDailyCheckInQuest($input: CheckInDailyCheckInQuestInput!) {\r\n\t\tcheckInDailyCheckInQuest(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TOP WIN +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TOP_WINS_QUERY = gql`\r\n\tquery TopWins($first: Int) {\r\n\t\ttopWins(first: $first) {\r\n\t\t\tid\r\n\t\t\tgame {\r\n\t\t\t\tid\r\n\t\t\t}\r\n\t\t\tmember {\r\n\t\t\t\tid\r\n\t\t\t\tname\r\n\t\t\t}\r\n\t\t\tmultiplier\r\n\t\t\tpayout\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ Jackpots +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const JACKPOTS_QUERY = gql`\r\n\tquery Jackpots(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$sort: JackpotSortInput\r\n\t\t$filter: JackpotFilterInput\r\n\t) {\r\n\t\tjackpots(first: $first, after: $after, sort: $sort, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on Jackpot {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t\tdescription\r\n\t\t\t\t\t\tpool\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tminimumJackpotPoolDrawingLimit\r\n\t\t\t\t\t\tmaximumJackpotPoolLimit\r\n\t\t\t\t\t\tdrawing\r\n\t\t\t\t\t\tminimumMultiplier\r\n\t\t\t\t\t\tminimumBet\r\n\t\t\t\t\t\tjackpotPayoutPercentage\r\n\t\t\t\t\t\tjackpotTurnoverContributionPercentagePerGameProvider\r\n\t\t\t\t\t\ttotalPayout\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const JACKPOT_PAYOUTS_QUERY = gql`\r\n\tquery JackpotPayouts(\r\n\t\t$first: Int\r\n\t\t$after: Cursor\r\n\t\t$sort: JackpotPayoutSortInput\r\n\t\t$filter: JackpotPayoutFilterInput\r\n\t) {\r\n\t\tjackpotPayouts(first: $first, after: $after, sort: $sort, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on JackpotPayout {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\tmember {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tserialCode\r\n\t\t\t\t\t\tjackpot {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\tbet\r\n\t\t\t\t\t\tamount\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FMC Device +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const REGISTER_FCM_DEVICE = gql`\r\n\tmutation RegisterFCMDevice($input: RegisterFCMDeviceInput!) {\r\n\t\tregisterFCMDevice(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const UNREGISTER_FCM_DEVICE = gql`\r\n\tmutation UnregisterFCMDevice($input: UnregisterFCMDeviceInput!) {\r\n\t\tunregisterFCMDevice(input: $input)\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ FAVORITE GAME +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const MARK_GAME_AS_FAVORITE = gql`\r\n\tmutation MarkGameAsFavorite($input: MarkGameAsFavoriteInput!) {\r\n\t\tmarkGameAsFavorite(input: $input)\r\n\t}\r\n`;\r\nexport const UNMARK_GAME_AS_FAVORITE = gql`\r\n\tmutation UnmarkGameAsFavorite($input: UnmarkGameAsFavoriteInput!) {\r\n\t\tunmarkGameAsFavorite(input: $input)\r\n\t}\r\n`;\r\n\r\nexport const FAVORITE_GAMES_QUERY = gql`\r\n\tquery FavoriteGames {\r\n\t\tfavoriteGames {\r\n\t\t\tid\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nexport const GOOGLE_CLIEND_ID_QUERY = gql`\r\n\tquery GoogleClientId {\r\n\t\tgoogleClientId\r\n\t}\r\n`;\r\n\r\n/**/\r\n/*+----------------------------------------+*/\r\n/*+ TOURNAMENTS +*/\r\n/*+----------------------------------------+*/\r\n/**/\r\n\r\nexport const TOURNAMENTS_QUERY = gql`\r\n\tquery Tournaments($first: Int, $after: Cursor, $filter: TournamentFilterInput) {\r\n\t\ttournaments(first: $first, after: $after, filter: $filter) {\r\n\t\t\ttotalCount\r\n\t\t\tpageInfo {\r\n\t\t\t\thasNextPage\r\n\t\t\t\tendCursor\r\n\t\t\t}\r\n\t\t\tedges {\r\n\t\t\t\tnode {\r\n\t\t\t\t\t... on MultiplierTournament {\r\n\t\t\t\t\t\tid\r\n\t\t\t\t\t\ttype\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t\twinnersCount\r\n\t\t\t\t\t\tstatus\r\n\t\t\t\t\t\tdescription\r\n\t\t\t\t\t\tactivationStartDateTime\r\n\t\t\t\t\t\tactivationEndDateTime\r\n\t\t\t\t\t\ttopPayouts {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\tamount\r\n\t\t\t\t\t\t\tmember {\r\n\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurrentLeaderboard {\r\n\t\t\t\t\t\t\ttotalCount\r\n\t\t\t\t\t\t\tedges {\r\n\t\t\t\t\t\t\t\tnode {\r\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\r\n\t\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\t\tusername\r\n\t\t\t\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpreviousLeaderboard {\r\n\t\t\t\t\t\t\ttotalCount\r\n\t\t\t\t\t\t\tedges {\r\n\t\t\t\t\t\t\t\tnode {\r\n\t\t\t\t\t\t\t\t\t... on TournamentLeaderboard {\r\n\t\t\t\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\t\t\t\tusername\r\n\t\t\t\t\t\t\t\t\t\tmultiplier\r\n\t\t\t\t\t\t\t\t\t\tdateTimeCreated\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tenabledGameProviders\r\n\t\t\t\t\t\tfrequency\r\n\t\t\t\t\t\tmode\r\n\t\t\t\t\t\tmobileBanner {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t\tmimeType\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\twebBanner {\r\n\t\t\t\t\t\t\tid\r\n\t\t\t\t\t\t\turl\r\n\t\t\t\t\t\t\tmimeType\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\trewardSettings\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n`;\r\n","import type { OperationError } from '../types/index.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tClaimCashbackBonusError,\r\n\tClaimRewardError,\r\n\tClaimSpotBonusError,\r\n\tCreateDepositError,\r\n\tCreateGameSessionError,\r\n\tCreateMemberVerificationError,\r\n\tCreateSessionError,\r\n\tCreateWithdrawalError,\r\n\tEndGameSessionError,\r\n\tRedeemPointsToCashError,\r\n\tRefreshSessionError,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMemberAccountError,\r\n\tResetPasswordError,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeError__Next,\r\n\tTransactionPasswordNotSetError,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateReferralCodeError,\r\n\tUPIReferenceNotAvailableError,\r\n\tUploadPrivateImageFileError,\r\n\tVerifyMobileNumberError,\r\n} from './types.js';\r\n\r\ntype E =\r\n\t| ClaimCashbackBonusError\r\n\t| CreateDepositError\r\n\t| UploadPrivateImageFileError\r\n\t| CreateGameSessionError\r\n\t| EndGameSessionError\r\n\t| RegisterMemberAccountError\r\n\t| RegisterMayaMemberAccountError\r\n\t| UpdateMemberAccountError\r\n\t| ResetPasswordError\r\n\t| SendVerificationCodeError\r\n\t| VerifyMobileNumberError\r\n\t| CreateMemberVerificationError\r\n\t| UpdateMemberVerificationError\r\n\t| RedeemPointsToCashError\r\n\t| CreateWithdrawalError\r\n\t| CreateSessionError\r\n\t| RefreshSessionError\r\n\t| AuthenticateError\r\n\t| UpdateReferralCodeError\r\n\t| SendVerificationCodeError__Next\r\n\t| ClaimRewardError\r\n\t| ClaimSpotBonusError\r\n\t| TransactionPasswordNotSetError\r\n\t| UPIReferenceNotAvailableError;\r\n\r\nexport function createOperationError<T extends E>(code: T): OperationError<T> {\r\n\tconst messages: Record<E, string> = {\r\n\t\tPointsNotDivisibleBy100Error: 'Please input points that are multiples of 100.',\r\n\t\tMaximumBonusesCountLimitExceededError: 'Maximum bonuses reached',\r\n\t\tInvalidPromoCodeError: 'Invalid Promo Code',\r\n\t\tSpotBonusAlreadyClaimedError:\r\n\t\t\t'This promo code has already been redeemed and cannot be used again',\r\n\t\tRewardAlreadyExpiredError: 'Reward is either expired or no longer available',\r\n\t\tAccountNameNotAvailableError: 'Username is no longer available',\r\n\t\tAccountNotFoundError: 'Account does not exist',\r\n\t\tAccountNotVerifiedError: 'Account is not verified',\r\n\t\tCashbackBonusDoesNotExistError: 'Cashback bonus does not exists',\r\n\t\tDepositPromoMaximumAmountExceededError:\r\n\t\t\t'Deposit amount exceeds maximum amount for selected promo',\r\n\t\tDepositPromoMinimumAmountNotMetError:\r\n\t\t\t'Deposit amount does not meet minimum amount for selected promo',\r\n\t\tEmailAddressNotAvailableError: 'Email is no longer available',\r\n\t\tFileDoesNotExistError: 'File does not exist',\r\n\t\tFileFormatNotSupportedError: 'File format is not supported',\r\n\t\tFileNameTooLongError: 'File name is too long',\r\n\t\tFileNotReadyError: 'File is not yet ready',\r\n\t\tFileSizeTooBigError: 'File size is too big',\r\n\t\tGameDoesNotExistError: 'Game does not exist',\r\n\t\tInsufficientPointsError: 'Insufficient points',\r\n\t\tInvalidPlatformError: 'Invalid platform',\r\n\t\tInvalidReCAPTCHAResponseError: 'Invalid reCAPTCHA',\r\n\t\tInvalidSMSVerificationCodeError: 'Invalid SMS verification code',\r\n\t\tInvalidTransactionPasswordError: 'Invalid transaction password',\r\n\t\tInvalidVerificationCodeError: 'Invalid verification code',\r\n\t\tInvalidWithdrawalAmountError: 'Invalid withdrawal amount',\r\n\t\tMaximumDepositAmountExceededError: 'Maximum deposit amount exceeded',\r\n\t\tMemberVerificationAlreadyApprovedError: 'Member verification is already approved',\r\n\t\tMemberVerificationAlreadyExistsError: 'Member verification already exists',\r\n\t\tMemberVerificationDoesNotExistError: 'Member verification does not exist',\r\n\t\tMinimumAgeRequirementError: 'Minimum age requirement not met',\r\n\t\tMinimumDepositAmountNotMetError: 'Minimum deposit amount not met',\r\n\t\tMinimumFirstDepositAmountNotMetError: 'Minimum first deposit amount not met',\r\n\t\tMobileNumberAlreadyVerifiedError: 'Mobile number is already verified',\r\n\t\tMobileNumberNotAvailableError: 'Mobile number is no longer available',\r\n\t\tMobileNumberNotVerifiedError: 'Mobile number is not verified',\r\n\t\tNickNameNotAvailableError: 'Nickname is no longer available',\r\n\t\tNotEnoughBalanceError: 'Insufficient balance',\r\n\t\tNotReadyToSendVerficationCodeError: 'Not ready to send verification code',\r\n\t\tPromoNotEnabledError: 'Promo is not enabled',\r\n\t\tRealNameAlreadySetError: 'Real name is already set',\r\n\t\tValidIdAlreadySetError: 'Valid ID is already set',\r\n\t\tWalletDoesNotExistError: 'Wallet does not exist',\r\n\t\tWithdrawalDailyLimitExceededError: 'Daily withdrawal limit exceeded',\r\n\t\tGameProviderError: 'Game provider error',\r\n\t\tGameSessionAlreadyClosedError: 'Game session is already closed',\r\n\t\tGameSessionDoesNotExistError: 'Game session does not exist',\r\n\t\tReferralCodeNotAvailableError: 'Referral code is no longer available',\r\n\t\tAccountBlacklistedError: 'Account is blacklisted',\r\n\t\tInvalidTokenError: 'Invalid token',\r\n\t\tInvalidTokenOrSecretAnswerError: 'Invalid token or secret answer',\r\n\t\tSessionExpiredError: 'Session expired',\r\n\t\tRateLimitExceededError: 'Maximum number of requests reached',\r\n\t\tRewardAlreadyClaimedError: 'Reward is already claimed',\r\n\t\tReCAPTCHAVerificationFailedError: 'Invalid reCAPTCHA',\r\n\t\tAccountSuspendedError: 'Account is suspended',\r\n\t\tTransactionPasswordNotSetError: 'Transaction password is not set',\r\n\t\tUPIReferenceNotAvailableError: 'UPI reference is no longer available',\r\n\t};\r\n\r\n\treturn {\r\n\t\tname: code,\r\n\t\tmessage: messages[code],\r\n\t};\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tANNOUNCEMENTS_QUERY,\r\n\tCREATE_MEMBER_VERIFICATION_MUTATION,\r\n\tDELETE_MEMBER_ACCOUNT_MUTATION,\r\n\tGOOGLE_CLIEND_ID_QUERY,\r\n\tMEMBER_ACCOUNT_QUERY,\r\n\tMEMBER_VERIFICATION_QUERY,\r\n\tPAYMENT_SETTINGS_QUERY,\r\n\tPLATFORM_QUERY,\r\n\tPOINTS_CLUB_SETTINGS_QUERY,\r\n\tPROFILE_COMPLETION_QUERY,\r\n\tREFERRAL_CODE_QUERY,\r\n\tREGISTER_MAYA_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION,\r\n\tREGISTER_MEMBER_ACCOUNT_MUTATION__NEXT,\r\n\tREGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION,\r\n\tRESET_PASSWORD_MUTATION,\r\n\tSEND_VERIFICATION_CODE_MUTATION,\r\n\tUPDATE_MEMBER_ACCOUNT_MUTATION,\r\n\tUPDATE_MEMBER_VERIFICATION_MUTATION,\r\n\tUPDATE_REFERRAL_CODE_MUTATION,\r\n\tVERIFY_MOBILE_NUMBER_MUTATION,\r\n} from './queries.js';\r\nimport type {\r\n\tAnnouncement,\r\n\tAnnouncementsQuery,\r\n\tAnnouncementsQueryVariables,\r\n\tCreateMemberVerificationError,\r\n\tCreateMemberVerificationMutation,\r\n\tCreateMemberVerificationMutationVariables,\r\n\tDeleteMemberAccountMutation,\r\n\tDeleteMemberAccountMutationVariables,\r\n\tGoogleClientIdQuery,\r\n\tMemberAccount,\r\n\tMemberAccountQuery,\r\n\tMemberVerification,\r\n\tMemberVerificationQuery,\r\n\tPaginatedQueryResult,\r\n\tPaymentSettings,\r\n\tPaymentSettingsQuery,\r\n\tPlatform,\r\n\tPlatformQuery,\r\n\tPointsClubSettings,\r\n\tPointsClubSettingsQuery,\r\n\tProfileCompletion,\r\n\tProfileCompletionQuery,\r\n\tReferralCodeQuery,\r\n\tRegisterMayaMemberAccountError,\r\n\tRegisterMayaMemberAccountMutation,\r\n\tRegisterMayaMemberAccountMutationVariables,\r\n\tRegisterMemberAccountByMobileNumberError,\r\n\tRegisterMemberAccountByMobileNumberMutation,\r\n\tRegisterMemberAccountByMobileNumberMutationVariables,\r\n\tRegisterMemberAccountByNameMutation,\r\n\tRegisterMemberAccountByNameMutationVariables,\r\n\tRegisterMemberAccountError,\r\n\tRegisterMemberAccountMutation,\r\n\tRegisterMemberAccountMutationVariables,\r\n\tRegisterMemberAccountMutationVariables__Next,\r\n\tRegisterMemberAccountViaMobileMutation,\r\n\tRegisterMemberAccountViaMobileMutationVariables,\r\n\tResetPasswordError,\r\n\tResetPasswordMutation,\r\n\tResetPasswordMutationVariables,\r\n\tSendVerificationCodeError,\r\n\tSendVerificationCodeMutation,\r\n\tSendVerificationCodeMutationVariables,\r\n\tUpdateMemberAccountError,\r\n\tUpdateMemberAccountMutation,\r\n\tUpdateMemberAccountMutationVariables,\r\n\tUpdateMemberVerificationError,\r\n\tUpdateMemberVerificationMutation,\r\n\tUpdateMemberVerificationMutationVariables,\r\n\tUpdateReferralCodeError,\r\n\tUpdateReferralCodeMutation,\r\n\tUpdateReferralCodeMutationVariables,\r\n\tVerifyMobileNumberError,\r\n\tVerifyMobileNumberMutation,\r\n\tVerifyMobileNumberMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class AccountService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\t/** aka `Query.self` */\r\n\tasync memberAccount(): Promise<OperationResult<never, MemberAccount>> {\r\n\t\tconst res = await this.client.request<MemberAccountQuery>(MEMBER_ACCOUNT_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount(\r\n\t\tvariables: RegisterMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccountViaMobile(\r\n\t\tvariables: RegisterMemberAccountViaMobileMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, testPass, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountViaMobileMutation,\r\n\t\t\tRegisterMemberAccountViaMobileMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_VIA_MOBILE_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t\t...(testPass && {\r\n\t\t\t\t\t'test-pass': testPass,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountViaMobile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountViaMobile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccount__next(\r\n\t\tvariables: RegisterMemberAccountMutationVariables__Next,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountMutation,\r\n\t\t\tRegisterMemberAccountMutationVariables__Next\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_MUTATION__NEXT, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMemberAccountByName(\r\n\t\tvariables: RegisterMemberAccountByNameMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountByNameMutation,\r\n\t\t\tRegisterMemberAccountByNameMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_NAME_MUTATION, variables, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(variables.reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': variables.reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountByName) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByName.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberAccount(\r\n\t\tvariables: UpdateMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberAccountMutation,\r\n\t\t\tUpdateMemberAccountMutationVariables\r\n\t\t>(UPDATE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync deleteMemberAccount(\r\n\t\tvariables: DeleteMemberAccountMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tDeleteMemberAccountMutation,\r\n\t\t\tDeleteMemberAccountMutationVariables\r\n\t\t>(DELETE_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.deleteMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync resetPassword(\r\n\t\tvariables: ResetPasswordMutationVariables,\r\n\t): Promise<OperationResult<ResetPasswordError>> {\r\n\t\tconst res = await this.client.request<ResetPasswordMutation, ResetPasswordMutationVariables>(\r\n\t\t\tRESET_PASSWORD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.resetPassword) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.resetPassword.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<OperationResult<never, ProfileCompletion>> {\r\n\t\tconst res = await this.client.request<ProfileCompletionQuery>(PROFILE_COMPLETION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.profileCompletion } : res;\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<OperationResult<never, Platform>> {\r\n\t\treturn await this.client.request<PlatformQuery>(PLATFORM_QUERY);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync sendVerificationCode(\r\n\t\tvariables: SendVerificationCodeMutationVariables,\r\n\t): Promise<OperationResult<SendVerificationCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tSendVerificationCodeMutation,\r\n\t\t\tSendVerificationCodeMutationVariables\r\n\t\t>(SEND_VERIFICATION_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.sendVerificationCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.sendVerificationCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<OperationResult<never, PaymentSettings>> {\r\n\t\treturn await this.client.request<PaymentSettingsQuery>(PAYMENT_SETTINGS_QUERY);\r\n\t}\r\n\r\n\tasync verifyMobileNumber(\r\n\t\tvariables: VerifyMobileNumberMutationVariables,\r\n\t): Promise<OperationResult<VerifyMobileNumberError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tVerifyMobileNumberMutation,\r\n\t\t\tVerifyMobileNumberMutationVariables\r\n\t\t>(VERIFY_MOBILE_NUMBER_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.verifyMobileNumber) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.verifyMobileNumber.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMemberVerification(\r\n\t\tvariables: CreateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<CreateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMemberVerificationMutation,\r\n\t\t\tCreateMemberVerificationMutationVariables\r\n\t\t>(CREATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateMemberVerification(\r\n\t\tvariables: UpdateMemberVerificationMutationVariables,\r\n\t): Promise<OperationResult<UpdateMemberVerificationError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateMemberVerificationMutation,\r\n\t\t\tUpdateMemberVerificationMutationVariables\r\n\t\t>(UPDATE_MEMBER_VERIFICATION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateMemberVerification) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateMemberVerification.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberVerification(): Promise<\r\n\t\tOperationResult<never, MemberVerification | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<MemberVerificationQuery>(MEMBER_VERIFICATION_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.memberAccount.verification,\r\n\t\t};\r\n\t}\r\n\r\n\tasync announcements(\r\n\t\tvariables?: AnnouncementsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Announcement>>> {\r\n\t\tconst res = await this.client.request<AnnouncementsQuery, AnnouncementsQueryVariables>(\r\n\t\t\tANNOUNCEMENTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.announcements,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerMayaMemberAccount(\r\n\t\tvariables: RegisterMayaMemberAccountMutationVariables,\r\n\t): Promise<OperationResult<RegisterMayaMemberAccountError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMayaMemberAccountMutation,\r\n\t\t\tRegisterMayaMemberAccountMutationVariables\r\n\t\t>(REGISTER_MAYA_MEMBER_ACCOUNT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMayaMemberAccount) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMayaMemberAccount.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync referralCode(): Promise<OperationResult<never, string | null | undefined>> {\r\n\t\tconst res = await this.client.request<ReferralCodeQuery>(REFERRAL_CODE_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.referralCode,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(\r\n\t\tvariables: UpdateReferralCodeMutationVariables,\r\n\t): Promise<OperationResult<UpdateReferralCodeError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUpdateReferralCodeMutation,\r\n\t\t\tUpdateReferralCodeMutationVariables\r\n\t\t>(UPDATE_REFERRAL_CODE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.updateReferralCode) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.updateReferralCode.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<\r\n\t\tOperationResult<never, PointsClubSettings | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<PointsClubSettingsQuery>(POINTS_CLUB_SETTINGS_QUERY);\r\n\t\treturn res.ok ? { ok: true, data: res.data.pointsClubSettings } : res;\r\n\t}\r\n\r\n\tasync registerMemberAccountByMobileNumber(\r\n\t\tvariables: RegisterMemberAccountByMobileNumberMutationVariables,\r\n\t): Promise<OperationResult<RegisterMemberAccountByMobileNumberError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterMemberAccountByMobileNumberMutation,\r\n\t\t\tRegisterMemberAccountByMobileNumberMutationVariables\r\n\t\t>(REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(variables.reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t\t...(variables.testPass && {\r\n\t\t\t\t\t'test-pass': 'true',\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.registerMemberAccountByMobileNumber) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.registerMemberAccountByMobileNumber.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync googleClientId(): Promise<OperationResult<never, string | null | undefined>> {\r\n\t\tconst res = await this.client.request<GoogleClientIdQuery>(GOOGLE_CLIEND_ID_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.googleClientId,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { HttpError, OperationError } from '../types/index.js';\r\n\r\nexport function statusCodeToOperationError(\r\n\tvalue: number,\r\n\tmessage?: string,\r\n): OperationError<HttpError> {\r\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\r\n\r\n\treturn {\r\n\t\tname: e.name,\r\n\t\tmessage: message ?? e.message,\r\n\t};\r\n}\r\n\r\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\r\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\r\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\r\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\r\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\r\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\r\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\r\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\r\n};\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticateMutation,\r\n\tCreateSessionError,\r\n\tCreateSessionInput,\r\n\tCreateSessionMutation,\r\n\tCreateSignleUseTokenError,\r\n\tCreateSingleUseTokenMutation,\r\n\tRefreshSessionError,\r\n\tRefreshSessionMutation,\r\n\tSendVerificationCodeError__Next,\r\n\tSendVerificationCodeInput__Next,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\ninterface FetchOptions {\r\n\theaders?: HeadersInit;\r\n}\r\n\r\nexport interface AuthServiceConfig {\r\n\turl: string;\r\n\tfetchOptions?: FetchOptions;\r\n}\r\n\r\nexport class AuthService {\r\n\tprivate url: string;\r\n\tprivate options: FetchOptions;\r\n\r\n\tconstructor(config: AuthServiceConfig) {\r\n\t\tthis.url = config.url;\r\n\t\tthis.options = config.fetchOptions ?? {};\r\n\t}\r\n\r\n\tprivate get headers() {\r\n\t\tconst headers = new Headers(this.options.headers);\r\n\t\theaders.append('Accept', 'application/json, text/plain');\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\tasync createSession(\r\n\t\tinput: CreateSessionInput,\r\n\t): Promise<OperationResult<CreateSessionError, CreateSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst data = `${input.name}:${input.password}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `Basic ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst data = `${input.mobileNumber}:${input.verificationCode}`;\r\n\t\t\tconst token = Buffer.from(data).toString('base64');\r\n\r\n\t\t\theaders.set('Authorization', `MobileNumberOTP ${token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\theaders.set('Authorization', `MayaSession ${input.sessionId}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'SOCIALS') {\r\n\t\t\theaders.set('Authorization', `Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\theaders.set('Authorization', `Opexa-Cabinet-Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.type === 'SINGLE_USE_TOKEN') {\r\n\t\t\theaders.set('Authorization', `Single-Use-Token ${input.token}`);\r\n\t\t}\r\n\r\n\t\tif (input.reCAPTCHAResponse) {\r\n\t\t\theaders.set('google-recaptcha-response', input.reCAPTCHAResponse);\r\n\t\t}\r\n\r\n\t\tif (input.testPass) {\r\n\t\t\theaders.set('test-pass', input.testPass);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/sessions`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'INVALID_RECAPTCHA_RESPONSE') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidReCAPTCHAResponseError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError, AuthenticateMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\tif (input.type === 'SECURITY_QUESTION') {\r\n\t\t\theaders.set('Authorization', `Bearer ${input.token}`);\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await fetch(`${this.url}/session/${input.token}/authenticate`, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theaders,\r\n\t\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\t\tsecretAnswer: input.secretAnswer,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst data = await res.json();\r\n\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (res.status === 401 || res.status === 403) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError('InvalidTokenOrSecretAnswerError'),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t} catch {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"Invalid input 'type'\");\r\n\t}\r\n\r\n\tasync refreshSession(\r\n\t\trefreshToken: string,\r\n\t): Promise<OperationResult<RefreshSessionError, RefreshSessionMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${refreshToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session:refresh`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'ACCOUNT_BLACKLISTED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountBlacklistedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (data.code === 'MEMBER_ACCOUNT_SUSPENDED') {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('AccountSuspendedError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (res.status === 403 || res.status === 401) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroySession(accessToken: string): Promise<OperationResult> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true } : { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t} catch {\r\n\t\t\treturn { ok: false, error: statusCodeToOperationError(500) };\r\n\t\t}\r\n\t}\r\n\r\n\tasync verifySession(accessToken: string) {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/session`, {\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok;\r\n\t\t} catch {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tasync sendVerificationCode(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<OperationResult<SendVerificationCodeError__Next>> {\r\n\t\tif (input.channel === 'EMAIL') throw new Error('Email channel is not yet supported');\r\n\r\n\t\tfunction getErrorCode(message: string): SendVerificationCodeError__Next | null {\r\n\t\t\tswitch (message) {\r\n\t\t\t\tcase 'MEMBER_NOT_FOUND':\r\n\t\t\t\t\treturn 'AccountNotFoundError';\r\n\t\t\t\tcase 'RATE_LIMIT_REACH':\r\n\t\t\t\t\treturn 'RateLimitExceededError';\r\n\t\t\t\tcase 'NOT_READY_TO_SEND_VERIFICATION_ERROR':\r\n\t\t\t\t\treturn 'NotReadyToSendVerficationCodeError';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/otps`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: this.headers,\r\n\t\t\t\tbody: JSON.stringify(input),\r\n\t\t\t});\r\n\r\n\t\t\tif (res.status === 403) {\r\n\t\t\t\tconst data = await res.json();\r\n\t\t\t\tconst code = getErrorCode(data.message);\r\n\r\n\t\t\t\tif (code) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: createOperationError(code),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status, data.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync createSingleUseToken(\r\n\t\taccessToken: string,\r\n\t): Promise<OperationResult<CreateSignleUseTokenError, CreateSingleUseTokenMutation>> {\r\n\t\tconst headers = new Headers(this.headers);\r\n\r\n\t\theaders.append('Authorization', `Bearer ${accessToken}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch(`${this.url}/token`, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders,\r\n\t\t\t});\r\n\r\n\t\t\tconst data = await res.json();\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (res.status === 403 || res.status === 401) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: createOperationError('InvalidTokenError'),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","function isFunction<Return, Args = never>(\r\n\tvalue: unknown | ((...args: Args[]) => Return),\r\n): value is (...args: Args[]) => Return {\r\n\treturn typeof value === 'function';\r\n}\r\n\r\nexport function callIfFn<Return, Args = never>(\r\n\tvalue: Return | ((...args: Args[]) => Return),\r\n\t...args: Args[]\r\n) {\r\n\tif (isFunction<Return, Args>(value)) {\r\n\t\treturn value(...args);\r\n\t} else {\r\n\t\treturn value;\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport { callIfFn } from '../utils/call-if-fn.js';\r\nimport { statusCodeToOperationError } from '../utils/status-code-to-operation-error.js';\r\nimport type {\r\n\tGame,\r\n\tGameQuery,\r\n\tGamesQuery,\r\n\tGamesQueryVariables,\r\n\tGamesQueryVariables__Next,\r\n\tPaginatedQueryResult,\r\n\tSite,\r\n\tSiteQuery,\r\n} from './types.js';\r\n\r\nexport interface CmsPortalServiceConfig {\r\n\turl: string;\r\n\tsite: string;\r\n\tplatform: string;\r\n\tfetch?: typeof globalThis.fetch | null;\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class CmsPortalService {\r\n\tprivate config: Getter<CmsPortalServiceConfig> | CmsPortalServiceConfig;\r\n\r\n\tconstructor(config: CmsPortalServiceConfig | Getter<CmsPortalServiceConfig>) {\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync self(): Promise<OperationResult<never, Site>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst res = await this.getJson<SiteQuery>(`/v1/sites/${config.site}`);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync games(\r\n\t\tvariables?: GamesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) search.set('sort[order]', variables.sort);\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v1/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync games__next(\r\n\t\tvariables?: GamesQueryVariables__Next,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Game>>> {\r\n\t\tconst search = new URLSearchParams();\r\n\r\n\t\tif (variables?.first) search.set('first', variables.first.toString());\r\n\t\tif (variables?.after) search.set('after', variables.after);\r\n\t\tif (variables?.search) search.set('search', variables.search);\r\n\r\n\t\tif (variables?.filter?.type?.equal) search.set('filter[type][eq]', variables.filter.type.equal);\r\n\t\tif (variables?.filter?.type?.notEqual)\r\n\t\t\tsearch.set('filter[type][neq]', variables.filter.type.notEqual);\r\n\t\tif (variables?.filter?.type?.in)\r\n\t\t\tsearch.set('filter[type][in]', variables.filter.type.in.join(','));\r\n\t\tif (variables?.filter?.type?.notIn)\r\n\t\t\tsearch.set('filter[type][nin]', variables.filter.type.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.provider?.equal)\r\n\t\t\tsearch.set('filter[provider][eq]', variables.filter.provider.equal);\r\n\t\tif (variables?.filter?.provider?.notEqual)\r\n\t\t\tsearch.set('filter[provider][neq]', variables.filter.provider.notEqual);\r\n\t\tif (variables?.filter?.provider?.in)\r\n\t\t\tsearch.set('filter[provider][in]', variables.filter.provider.in.join(','));\r\n\t\tif (variables?.filter?.provider?.notIn)\r\n\t\t\tsearch.set('filter[provider][nin]', variables.filter.provider.notIn.join(','));\r\n\r\n\t\tif (variables?.filter?.tags?.equal)\r\n\t\t\tsearch.set('filter[tags][eq]', variables.filter.tags.equal.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.notEqual)\r\n\t\t\tsearch.set('filter[tags][neq]', variables.filter.tags.notEqual.toLowerCase());\r\n\t\tif (variables?.filter?.tags?.in)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][in]',\r\n\t\t\t\tvariables.filter.tags.in.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\t\tif (variables?.filter?.tags?.notIn)\r\n\t\t\tsearch.set(\r\n\t\t\t\t'filter[tags][nin]',\r\n\t\t\t\tvariables.filter.tags.notIn.map((v) => v.toLowerCase()).join(','),\r\n\t\t\t);\r\n\r\n\t\tif (variables?.filter?.reference?.equal)\r\n\t\t\tsearch.set('filter[reference][eq]', variables.filter.reference.equal);\r\n\t\tif (variables?.filter?.reference?.notEqual)\r\n\t\t\tsearch.set('filter[reference][neq]', variables.filter.reference.notEqual);\r\n\t\tif (variables?.filter?.reference?.in)\r\n\t\t\tsearch.set('filter[reference][in]', variables.filter.reference.in.join(','));\r\n\t\tif (variables?.filter?.reference?.notIn)\r\n\t\t\tsearch.set('filter[reference][nin]', variables.filter.reference.notIn.join(','));\r\n\r\n\t\tif (variables?.sort) {\r\n\t\t\tsearch.set('sort[order]', variables.sort.order);\r\n\t\t\tsearch.set('sort[context]', variables.sort.context.toLowerCase());\r\n\t\t}\r\n\r\n\t\tconst res = await this.getJson<GamesQuery>('/v2/games', search);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tedges: res.data.data.map((node) => ({\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tcursor: node.cursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount ?? 0,\r\n\t\t\t\tpageInfo: {\r\n\t\t\t\t\thasNextPage: Boolean(res.data.next),\r\n\t\t\t\t\tendCursor: res.data.next,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync game(id: string): Promise<OperationResult<never, Game | null | undefined>> {\r\n\t\tconst res = await this.getJson<GameQuery>(`/v1/games/${id}`);\r\n\r\n\t\tif (res.error?.name === 'HttpNotFound') {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.data,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate async getJson<T>(\r\n\t\tpath: string,\r\n\t\tparams?: URLSearchParams,\r\n\t): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\tconst req = new Request(`${config.url}${path}?${params?.toString() ?? ''}`, {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: {\r\n\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Site-ID': config.site,\r\n\t\t\t\t'Platform-ID': config.platform,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(req);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(res.status),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: await res.json(),\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport { FILE_QUERY, UPLOAD_PRIVATE_IMAGE_FILE_MUTATION } from './queries.js';\r\nimport type {\r\n\tFile,\r\n\tFileQuery,\r\n\tFileQueryVariables,\r\n\tUploadPrivateImageFileError,\r\n\tUploadPrivateImageFileMutation,\r\n\tUploadPrivateImageFileMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class FileService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync file(\r\n\t\tvariables: FileQueryVariables,\r\n\t): Promise<OperationResult<never, File | null | undefined>> {\r\n\t\tconst res = await this.client.request<FileQuery, FileQueryVariables>(FILE_QUERY, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.node,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadPrivateImageFile(\r\n\t\tvariables: UploadPrivateImageFileMutationVariables,\r\n\t): Promise<OperationResult<UploadPrivateImageFileError>> {\r\n\t\tconst res = await this.client.upload<\r\n\t\t\tUploadPrivateImageFileMutation,\r\n\t\t\tUploadPrivateImageFileMutationVariables\r\n\t\t>(UPLOAD_PRIVATE_IMAGE_FILE_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.uploadPrivateImageFile) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.uploadPrivateImageFile.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tGAME_SESSION_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class GameService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery<true>, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.legacy,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tconst data = !res.data.node ? null : { ...res.data.node, game: res.data.node.game.id };\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tEndGameSessionMutation<true>,\r\n\t\t\tEndGameSessionMutationVariables\r\n\t\t>(END_GAME_SESSION_MUTATION.legacy, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tCOMPLETE_ONBOARDING_MUTATION,\r\n\tLATEST_BET_RECORDS_QUERY,\r\n\tONBOARDING_STATUS_QUERY,\r\n\tPLATFORM_QUERY__NEXT,\r\n\tRECOMMENDED_GAMES_QUERY,\r\n\tSKIP_ONBOARDING_MUTATION,\r\n\tTOP_WINS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tCompleteOnboardingMutation,\r\n\tCompleteOnboardingMutationVariables,\r\n\tLatestBetRecord,\r\n\tLatestBetRecordsQuery,\r\n\tOnboardingStatus,\r\n\tOnboardingStatusQuery,\r\n\tPlatformQuery__Next,\r\n\tRecommendedGame,\r\n\tRecommendedGamesQuery,\r\n\tSkipOnboardingMutation,\r\n\tTopWin,\r\n\tTopWinsQuery,\r\n} from './types.js';\r\n\r\nexport class PortalService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<OperationResult<never, LatestBetRecord[]>> {\r\n\t\tconst res = await this.client.request<LatestBetRecordsQuery>(LATEST_BET_RECORDS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.latestBetRecords,\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform(): Promise<OperationResult<never, PlatformQuery__Next>> {\r\n\t\tconst res = await this.client.request<PlatformQuery__Next>(PLATFORM_QUERY__NEXT);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync recommendedGames(): Promise<OperationResult<never, RecommendedGame[]>> {\r\n\t\tconst res = await this.client.request<RecommendedGamesQuery>(RECOMMENDED_GAMES_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.recommendedGames,\r\n\t\t};\r\n\t}\r\n\tasync onboardingStatus(): Promise<OperationResult<never, OnboardingStatus>> {\r\n\t\tconst res = await this.client.request<OnboardingStatusQuery>(ONBOARDING_STATUS_QUERY);\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.onboardingStatus ?? [] } : res;\r\n\t}\r\n\r\n\tasync completeOnboarding(\r\n\t\tvariables: CompleteOnboardingMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCompleteOnboardingMutation,\r\n\t\t\tCompleteOnboardingMutationVariables\r\n\t\t>(COMPLETE_ONBOARDING_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.completeOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<SkipOnboardingMutation>(SKIP_ONBOARDING_MUTATION);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.skipOnboarding) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync topWins(): Promise<OperationResult<never, TopWin[]>> {\r\n\t\tconst res = await this.client.request<TopWinsQuery>(TOP_WINS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.topWins,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tACTIVITY_RECORDS_QUERY,\r\n\tBET_RECORDS_QUERY,\r\n\tDEPOSITS_COUNT_QUERY,\r\n\tDEPOSIT_RECORDS_QUERY,\r\n\tDOWNLINES_BY_NAME_QUERY,\r\n\tJACKPOTS_QUERY,\r\n\tJACKPOT_PAYOUTS_QUERY,\r\n\tPOINTS_WALLET_TRANSACTIONS_QUERY,\r\n\tPROMO_BY_CODE_QUERY,\r\n\tREFERRALS_QUERY,\r\n\tREFERRAL_COMMISSION_QUERY,\r\n\tTOURNAMENTS_QUERY,\r\n\tTRANSACTION_RECORDS_QUERY,\r\n\tUPLINES_BY_NAME_QUERY,\r\n\tWITHDRAWAL_RECORDS_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tActivityRecord,\r\n\tActivityRecordsQuery,\r\n\tActivityRecordsQueryVariables,\r\n\tBetRecord,\r\n\tBetRecordsQuery,\r\n\tBetRecordsQueryVariables,\r\n\tDepositRecord,\r\n\tDepositRecordsQuery,\r\n\tDepositRecordsQueryVariables,\r\n\tDepositsCountQuery,\r\n\tDownlinesByNameQuery,\r\n\tDownlinesByNameQueryVariables,\r\n\tJackpot,\r\n\tJackpotPayout,\r\n\tJackpotPayoutsQuery,\r\n\tJackpotPayoutsQueryVariables,\r\n\tJackpotsQuery,\r\n\tJackpotsQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tPointsWalletTransaction,\r\n\tPointsWalletTransactionsQuery,\r\n\tPointsWalletTransactionsQueryVariables,\r\n\tPromoByCodeQuery,\r\n\tPromoByCodeQueryVariables,\r\n\tReferral,\r\n\tReferralCommission,\r\n\tReferralCommissionQuery,\r\n\tReferralsQuery,\r\n\tReferralsQueryVariables,\r\n\tSpotBonusPromo,\r\n\tTournament,\r\n\tTournamentsQuery,\r\n\tTournamentsQueryVariables,\r\n\tTransactionRecord,\r\n\tTransactionRecordsQuery,\r\n\tTransactionRecordsQueryVariables,\r\n\tUplinesByNameQuery,\r\n\tUplinesByNameQueryVariables,\r\n\tWithdrawalRecord,\r\n\tWithdrawalRecordsQuery,\r\n\tWithdrawalRecordsQueryVariables,\r\n} from './types.js';\r\n\r\nexport class ReportService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync betRecords(\r\n\t\tvariables?: BetRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<BetRecord>>> {\r\n\t\tconst res = await this.client.request<BetRecordsQuery, BetRecordsQueryVariables>(\r\n\t\t\tBET_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.betRecords } : res;\r\n\t}\r\n\r\n\tasync transactionRecords(\r\n\t\tvariables?: TransactionRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<TransactionRecord>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTransactionRecordsQuery,\r\n\t\t\tTransactionRecordsQueryVariables\r\n\t\t>(TRANSACTION_RECORDS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.transactionRecords } : res;\r\n\t}\r\n\r\n\tasync withdrawalRecords(\r\n\t\tvariables?: WithdrawalRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<WithdrawalRecord>>> {\r\n\t\tconst res = await this.client.request<WithdrawalRecordsQuery, WithdrawalRecordsQueryVariables>(\r\n\t\t\tWITHDRAWAL_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.withdrawalRecords } : res;\r\n\t}\r\n\r\n\tasync depositRecords(\r\n\t\tvariables?: DepositRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<DepositRecord>>> {\r\n\t\tconst res = await this.client.request<DepositRecordsQuery, DepositRecordsQueryVariables>(\r\n\t\t\tDEPOSIT_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositRecords } : res;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<DepositsCountQuery>(DEPOSITS_COUNT_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.depositsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tvariables?: PointsWalletTransactionsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<PointsWalletTransaction>>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tPointsWalletTransactionsQuery,\r\n\t\t\tPointsWalletTransactionsQueryVariables\r\n\t\t>(POINTS_WALLET_TRANSACTIONS_QUERY, variables);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.pointsWalletTransactions } : res;\r\n\t}\r\n\r\n\tasync activityRecords(\r\n\t\tvariables?: ActivityRecordsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<ActivityRecord>>> {\r\n\t\tconst res = await this.client.request<ActivityRecordsQuery, ActivityRecordsQueryVariables>(\r\n\t\t\tACTIVITY_RECORDS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.activityRecords } : res;\r\n\t}\r\n\r\n\tasync referrals(\r\n\t\tvariables?: ReferralsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Referral>>> {\r\n\t\tconst res = await this.client.request<ReferralsQuery, ReferralsQueryVariables>(\r\n\t\t\tREFERRALS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referrals } : res;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<\r\n\t\tOperationResult<never, ReferralCommission | null | undefined>\r\n\t> {\r\n\t\tconst res = await this.client.request<ReferralCommissionQuery>(REFERRAL_COMMISSION_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.member.referralCommission } : res;\r\n\t}\r\n\r\n\tasync uplinesByName(\r\n\t\tvariables: UplinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<UplinesByNameQuery, UplinesByNameQueryVariables>(\r\n\t\t\tUPLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.uplinesByName } : res;\r\n\t}\r\n\tasync downlinesByName(\r\n\t\tvariables: DownlinesByNameQueryVariables,\r\n\t): Promise<OperationResult<never, Referral[]>> {\r\n\t\tconst res = await this.client.request<DownlinesByNameQuery, DownlinesByNameQueryVariables>(\r\n\t\t\tDOWNLINES_BY_NAME_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.downlinesByName } : res;\r\n\t}\r\n\r\n\tasync promoByCode(\r\n\t\tvariables: PromoByCodeQueryVariables,\r\n\t): Promise<OperationResult<never, SpotBonusPromo>> {\r\n\t\tconst res = await this.client.request<PromoByCodeQuery, PromoByCodeQueryVariables>(\r\n\t\t\tPROMO_BY_CODE_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promoByCode } : res;\r\n\t}\r\n\r\n\tasync jackpots(\r\n\t\tvariables?: JackpotsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Jackpot>>> {\r\n\t\tconst res = await this.client.request<JackpotsQuery, JackpotsQueryVariables>(\r\n\t\t\tJACKPOTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.jackpots,\r\n\t\t};\r\n\t}\r\n\r\n\tasync jackpotPayouts(\r\n\t\tvariables?: JackpotPayoutsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<JackpotPayout>>> {\r\n\t\tconst res = await this.client.request<JackpotPayoutsQuery, JackpotPayoutsQueryVariables>(\r\n\t\t\tJACKPOT_PAYOUTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.jackpotPayouts,\r\n\t\t};\r\n\t}\r\n\r\n\tasync tournaments(\r\n\t\tvariables?: TournamentsQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Tournament>>> {\r\n\t\tconst res = await this.client.request<TournamentsQuery, TournamentsQueryVariables>(\r\n\t\t\tTOURNAMENTS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.tournaments,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_QUESTS_QUERY,\r\n\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\tCLAIM_REWARD_MUTATION,\r\n\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\r\n\tMARK_MESSAGE_AS_READ_MUTATION,\r\n\tMESSAGES_QUERY,\r\n\tREGISTER_FCM_DEVICE,\r\n\tUNREAD_MESSAGES_COUNT_QUERY,\r\n\tUNREGISTER_FCM_DEVICE,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailableQuestsQuery,\r\n\tCheckInDailyQuestMutation,\r\n\tCheckInDailyQuestQueryVariables,\r\n\tClaimRewardError,\r\n\tClaimRewardMutation,\r\n\tClaimRewardMutationVariables,\r\n\tMarkAllMessageAsReadMutation,\r\n\tMarkAllMessagesAsReadMutation,\r\n\tMarkMessageAsReadMutation,\r\n\tMarkMessageAsReadMutationVariables,\r\n\tMessage,\r\n\tMessagesQuery,\r\n\tMessagesQueryVariables,\r\n\tPaginatedQueryResult,\r\n\tQuest,\r\n\tRegisterFCMDeviceMutation,\r\n\tRegisterFCMDeviceMutationVariables,\r\n\tUnreadMessagesCountQuery,\r\n\tUnreadMessagesCountQueryVariables,\r\n\tUnregisterFCMDeviceMutation,\r\n\tUnregisterFCMDeviceMutationVariables,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class TriggerService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync messages(\r\n\t\tvariables?: MessagesQueryVariables,\r\n\t): Promise<OperationResult<never, PaginatedQueryResult<Message>>> {\r\n\t\tconst res = await this.client.request<MessagesQuery, MessagesQueryVariables>(\r\n\t\t\tMESSAGES_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages } : res;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(\r\n\t\tvariables?: UnreadMessagesCountQueryVariables,\r\n\t): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<UnreadMessagesCountQuery, MessagesQueryVariables>(\r\n\t\t\tUNREAD_MESSAGES_COUNT_QUERY,\r\n\t\t\t{\r\n\t\t\t\t...variables,\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...variables?.filter,\r\n\t\t\t\t\tmarkedAsRead: {\r\n\t\t\t\t\t\tequal: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.messages.totalCount } : res;\r\n\t}\r\n\r\n\tasync markMessageAsRead(variables: MarkMessageAsReadMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tMarkMessageAsReadMutation,\r\n\t\t\tMarkMessageAsReadMutationVariables\r\n\t\t>(MARK_MESSAGE_AS_READ_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<MarkAllMessageAsReadMutation>(\r\n\t\t\tMARK_ALL_MESSAGE_AS_READ_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markAllMessageAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<MarkAllMessagesAsReadMutation>(\r\n\t\t\tMARK_ALL_MESSAGES_AS_READ_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markAllMessagesAsRead) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimReward(\r\n\t\tvariables: ClaimRewardMutationVariables,\r\n\t): Promise<OperationResult<ClaimRewardError>> {\r\n\t\tconst res = await this.client.request<ClaimRewardMutation, ClaimRewardMutationVariables>(\r\n\t\t\tCLAIM_REWARD_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.claimReward) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimReward.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync availableQuests(): Promise<OperationResult<never, Quest[]>> {\r\n\t\tconst res = await this.client.request<AvailableQuestsQuery>(AVAILABLE_QUESTS_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.availableQuests,\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(\r\n\t\tvariables: CheckInDailyQuestQueryVariables,\r\n\t): Promise<OperationResult<never, boolean>> {\r\n\t\tconst res = await this.client.request<CheckInDailyQuestMutation>(\r\n\t\t\tCHECK_IN_DAILY_QUEST_MUTATION,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.checkInDailyQuest,\r\n\t\t};\r\n\t}\r\n\r\n\tasync registerFCMDevice(variables: RegisterFCMDeviceMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRegisterFCMDeviceMutation,\r\n\t\t\tRegisterFCMDeviceMutationVariables\r\n\t\t>(REGISTER_FCM_DEVICE, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.registerFCMDevice) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(\r\n\t\tvariables: UnregisterFCMDeviceMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUnregisterFCMDeviceMutation,\r\n\t\t\tUnregisterFCMDeviceMutationVariables\r\n\t\t>(UNREGISTER_FCM_DEVICE, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.unregisterFCMDevice) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import type { OperationResult } from '../types/index.js';\r\nimport type { GraphQLClient } from '../utils/graphql-client.js';\r\nimport {\r\n\tAVAILABLE_PROMOS_QUERY,\r\n\tBONUSES_QUERY,\r\n\tBONUS_QUERY,\r\n\tCASHBACKS_QUERY,\r\n\tCASHBACK_BONUSES_QUERY,\r\n\tCLAIM_CASHBACK_BONUS_MUTATION,\r\n\tCLAIM_SPOT_BONUS,\r\n\tCREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION,\r\n\tCREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION,\r\n\tCREATE_AIO_QRPH_DEPOSIT_MUTATION,\r\n\tCREATE_BANK_WITHDRAWAL_MUTATION,\r\n\tCREATE_GAME_SESSION_MUTATION,\r\n\tCREATE_GCASH_DEPOSIT_MUTATION,\r\n\tCREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION,\r\n\tCREATE_GCASH_WITHDRAWAL_MUTATION,\r\n\tCREATE_MANUAL_BANK_DEPOSIT_MUTATION,\r\n\tCREATE_MANUAL_BANK_WITHDRAWAL_MUTATION,\r\n\tCREATE_MANUAL_UPI_DEPOSIT_MUTATION,\r\n\tCREATE_MANUAL_UPI_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_APP_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_APP_WITHDRAWAL_MUTATION,\r\n\tCREATE_MAYA_DEPOSIT_MUTATION,\r\n\tCREATE_MAYA_WITHDRAWAL_MUTATION,\r\n\tDEPOSIT_QUERY,\r\n\tEND_GAME_SESSION_MUTATION,\r\n\tFAVORITE_GAMES_QUERY,\r\n\tGAME_SESSION_QUERY,\r\n\tINSTAPAY_BANK_LIST_QUERY,\r\n\tMARK_GAME_AS_FAVORITE,\r\n\tMAYA_SESSION_QUERY,\r\n\tPOINTS_WALLET_QUERY,\r\n\tPROMOS_QUERY,\r\n\tREDEEM_POINTS_TO_CASH_MUTATION,\r\n\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\tTOUCH_GCASH_DEPOSIT_MUTATION,\r\n\tTOUCH_QRPH_DEPOSIT_MUTATION,\r\n\tUNMARK_GAME_AS_FAVORITE,\r\n\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\tWALLET_QUERY,\r\n} from './queries.js';\r\nimport type {\r\n\tAvailablePromosQuery,\r\n\tAvailablePromosQueryVariables,\r\n\tBonus,\r\n\tBonusQuery,\r\n\tBonusesQuery,\r\n\tCashback,\r\n\tCashbackBonus,\r\n\tCashbackBonusesQuery,\r\n\tCashbacksQuery,\r\n\tClaimCashbackBonusError,\r\n\tClaimCashbackBonusMutation,\r\n\tClaimCashbackBonusMutationVariables,\r\n\tClaimSpotBonusError,\r\n\tClaimSpotBonusMutation,\r\n\tClaimSpotBonusMutationVariables,\r\n\tCreateAIOInstapayWithdrawalMutation,\r\n\tCreateAIOInstapayWithdrawalMutationVariables,\r\n\tCreateAIOOnlineBankDepositMutation,\r\n\tCreateAIOOnlineBankDepositMutationVariables,\r\n\tCreateAIOQRPHDepositMutation,\r\n\tCreateAIOQRPHDepositMutationVariables,\r\n\tCreateBankWithdrawalMutation,\r\n\tCreateBankWithdrawalMutationVariables,\r\n\tCreateDepositError,\r\n\tCreateGCashDepositMutation,\r\n\tCreateGCashDepositMutationVariables,\r\n\tCreateGCashDirectWebpayDepositMutation,\r\n\tCreateGCashDirectWebpayDepositMutationVariables,\r\n\tCreateGCashWithdrawalMutation,\r\n\tCreateGCashWithdrawalMutationVariables,\r\n\tCreateGameSessionError,\r\n\tCreateGameSessionMutation,\r\n\tCreateGameSessionMutationVariables,\r\n\tCreateManualBankDeposiMutationVariables,\r\n\tCreateManualBankDepositMutation,\r\n\tCreateManualBankWithdrawalMutation,\r\n\tCreateManualBankWithdrawalMutationVariables,\r\n\tCreateManualUPIDepositMutation,\r\n\tCreateManualUPIDepositMutationVariables,\r\n\tCreateManualUpiDepositMutation,\r\n\tCreateManualUpiDepositMutationVariables,\r\n\tCreateManualUpiWithdrawalMutation,\r\n\tCreateManualUpiWithdrawalMutationVariables,\r\n\tCreateMayaAppDepositMutation,\r\n\tCreateMayaAppDepositMutationVariables,\r\n\tCreateMayaAppWithdrawalMutation,\r\n\tCreateMayaAppWithdrawalMutationVariables,\r\n\tCreateMayaDepositMutation,\r\n\tCreateMayaDepositMutationVariables,\r\n\tCreateMayaWithdrawalMutation,\r\n\tCreateMayaWithdrawalMutationVariables,\r\n\tCreateWithdrawalError,\r\n\tDeposit,\r\n\tDepositQuery,\r\n\tDepositQueryVariables,\r\n\tEndGameSessionMutation,\r\n\tEndGameSessionMutationVariables,\r\n\tFavoriteGame,\r\n\tFavoriteGamesQuery,\r\n\tGameSession,\r\n\tGameSessionQuery,\r\n\tGameSessionQueryVariables,\r\n\tInstapayBank,\r\n\tInstapayBankListQuery,\r\n\tMarkGameAsFavoriteMutation,\r\n\tMarkGameAsFavoriteMutationVariables,\r\n\tMayaSession,\r\n\tMayaSessionQuery,\r\n\tMayaSessionQueryVariables,\r\n\tPointsWallet,\r\n\tPointsWalletQuery,\r\n\tPromo,\r\n\tPromosQuery,\r\n\tRedeemPointsToCashError,\r\n\tRedeemPointsToCashMutation,\r\n\tRedeemPointsToCashMutationVariables,\r\n\tRemainingDailyWithdrawalsCountQuery,\r\n\tTouchGCashDepositMutation,\r\n\tTouchGCashDepositMutationVariables,\r\n\tTouchQrphDepositMutation,\r\n\tTouchQrphDepositMutationVariables,\r\n\tUnmarkGameAsFavoriteMutation,\r\n\tUnmarkGameAsFavoriteMutationVariables,\r\n\tValidateMayaSessionMutation,\r\n\tWallet,\r\n\tWalletQuery,\r\n} from './types.js';\r\nimport { createOperationError } from './utils.js';\r\n\r\nexport class WalletService {\r\n\tprivate client: GraphQLClient;\r\n\r\n\tconstructor(client: GraphQLClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tasync promos(): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<PromosQuery>(PROMOS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.promos } : res;\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<OperationResult<never, Cashback[]>> {\r\n\t\tconst res = await this.client.request<CashbacksQuery>(CASHBACKS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbacks } : res;\r\n\t}\r\n\r\n\tasync availablePromos(\r\n\t\tvariables?: AvailablePromosQueryVariables,\r\n\t): Promise<OperationResult<never, Promo[]>> {\r\n\t\tconst res = await this.client.request<AvailablePromosQuery, AvailablePromosQueryVariables>(\r\n\t\t\tAVAILABLE_PROMOS_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.availablePromos } : res;\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<OperationResult<never, CashbackBonus[]>> {\r\n\t\tconst res = await this.client.request<CashbackBonusesQuery>(CASHBACK_BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.cashbackBonuses } : res;\r\n\t}\r\n\r\n\tasync claimCashbackBonus(\r\n\t\tvariables: ClaimCashbackBonusMutationVariables,\r\n\t): Promise<OperationResult<ClaimCashbackBonusError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tClaimCashbackBonusMutation,\r\n\t\t\tClaimCashbackBonusMutationVariables\r\n\t\t>(CLAIM_CASHBACK_BONUS_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimCashbackBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimCashbackBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonus(): Promise<OperationResult<never, Bonus | null | undefined>> {\r\n\t\tconst res = await this.client.request<BonusQuery>(BONUS_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonus } : res;\r\n\t}\r\n\r\n\tasync wallet(): Promise<OperationResult<never, Wallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<WalletQuery>(WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.wallet } : res;\r\n\t}\r\n\r\n\tasync deposit(\r\n\t\tvariables: DepositQueryVariables,\r\n\t): Promise<OperationResult<never, Deposit | null | undefined>> {\r\n\t\tconst res = await this.client.request<DepositQuery, DepositQueryVariables>(\r\n\t\t\tDEPOSIT_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGCashDeposit(\r\n\t\tvariables: CreateGCashDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashDepositMutation,\r\n\t\t\tCreateGCashDepositMutationVariables\r\n\t\t>(CREATE_GCASH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\tasync createGCashDirectWebpayDeposit(\r\n\t\tvariables: CreateGCashDirectWebpayDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashDirectWebpayDepositMutation,\r\n\t\t\tCreateGCashDirectWebpayDepositMutationVariables\r\n\t\t>(CREATE_GCASH_DIRECT_WEBPAY_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashDirectWebpayDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashDirectWebpayDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaDeposit(\r\n\t\tvariables: CreateMayaDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaDepositMutation,\r\n\t\t\tCreateMayaDepositMutationVariables\r\n\t\t>(CREATE_MAYA_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOQRPHDeposit(\r\n\t\tvariables: CreateAIOQRPHDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOQRPHDepositMutation,\r\n\t\t\tCreateAIOQRPHDepositMutationVariables\r\n\t\t>(CREATE_AIO_QRPH_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOQRPHDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOQRPHDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOOnlineBankDeposit(\r\n\t\tvariables: CreateAIOOnlineBankDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOOnlineBankDepositMutation,\r\n\t\t\tCreateAIOOnlineBankDepositMutationVariables\r\n\t\t>(CREATE_AIO_ONLINE_BANK_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOOnlineBankDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOOnlineBankDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualBankDeposit(\r\n\t\tvariables: CreateManualBankDeposiMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualBankDepositMutation,\r\n\t\t\tCreateManualBankDeposiMutationVariables\r\n\t\t>(CREATE_MANUAL_BANK_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualBankDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualBankDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUPIDeposit(\r\n\t\tvariables: CreateManualUPIDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUPIDepositMutation,\r\n\t\t\tCreateManualUPIDepositMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUPIDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppDeposit(\r\n\t\tvariables: CreateMayaAppDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppDepositMutation,\r\n\t\t\tCreateMayaAppDepositMutationVariables\r\n\t\t>(CREATE_MAYA_APP_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUpiDeposit(\r\n\t\tvariables: CreateManualUpiDepositMutationVariables,\r\n\t): Promise<OperationResult<CreateDepositError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUpiDepositMutation,\r\n\t\t\tCreateManualUpiDepositMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_DEPOSIT_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUPIDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUPIDeposit.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGCashWithdrawal(\r\n\t\tvariables: CreateGCashWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGCashWithdrawalMutation,\r\n\t\t\tCreateGCashWithdrawalMutationVariables\r\n\t\t>(CREATE_GCASH_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGCashWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGCashWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaWithdrawal(\r\n\t\tvariables: CreateMayaWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaWithdrawalMutation,\r\n\t\t\tCreateMayaWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createMayaAppWithdrawal(\r\n\t\tvariables: CreateMayaAppWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateMayaAppWithdrawalMutation,\r\n\t\t\tCreateMayaAppWithdrawalMutationVariables\r\n\t\t>(CREATE_MAYA_APP_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createMayaAppWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createMayaAppWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createBankWithdrawal(\r\n\t\tvariables: CreateBankWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateBankWithdrawalMutation,\r\n\t\t\tCreateBankWithdrawalMutationVariables\r\n\t\t>(CREATE_BANK_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createBankWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createBankWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createAIOInstapayWithdrawal(\r\n\t\tvariables: CreateAIOInstapayWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateAIOInstapayWithdrawalMutation,\r\n\t\t\tCreateAIOInstapayWithdrawalMutationVariables\r\n\t\t>(CREATE_AIO_INSTAPAY_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createAIOInstapayWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createAIOInstapayWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualUpiWithdrawal(\r\n\t\tvariables: CreateManualUpiWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualUpiWithdrawalMutation,\r\n\t\t\tCreateManualUpiWithdrawalMutationVariables\r\n\t\t>(CREATE_MANUAL_UPI_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualUpiWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualUpiWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createManualBankWithdrawal(\r\n\t\tvariables: CreateManualBankWithdrawalMutationVariables,\r\n\t): Promise<OperationResult<CreateWithdrawalError>> {\r\n\t\tconst { reCAPTCHAResponse, ...others } = variables;\r\n\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateManualBankWithdrawalMutation,\r\n\t\t\tCreateManualBankWithdrawalMutationVariables\r\n\t\t>(CREATE_MANUAL_BANK_WITHDRAWAL_MUTATION, others, {\r\n\t\t\theaders: {\r\n\t\t\t\t...(reCAPTCHAResponse && {\r\n\t\t\t\t\t'google-recaptcha-response': reCAPTCHAResponse,\r\n\t\t\t\t}),\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createManualBankWithdrawal) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createManualBankWithdrawal.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<OperationResult<never, InstapayBank[]>> {\r\n\t\tconst res = await this.client.request<InstapayBankListQuery>(INSTAPAY_BANK_LIST_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.instapayBankList } : res;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<OperationResult<never, number>> {\r\n\t\tconst res = await this.client.request<RemainingDailyWithdrawalsCountQuery>(\r\n\t\t\tREMAINING_DAILY_WITHDRAWALS_COUNT_QUERY,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.remainingDailyWithdrawalsCount } : res;\r\n\t}\r\n\r\n\tasync pointsWallet(): Promise<OperationResult<never, PointsWallet | null | undefined>> {\r\n\t\tconst res = await this.client.request<PointsWalletQuery>(POINTS_WALLET_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.pointsWallet } : res;\r\n\t}\r\n\r\n\tasync redeemPointsToCash(\r\n\t\tvariables: RedeemPointsToCashMutationVariables,\r\n\t): Promise<OperationResult<RedeemPointsToCashError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tRedeemPointsToCashMutation,\r\n\t\t\tRedeemPointsToCashMutationVariables\r\n\t\t>(REDEEM_POINTS_TO_CASH_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.redeemPointsToCash) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.redeemPointsToCash.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync mayaSession(\r\n\t\tvariables: MayaSessionQueryVariables,\r\n\t): Promise<OperationResult<never, MayaSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<MayaSessionQuery, MayaSessionQueryVariables>(\r\n\t\t\tMAYA_SESSION_QUERY,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.mayaSession } : res;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tvariables: GameSessionQueryVariables,\r\n\t): Promise<OperationResult<never, GameSession | null | undefined>> {\r\n\t\tconst res = await this.client.request<GameSessionQuery, GameSessionQueryVariables>(\r\n\t\t\tGAME_SESSION_QUERY.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\treturn res.ok ? { ok: true, data: res.data.node } : res;\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tvariables: CreateGameSessionMutationVariables,\r\n\t): Promise<OperationResult<CreateGameSessionError>> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tCreateGameSessionMutation,\r\n\t\t\tCreateGameSessionMutationVariables\r\n\t\t>(CREATE_GAME_SESSION_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (res.data.createGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.createGameSession.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync endGameSession(variables: EndGameSessionMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<EndGameSessionMutation, EndGameSessionMutationVariables>(\r\n\t\t\tEND_GAME_SESSION_MUTATION.current,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.endGameSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<ValidateMayaSessionMutation>(\r\n\t\t\tVALIDATE_MAYA_SESSION_MUTATION,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\tif (!res.data.validateMayaSession) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<OperationResult<never, Bonus[]>> {\r\n\t\tconst res = await this.client.request<BonusesQuery>(BONUSES_QUERY);\r\n\r\n\t\treturn res.ok ? { ok: res.ok, data: res.data.bonuses ?? [] } : res;\r\n\t}\r\n\r\n\tasync claimSpotBonus(\r\n\t\tvariables: ClaimSpotBonusMutationVariables,\r\n\t): Promise<OperationResult<ClaimSpotBonusError>> {\r\n\t\tconst res = await this.client.request<ClaimSpotBonusMutation, ClaimSpotBonusMutationVariables>(\r\n\t\t\tCLAIM_SPOT_BONUS,\r\n\t\t\tvariables,\r\n\t\t);\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn {\r\n\t\t\t\tok: res.ok,\r\n\t\t\t\terror: res.error,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (res.data.claimSpotBonus) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: createOperationError(res.data.claimSpotBonus.__typename),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync touchGCashDeposit(variables: TouchGCashDepositMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTouchGCashDepositMutation,\r\n\t\t\tTouchGCashDepositMutationVariables\r\n\t\t>(TOUCH_GCASH_DEPOSIT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.touchGCashDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync touchQrphDeposit(variables: TouchQrphDepositMutationVariables): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tTouchQrphDepositMutation,\r\n\t\t\tTouchQrphDepositMutationVariables\r\n\t\t>(TOUCH_QRPH_DEPOSIT_MUTATION, variables);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.touchQRPHDeposit) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync markGameAsFavorite(\r\n\t\tvariables: MarkGameAsFavoriteMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tMarkGameAsFavoriteMutation,\r\n\t\t\tMarkGameAsFavoriteMutationVariables\r\n\t\t>(MARK_GAME_AS_FAVORITE, variables);\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.markGameAsFavorite) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\tasync unmarkGameAsFavorite(\r\n\t\tvariables: UnmarkGameAsFavoriteMutationVariables,\r\n\t): Promise<OperationResult> {\r\n\t\tconst res = await this.client.request<\r\n\t\t\tUnmarkGameAsFavoriteMutation,\r\n\t\t\tUnmarkGameAsFavoriteMutationVariables\r\n\t\t>(UNMARK_GAME_AS_FAVORITE, variables);\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.unmarkGameAsFavorite) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t};\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<OperationResult<never, FavoriteGame[]>> {\r\n\t\tconst res = await this.client.request<FavoriteGamesQuery>(FAVORITE_GAMES_QUERY);\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\tif (!res.data.favoriteGames) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.favoriteGames,\r\n\t\t};\r\n\t}\r\n}\r\n","export function cloneDate(date: Date) {\r\n\treturn new Date(date.getTime());\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addMinutes(date: Date, minutes: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() + minutes);\r\n\treturn result;\r\n}\r\n","/**\r\n * is `date1` after `date2`?\r\n */\r\nexport function isAfter(date1: Date, date2: Date) {\r\n\treturn date1.getTime() > date2.getTime();\r\n}\r\n","import { addMinutes } from './add-minutes.js';\r\nimport { isAfter } from './is-after.js';\r\n\r\ninterface CacheValue<T> {\r\n\tvalue: T;\r\n\tvalidUntil: Date;\r\n}\r\n\r\ninterface CacheConfig {\r\n\t/**\r\n\t * @description The number in minutes the cache is valid\r\n\t * @default 5\r\n\t */\r\n\tcacheTime: number;\r\n}\r\n\r\nexport class Cache<T = unknown> {\r\n\tprivate config: CacheConfig;\r\n\tprivate cache: Record<string, CacheValue<T>>;\r\n\r\n\tconstructor(config?: CacheConfig) {\r\n\t\tthis.cache = {};\r\n\t\tthis.config = {\r\n\t\t\tcacheTime: 5,\r\n\t\t\t...config,\r\n\t\t};\r\n\t}\r\n\r\n\tset(key: string, value: T) {\r\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\r\n\r\n\t\tthis.cache[key] = {\r\n\t\t\tvalue,\r\n\t\t\tvalidUntil,\r\n\t\t};\r\n\t}\r\n\r\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\r\n\t\tconst o = this.cache[key];\r\n\t\tif (!o) return null;\r\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\r\n\t\treturn o.value as any;\r\n\t}\r\n}\r\n","export function clamp(value: number, min: number, max: number) {\r\n\tif (value < min) return min;\r\n\tif (value > max) return max;\r\n\treturn value;\r\n}\r\n","export function isPlainObject(value: unknown): value is Record<string, any> {\r\n\treturn Object.prototype.toString.call(value) === '[object Object]' && Object(value) === value;\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function flatten(value: Record<string, any> | any[]) {\r\n\tconst result: {\r\n\t\tkey: string[];\r\n\t\tvalue: any;\r\n\t}[] = [];\r\n\r\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\r\n\t\tfor (const k in o) {\r\n\t\t\tconst v = o[k];\r\n\r\n\t\t\tif (isPlainObject(v)) {\r\n\t\t\t\tfn(v, [...parentKeys, k]);\r\n\t\t\t} else if (Array.isArray(v)) {\r\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\r\n\t\t\t} else {\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tkey: [...parentKeys, k],\r\n\t\t\t\t\tvalue: v,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfn(value);\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction arrayToObject(array: unknown[]) {\r\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\r\n\t\to[i] = v;\r\n\t\treturn o;\r\n\t}, {});\r\n}\r\n","import type { GenericObject, OperationResult } from '../types/index.js';\r\nimport { callIfFn } from './call-if-fn.js';\r\nimport { flatten } from './flatten.js';\r\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\r\n\r\ntype ModifiableKey =\r\n\t| 'mode'\r\n\t| 'cache'\r\n\t| 'signal'\r\n\t| 'headers'\r\n\t| 'integrity'\r\n\t| 'keepalive'\r\n\t| 'credentials';\r\n\r\ntype Modifiable = {\r\n\t[K in ModifiableKey]: Request[K];\r\n};\r\n\r\nexport interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {}\r\n\r\nexport type GraphQLClientMiddleware = (\r\n\trequest: ModifiedRequest,\r\n) => ModifiedRequest | Promise<ModifiedRequest>;\r\n\r\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {}\r\n\r\nexport interface GraphQLClientConfig {\r\n\tfetch?: typeof globalThis.fetch | null;\r\n\tfetchOptions?: GraphQLClientFetchOptions;\r\n\tmiddlewares?: GraphQLClientMiddleware[];\r\n}\r\n\r\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\r\ntype GraphQLErrorExtensionCode =\r\n\t| 'FORBIDDEN'\r\n\t| 'UNAUTHORIZED'\r\n\t| 'BAD_REQUEST'\r\n\t| 'BAD_USER_INPUT'\r\n\t| 'INTERNAL_SERVER_ERROR'\r\n\t| 'ACCESS_TOKEN_EXPIRED';\r\n\r\ninterface GraphQLErrorExtensions {\r\n\tcode: GraphQLErrorExtensionCode;\r\n\tstacktrace: string[];\r\n}\r\n\r\ninterface GraphQLErrorLocation {\r\n\tline: number;\r\n\tcolumn: number;\r\n}\r\n\r\ninterface GraphQLError {\r\n\tpath: string[];\r\n\tmessage?: string;\r\n\textensions?: GraphQLErrorExtensions;\r\n\tlocations: GraphQLErrorLocation[];\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class GraphQLClient {\r\n\tprivate url: string;\r\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\r\n\r\n\tconstructor(url: string, config: Getter<GraphQLClientConfig> | GraphQLClientConfig = {}) {\r\n\t\tthis.url = url;\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables?: Variables,\r\n\t\tuserOptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst options = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...config?.fetchOptions,\r\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\tuserOptions,\r\n\t\t);\r\n\r\n\t\tconst body = JSON.stringify({\r\n\t\t\tquery,\r\n\t\t\tvariables,\r\n\t\t});\r\n\r\n\t\tconst headers = new Headers(options.headers);\r\n\r\n\t\theaders.set('Content-Type', 'application/json');\r\n\t\theaders.set('Accept', 'application/json');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...options,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tconfig?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\t/** Single file upload */\r\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst cfg = callIfFn(this.config);\r\n\t\tconst opts = mergeFetchOptions(\r\n\t\t\t{ ...cfg?.fetchOptions, headers: new Headers(cfg?.fetchOptions?.headers) },\r\n\t\t\toptions,\r\n\t\t);\r\n\r\n\t\tconst body = this.createUploadBody(query, variables);\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.delete('Content-Type');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tcfg?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(request);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t\t}\r\n\r\n\t\t\tconst json = await res.json();\r\n\t\t\tconst data = json.data;\r\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\r\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(403, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(401, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\r\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn { ok: false, error: statusCodeToOperationError(400, error.message) };\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Fallback for unknown error codes */\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async runMiddlewares(\r\n\t\treq: ModifiedRequest,\r\n\t\tmiddlewares: GraphQLClientMiddleware[],\r\n\t): Promise<ModifiedRequest> {\r\n\t\tlet result = req.clone();\r\n\r\n\t\tfor (const middleware of middlewares) {\r\n\t\t\tresult = await middleware(result);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t) {\r\n\t\tconst files = flatten(variables).filter(\r\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\r\n\t\t);\r\n\r\n\t\tconst body = new FormData();\r\n\r\n\t\tbody.append(\r\n\t\t\t'operations',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tconst map: GenericObject = {};\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\r\n\t\t});\r\n\r\n\t\tbody.append('map', JSON.stringify(map));\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tbody.append(i.toString(), o.value);\r\n\t\t});\r\n\r\n\t\treturn body;\r\n\t}\r\n}\r\n\r\nfunction getOperationInfo(query: string) {\r\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\r\n\r\n\tif (!l) return null;\r\n\r\n\tconst k = l.at(1);\r\n\tconst v = l.at(2);\r\n\r\n\treturn k && v ? { type: k, name: v } : null;\r\n}\r\n\r\nfunction mergeFetchOptions(\r\n\ti: GraphQLClientFetchOptions | undefined,\r\n\tj: GraphQLClientFetchOptions | undefined,\r\n): GraphQLClientFetchOptions {\r\n\tif (!i) return j ?? {};\r\n\tif (!j) return i ?? {};\r\n\r\n\treturn {\r\n\t\t...i,\r\n\t\t...j,\r\n\r\n\t\theaders: mergeHeaders(i.headers, j.headers),\r\n\t};\r\n}\r\n\r\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\r\n\tif (!i) return j;\r\n\tif (!j) return i;\r\n\r\n\tconst h = new Headers();\r\n\r\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\r\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\r\n\r\n\treturn h;\r\n}\r\n","export async function sha256(input: string) {\r\n\tconst msgUint8 = new TextEncoder().encode(input);\r\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\tconst hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\r\n\treturn hashHex;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addDays(date: Date, days: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setDate(result.getDate() + days);\r\n\treturn result;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function subMinutes(date: Date, minutes: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() - minutes);\r\n\treturn result;\r\n}\r\n","import { addDays } from '../utils/add-days.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\n\r\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\r\n\r\ninterface AdManagerConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class AdManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: AdManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset clickId(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget clickId(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import type { Logger } from './logger.js';\r\nimport type { Environment } from './types.js';\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tCapacitor?: {\r\n\t\t\tisNativePlatform?: () => boolean;\r\n\t\t};\r\n\t\tcordova?: unknown;\r\n\t}\r\n}\r\n\r\nexport interface DomainManagerConfig {\r\n\tlogger: Logger;\r\n\tplatform: string;\r\n\tenvironment: Environment;\r\n}\r\n\r\nexport class DomainManager {\r\n\tprivate logger: Logger;\r\n\tprivate platform: string;\r\n\tprivate environment: Environment;\r\n\r\n\tconstructor(config: DomainManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t\tthis.platform = config.platform;\r\n\t\tthis.environment = config.environment;\r\n\t}\r\n\r\n\tget domain() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn('Cannot determine domain on the server.');\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (this.isIOSApp) return `ios/${this.platform}`.toLowerCase();\r\n\t\tif (this.isAndroidApp) return `android/${this.platform}`.toLowerCase();\r\n\r\n\t\tconst url = new URL(window.location.href);\r\n\t\tconst rootDomain = url.hostname;\r\n\t\tconst mParam = url.searchParams.get('m');\r\n\r\n\t\treturn mParam ? `${rootDomain}/${mParam}` : rootDomain;\r\n\t}\r\n\r\n\tget metaPixelId() {\r\n\t\tconst url = new URL(window.location.href);\r\n\r\n\t\tconst map: Record<string, string> = {\r\n\t\t\t'crazywin.ph': '587374767622209',\r\n\t\t\t'crazywin.asia': '587374767622209',\r\n\t\t\t'happybingo.ph': '617045164450475',\r\n\t\t\t'happybingo.games': '1387188208976275',\r\n\t\t\t...(this.environment === 'production' && {\r\n\t\t\t\t'crazywinph.ph': '587374767622209',\r\n\t\t\t}),\r\n\t\t};\r\n\r\n\t\tconst metaPixelId = map[url.hostname] ? map[url.hostname] : url.hostname;\r\n\t\treturn metaPixelId.toLowerCase();\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n\r\n\tprivate get isNative(): boolean {\r\n\t\treturn !!(window.Capacitor?.isNativePlatform?.() || window.cordova !== undefined);\r\n\t}\r\n\r\n\tprivate get isIOSApp(): boolean {\r\n\t\treturn (\r\n\t\t\t(['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\r\n\t\t\t\tnavigator.platform,\r\n\t\t\t) ||\r\n\t\t\t\t(navigator.userAgent.includes('Mac') && 'ontouchend' in window)) &&\r\n\t\t\tthis.isNative\r\n\t\t);\r\n\t}\r\n\r\n\tprivate get isAndroidApp(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.isNative &&\r\n\t\t\t/Android/i.test(navigator.userAgent) &&\r\n\t\t\t(window.Capacitor?.isNativePlatform?.() ||\r\n\t\t\t\twindow.cordova !== undefined ||\r\n\t\t\t\t/(wv|Version\\/)/i.test(navigator.userAgent))\r\n\t\t);\r\n\t}\r\n}\r\n","interface LoggerConfig {\r\n\t/**\r\n\t * @default true\r\n\t */\r\n\tenabled?: boolean;\r\n}\r\n\r\nexport class Logger {\r\n\tprivate enabled: boolean;\r\n\r\n\tconstructor(config?: LoggerConfig) {\r\n\t\tthis.enabled = config?.enabled ?? true;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\r\n\t}\r\n\r\n\twarn(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\r\n\t}\r\n\r\n\terror(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\r\n\t}\r\n\r\n\tsuccess(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\r\n\t}\r\n}\r\n","export function sleep(ms: number) {\r\n\treturn new Promise<void>((resolve) => {\r\n\t\tsetTimeout(resolve, ms);\r\n\t});\r\n}\r\n","import { sleep } from './sleep.js';\r\n\r\ninterface Config<T> {\r\n\tuntil(response: T): boolean;\r\n\t/**\r\n\t * @default 1000\r\n\t */\r\n\tinterval?: number;\r\n\t/**\r\n\t * @default 3\r\n\t */\r\n\tmaxAttempt?: number;\r\n}\r\n\r\n/**\r\n * @example\r\n * ```ts\r\n * const poll = pollable(\r\n * fn,\r\n * {\r\n * until: (r) => r.ok,\r\n * interval: 1000,\r\n * maxAttempt: 5,\r\n * }\r\n * );\r\n *\r\n * poll()\r\n * ```\r\n */\r\nexport function pollable<Return, Args = never>(\r\n\tfunc: (...args: Args[]) => Promise<Return>,\r\n\tconfig: Config<Return>,\r\n) {\r\n\tconst {\r\n\t\tuntil,\r\n\t\tinterval = 1000,\r\n\t\tmaxAttempt = 3,\r\n\t\t/**/\r\n\t} = config;\r\n\r\n\tasync function repeater(args: Args[], max?: number) {\r\n\t\tconst m = max ?? maxAttempt;\r\n\t\tconst r = await func(...args);\r\n\t\tconst k = until(r);\r\n\r\n\t\tif (k) return r;\r\n\r\n\t\tif (m > 1) {\r\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\r\n\t\t\treturn repeater(args, m - 1);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\treturn async (...args: Args[]): Promise<Return> => {\r\n\t\treturn await repeater(args);\r\n\t};\r\n}\r\n","import cookies from 'js-cookie';\r\nimport type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManagerCookie {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tcookies.set(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tcookies.set(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t\t{},\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tcookies.remove(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tcookies.remove(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManager {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<OperationResult<SignInError, { authenticator: Authenticator } | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tlocalStorage.setItem(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tlocalStorage.setItem(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tlocalStorage.removeItem(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function compact<T>(obj: Record<string, any>) {\r\n\tconst output: Record<string, any> = {};\r\n\r\n\tfor (const k in obj) {\r\n\t\tconst v = obj[k];\r\n\r\n\t\tif (v === null) continue;\r\n\t\tif (v === undefined) continue;\r\n\r\n\t\tif (isPlainObject(v)) {\r\n\t\t\toutput[k] = compact(v);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(v)) {\r\n\t\t\toutput[k] = v.map((i) => {\r\n\t\t\t\tif (isPlainObject(i)) {\r\n\t\t\t\t\treturn compact(i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\toutput[k] = v;\r\n\t}\r\n\r\n\treturn output as T;\r\n}\r\n","export function invariant(condition: unknown, message?: string): asserts condition {\r\n\tif (!condition) {\r\n\t\tconst error = new Error();\r\n\t\terror.name = 'Invariant Violation';\r\n\t\terror.message = message ?? 'Invariant failed';\r\n\t\tError.captureStackTrace?.(error, invariant);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n","type MaybeNumber = number | string | undefined | null;\r\n\r\nexport function parseDecimal(value: MaybeNumber): number | undefined;\r\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\r\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\r\n\tif (typeof value === 'number') {\r\n\t\tif (!Number.isNaN(value)) return value;\r\n\t}\r\n\r\n\tif (typeof value === 'string') {\r\n\t\tconst parsed = Number.parseFloat(value);\r\n\r\n\t\tif (!Number.isNaN(parsed)) {\r\n\t\t\treturn parsed;\r\n\t\t}\r\n\t}\r\n\r\n\treturn fallback;\r\n}\r\n","import type { Currency, Locale } from './types.js';\r\n\r\nexport function getLocaleByCurrency(currency: Currency): Locale {\r\n\tif (currency === 'INR') return 'en-IN';\r\n\tif (currency === 'MYR') return 'en-MY';\r\n\tif (currency === 'IDR') return 'en-ID';\r\n\tif (currency === 'USD') return 'en-US';\r\n\treturn 'en-PH';\r\n}\r\n\r\n/*\r\n * +63 (Philippines)\r\n * +91 (India)\r\n * +60 (Malaysia)\r\n * +62 (Indonesia)\r\n * +1 (UnitedStates)\r\n */\r\nexport function getAreaCodeByLocale(locale: Locale) {\r\n\tif (locale === 'en-IN') return '+91';\r\n\tif (locale === 'en-MY') return '+60';\r\n\tif (locale === 'en-ID') return '+62';\r\n\tif (locale === 'en-US') return '+1';\r\n\treturn '+63';\r\n}\r\n\r\n/**\r\n * @description Ensures mobile number has complete area code\r\n * @example\r\n * ```ts\r\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\r\n * ```\r\n */\r\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\r\n\tconst areaCode = getAreaCodeByLocale(locale);\r\n\r\n\t/* starts with area code */\r\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\r\n\t/* starts with area code without \"+\" */\r\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\r\n\t/* starts with zero */\r\n\tif (mobileNumber.startsWith('0')) return `${areaCode}${mobileNumber.substring(1)}`;\r\n\r\n\treturn `${areaCode}${mobileNumber}`;\r\n}\r\n","import type * as Internal from '../services/index.js';\r\nimport type { Assign } from '../types/index.js';\r\nimport { compact } from '../utils/compact.js';\r\nimport { invariant } from '../utils/invariant.js';\r\nimport { parseDecimal } from '../utils/parse-decimal.js';\r\nimport type * as External from './types.js';\r\nimport { getLocaleByCurrency } from './utils.js';\r\n\r\nconst IMAGE_CACHE_ID = '3'.padStart(8, '0');\r\n\r\nexport class Transformer {\r\n\tget transform() {\r\n\t\treturn {\r\n\t\t\tsite: this.site.bind(this),\r\n\t\t\tplatform: this.platform.bind(this),\r\n\t\t\taccount: this.account.bind(this),\r\n\t\t\twallet: this.wallet.bind(this),\r\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\r\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\r\n\t\t\tannouncement: this.announcement.bind(this),\r\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\r\n\t\t\tdeposit: this.deposit.bind(this),\r\n\t\t\tdepositRecord: this.depositRecord.bind(this),\r\n\t\t\tbetRecord: this.betRecord.bind(this),\r\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\r\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\r\n\t\t\tgame: this.game.bind(this),\r\n\t\t\tgameSession: this.gameSession.bind(this),\r\n\t\t\tpromo: this.promo.bind(this),\r\n\t\t\tcashback: this.cashback.bind(this),\r\n\t\t\tbonus: this.bonus.bind(this),\r\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\r\n\t\t\tfile: this.file.bind(this),\r\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\r\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\r\n\t\t\tactivityRecord: this.activityRecord.bind(this),\r\n\t\t\treferral: this.referral.bind(this),\r\n\t\t\treferralCommission: this.referralCommission.bind(this),\r\n\t\t\tplatform__next: this.platform__next.bind(this),\r\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\r\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\r\n\t\t\tmessage: this.message.bind(this),\r\n\t\t\tinstapayBank: this.instapayBank.bind(this),\r\n\t\t\tpromoByCode: this.promoByCode.bind(this),\r\n\t\t\tquest: this.quest.bind(this),\r\n\t\t\ttopWin: this.topWin.bind(this),\r\n\t\t\tjackpots: this.jackpots.bind(this),\r\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\r\n\t\t\ttournaments: this.tournaments.bind(this),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate site(data: Internal.Site): External.Site {\r\n\t\tconst o: External.Site = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tlogo: data.logo ?? undefined,\r\n\t\t\tfields: data.config.fields,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tprivate platform(data: Internal.Platform): External.Platform {\r\n\t\treturn {\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tpaymentSettings: {\r\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\t\tdepositGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonlineBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tqrph: {\r\n\t\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\r\n\t\t\t\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t\t\t\t>),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\twithdrawalGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinstapay: {\r\n\t\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpointsClubSettings: {\r\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate platform__next(data: Internal.Platform__Next): External.Platform__Next {\r\n\t\treturn {\r\n\t\t\tcurrency: data.currency,\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tlocale: getLocaleByCurrency(data.currency),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate pointsClubSettings(data: Internal.PointsClubSettings): External.PointsClubSettings {\r\n\t\treturn {\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate paymentSettings(data: Internal.PaymentSettings): External.PaymentSettings {\r\n\t\treturn {\r\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\trestrictWithdrawalsToVerifiedMembers: data.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\tdepositGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaAppDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tonlineBank: {\r\n\t\t\t\t\tandroidEnabled: data.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.onlineBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tqrph: {\r\n\t\t\t\t\tandroidEnabled: data.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.qrphDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.qrphDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled: data.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualBankDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\tbankAccountName: data.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: data.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled: data.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.manualUPIDepositGatewaySettings?.maximumAmount),\r\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t: (this.file(data.manualUPIDepositGatewaySettings.upiQRCode) as Extract<\r\n\t\t\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t\t\t>),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\twithdrawalGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled: data.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.bankWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled: data.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.gcashWithdrawalGatewaySettings?.maximumAmount, 1000000),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled: data.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(data.mayaWithdrawalGatewaySettings?.maximumAmount),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled: data.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.mayaAppWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tinstapay: {\r\n\t\t\t\t\tandroidEnabled: data.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.instapayWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled: data.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualBankWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled: data.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled: data.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(data.manualUPIWithdrawalGatewaySettings?.minimumAmount),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate account(data: Internal.MemberAccount): External.Account {\r\n\t\tconst o: External.Account = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tverified: data.verified,\r\n\t\t\tnickName: data.nickName ?? undefined,\r\n\t\t\trealName: data.realName ?? undefined,\r\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\r\n\t\t\temailAddress: data.emailAddress ?? undefined,\r\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\r\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\r\n\t\t\tmobileNumberVerificationRequired: data.mobileNumberVerificationRequired ?? false,\r\n\t\t\tvalidId: data.validId || undefined,\r\n\t\t\tverificationStatus: data.verificationStatus,\r\n\t\t\ttransactionPassword: data.transactionPassword,\r\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\r\n\t\tconst o: External.Wallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate verificationDetails(data: Internal.MemberVerification): External.VerificationDetails {\r\n\t\tconst o: External.VerificationDetails = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\taddress: data.address,\r\n\t\t\tpermanentAddress: data.permanentAddress,\r\n\t\t\tnationality: data.nationality,\r\n\t\t\tnatureOfWork: data.natureOfWork,\r\n\t\t\tplaceOfBirth: data.placeOfBirth,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome,\r\n\t\t\tselfieImage: this.file(data.selfieImage) as External.File,\r\n\t\t\tidFrontImage: this.file(data.idFrontImage) as External.File,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate profileCompletion(data: Internal.ProfileCompletion): External.ProfileCompletion {\r\n\t\tconst o: External.ProfileCompletion = {\r\n\t\t\taccountPassword: data.accountPassword ?? false,\r\n\t\t\taccountVerification: data.accountVerification ?? false,\r\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\r\n\t\t\tpersonalInformation: data.personalInformation ?? false,\r\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\r\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\r\n\t\tconst o: External.Announcement = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttitle: data.title,\r\n\t\t\tstatus: data.status,\r\n\t\t\tmessage: data.message,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate withdrawalRecord(data: Internal.WithdrawalRecord): External.WithdrawalRecord {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tbank: data.bank!,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t\twithdrawalNumber: data.withdrawalNumber,\r\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\r\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed ? new Date(data.dateTimeConfirmed) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.WithdrawalRecord;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tvca: data.vca ?? undefined,\r\n\t\t\tqrCode: data.qrCode ?? undefined,\r\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\r\n\t\tconst o: External.DepositRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\tdeposit: data.deposit,\r\n\t\t\tdepositNumber: data.depositNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate betRecord(\r\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\r\n\t): External.BetRecord {\r\n\t\tconst o: External.BetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\r\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\r\n\t\t\twinloss: parseDecimal(data.winloss),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\tdateTimeSettled: data.dateTimeSettled ? new Date(data.dateTimeSettled) : undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tbetContent: data.betContent ?? undefined,\r\n\t\t\tcontestName: data.contestName ?? undefined,\r\n\t\t\texternalCategory: data.externalCategory ?? undefined,\r\n\t\t\tmetadata: {\r\n\t\t\t\todds: data.metadata?.odds ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate latestBetRecord(\r\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\r\n\t): External.LatestBetRecord {\r\n\t\tconst o: External.LatestBetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: data.member,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate transactionRecord(data: Internal.TransactionRecord): External.TransactionRecord {\r\n\t\tconst o: External.TransactionRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tcontent: data.content ?? undefined,\r\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\r\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\r\n\t\t\treferenceNumber: data.referenceNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate game(data: Internal.Game): External.Game {\r\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\r\n\t\t\tinvariant(url);\r\n\r\n\t\t\treturn url.includes('?')\r\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\r\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\r\n\t\t});\r\n\r\n\t\tconst o: External.Game = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttags: data.tags ?? [],\r\n\t\t\tname: data.name,\r\n\t\t\timages,\r\n\t\t\tprovider: data.provider,\r\n\t\t\treference: data.reference,\r\n\t\t\tfavorite: data.favorite,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\r\n\t\t} as External.GameSession;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate promo(data: Internal.Promo): External.Promo {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdescription: data.description,\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\r\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\r\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\r\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\r\n\t\tconst o: External.Cashback = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\r\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\r\n\t\tconst o: External.Bonus = {\r\n\t\t\tid: data.id,\r\n\t\t\tpromo: this.promo(data.promo),\r\n\t\t\tdeposit: !data.deposit\r\n\t\t\t\t? undefined\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttype: data.deposit.type,\r\n\t\t\t\t\t\tstatus: data.deposit.status,\r\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\r\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\r\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\r\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\r\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\r\n\t\t\t\t\t},\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\texpiration: new Date(data.expiration),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\r\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContribution,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\r\n\t\tconst o: External.CashbackBonus = {\r\n\t\t\tid: data.id,\r\n\t\t\ttotal: parseDecimal(data.total, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcashback: this.cashback(data.cashback),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate file(data: Internal.File): External.File {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\turl: data.url ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t} as External.File;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\r\n\t\tconst o: External.PointsWallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\taccount: data.account,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate pointsWalletTransaction(\r\n\t\tdata: Internal.PointsWalletTransaction,\r\n\t): External.PointsWalletTransaction {\r\n\t\tconst o: External.PointsWalletTransaction = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate activityRecord(data: Internal.ActivityRecord): External.ActivityRecord {\r\n\t\tconst o: External.ActivityRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\r\n\t\t\tdomain: data.domain ?? undefined,\r\n\t\t\tdetails: data.details,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate referral(data: Internal.Referral): External.Referral {\r\n\t\tconst o: External.Referral = {\r\n\t\t\tid: data.id,\r\n\t\t\tlevel: data.level,\r\n\t\t\tupline: data.upline,\r\n\t\t\tdownline: data.downline,\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate referralCommission(data: Internal.ReferralCommission): External.ReferralCommission {\r\n\t\tconst o: External.ReferralCommission = {\r\n\t\t\tid: data.id,\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\r\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\r\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\r\n\t\t\treferralsCount: data.referralsCount,\r\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\r\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\r\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\r\n\t\t\treferralCode: data.referralCode,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate message(data: Internal.Message): External.Message {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ticon: data.icon,\r\n\t\t\tlogo: data.logo,\r\n\t\t\timage: data.image,\r\n\t\t\ttitle: data.title,\r\n\t\t\tpopup: data.popup,\r\n\t\t\tcontent: data.content,\r\n\t\t\tactions: data.actions,\r\n\t\t\tmarkedAsRead: data.markedAsRead,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\ttype: data.type,\r\n\t\t\tmetadata: !data.metadata\r\n\t\t\t\t? null\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttournament: data.metadata.tournament,\r\n\t\t\t\t\t\tpayout: {\r\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\r\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\r\n\t\treturn data;\r\n\t}\r\n\r\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\r\n\t\treturn {\r\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\r\n\t\t\tbonusesCount: data.bonusesCount,\r\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\r\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\r\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\r\n\t\t\tclosedBonusesCountPercentage: parseDecimal(data.closedBonusesCountPercentage, 0),\r\n\t\t\tcode: data.code,\r\n\t\t\tdaysToClear: data.daysToClear,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tid: data.id,\r\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\r\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\r\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\r\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\r\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\r\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\r\n\t\t\tturnoverRequirementMultiplier: parseDecimal(data.turnoverRequirementMultiplier, 0),\r\n\t\t\ttype: data.type,\r\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\r\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\r\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\r\n\t\t\tdescription: data.description,\r\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\r\n\t\t\tactivationEndDateTime: data.activationEndDateTime\r\n\t\t\t\t? new Date(data.activationEndDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tactivationStartDateTime: data.activationStartDateTime\r\n\t\t\t\t? new Date(data.activationStartDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClosed: data.dateTimeClosed ? new Date(data.dateTimeClosed) : undefined,\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\r\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tbanner: data.banner,\r\n\t\t};\r\n\t}\r\n\r\n\tquest(data: Internal.Quest): External.Quest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbonus: parseDecimal(data.bonus, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tendDateTime: new Date(data.endDateTime),\r\n\t\t\tprogram: {\r\n\t\t\t\ttype: data.program.type,\r\n\t\t\t\tname: data.program.name,\r\n\t\t\t\tdescription: data.program.description,\r\n\t\t\t\tstatus: data.program.status,\r\n\t\t\t},\r\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\ttargetTurnover: data?.targetTurnover ? parseDecimal(data.targetTurnover, 0) : undefined,\r\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\r\n\t\t\tlastCheckInDate: data?.lastCheckInDate ? new Date(data.lastCheckInDate) : undefined,\r\n\t\t\tstartDateTime: data?.startDateTime ? new Date(data.startDateTime) : undefined,\r\n\t\t\ttype: data.type,\r\n\r\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\r\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\r\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'ONBOARDING' && {\r\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\r\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate topWin(data: Assign<Internal.TopWin, { game?: Internal.Game }>): External.TopWin {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tpool: parseDecimal(data.pool, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(data.minimumJackpotPoolDrawingLimit, 0),\r\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\r\n\t\t\tdrawing: data.drawing,\r\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\r\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\r\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\r\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tjackpot: {\r\n\t\t\t\tid: data.jackpot.id,\r\n\t\t\t\tname: data.jackpot.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournamentsLeaderboard(\r\n\t\tdata: Internal.TournamentLeaderboard,\r\n\t): External.TournamentLeaderboard {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tusername: data.username,\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\r\n\t\t\t\t...payout,\r\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\r\n\t\t\t})),\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tfrequency: data.frequency,\r\n\t\t\tmode: data.mode,\r\n\t\t\tmobileBanner: {\r\n\t\t\t\tid: data.mobileBanner?.id,\r\n\t\t\t\turl: data.mobileBanner?.url,\r\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\r\n\t\t\t},\r\n\t\t\twebBanner: {\r\n\t\t\t\tid: data.webBanner?.id,\r\n\t\t\t\turl: data.webBanner?.url,\r\n\t\t\t\tmimeType: data.webBanner?.mimeType,\r\n\t\t\t},\r\n\r\n\t\t\trewardSettings: data.rewardSettings,\r\n\r\n\t\t\tcurrentLeaderboard: {\r\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t\tpreviousLeaderboard: {\r\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n}\r\n","import {\r\n\tAccountService,\r\n\tAuthService,\r\n\tCmsPortalService,\r\n\tFileService,\r\n\tGameService,\r\n\tPortalService,\r\n\tReportService,\r\n\tTriggerService,\r\n\tWalletService,\r\n} from '../services/index.js';\r\nimport { Cache } from '../utils/cache.js';\r\nimport { clamp } from '../utils/clamp.js';\r\nimport {\r\n\tGraphQLClient,\r\n\ttype GraphQLClientConfig,\r\n\ttype GraphQLClientMiddleware,\r\n} from '../utils/graphql-client.js';\r\nimport { sha256 } from '../utils/sha256.js';\r\nimport { AdManager } from './ad-manager.js';\r\nimport { DomainManager } from './domain-manager.js';\r\nimport { Logger } from './logger.js';\r\nimport { ObjectId } from './object-id.js';\r\nimport { ObjectType } from './object-type.js';\r\nimport { SessionManagerCookie } from './session-manager-cookie.js';\r\nimport { SessionManager } from './session-manager.js';\r\nimport { Transformer } from './transformer.js';\r\nimport type {\r\n\tAccountReturn,\r\n\tActivityRecordsInput,\r\n\tActivityRecordsReturn,\r\n\tAnnouncementsInput,\r\n\tAnnouncementsReturn,\r\n\tAuthenticateInput,\r\n\tAuthenticateReturn,\r\n\tAvailablePromosReturn,\r\n\tAvailableQuestsReturn,\r\n\tBetRecordsInput,\r\n\tBetRecordsReturn,\r\n\tBonusReturn,\r\n\tBonusesReturn,\r\n\tCabinetSignInInput,\r\n\tCabinetSignInReturn,\r\n\tCashbackBonusReturn,\r\n\tCashbacksReturn,\r\n\tCheckInDailyQuestReturn,\r\n\tClaimCashbackBonusReturn,\r\n\tClaimRewardReturn,\r\n\tClaimSpotBonusReturn,\r\n\tCompleteOnboardingInput,\r\n\tCompleteOnboardingReturn,\r\n\tCreateAccountInput,\r\n\tCreateAccountInput__Next,\r\n\tCreateAccountReturn,\r\n\tCreateDepositInput,\r\n\tCreateDepositReturn,\r\n\tCreateGameSessionInput,\r\n\tCreateGameSessionReturn,\r\n\tCreateSingleUseTokenReturn,\r\n\tCreateWithdrawalInput,\r\n\tCreateWithdrawalReturn,\r\n\tDeleteAccountReturn,\r\n\tDepositRecordsInput,\r\n\tDepositRecordsReturn,\r\n\tDepositReturn,\r\n\tDepositsCountReturn,\r\n\tDownlinesByNameInput,\r\n\tDownlinesByNameReturn,\r\n\tEndGameSessionReturn,\r\n\tEnvironment,\r\n\tFavoriteGamesReturn,\r\n\tFileReturn,\r\n\tGameProvider,\r\n\tGameReturn,\r\n\tGameSessionReturn,\r\n\tGamesInput,\r\n\tGamesInput__Next,\r\n\tGamesReturn,\r\n\tGoogleClientIdReturn,\r\n\tInstapayBankListReturn,\r\n\tJackpotPayoutsInput,\r\n\tJackpotPayoutsReturn,\r\n\tJackpotsInput,\r\n\tJackpotsReturn,\r\n\tLatestBetRecordsReturn,\r\n\tLocale,\r\n\tMarkAllMessagesAsReadReturn,\r\n\tMarkGameAsFavoriteInput,\r\n\tMarkGameAsFavoriteReturn,\r\n\tMarkMessageAsReadReturn,\r\n\tMayaSignInInput,\r\n\tMayaSignInReturn,\r\n\tMessagesInput,\r\n\tMessagesReturn,\r\n\tMobileNumberSignInInput,\r\n\tMobileNumberSignInReturn,\r\n\tNameAndPasswordSignInInput,\r\n\tNameAndPasswordSignInReturn,\r\n\tOnboardingStatusReturn,\r\n\tPaymentSettingsReturn,\r\n\tPlatformReturn,\r\n\tPlatformReturn__Next,\r\n\tPointsClubSettingsReturn,\r\n\tPointsWalletReturn,\r\n\tPointsWalletTransactionsInput,\r\n\tPointsWalletTransactionsReturn,\r\n\tProfileCompletionReturn,\r\n\tPromoByCodeReturn,\r\n\tPromosReturn,\r\n\tRecommendedGamesInput,\r\n\tRecommendedGamesReturn,\r\n\tRedeemPointsInput,\r\n\tRedeemPointsReturn,\r\n\tReferralCodeReturn,\r\n\tReferralCommissionReturn,\r\n\tReferralsInput,\r\n\tReferralsReturn,\r\n\tRegisterFCMDeviceInput,\r\n\tRegisterFCMDeviceReturn,\r\n\tRegisterMayaAccountInput,\r\n\tRegisterMayaAccountReturn,\r\n\tRemainingDailyWithdrawalsCountReturn,\r\n\tResetPasswordInput,\r\n\tResetPasswordReturn,\r\n\tSendVerificationCodeInput__Next,\r\n\tSendVerificationCodeReturn,\r\n\tSendVerificationCodeReturn__Next,\r\n\tSessionReturn,\r\n\tSignInInput,\r\n\tSignInReturn,\r\n\tSingleUseTokenSignInInput,\r\n\tSingleUseTokenSignInReturn,\r\n\tSiteReturn,\r\n\tSkipOnboardingReturn,\r\n\tSocialsSignInInput,\r\n\tSocialsSignInReturn,\r\n\tSubmitVerificationDetailsInput,\r\n\tSubmitVerificationDetailsReturn,\r\n\tTokenSignInInput,\r\n\tTokenSignInReturn,\r\n\tTopWinsReturn,\r\n\tTouchDepositInput,\r\n\tTouchDepositReturn,\r\n\tTournamentsInput,\r\n\tTournamentsReturn,\r\n\tTransactionRecordsInput,\r\n\tTransactionRecordsReturn,\r\n\tUnmarkGameAsFavoriteInput,\r\n\tUnmarkGameAsFavoriteReturn,\r\n\tUnreadMessagesCountInput,\r\n\tUnreadMessagesCountReturn,\r\n\tUnregisterFCMDeviceInput,\r\n\tUnregisterFCMDeviceReturn,\r\n\tUpdateAccountInput,\r\n\tUpdateAccountReturn,\r\n\tUpdateReferralCodeInput,\r\n\tUpdateReferralCodeReturn,\r\n\tUpdateVerificationDetailsInput,\r\n\tUpdateVerificationDetailsReturn,\r\n\tUplinesByNameInput,\r\n\tUplinesByNameReturn,\r\n\tUploadImageFileInput,\r\n\tUploadImageFileReturn,\r\n\tValidateMayaSessionReturn,\r\n\tVerificationDetailsReturn,\r\n\tVerifyMobileNumberReturn,\r\n\tWalletReturn,\r\n\tWatchSessionInput,\r\n\tWithdrawalRecordsInput,\r\n\tWithdrawalRecordsReturn,\r\n} from './types.js';\r\nimport { addAreaCode } from './utils.js';\r\n\r\nexport interface SdkConfig {\r\n\t/**\r\n\t * @default 'development'\r\n\t */\r\n\tenvironment?: Environment;\r\n\tsite: string;\r\n\tsitePlatform: string;\r\n\tplatform: string;\r\n\tlogs?: boolean;\r\n\tsessionStorage?: 'cookie' | 'localStorage';\r\n\tmiddleware?: GraphQLClientMiddleware;\r\n\tfetch?: typeof globalThis.fetch;\r\n}\r\n\r\nconst defaultConfig = {\r\n\tenvironment: 'development' as Environment,\r\n\tlogs: false,\r\n};\r\n\r\nexport class Sdk {\r\n\tprivate cmsPortalService: CmsPortalService;\r\n\tprivate authService: AuthService;\r\n\tprivate gameService: GameService;\r\n\tprivate fileService: FileService;\r\n\tprivate walletService: WalletService;\r\n\tprivate accountService: AccountService;\r\n\tprivate reportService: ReportService;\r\n\tprivate portalService: PortalService;\r\n\tprivate triggerService: TriggerService;\r\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\r\n\tprivate adManager: AdManager;\r\n\tprivate domainManager: DomainManager;\r\n\tprivate transformer: Transformer;\r\n\tprivate logger: Logger;\r\n\tprivate cache: Cache;\r\n\tprivate config: SdkConfig;\r\n\r\n\tconstructor(config: SdkConfig) {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tsite,\r\n\t\t\tsitePlatform,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t\tlogs,\r\n\t\t} = Object.assign(defaultConfig, config);\r\n\r\n\t\tconst production = environment === 'production';\r\n\r\n\t\tconst logger = new Logger({\r\n\t\t\tenabled: logs,\r\n\t\t});\r\n\r\n\t\tconst adManager = new AdManager({ logger });\r\n\t\tconst domainManager = new DomainManager({\r\n\t\t\tlogger,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t});\r\n\r\n\t\tconst transformer = new Transformer();\r\n\r\n\t\tconst authUrl = ENDPOINTS[environment].auth;\r\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\r\n\t\tconst reportUrl = ENDPOINTS[environment].report;\r\n\t\tconst accountUrl = ENDPOINTS[environment].account;\r\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\r\n\t\tconst fileUrl = ENDPOINTS[environment].file;\r\n\t\tconst gameUrl = ENDPOINTS[environment].game;\r\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\r\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\r\n\r\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\r\n\t\t\turl: cmsPortalUrl,\r\n\t\t\tsite,\r\n\t\t\tplatform: sitePlatform,\r\n\t\t\tfetch: this.fetch,\r\n\t\t}));\r\n\r\n\t\tthis._fetch = config.fetch ?? null;\r\n\t\tthis._middleware = config.middleware ?? ((req) => req);\r\n\r\n\t\tconst graphqlClientConfig = () =>\r\n\t\t\t({\r\n\t\t\t\tmiddlewares: [\r\n\t\t\t\t\t/**/\r\n\t\t\t\t\tthis.authMiddleware,\r\n\t\t\t\t\tthis.domainMiddleware,\r\n\t\t\t\t\tthis.miscMiddleware,\r\n\t\t\t\t\tthis.middleware,\r\n\t\t\t\t],\r\n\t\t\t\tfetch: this.fetch,\r\n\t\t\t\tfetchOptions: {\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t\t'Platform-Code': platform,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t}) satisfies GraphQLClientConfig;\r\n\r\n\t\tconst gameService = new GameService(new GraphQLClient(gameUrl, graphqlClientConfig));\r\n\t\tconst fileService = new FileService(new GraphQLClient(fileUrl, graphqlClientConfig));\r\n\t\tconst walletService = new WalletService(new GraphQLClient(walletUrl, graphqlClientConfig));\r\n\t\tconst accountService = new AccountService(new GraphQLClient(accountUrl, graphqlClientConfig));\r\n\t\tconst reportService = new ReportService(new GraphQLClient(reportUrl, graphqlClientConfig));\r\n\t\tconst portalService = new PortalService(new GraphQLClient(portalUrl, graphqlClientConfig));\r\n\t\tconst triggerService = new TriggerService(new GraphQLClient(triggerUrl, graphqlClientConfig));\r\n\r\n\t\tconst authService = new AuthService({\r\n\t\t\turl: authUrl,\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\r\n\t\t\t\t\t...(!production && {\r\n\t\t\t\t\t\t'Test-Pass': '',\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tconst sessionManager =\r\n\t\t\tconfig.sessionStorage === 'cookie'\r\n\t\t\t\t? new SessionManagerCookie({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t})\r\n\t\t\t\t: new SessionManager({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t});\r\n\r\n\t\tthis.logger = logger;\r\n\t\tthis.adManager = adManager;\r\n\t\tthis.domainManager = domainManager;\r\n\t\tthis.transformer = transformer;\r\n\t\tthis.authService = authService;\r\n\t\tthis.gameService = gameService;\r\n\t\tthis.fileService = fileService;\r\n\t\tthis.walletService = walletService;\r\n\t\tthis.accountService = accountService;\r\n\t\tthis.reportService = reportService;\r\n\t\tthis.portalService = portalService;\r\n\t\tthis.triggerService = triggerService;\r\n\t\tthis.sessionManager = sessionManager;\r\n\t\tthis.cmsPortalService = cmsPortalService;\r\n\t\tthis.cache = new Cache();\r\n\t\tthis.config = {\r\n\t\t\tenvironment,\r\n\t\t\tsite,\r\n\t\t\tplatform,\r\n\t\t\tsitePlatform,\r\n\t\t\tlogs,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate _fetch: typeof globalThis.fetch | null = null;\r\n\tprivate _middleware: GraphQLClientMiddleware;\r\n\r\n\tset fetch(value: typeof globalThis.fetch | null) {\r\n\t\tthis._fetch = value;\r\n\t}\r\n\r\n\tget fetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tset middleware(value: GraphQLClientMiddleware) {\r\n\t\tthis._middleware = value;\r\n\t}\r\n\r\n\tget middleware() {\r\n\t\treturn this._middleware;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tADS\r\n\t *=============================================\r\n\t */\r\n\r\n\tset adClickId(value: string | null) {\r\n\t\tthis.adManager.clickId = value;\r\n\t}\r\n\r\n\tget adClickId() {\r\n\t\treturn this.adManager.clickId;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tLOCALE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get locale() {\r\n\t\treturn new Promise<Locale>((resolve) => {\r\n\t\t\tconst cacheKey = 'locale';\r\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\r\n\r\n\t\t\tif (cacheValue) return resolve(cacheValue);\r\n\r\n\t\t\tthis.platform__next().then((res) => {\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\r\n\t\t\t\t\tresolve(res.data.locale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\r\n\t\t\t\t\tresolve('en-PH');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tAUTH MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tthis.logger.info('Checking for session');\r\n\r\n\t\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\t\tif (res.data) {\r\n\t\t\t\trequest.headers.append('Authorization', `Bearer ${res.data.accessToken}`);\r\n\r\n\t\t\t\tthis.logger.info('Session found');\r\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.info('No session found');\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDOMAIN MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get domainMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tif (this.sessionManager.onMaya) {\r\n\t\t\t\trequest.headers.append('Domain', `maya/${this.config.platform}`);\r\n\t\t\t\treturn request;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.sessionManager.onCabinet) {\r\n\t\t\t\trequest.headers.delete('Domain');\r\n\t\t\t\treturn request;\r\n\t\t\t}\r\n\r\n\t\t\tconst domain = this.domainManager.domain;\r\n\t\t\tif (domain) request.headers.append('Domain', domain);\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMISCELLANEOUS MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst adClickId = this.adManager.clickId;\r\n\t\t\tif (adClickId) request.headers.append('Ad-Click-Id', adClickId);\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tasync signIn(input: NameAndPasswordSignInInput): Promise<NameAndPasswordSignInReturn>;\r\n\tasync signIn(input: MobileNumberSignInInput): Promise<MobileNumberSignInReturn>;\r\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\r\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\r\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\r\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\r\n\tasync signIn(input: SingleUseTokenSignInInput): Promise<SingleUseTokenSignInReturn>;\r\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\r\n\t\tif (input.type === 'TOKEN') {\r\n\t\t\tconsole.warn(\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\");\r\n\t\t}\r\n\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'NAME_AND_PASSWORD': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!res.ok) return res;\r\n\t\t\t\tif (res.data) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t'2FAEnabled': true,\r\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t'2FAEnabled': false,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SOCIALS':\r\n\t\t\tcase 'TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'CABINET': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'CABINET',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'MOBILE_NUMBER': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SINGLE_USE_TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\tconst res = await this.sessionManager.create(input);\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'SECURITY_QUESTION': {\r\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\r\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpBadRequest',\r\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync signOut() {\r\n\t\tawait this.sessionManager.destroy();\r\n\t}\r\n\r\n\twatchSession(input: WatchSessionInput) {\r\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\r\n\r\n\t\tlet timeout: NodeJS.Timeout | null = null;\r\n\r\n\t\tconst assignTimeout = () => {\r\n\t\t\treturn setTimeout(async () => {\r\n\t\t\t\tconst v = await this.sessionManager.verify();\r\n\r\n\t\t\t\tif (!v) {\r\n\t\t\t\t\tawait input.onInvalid();\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = assignTimeout();\r\n\t\t\t}, interval);\r\n\t\t};\r\n\r\n\t\ttimeout = assignTimeout();\r\n\r\n\t\treturn function unsubscribe() {\r\n\t\t\tif (timeout) {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tasync session(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\r\n\t\treturn await this.walletService.validateMayaSession();\r\n\t}\r\n\r\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\r\n\t\tconst res0 = await this.sessionManager.get();\r\n\r\n\t\tif (!res0.ok || !res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.authService.createSingleUseToken(res0.data.accessToken);\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn { ok: true, data: res1.data.token };\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tSITE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync site(): Promise<SiteReturn> {\r\n\t\tconst res = await this.cmsPortalService.self();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.site(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPLATFORM\r\n\t *=============================================\r\n\t */\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<PlatformReturn> {\r\n\t\tconsole.warn(\"'platform' is deprecated. Please use 'platform__next' instead.\");\r\n\r\n\t\tconst res = await this.accountService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform__next(): Promise<PlatformReturn__Next> {\r\n\t\tconst res = await this.portalService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\r\n\t\tconst res = await this.accountService.paymentSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACCOUNT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync account(): Promise<AccountReturn> {\r\n\t\tconst r = await this.accountService.memberAccount();\r\n\r\n\t\tif (!r.ok) return r;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.account(r.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `createAccount__next`\r\n\t */\r\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\r\n\t\tconsole.warn(\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\");\r\n\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tbirthDay:\r\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\r\n\t\t\t\t\t\t? input.dateOfBirth\r\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t\treferralCode: input.referralCode,\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync createAccount__next(input: CreateAccountInput__Next): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tname: input.name,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\tmobileNumber: input.mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccountByName({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t},\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync registerMayaAccount(input: RegisterMayaAccountInput): Promise<RegisterMayaAccountReturn> {\r\n\t\treturn await this.accountService.registerMayaMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateAccount(id: string, input: UpdateAccountInput): Promise<UpdateAccountReturn> {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tpassword,\r\n\t\t\tdateOfBirth,\r\n\t\t\tmobileNumber,\r\n\t\t\tsecretAnswer,\r\n\t\t\ttransactionPassword,\r\n\t\t\t...others\r\n\t\t} = input;\r\n\r\n\t\treturn await this.accountService.updateMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...others,\r\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\r\n\t\t\t\t\ttransactionPassword: transactionPassword ? await sha256(transactionPassword) : undefined,\r\n\t\t\t\t\tmobileNumber: mobileNumber ? addAreaCode(mobileNumber, await this.locale) : undefined,\r\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\r\n\t\t\t\t\tbirthDay: dateOfBirth\r\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\r\n\t\t\t\t\t\t\t? dateOfBirth\r\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.deleteMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\r\n\t\tconst res = await this.accountService.memberVerification();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.verificationDetails(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitVerificationDetails(\r\n\t\tinput: SubmitVerificationDetailsInput,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync updateVerificationDetails(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\r\n\t\treturn await this.accountService.resetPassword({\r\n\t\t\tinput: {\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tnewPassword: await sha256(input.newPassword),\r\n\t\t\t},\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t});\r\n\t}\r\n\r\n\tasync verifyMobileNumber(verificationCode: string): Promise<VerifyMobileNumberReturn> {\r\n\t\treturn await this.accountService.verifyMobileNumber({\r\n\t\t\tinput: {\r\n\t\t\t\tverificationCode,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\r\n\t\tconst res = await this.accountService.profileCompletion();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `sendVerificationCode__next`\r\n\t */\r\n\tasync sendVerificationCode(mobileNumber: string): Promise<SendVerificationCodeReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\r\n\t\t);\r\n\r\n\t\treturn await this.accountService.sendVerificationCode({\r\n\t\t\tinput: {\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync sendVerificationCode__next(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<SendVerificationCodeReturn__Next> {\r\n\t\tif (input.type === 'SMS') {\r\n\t\t\treturn this.authService.sendVerificationCode({\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t...(input.strict && {\r\n\t\t\t\t\tverificationType: 'MEMBER',\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\r\n\t}\r\n\r\n\tasync wallet(): Promise<WalletReturn> {\r\n\t\tconst res = await this.walletService.wallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tANNOUNCEMENT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync announcements(input?: AnnouncementsInput): Promise<AnnouncementsReturn> {\r\n\t\tconst res = await this.accountService.announcements({\r\n\t\t\t...input,\r\n\t\t\tfilter: {\r\n\t\t\t\t...input?.filter,\r\n\t\t\t\tvisibility: {\r\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.announcement(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as AnnouncementsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tWITHDRAWAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createWithdrawal(input: CreateWithdrawalInput): Promise<CreateWithdrawalReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\r\n\r\n\t\tif (input.type === 'BANK') {\r\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(input.recipientMobileNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_INSTAPAY') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tupiId: input.upiId,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankAccountName: input.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync withdrawalRecords(input?: WithdrawalRecordsInput): Promise<WithdrawalRecordsReturn> {\r\n\t\tconst res = await this.reportService.withdrawalRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as WithdrawalRecordsReturn;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\r\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\r\n\t\tconst res = await this.walletService.instapayBankList();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDEPOSIT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\r\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_QRPH') {\r\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treference: input.reference,\r\n\t\t\t\t\treferenceImage: input.referenceImage,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treferenceImage: input.referenceId,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_DIRECT_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createGCashDirectWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync deposit(id: string): Promise<DepositReturn> {\r\n\t\tconst res = await this.walletService.deposit({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync depositRecords(input?: DepositRecordsInput): Promise<DepositRecordsReturn> {\r\n\t\tconst res = await this.reportService.depositRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as DepositRecordsReturn;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<DepositsCountReturn> {\r\n\t\treturn await this.reportService.depositsCount();\r\n\t}\r\n\r\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'GCASH':\r\n\t\t\t\treturn await this.walletService.touchGCashDeposit({ input: { id: input.id } });\r\n\t\t\tcase 'QR_PH':\r\n\t\t\t\treturn await this.walletService.touchQrphDeposit({ input: { id: input.id } });\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\r\n\t\t}\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tBET RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\r\n\t\tconst res0 = await this.reportService.betRecords({\r\n\t\t\t...input,\r\n\t\t\t...(input?.filter && {\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...(input.filter.status && {\r\n\t\t\t\t\t\tstatus: input.filter.status,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.serialCode && {\r\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.vendorRoundId && {\r\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameType && {\r\n\t\t\t\t\t\tgame__type: input.filter.gameType,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameProvider && {\r\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\r\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbetRecords: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\r\n\t\t\t\t\tconst game = res1.data.edges.find((e) => node.game.id === e.node.reference)?.node;\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\r\n\t\t\t\t\t\t\t...node,\r\n\t\t\t\t\t\t\tgame,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t};\r\n\t\t\t\t}),\r\n\t\t\t\ttotalCount: res0.data.totalCount,\r\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as BetRecordsReturn;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\r\n\t\tconst res0 = await this.portalService.latestBetRecords();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0.data.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTRANSACTION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync transactionRecords(input?: TransactionRecordsInput): Promise<TransactionRecordsReturn> {\r\n\t\tconst res = await this.reportService.transactionRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as TransactionRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPROMO\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync promos(): Promise<PromosReturn> {\r\n\t\tconst res = await this.walletService.promos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync availablePromos(): Promise<AvailablePromosReturn> {\r\n\t\tconst res = await this.walletService.availablePromos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<CashbacksReturn> {\r\n\t\tconst res = await this.walletService.cashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync bonus(): Promise<BonusReturn> {\r\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\r\n\r\n\t\tconst res = await this.walletService.bonus();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<BonusesReturn> {\r\n\t\tconst res = await this.walletService.bonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\r\n\t\tconst res = await this.walletService.cashbackBonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\r\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\r\n\t}\r\n\r\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\r\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\r\n\t}\r\n\r\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\r\n\t\tconst res = await this.reportService.promoByCode({ code: code });\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tGAME\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync game(id: string): Promise<GameReturn> {\r\n\t\tconst res = await this.cmsPortalService.game(id);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\r\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\r\n\r\n\t\tconst res = await this.cmsPortalService.games(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games__next(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync recommendedGames(input?: RecommendedGamesInput): Promise<RecommendedGamesReturn> {\r\n\t\tconst res0 = await this.portalService.recommendedGames();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfirst: input?.first,\r\n\t\t\tafter: input?.after,\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res1.data.totalCount,\r\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as RecommendedGamesReturn;\r\n\t}\r\n\r\n\tasync gameSession(id: string, gameProvider?: GameProvider): Promise<GameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.gameSession({ id })\r\n\t\t\t\t: await this.gameService.gameSession({ id });\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: res.data ? this.transformer.transform.gameSession(res.data) : null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.gameSession({ id });\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tif (res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.gameService.gameSession({ id });\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res1.data ? this.transformer.transform.gameSession(res1.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(input: CreateGameSessionInput): Promise<CreateGameSessionReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\r\n\r\n\t\tif (input.provider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\r\n\t\t\t\t? await this.walletService.createGameSession({ input: { id, game: input.reference } })\r\n\t\t\t\t: await this.gameService.createGameSession({ input: { id, game: input.reference } });\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst isSports = input.game.startsWith('SPORTS:');\r\n\r\n\t\tif (isSports) {\r\n\t\t\tconst game = await ObjectId.generateFromKey(ObjectType.Game, input.game).then(\r\n\t\t\t\t(generatedId) => {\r\n\t\t\t\t\treturn generatedId.toString();\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\tconst res0 = await this.gameService.createGameSession({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.game(input.game);\r\n\r\n\t\tif (!res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'GameDoesNotExistError',\r\n\t\t\t\t\tmessage: 'Game does not exist',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst { provider, reference } = res0.data;\r\n\r\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\r\n\t\t\t? await this.walletService.createGameSession({ input: { id, game: reference } })\r\n\t\t\t: await this.gameService.createGameSession({ input: { id, game: reference } });\r\n\r\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\r\n\t}\r\n\r\n\tasync endGameSession(id: string, gameProvider?: GameProvider): Promise<EndGameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\r\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\r\n\t\tif (res0.ok) return res0;\r\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\r\n\t\treturn res1;\r\n\t}\r\n\r\n\tasync markGameAsFavorite(input: MarkGameAsFavoriteInput): Promise<MarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.markGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync unmarkGameAsFavorite(\r\n\t\tinput: UnmarkGameAsFavoriteInput,\r\n\t): Promise<UnmarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\r\n\t\tconst res0 = await this.walletService.favoriteGames();\r\n\r\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.id))] : [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata:\r\n\t\t\t\tres0.data\r\n\t\t\t\t\t?.map(({ id }) => {\r\n\t\t\t\t\t\tconst game = res1.data.edges.find((e) => id === e.node.reference)?.node;\r\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.filter(Boolean) ?? [],\r\n\t\t} as FavoriteGamesReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFILE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.fileService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadImageFile(input: UploadImageFileInput): Promise<UploadImageFileReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\r\n\r\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tfile: input.file,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPOINTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\r\n\t\tconst res = await this.walletService.pointsWallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\r\n\t\treturn await this.walletService.redeemPointsToCash({\r\n\t\t\tinput: {\r\n\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tinput?: PointsWalletTransactionsInput,\r\n\t): Promise<PointsWalletTransactionsReturn> {\r\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PointsWalletTransactionsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACTIVITY RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync activityRecords(input?: ActivityRecordsInput): Promise<ActivityRecordsReturn> {\r\n\t\tconst res = await this.reportService.activityRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ActivityRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tREFERRAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync referralCode(): Promise<ReferralCodeReturn> {\r\n\t\tconst res = await this.accountService.referralCode();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(input: UpdateReferralCodeInput): Promise<UpdateReferralCodeReturn> {\r\n\t\treturn await this.accountService.updateReferralCode({ input });\r\n\t}\r\n\r\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\r\n\t\tconst res = await this.reportService.referrals(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.referral(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ReferralsReturn;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\r\n\t\tconst res = await this.reportService.referralCommission();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.referralCommission(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\r\n\t\tconst res = await this.reportService.uplinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync downlinesByName(input: DownlinesByNameInput): Promise<DownlinesByNameReturn> {\r\n\t\tconst res = await this.reportService.downlinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\r\n\t\tconst res = await this.accountService.pointsClubSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsClubSettings(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMESSAGES\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\r\n\t\tconst res = await this.triggerService.messages(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.message(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as MessagesReturn;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(input?: UnreadMessagesCountInput): Promise<UnreadMessagesCountReturn> {\r\n\t\treturn await this.triggerService.unreadMessagesCount(input);\r\n\t}\r\n\r\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\r\n\t\treturn await this.triggerService.markMessageAsRead({ id });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessageAsRead();\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessagesAsRead();\r\n\t}\r\n\r\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\r\n\t\treturn await this.triggerService.claimReward({ id });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tONBOARDING\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\r\n\t\tconst res = await this.portalService.onboardingStatus();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync completeOnboarding(input: CompleteOnboardingInput): Promise<CompleteOnboardingReturn> {\r\n\t\treturn await this.portalService.completeOnboarding({\r\n\t\t\tinput: {\r\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\r\n\t\t\t\tplayerExperience: input.playerExperience,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\r\n\t\treturn await this.portalService.skipOnboarding();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\r\n\t\tconst res = await this.triggerService.availableQuests();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\r\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOP WINS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync topWins(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWins();\r\n\r\n\t\tconst ids = res0.data?.length ? [...new Set(res0.data.map((e) => e.game.id))] : [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find((e) => e.node.reference === o.game.id)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tJACKPOT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\r\n\t\tconst res = await this.reportService.jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotPayouts(input?: JackpotPayoutsInput): Promise<JackpotPayoutsReturn> {\r\n\t\tconst res = await this.reportService.jackpotPayouts(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotPayoutsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOURNAMENTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\r\n\t\tconst res = await this.reportService.tournaments(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as TournamentsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFCM/FIREBASE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync registerFCMDevice(input: RegisterFCMDeviceInput): Promise<RegisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.registerFCMDevice({ input });\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(input: UnregisterFCMDeviceInput): Promise<UnregisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTHIRD PARTY\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\r\n\t\tconst res = await this.accountService.googleClientId();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tUTILS\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate formatYmd(date: Date): string {\r\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\r\n\r\n\t\tconst y = date.getFullYear();\r\n\t\tconst m = ensure2Digits(date.getMonth() + 1);\r\n\t\tconst d = ensure2Digits(date.getDate());\r\n\r\n\t\treturn `${y}-${m}-${d}`;\r\n\t}\r\n}\r\n\r\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\r\n\t/**/\r\n\t'RTG',\r\n\t'DARWIN',\r\n\t'DRBINGO',\r\n\t'MEGABALL',\r\n\t'MEGA2SPIN',\r\n\t'EVOLUTION',\r\n\t'EVOLUTION_NETENT',\r\n\t'ETENGJUE',\r\n\t'EVOLUTION_REDTIGER',\r\n\t'HOLLYWOODTV',\r\n];\r\n\r\nconst ENDPOINTS = {\r\n\tdevelopment: {\r\n\t\tauth: 'https://auth.development.opexa.io',\r\n\t\tgame: 'https://game.development.opexa.io/graphql',\r\n\t\tfile: 'https://file.development.opexa.io/graphql',\r\n\t\treport: 'https://report.development.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\r\n\t\taccount: 'https://account.development.opexa.io/graphql',\r\n\t\tportal: 'https://portal.development.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\r\n\t\tstatic: 'https://static.development.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n\tproduction: {\r\n\t\tauth: 'https://auth.opexa.io',\r\n\t\tgame: 'https://game.opexa.io/graphql',\r\n\t\tfile: 'https://file.opexa.io/graphql',\r\n\t\treport: 'https://report.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.opexa.io/graphql',\r\n\t\taccount: 'https://account.opexa.io/graphql',\r\n\t\tportal: 'https://portal.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\r\n\t\tstatic: 'https://static.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t},\r\n};\r\n\r\nexport default Sdk;\r\n"]}
|